From 0b9bf3d3923e4c2b48f708added8b989885a4f9f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Nov 2023 18:40:59 +0000 Subject: [PATCH] deploy: dadb0d51f7fb006489e0ebf1f5a4a57396039f21 --- 404.html | 4 +- .../postcondition-ambiguity/index.html | 6 +- .../algorithms-and-correctness/index.html | 6 +- .../index.html | 6 +- algorithms/category/graphs/index.html | 6 +- algorithms/category/hash-tables/index.html | 26 +++ algorithms/category/recursion/index.html | 6 +- .../category/red-black-trees/index.html | 8 +- algorithms/graphs/bfs-tree/index.html | 8 +- .../graphs/iterative-and-iterators/index.html | 6 +- algorithms/hash-tables/breaking/index.html | 151 ++++++++++++++++++ .../breaking/mitigations/index.html | 85 ++++++++++ .../hash-tables/breaking/python/index.html | 142 ++++++++++++++++ algorithms/index.html | 8 +- algorithms/rb-trees/applications/index.html | 10 +- algorithms/rb-trees/rules/index.html | 6 +- algorithms/recursion/karel-1/index.html | 6 +- .../recursion/pyramid-slide-down/index.html | 8 +- algorithms/tags/applications/index.html | 4 +- algorithms/tags/backtracking/index.html | 4 +- algorithms/tags/balanced-trees/index.html | 4 +- algorithms/tags/bfs/index.html | 4 +- algorithms/tags/bottom-up-dp/index.html | 4 +- algorithms/tags/c/index.html | 4 +- algorithms/tags/cpp/index.html | 26 +++ algorithms/tags/csharp/index.html | 4 +- algorithms/tags/dynamic-array/index.html | 4 +- .../tags/dynamic-programming/index.html | 4 +- algorithms/tags/exponential/index.html | 4 +- algorithms/tags/graphs/index.html | 4 +- algorithms/tags/greedy/index.html | 4 +- algorithms/tags/hash-tables/index.html | 26 +++ algorithms/tags/index.html | 6 +- algorithms/tags/iterative/index.html | 4 +- algorithms/tags/iterators/index.html | 4 +- algorithms/tags/java/index.html | 4 +- algorithms/tags/karel/index.html | 4 +- algorithms/tags/postconditions/index.html | 4 +- algorithms/tags/python/index.html | 11 +- algorithms/tags/recursion/index.html | 4 +- algorithms/tags/red-black-trees/index.html | 4 +- algorithms/tags/sorting/index.html | 4 +- algorithms/tags/testing/index.html | 4 +- algorithms/tags/time-complexity/index.html | 4 +- algorithms/tags/top-down-dp/index.html | 4 +- algorithms/time-complexity/extend/index.html | 6 +- assets/js/0123bc76.5ca7d996.js | 1 - assets/js/0123bc76.d7742152.js | 1 + assets/js/0178f9ad.3a9b9184.js | 1 - assets/js/0178f9ad.568886e5.js | 1 + assets/js/01a85c17.57ba4b21.js | 1 + assets/js/01a85c17.9250c3bc.js | 1 - assets/js/0220f5fc.5b1b8f6e.js | 1 - assets/js/0220f5fc.6bd42e59.js | 1 + assets/js/0608d96f.a18c3650.js | 1 + assets/js/0608d96f.ee46e047.js | 1 - assets/js/087808f1.0a5fb140.js | 1 + assets/js/0bfe45d5.143f3da4.js | 1 + assets/js/0bfe45d5.58ce388b.js | 1 - assets/js/0fcbc6ca.0506f58b.js | 1 - assets/js/0fcbc6ca.24ec8bc7.js | 1 + assets/js/109.192a1082.js | 1 + assets/js/109.d822e2a0.js | 1 - assets/js/130.9adcef89.js | 1 - assets/js/130.aaabb811.js | 1 + assets/js/132.6eeb92f1.js | 1 + assets/js/132.d647898f.js | 1 - assets/js/1325.126c841a.js | 2 - assets/js/1325.fc0073e5.js | 2 + ...CENSE.txt => 1325.fc0073e5.js.LICENSE.txt} | 0 assets/js/1426.5a43a299.js | 1 + assets/js/1426.e847ca7b.js | 1 - assets/js/146d9b84.996dfbcb.js | 1 - assets/js/146d9b84.bdf83d64.js | 1 + assets/js/14eb3368.4a9ef768.js | 1 - assets/js/14eb3368.8ed8ad48.js | 1 + assets/js/1504.972c6306.js | 1 + assets/js/1504.c626eacd.js | 1 - assets/js/1535ede8.0df680e5.js | 1 - assets/js/1535ede8.550c1ca8.js | 1 + assets/js/15966941.58ddb6d9.js | 1 + assets/js/1644.15e1f8ff.js | 1 - assets/js/1644.e1df3952.js | 1 + assets/js/16cbc838.63632cb6.js | 1 - assets/js/16cbc838.eafc393a.js | 1 + assets/js/1763.98bf88d0.js | 1 - assets/js/1763.dd6ac9f1.js | 1 + assets/js/1772.321bc53b.js | 1 - assets/js/1772.7702e9c0.js | 1 + assets/js/17896441.0840295c.js | 1 + assets/js/17896441.d57f667a.js | 1 - assets/js/19d7c045.004afc43.js | 1 - assets/js/19d7c045.fd298b3d.js | 1 + assets/js/1a4e3797.4bafbff8.js | 2 - assets/js/1a4e3797.4e3726f1.js | 2 + ...E.txt => 1a4e3797.4e3726f1.js.LICENSE.txt} | 0 assets/js/1a606400.9499d809.js | 1 + assets/js/1a606400.acf1b263.js | 1 - assets/js/1acf65cc.33171995.js | 1 + assets/js/1acf65cc.6bab8119.js | 1 - assets/js/2183.618b481a.js | 1 - assets/js/2183.695e6dce.js | 1 + assets/js/22a175ec.d1e2af50.js | 1 - assets/js/22a175ec.ebe0aeb7.js | 1 + assets/js/240.8190aace.js | 1 - assets/js/240.962c2c3a.js | 1 + assets/js/24fecc0a.0d18355b.js | 1 + assets/js/24fecc0a.602fded1.js | 1 - assets/js/2661.adb036a5.js | 1 + assets/js/2661.e691bc83.js | 1 - assets/js/2693.64c402f3.js | 1 - assets/js/2693.86767de9.js | 1 + assets/js/2696.9c4ce6ae.js | 1 + assets/js/2696.e61a0300.js | 1 - assets/js/2700.24d240c1.js | 1 - assets/js/2700.eb54ab23.js | 1 + assets/js/29694455.5fa079ce.js | 1 + assets/js/29694455.a2e2c1d7.js | 1 - assets/js/2b89902a.467bd596.js | 1 - assets/js/2b89902a.cec021fa.js | 1 + assets/js/2fcf0558.14a64e69.js | 1 + assets/js/3011a4c0.573f9325.js | 1 - assets/js/3011a4c0.bfa0084e.js | 1 + assets/js/3076.0d102429.js | 1 + assets/js/3076.35f30829.js | 1 - assets/js/3343.1f48b29f.js | 1 - assets/js/3343.c68ed9e0.js | 1 + assets/js/34ab65f4.580faa9a.js | 1 - assets/js/34ab65f4.5fa3179c.js | 1 + assets/js/354a7b72.19370e22.js | 1 - assets/js/354a7b72.257f6430.js | 1 + assets/js/3619.169a66d1.js | 1 + assets/js/3619.ce647998.js | 1 - assets/js/3720c009.e9eaf9f1.js | 1 - assets/js/3720c009.f4cf5d33.js | 1 + assets/js/377f3aa1.4ebbc06f.js | 1 + assets/js/377f3aa1.965374c1.js | 1 - assets/js/3da4b779.1354e52a.js | 1 + assets/js/3da4b779.c4673dc7.js | 1 - assets/js/4200b1a9.3a444325.js | 1 - assets/js/4200b1a9.faadd2c9.js | 1 + assets/js/4238.61c33e40.js | 1 - assets/js/4238.732f7e6d.js | 1 + assets/js/45c9e308.57b8321c.js | 1 + assets/js/45c9e308.9e2ba609.js | 1 - assets/js/4621632b.bd86e6e4.js | 1 + assets/js/4621632b.f101cb78.js | 1 - assets/js/4706.7b6665b0.js | 1 - assets/js/4706.bf286a6c.js | 1 + assets/js/48b268a6.56c72f30.js | 1 + assets/js/48b268a6.91319502.js | 1 - assets/js/4e546705.2d75be34.js | 1 - assets/js/4e546705.40303d4d.js | 1 + assets/js/4edd2021.ba1a6e92.js | 1 + assets/js/4edd2021.c1d4b1bd.js | 1 - assets/js/4f96b16e.05a86290.js | 1 - assets/js/4f96b16e.072f92b8.js | 1 + assets/js/51624505.58112ff9.js | 1 - assets/js/51624505.60fbe3b9.js | 1 + assets/js/520f8175.85515c7b.js | 1 + assets/js/5269.59fe4761.js | 1 - assets/js/5269.a9818fb6.js | 1 + assets/js/52f2a5bf.47167693.js | 1 - assets/js/52f2a5bf.839d7f40.js | 1 + assets/js/5326.480380dd.js | 1 + assets/js/5326.c5ca7e9b.js | 1 - assets/js/534d4833.162e2ecd.js | 1 + assets/js/534d4833.1a69a7bd.js | 1 - assets/js/5790.1440c25f.js | 1 - assets/js/5790.a9566ed9.js | 1 + assets/js/5943.9c77168e.js | 1 - assets/js/5943.ebdacf10.js | 1 + assets/js/595c7293.3a396f62.js | 1 - assets/js/595c7293.4258c254.js | 1 + assets/js/5ca803d2.140c39b8.js | 1 - assets/js/5ca803d2.986e22d4.js | 1 + assets/js/5e95c892.b9c79ca6.js | 1 - assets/js/5e95c892.ea0b11d7.js | 1 + assets/js/5fe5d476.56958e9b.js | 1 - assets/js/5fe5d476.f7c213ae.js | 1 + assets/js/6255.4bb462ce.js | 1 + assets/js/6255.9b5f422e.js | 1 - assets/js/62d847b3.06e10519.js | 1 - assets/js/62d847b3.ea246a7d.js | 1 + assets/js/6648.4cdd8480.js | 1 - assets/js/6648.7d3c04e0.js | 1 + assets/js/686a7a89.ebbeda14.js | 1 + assets/js/686a7a89.f7132b93.js | 1 - assets/js/6875c492.194341fa.js | 1 - assets/js/6875c492.d5bd7daa.js | 1 + .../js/{6945.04a6ca6a.js => 6945.1665fd21.js} | 2 +- assets/js/6985.5a048aa9.js | 1 - assets/js/6985.b22ddd47.js | 1 + assets/js/6bc697d0.1bfc859a.js | 1 - assets/js/6bc697d0.410760a1.js | 1 + assets/js/6e3cbca1.a0392349.js | 1 + assets/js/6e3cbca1.fa9cc87f.js | 1 - assets/js/7052c0bc.7ea7b00f.js | 1 - assets/js/7052c0bc.beae1b38.js | 1 + assets/js/75cccf44.61f0ccf1.js | 1 - assets/js/75cccf44.b0cfb80e.js | 1 + assets/js/765ea78b.29a37caf.js | 1 + assets/js/765ea78b.d017fb4d.js | 1 - assets/js/7936.da5208cb.js | 1 + assets/js/7936.fe0998ca.js | 1 - assets/js/794ef108.316f10cc.js | 1 - assets/js/794ef108.ed8ed4b7.js | 1 + assets/js/7e6d325b.0dc3275f.js | 1 + assets/js/7e6d325b.dca18707.js | 1 - assets/js/8016.cb675faa.js | 1 - assets/js/8016.f7e4e334.js | 1 + assets/js/84d1e0d8.05d31058.js | 1 - assets/js/84d1e0d8.2391d00c.js | 1 + assets/js/86cd1460.2562aa3d.js | 1 - assets/js/86cd1460.f549d2c3.js | 1 + .../js/{8894.de4803df.js => 8894.bbb1746a.js} | 2 +- assets/js/8955.66b94ea5.js | 1 - assets/js/8955.88257d8a.js | 1 + assets/js/8b1802c5.408315a3.js | 1 + assets/js/8b1802c5.6f267f4c.js | 1 - assets/js/8c0e532b.8df94607.js | 1 + assets/js/8c0e532b.99e85b13.js | 1 - assets/js/8d31a880.21eb37fd.js | 1 - assets/js/8d31a880.d72d8191.js | 1 + assets/js/8e6bb954.6a68f58c.js | 1 - ...d22bc.ebe82db6.js => 8e6bb954.967c2127.js} | 2 +- assets/js/9138.6232b886.js | 2 + ...CENSE.txt => 9138.6232b886.js.LICENSE.txt} | 0 assets/js/9138.fc0b63fe.js | 2 - assets/js/9287eafd.7613dea7.js | 1 + assets/js/9287eafd.8cb8e3b6.js | 1 - assets/js/95b96bb9.d5b5ac42.js | 1 - assets/js/95b96bb9.f1e9070e.js | 1 + assets/js/95f41f0b.92e0d371.js | 1 - assets/js/95f41f0b.b012cd5f.js | 1 + assets/js/976c4f3b.763787ff.js | 1 - assets/js/976c4f3b.8c7c9f5c.js | 1 + assets/js/97a42631.2b5ef8cd.js | 1 - assets/js/97a42631.f6ad4dc0.js | 1 + assets/js/9893.04fdeb2a.js | 1 + assets/js/9893.cacfe6a8.js | 1 - assets/js/9df0e937.2c53d1aa.js | 1 + assets/js/9df0e937.88a0133a.js | 1 - assets/js/9e4087bc.8d46b922.js | 1 - assets/js/9e4087bc.b07604ed.js | 1 + assets/js/a082abd3.6458a62f.js | 1 + assets/js/a082abd3.929adb6b.js | 1 - assets/js/a4c10cf4.38f4010f.js | 1 - assets/js/a4c10cf4.e91bee7a.js | 1 + assets/js/a6a48ea2.7749d78c.js | 1 + assets/js/a6a48ea2.b092defb.js | 1 - assets/js/a6aa9e1f.75141289.js | 1 + assets/js/a6aa9e1f.b6f92241.js | 1 - assets/js/a7098721.33f429e4.js | 1 + assets/js/a7098721.ef506174.js | 1 - assets/js/a7bd4aaa.69e4c2b5.js | 1 + assets/js/a7bd4aaa.9a546fe4.js | 1 - assets/js/a94703ab.5939a7a6.js | 1 + assets/js/a94703ab.c0114cbe.js | 1 - assets/js/aa24fd5d.a1be9355.js | 1 + assets/js/ab2721d4.6fad72ba.js | 1 + assets/js/ab2721d4.f9b0a580.js | 1 - assets/js/af8b72a7.37a3aa6c.js | 1 + assets/js/af8b72a7.d04e29e3.js | 1 - assets/js/b1288602.9d3ae1e4.js | 1 + assets/js/b1288602.d1f59757.js | 1 - assets/js/b25fbc58.90e65bfc.js | 1 + assets/js/b25fbc58.c6b468d1.js | 1 - assets/js/b45dccf0.64c75733.js | 1 - assets/js/b45dccf0.7ab0cc2a.js | 1 + assets/js/b5a32f14.68cedca8.js | 1 + assets/js/b5a32f14.b3a3f1ca.js | 1 - assets/js/b8cbf382.9da8e17c.js | 1 - assets/js/b8cbf382.b92ec171.js | 1 + assets/js/b9f7f5c4.8dd00486.js | 1 + assets/js/b9f7f5c4.f4a2a82e.js | 1 - assets/js/bb882650.6eee4002.js | 1 + assets/js/bb882650.7074971b.js | 1 - assets/js/bb984793.0560af7f.js | 1 + assets/js/bb984793.47b9211c.js | 1 - assets/js/bc0c9d90.22532279.js | 1 + assets/js/bc0c9d90.c62d230e.js | 1 - assets/js/bc2d22bc.36b6ca38.js | 1 + assets/js/c4f5d8e4.48a7e2ee.js | 1 - assets/js/c4f5d8e4.5d3c1d6d.js | 1 + assets/js/c580b66a.3684c421.js | 1 - assets/js/c580b66a.53c3dc84.js | 1 + assets/js/ccc49370.5d9478a4.js | 1 - assets/js/ccc49370.92d892f3.js | 1 + assets/js/cfa2b263.19f0e411.js | 1 - assets/js/cfa2b263.efd5103c.js | 1 + assets/js/d05e838c.1b2f4a74.js | 1 + assets/js/d05e838c.c9e7502d.js | 1 - assets/js/d1aceb2e.3f8e795e.js | 1 + assets/js/d1aceb2e.53194f68.js | 1 - assets/js/d255bd7f.da5efa5d.js | 1 + assets/js/d309b5b1.924b0302.js | 1 + assets/js/d309b5b1.b50fbce1.js | 1 - ...5bd7f.aa5f778c.js => d4b1e057.c26d5bb6.js} | 2 +- assets/js/d4b1e057.dcf46d42.js | 1 - assets/js/d57b4369.38858940.js | 1 - assets/js/d57b4369.6f772ce2.js | 1 + assets/js/d675395f.1f389aac.js | 1 + assets/js/d675395f.567b4609.js | 1 - assets/js/d79dd549.0ed0fe01.js | 1 + assets/js/d79dd549.ee10504b.js | 1 - assets/js/d7f7fb17.3796c0b9.js | 1 + assets/js/d7f7fb17.b0d839de.js | 1 - assets/js/d8f4410e.e8838bb3.js | 1 + assets/js/dd841e73.4a69402c.js | 1 - assets/js/dd841e73.9e9c9dbf.js | 1 + assets/js/ddc7679f.34b4249c.js | 1 - assets/js/ddc7679f.4b5bdacd.js | 1 + assets/js/dead8108.33f96b65.js | 1 - assets/js/dead8108.9d966504.js | 1 + assets/js/decbf9d1.369aa5a6.js | 1 + assets/js/decbf9d1.c170fe23.js | 1 - assets/js/df0885f0.2970a5ee.js | 1 + assets/js/df0885f0.72a19a1c.js | 1 - assets/js/df203c0f.12cfbe9e.js | 1 + assets/js/df203c0f.3809dec2.js | 1 - assets/js/dff2ebad.1cc2f99c.js | 1 - assets/js/dff2ebad.2596a554.js | 1 + assets/js/e1d2ae23.2bc6580d.js | 1 + assets/js/e1d2ae23.a7e24da2.js | 1 - assets/js/e31003e9.3ae053c2.js | 1 - assets/js/e31003e9.e9396e0a.js | 1 + assets/js/e89da83e.1856d5b6.js | 1 + assets/js/e89da83e.a63c019a.js | 1 - assets/js/eba2374c.56ada146.js | 1 - assets/js/eba2374c.71f2685d.js | 1 + assets/js/f48be158.5e2dd98c.js | 1 + assets/js/f48be158.f126906d.js | 1 - assets/js/ff82dde7.6a7a72b2.js | 1 - assets/js/ff82dde7.e3161817.js | 1 + assets/js/main.2d5ce640.js | 2 - assets/js/main.a809bb25.js | 2 + ...CENSE.txt => main.a809bb25.js.LICENSE.txt} | 0 assets/js/runtime~main.9b3960c4.js | 1 - assets/js/runtime~main.f17742ff.js | 1 + blog/2023/08/02/copr/index.html | 4 +- blog/aoc-2022/1st-week/index.html | 4 +- blog/aoc-2022/2nd-week/index.html | 4 +- blog/aoc-2022/3rd-week/index.html | 4 +- blog/aoc-2022/4th-week/index.html | 4 +- blog/aoc-2022/intro/index.html | 4 +- blog/archive/index.html | 4 +- blog/index.html | 4 +- blog/leetcode/sort-diagonally/index.html | 4 +- blog/tags/admin/index.html | 4 +- blog/tags/advent-of-code-2022/index.html | 4 +- blog/tags/advent-of-code/index.html | 4 +- blog/tags/copr/index.html | 4 +- blog/tags/cpp/index.html | 4 +- blog/tags/index.html | 4 +- blog/tags/iterators/index.html | 4 +- blog/tags/leetcode/index.html | 4 +- blog/tags/red-hat/index.html | 4 +- blog/tags/rust/index.html | 4 +- blog/tags/vps/index.html | 4 +- blog/tags/🏭/index.html | 4 +- c/bonuses/seminar-03/index.html | 4 +- c/bonuses/seminar-04/index.html | 4 +- c/bonuses/seminar-05-06/index.html | 6 +- c/bonuses/seminar-08/index.html | 6 +- c/bonuses/seminar-10/index.html | 6 +- c/category/bonuses/index.html | 4 +- c/category/practice-exams/index.html | 4 +- c/index.html | 6 +- c/mr/index.html | 6 +- c/pexam/cams/index.html | 4 +- c/pexam/garbage_collect/index.html | 4 +- contributions/index.html | 4 +- cpp/category/exceptions-and-raii/index.html | 4 +- cpp/environment/index.html | 4 +- .../placeholders/index.html | 4 +- cpp/index.html | 6 +- .../graphs/iterative-and-iterators.tar.bz2 | Bin 1946 -> 1939 bytes .../graphs/iterative-and-iterators.tar.gz | Bin 1955 -> 1955 bytes .../hash-tables/breaking/benchmark.cpp | 133 +++++++++++++++ .../hash-tables/breaking/benchmark.py | 118 ++++++++++++++ files/algorithms/recursion/karel-1.tar.bz2 | Bin 5882 -> 5876 bytes files/algorithms/recursion/karel-1.tar.gz | Bin 6584 -> 6583 bytes .../recursion/pyramid-slide-down.tar.bz2 | Bin 1548 -> 1546 bytes .../recursion/pyramid-slide-down.tar.gz | Bin 1422 -> 1423 bytes .../algorithms/time-complexity/extend.tar.bz2 | Bin 4076 -> 4070 bytes .../algorithms/time-complexity/extend.tar.gz | Bin 3916 -> 3913 bytes files/c/bonuses/03.tar.bz2 | Bin 2638 -> 2647 bytes files/c/bonuses/03.tar.gz | Bin 2338 -> 2339 bytes files/c/bonuses/04.tar.bz2 | Bin 2531 -> 2531 bytes files/c/bonuses/04.tar.gz | Bin 2500 -> 2499 bytes files/c/bonuses/05-06.tar.bz2 | Bin 3638 -> 3639 bytes files/c/bonuses/05-06.tar.gz | Bin 3487 -> 3488 bytes files/c/bonuses/08.tar.bz2 | Bin 73470 -> 73473 bytes files/c/bonuses/08.tar.gz | Bin 103304 -> 103303 bytes files/c/bonuses/10.tar.bz2 | Bin 234836 -> 234820 bytes files/c/bonuses/10.tar.gz | Bin 230105 -> 230102 bytes ib002/category/hash-tables/index.html | 11 ++ ib002/hash-tables/breaking/index.html | 11 ++ .../breaking/mitigations/index.html | 11 ++ ib002/hash-tables/breaking/python/index.html | 11 ++ ib002/tags/cpp/index.html | 11 ++ ib002/tags/hash-tables/index.html | 11 ++ index.html | 4 +- search/index.html | 4 +- sitemap.xml | 2 +- talks/index.html | 4 +- 407 files changed, 1120 insertions(+), 338 deletions(-) create mode 100644 algorithms/category/hash-tables/index.html create mode 100644 algorithms/hash-tables/breaking/index.html create mode 100644 algorithms/hash-tables/breaking/mitigations/index.html create mode 100644 algorithms/hash-tables/breaking/python/index.html create mode 100644 algorithms/tags/cpp/index.html create mode 100644 algorithms/tags/hash-tables/index.html delete mode 100644 assets/js/0123bc76.5ca7d996.js create mode 100644 assets/js/0123bc76.d7742152.js delete mode 100644 assets/js/0178f9ad.3a9b9184.js create mode 100644 assets/js/0178f9ad.568886e5.js create mode 100644 assets/js/01a85c17.57ba4b21.js delete mode 100644 assets/js/01a85c17.9250c3bc.js delete mode 100644 assets/js/0220f5fc.5b1b8f6e.js create mode 100644 assets/js/0220f5fc.6bd42e59.js create mode 100644 assets/js/0608d96f.a18c3650.js delete mode 100644 assets/js/0608d96f.ee46e047.js create mode 100644 assets/js/087808f1.0a5fb140.js create mode 100644 assets/js/0bfe45d5.143f3da4.js delete mode 100644 assets/js/0bfe45d5.58ce388b.js delete mode 100644 assets/js/0fcbc6ca.0506f58b.js create mode 100644 assets/js/0fcbc6ca.24ec8bc7.js create mode 100644 assets/js/109.192a1082.js delete mode 100644 assets/js/109.d822e2a0.js delete mode 100644 assets/js/130.9adcef89.js create mode 100644 assets/js/130.aaabb811.js create mode 100644 assets/js/132.6eeb92f1.js delete mode 100644 assets/js/132.d647898f.js delete mode 100644 assets/js/1325.126c841a.js create mode 100644 assets/js/1325.fc0073e5.js rename assets/js/{1325.126c841a.js.LICENSE.txt => 1325.fc0073e5.js.LICENSE.txt} (100%) create mode 100644 assets/js/1426.5a43a299.js delete mode 100644 assets/js/1426.e847ca7b.js delete mode 100644 assets/js/146d9b84.996dfbcb.js create mode 100644 assets/js/146d9b84.bdf83d64.js delete mode 100644 assets/js/14eb3368.4a9ef768.js create mode 100644 assets/js/14eb3368.8ed8ad48.js create mode 100644 assets/js/1504.972c6306.js delete mode 100644 assets/js/1504.c626eacd.js delete mode 100644 assets/js/1535ede8.0df680e5.js create mode 100644 assets/js/1535ede8.550c1ca8.js create mode 100644 assets/js/15966941.58ddb6d9.js delete mode 100644 assets/js/1644.15e1f8ff.js create mode 100644 assets/js/1644.e1df3952.js delete mode 100644 assets/js/16cbc838.63632cb6.js create mode 100644 assets/js/16cbc838.eafc393a.js delete mode 100644 assets/js/1763.98bf88d0.js create mode 100644 assets/js/1763.dd6ac9f1.js delete mode 100644 assets/js/1772.321bc53b.js create mode 100644 assets/js/1772.7702e9c0.js create mode 100644 assets/js/17896441.0840295c.js delete mode 100644 assets/js/17896441.d57f667a.js delete mode 100644 assets/js/19d7c045.004afc43.js create mode 100644 assets/js/19d7c045.fd298b3d.js delete mode 100644 assets/js/1a4e3797.4bafbff8.js create mode 100644 assets/js/1a4e3797.4e3726f1.js rename assets/js/{1a4e3797.4bafbff8.js.LICENSE.txt => 1a4e3797.4e3726f1.js.LICENSE.txt} (100%) create mode 100644 assets/js/1a606400.9499d809.js delete mode 100644 assets/js/1a606400.acf1b263.js create mode 100644 assets/js/1acf65cc.33171995.js delete mode 100644 assets/js/1acf65cc.6bab8119.js delete mode 100644 assets/js/2183.618b481a.js create mode 100644 assets/js/2183.695e6dce.js delete mode 100644 assets/js/22a175ec.d1e2af50.js create mode 100644 assets/js/22a175ec.ebe0aeb7.js delete mode 100644 assets/js/240.8190aace.js create mode 100644 assets/js/240.962c2c3a.js create mode 100644 assets/js/24fecc0a.0d18355b.js delete mode 100644 assets/js/24fecc0a.602fded1.js create mode 100644 assets/js/2661.adb036a5.js delete mode 100644 assets/js/2661.e691bc83.js delete mode 100644 assets/js/2693.64c402f3.js create mode 100644 assets/js/2693.86767de9.js create mode 100644 assets/js/2696.9c4ce6ae.js delete mode 100644 assets/js/2696.e61a0300.js delete mode 100644 assets/js/2700.24d240c1.js create mode 100644 assets/js/2700.eb54ab23.js create mode 100644 assets/js/29694455.5fa079ce.js delete mode 100644 assets/js/29694455.a2e2c1d7.js delete mode 100644 assets/js/2b89902a.467bd596.js create mode 100644 assets/js/2b89902a.cec021fa.js create mode 100644 assets/js/2fcf0558.14a64e69.js delete mode 100644 assets/js/3011a4c0.573f9325.js create mode 100644 assets/js/3011a4c0.bfa0084e.js create mode 100644 assets/js/3076.0d102429.js delete mode 100644 assets/js/3076.35f30829.js delete mode 100644 assets/js/3343.1f48b29f.js create mode 100644 assets/js/3343.c68ed9e0.js delete mode 100644 assets/js/34ab65f4.580faa9a.js create mode 100644 assets/js/34ab65f4.5fa3179c.js delete mode 100644 assets/js/354a7b72.19370e22.js create mode 100644 assets/js/354a7b72.257f6430.js create mode 100644 assets/js/3619.169a66d1.js delete mode 100644 assets/js/3619.ce647998.js delete mode 100644 assets/js/3720c009.e9eaf9f1.js create mode 100644 assets/js/3720c009.f4cf5d33.js create mode 100644 assets/js/377f3aa1.4ebbc06f.js delete mode 100644 assets/js/377f3aa1.965374c1.js create mode 100644 assets/js/3da4b779.1354e52a.js delete mode 100644 assets/js/3da4b779.c4673dc7.js delete mode 100644 assets/js/4200b1a9.3a444325.js create mode 100644 assets/js/4200b1a9.faadd2c9.js delete mode 100644 assets/js/4238.61c33e40.js create mode 100644 assets/js/4238.732f7e6d.js create mode 100644 assets/js/45c9e308.57b8321c.js delete mode 100644 assets/js/45c9e308.9e2ba609.js create mode 100644 assets/js/4621632b.bd86e6e4.js delete mode 100644 assets/js/4621632b.f101cb78.js delete mode 100644 assets/js/4706.7b6665b0.js create mode 100644 assets/js/4706.bf286a6c.js create mode 100644 assets/js/48b268a6.56c72f30.js delete mode 100644 assets/js/48b268a6.91319502.js delete mode 100644 assets/js/4e546705.2d75be34.js create mode 100644 assets/js/4e546705.40303d4d.js create mode 100644 assets/js/4edd2021.ba1a6e92.js delete mode 100644 assets/js/4edd2021.c1d4b1bd.js delete mode 100644 assets/js/4f96b16e.05a86290.js create mode 100644 assets/js/4f96b16e.072f92b8.js delete mode 100644 assets/js/51624505.58112ff9.js create mode 100644 assets/js/51624505.60fbe3b9.js create mode 100644 assets/js/520f8175.85515c7b.js delete mode 100644 assets/js/5269.59fe4761.js create mode 100644 assets/js/5269.a9818fb6.js delete mode 100644 assets/js/52f2a5bf.47167693.js create mode 100644 assets/js/52f2a5bf.839d7f40.js create mode 100644 assets/js/5326.480380dd.js delete mode 100644 assets/js/5326.c5ca7e9b.js create mode 100644 assets/js/534d4833.162e2ecd.js delete mode 100644 assets/js/534d4833.1a69a7bd.js delete mode 100644 assets/js/5790.1440c25f.js create mode 100644 assets/js/5790.a9566ed9.js delete mode 100644 assets/js/5943.9c77168e.js create mode 100644 assets/js/5943.ebdacf10.js delete mode 100644 assets/js/595c7293.3a396f62.js create mode 100644 assets/js/595c7293.4258c254.js delete mode 100644 assets/js/5ca803d2.140c39b8.js create mode 100644 assets/js/5ca803d2.986e22d4.js delete mode 100644 assets/js/5e95c892.b9c79ca6.js create mode 100644 assets/js/5e95c892.ea0b11d7.js delete mode 100644 assets/js/5fe5d476.56958e9b.js create mode 100644 assets/js/5fe5d476.f7c213ae.js create mode 100644 assets/js/6255.4bb462ce.js delete mode 100644 assets/js/6255.9b5f422e.js delete mode 100644 assets/js/62d847b3.06e10519.js create mode 100644 assets/js/62d847b3.ea246a7d.js delete mode 100644 assets/js/6648.4cdd8480.js create mode 100644 assets/js/6648.7d3c04e0.js create mode 100644 assets/js/686a7a89.ebbeda14.js delete mode 100644 assets/js/686a7a89.f7132b93.js delete mode 100644 assets/js/6875c492.194341fa.js create mode 100644 assets/js/6875c492.d5bd7daa.js rename assets/js/{6945.04a6ca6a.js => 6945.1665fd21.js} (64%) delete mode 100644 assets/js/6985.5a048aa9.js create mode 100644 assets/js/6985.b22ddd47.js delete mode 100644 assets/js/6bc697d0.1bfc859a.js create mode 100644 assets/js/6bc697d0.410760a1.js create mode 100644 assets/js/6e3cbca1.a0392349.js delete mode 100644 assets/js/6e3cbca1.fa9cc87f.js delete mode 100644 assets/js/7052c0bc.7ea7b00f.js create mode 100644 assets/js/7052c0bc.beae1b38.js delete mode 100644 assets/js/75cccf44.61f0ccf1.js create mode 100644 assets/js/75cccf44.b0cfb80e.js create mode 100644 assets/js/765ea78b.29a37caf.js delete mode 100644 assets/js/765ea78b.d017fb4d.js create mode 100644 assets/js/7936.da5208cb.js delete mode 100644 assets/js/7936.fe0998ca.js delete mode 100644 assets/js/794ef108.316f10cc.js create mode 100644 assets/js/794ef108.ed8ed4b7.js create mode 100644 assets/js/7e6d325b.0dc3275f.js delete mode 100644 assets/js/7e6d325b.dca18707.js delete mode 100644 assets/js/8016.cb675faa.js create mode 100644 assets/js/8016.f7e4e334.js delete mode 100644 assets/js/84d1e0d8.05d31058.js create mode 100644 assets/js/84d1e0d8.2391d00c.js delete mode 100644 assets/js/86cd1460.2562aa3d.js create mode 100644 assets/js/86cd1460.f549d2c3.js rename assets/js/{8894.de4803df.js => 8894.bbb1746a.js} (64%) delete mode 100644 assets/js/8955.66b94ea5.js create mode 100644 assets/js/8955.88257d8a.js create mode 100644 assets/js/8b1802c5.408315a3.js delete mode 100644 assets/js/8b1802c5.6f267f4c.js create mode 100644 assets/js/8c0e532b.8df94607.js delete mode 100644 assets/js/8c0e532b.99e85b13.js delete mode 100644 assets/js/8d31a880.21eb37fd.js create mode 100644 assets/js/8d31a880.d72d8191.js delete mode 100644 assets/js/8e6bb954.6a68f58c.js rename assets/js/{bc2d22bc.ebe82db6.js => 8e6bb954.967c2127.js} (71%) create mode 100644 assets/js/9138.6232b886.js rename assets/js/{9138.fc0b63fe.js.LICENSE.txt => 9138.6232b886.js.LICENSE.txt} (100%) delete mode 100644 assets/js/9138.fc0b63fe.js create mode 100644 assets/js/9287eafd.7613dea7.js delete mode 100644 assets/js/9287eafd.8cb8e3b6.js delete mode 100644 assets/js/95b96bb9.d5b5ac42.js create mode 100644 assets/js/95b96bb9.f1e9070e.js delete mode 100644 assets/js/95f41f0b.92e0d371.js create mode 100644 assets/js/95f41f0b.b012cd5f.js delete mode 100644 assets/js/976c4f3b.763787ff.js create mode 100644 assets/js/976c4f3b.8c7c9f5c.js delete mode 100644 assets/js/97a42631.2b5ef8cd.js create mode 100644 assets/js/97a42631.f6ad4dc0.js create mode 100644 assets/js/9893.04fdeb2a.js delete mode 100644 assets/js/9893.cacfe6a8.js create mode 100644 assets/js/9df0e937.2c53d1aa.js delete mode 100644 assets/js/9df0e937.88a0133a.js delete mode 100644 assets/js/9e4087bc.8d46b922.js create mode 100644 assets/js/9e4087bc.b07604ed.js create mode 100644 assets/js/a082abd3.6458a62f.js delete mode 100644 assets/js/a082abd3.929adb6b.js delete mode 100644 assets/js/a4c10cf4.38f4010f.js create mode 100644 assets/js/a4c10cf4.e91bee7a.js create mode 100644 assets/js/a6a48ea2.7749d78c.js delete mode 100644 assets/js/a6a48ea2.b092defb.js create mode 100644 assets/js/a6aa9e1f.75141289.js delete mode 100644 assets/js/a6aa9e1f.b6f92241.js create mode 100644 assets/js/a7098721.33f429e4.js delete mode 100644 assets/js/a7098721.ef506174.js create mode 100644 assets/js/a7bd4aaa.69e4c2b5.js delete mode 100644 assets/js/a7bd4aaa.9a546fe4.js create mode 100644 assets/js/a94703ab.5939a7a6.js delete mode 100644 assets/js/a94703ab.c0114cbe.js create mode 100644 assets/js/aa24fd5d.a1be9355.js create mode 100644 assets/js/ab2721d4.6fad72ba.js delete mode 100644 assets/js/ab2721d4.f9b0a580.js create mode 100644 assets/js/af8b72a7.37a3aa6c.js delete mode 100644 assets/js/af8b72a7.d04e29e3.js create mode 100644 assets/js/b1288602.9d3ae1e4.js delete mode 100644 assets/js/b1288602.d1f59757.js create mode 100644 assets/js/b25fbc58.90e65bfc.js delete mode 100644 assets/js/b25fbc58.c6b468d1.js delete mode 100644 assets/js/b45dccf0.64c75733.js create mode 100644 assets/js/b45dccf0.7ab0cc2a.js create mode 100644 assets/js/b5a32f14.68cedca8.js delete mode 100644 assets/js/b5a32f14.b3a3f1ca.js delete mode 100644 assets/js/b8cbf382.9da8e17c.js create mode 100644 assets/js/b8cbf382.b92ec171.js create mode 100644 assets/js/b9f7f5c4.8dd00486.js delete mode 100644 assets/js/b9f7f5c4.f4a2a82e.js create mode 100644 assets/js/bb882650.6eee4002.js delete mode 100644 assets/js/bb882650.7074971b.js create mode 100644 assets/js/bb984793.0560af7f.js delete mode 100644 assets/js/bb984793.47b9211c.js create mode 100644 assets/js/bc0c9d90.22532279.js delete mode 100644 assets/js/bc0c9d90.c62d230e.js create mode 100644 assets/js/bc2d22bc.36b6ca38.js delete mode 100644 assets/js/c4f5d8e4.48a7e2ee.js create mode 100644 assets/js/c4f5d8e4.5d3c1d6d.js delete mode 100644 assets/js/c580b66a.3684c421.js create mode 100644 assets/js/c580b66a.53c3dc84.js delete mode 100644 assets/js/ccc49370.5d9478a4.js create mode 100644 assets/js/ccc49370.92d892f3.js delete mode 100644 assets/js/cfa2b263.19f0e411.js create mode 100644 assets/js/cfa2b263.efd5103c.js create mode 100644 assets/js/d05e838c.1b2f4a74.js delete mode 100644 assets/js/d05e838c.c9e7502d.js create mode 100644 assets/js/d1aceb2e.3f8e795e.js delete mode 100644 assets/js/d1aceb2e.53194f68.js create mode 100644 assets/js/d255bd7f.da5efa5d.js create mode 100644 assets/js/d309b5b1.924b0302.js delete mode 100644 assets/js/d309b5b1.b50fbce1.js rename assets/js/{d255bd7f.aa5f778c.js => d4b1e057.c26d5bb6.js} (82%) delete mode 100644 assets/js/d4b1e057.dcf46d42.js delete mode 100644 assets/js/d57b4369.38858940.js create mode 100644 assets/js/d57b4369.6f772ce2.js create mode 100644 assets/js/d675395f.1f389aac.js delete mode 100644 assets/js/d675395f.567b4609.js create mode 100644 assets/js/d79dd549.0ed0fe01.js delete mode 100644 assets/js/d79dd549.ee10504b.js create mode 100644 assets/js/d7f7fb17.3796c0b9.js delete mode 100644 assets/js/d7f7fb17.b0d839de.js create mode 100644 assets/js/d8f4410e.e8838bb3.js delete mode 100644 assets/js/dd841e73.4a69402c.js create mode 100644 assets/js/dd841e73.9e9c9dbf.js delete mode 100644 assets/js/ddc7679f.34b4249c.js create mode 100644 assets/js/ddc7679f.4b5bdacd.js delete mode 100644 assets/js/dead8108.33f96b65.js create mode 100644 assets/js/dead8108.9d966504.js create mode 100644 assets/js/decbf9d1.369aa5a6.js delete mode 100644 assets/js/decbf9d1.c170fe23.js create mode 100644 assets/js/df0885f0.2970a5ee.js delete mode 100644 assets/js/df0885f0.72a19a1c.js create mode 100644 assets/js/df203c0f.12cfbe9e.js delete mode 100644 assets/js/df203c0f.3809dec2.js delete mode 100644 assets/js/dff2ebad.1cc2f99c.js create mode 100644 assets/js/dff2ebad.2596a554.js create mode 100644 assets/js/e1d2ae23.2bc6580d.js delete mode 100644 assets/js/e1d2ae23.a7e24da2.js delete mode 100644 assets/js/e31003e9.3ae053c2.js create mode 100644 assets/js/e31003e9.e9396e0a.js create mode 100644 assets/js/e89da83e.1856d5b6.js delete mode 100644 assets/js/e89da83e.a63c019a.js delete mode 100644 assets/js/eba2374c.56ada146.js create mode 100644 assets/js/eba2374c.71f2685d.js create mode 100644 assets/js/f48be158.5e2dd98c.js delete mode 100644 assets/js/f48be158.f126906d.js delete mode 100644 assets/js/ff82dde7.6a7a72b2.js create mode 100644 assets/js/ff82dde7.e3161817.js delete mode 100644 assets/js/main.2d5ce640.js create mode 100644 assets/js/main.a809bb25.js rename assets/js/{main.2d5ce640.js.LICENSE.txt => main.a809bb25.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.9b3960c4.js create mode 100644 assets/js/runtime~main.f17742ff.js create mode 100644 files/algorithms/hash-tables/breaking/benchmark.cpp create mode 100644 files/algorithms/hash-tables/breaking/benchmark.py create mode 100644 ib002/category/hash-tables/index.html create mode 100644 ib002/hash-tables/breaking/index.html create mode 100644 ib002/hash-tables/breaking/mitigations/index.html create mode 100644 ib002/hash-tables/breaking/python/index.html create mode 100644 ib002/tags/cpp/index.html create mode 100644 ib002/tags/hash-tables/index.html diff --git a/404.html b/404.html index c9fa5b1..3f8cd22 100644 --- a/404.html +++ b/404.html @@ -14,8 +14,8 @@ - - + +
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.

diff --git a/algorithms/algorithms-correctness/postcondition-ambiguity/index.html b/algorithms/algorithms-correctness/postcondition-ambiguity/index.html index f9566bd..c1e6705 100644 --- a/algorithms/algorithms-correctness/postcondition-ambiguity/index.html +++ b/algorithms/algorithms-correctness/postcondition-ambiguity/index.html @@ -16,11 +16,11 @@ - - + + -
Skip to main content

Vague postconditions and proving correctness of algorithms

Introduction

+

Vague postconditions and proving correctness of algorithms

Introduction

Source code used later on.

Implementation of select sort from the exercises

To implement select sort from the exercises and make it as easy to read as possible, I have implemented maximum function that returns index of the biggest element from the first nn elements.

diff --git a/algorithms/category/algorithms-and-correctness/index.html b/algorithms/category/algorithms-and-correctness/index.html index bc58a70..9d8adf6 100644 --- a/algorithms/category/algorithms-and-correctness/index.html +++ b/algorithms/category/algorithms-and-correctness/index.html @@ -18,11 +18,11 @@ correctness. - - + + -

Algorithms and Correctness

Materials related to basic ideas behind algorithms and proofs of their +

Algorithms and Correctness

Materials related to basic ideas behind algorithms and proofs of their correctness.

📄️ Vague postconditions and proving correctness of algorithms

Debugging and testing with precise postconditions. diff --git a/algorithms/category/asymptotic-notation-and-time-complexity/index.html b/algorithms/category/asymptotic-notation-and-time-complexity/index.html index d412a51..0d8091f 100644 --- a/algorithms/category/asymptotic-notation-and-time-complexity/index.html +++ b/algorithms/category/asymptotic-notation-and-time-complexity/index.html @@ -16,11 +16,11 @@ - - + + -

Asymptotic Notation and Time Complexity

Materials related to asymptotic notation and time complexity. +

diff --git a/algorithms/category/graphs/index.html b/algorithms/category/graphs/index.html index 1caa8e8..9ea7c89 100644 --- a/algorithms/category/graphs/index.html +++ b/algorithms/category/graphs/index.html @@ -16,11 +16,11 @@ - - + + -

Graphs

Materials related to basic graph algorithms and graph problems. +

Graphs

Materials related to basic graph algorithms and graph problems.

📄️ Distance boundaries from BFS tree on undirected graphs

+ + + +Hash Tables | mf + + + + + + + + + + + + + + +

+ + \ No newline at end of file diff --git a/algorithms/category/recursion/index.html b/algorithms/category/recursion/index.html index 96f504e..331e15d 100644 --- a/algorithms/category/recursion/index.html +++ b/algorithms/category/recursion/index.html @@ -16,11 +16,11 @@ - - + + -

Recursion

Materials related to recursive algorithms and their time complexity. +

Recursion

Materials related to recursive algorithms and their time complexity.

📄️ Introduction to dynamic programming

- - + + -

Red-Black Trees

Materials related to red-black trees. +

+

\ No newline at end of file diff --git a/algorithms/graphs/bfs-tree/index.html b/algorithms/graphs/bfs-tree/index.html index ea201b5..d5f0f1c 100644 --- a/algorithms/graphs/bfs-tree/index.html +++ b/algorithms/graphs/bfs-tree/index.html @@ -16,11 +16,11 @@ - - + + -

Distance boundaries from BFS tree on undirected graphs

Introduction

+

Distance boundaries from BFS tree on undirected graphs

Introduction

As we have talked on the seminar, if we construct from some vertex uu BFS tree on an undirected graph, we can obtain:

  • lower bound of length of the shortest path between 2 vertices from the height difference
  • @@ -49,6 +49,6 @@

    Oops, we have gotten a new BFS tree, that has a height difference of 1.

    -
    tip

    Try to think about a way this can be generalized for shortening of minimal length 3 to minimal length 2 ;)

+
tip

Try to think about a way this can be generalized for shortening of minimal length 3 to minimal length 2 ;)

\ No newline at end of file diff --git a/algorithms/graphs/iterative-and-iterators/index.html b/algorithms/graphs/iterative-and-iterators/index.html index 9522b2d..4e70387 100644 --- a/algorithms/graphs/iterative-and-iterators/index.html +++ b/algorithms/graphs/iterative-and-iterators/index.html @@ -16,11 +16,11 @@ - - + + -

Iterative algorithms via iterators

Introduction

+

Iterative algorithms via iterators

Introduction

diff --git a/algorithms/hash-tables/breaking/index.html b/algorithms/hash-tables/breaking/index.html new file mode 100644 index 0000000..ab7770f --- /dev/null +++ b/algorithms/hash-tables/breaking/index.html @@ -0,0 +1,151 @@ + + + + + +Breaking Hash Table | mf + + + + + + + + + + + + + + +

Breaking Hash Table

We will try to break a hash table and discuss possible ways how to prevent such +issues to occur.

+

Introduction

+

Hash tables are very commonly used to represent sets or dictionaries. Even when +you look up solution to some problem that requires set or dictionary, it is more +than likely that you'll find something that references usage of the hash table. +You might think it's the only possible option1, or it's the best one2.

+

One of the reasons to prefer hash tables over any other representation is the +fact that they are supposed to be faster than the alternatives, but the +truth lies somewhere in between.

+

One of the other possible implementations of the set is a balanced tree. Majorly +occurring implementations rely on the red-black tree, but you may see also +others like an AVL tree3 or B-tree4.

+

Hash Table v. Trees

+

The most interesting part are the differences between their implementations. Why +should you choose hash table, or why should you choose the tree implementation? +Let's compare the differences one by one.

+

Requirements

+

We will start with the fundamentals on which the underlying data structures +rely. We can also consider them as requirements that must be met to be able to +use the underlying data structure.

+

Hash table relies on the hash function that is supposed to distribute the keys +in such way that they're evenly spread across the slots where the keys (or +pairs, for dictionary) are stored, but at the same time they're somewhat unique, +so no clustering occurs.

+

Trees depend on the ordering of the elements. They maintain the elements in +a sorted fashion, so for any pair of the elements that are used as keys, you +need to be able to decide which one of them is smaller or equal to the other.

+

Hash function can be easily created by using the bits that uniquely identify +a unique element. On the other hand, ordering may not be as easy to define.

+
Example

If you are familiar with complex numbers, they are a great example of a key that +does not have ordering (unless you go element-wise for the sake of storing them +in a tree; though the ordering is not defined on them).

Hashing them is much easier though, you can just “combine” the hashes of the +real and imaginary parts of the complex number to get a hash of the complex +number itself.

+

Underlying data structure

+

The most obvious difference is the core of the idea behind these data +structures. Hash tables rely on data being stored in one continuous piece of +memory (the array) where you can “guess” (by using the hash function) the +location of what you're looking for in a constant time and also access that +location in the, said, constant time5. In case the hash function is +not good enough6, you need to go in blind, and if it comes to the worst, +check everything.

+
tl;dr
    +
  • I know where should I look
  • +
  • I can look there instantenously
  • +
  • If my guesses are very wrong, I might need to check everything
  • +
+

On the other hand, tree implementations rely on the self-balancing trees in +which you don't get as amazing results as with the hash table, but they're +consistent. Given that we have a self-balancing tree, the height of the tree +is same for every input and therefore checking for any element can take the +same time even in the worst case.

+
tl;dr
    +
  • I don't know where to look
  • +
  • I know how to get there
  • +
  • Wherever I look, it takes me about the same time
  • +
+

Let's compare side by side:

+
time complexityhash tabletree
expectedconstantdepends on the height
worst-casegotta check everythingdepends on the height
+

Major Factors of Hash Tables

+

Let's have a look at the major factors that affect the efficiency and +functioning of a hash table. We have already mentioned the hash function that +plays a crucial role, but there are also different ways how you can implement +a hash table, so we will have a look at those too.

+

Hash functions

+
info

We will start with a definition of hash function in a mathematical definition +and type signature in some known language:

h:TN h : T \rightarrow \mathbb{N}

For a type signature we will just take the declaration from C++7:

std::size_t operator()(const T& key) const;

If you compare with the mathematical definition, it is very similar, except for +the fact that the memory is not unlimited, so the natural number turned into +an unsigned integer type (on majority of platforms it will be a 64-bit +unsigned integer).

+

As we have already touched above, hash function gives “a guess” where to look +for the key (either when doing a look up, or for insertion to guess a suitable +spot for the insertion).

+

Hash functions are expected to have a so-called avalanche effect which means +that the smallest change to the key should result in a massive change of hash. +Avalanche effect technically guarantees that even when your data are clustered +together, it should lower the amount of conflicts that can occur.

+
Exercise for the reader

Try to give an example of a hash function that is not good at all.

+

Implementation details

+

There are different variations of the hash tables. You've more than likely seen +an implementation that keeps linked lists for buckets. However there are also +other variations that use probing instead.

+

With regards to the implementation details, we need to mention the fact that +even with the bounded hash (as we could've seen above), you're not likely to +have all the buckets for different hashes available. Most common approach to +this is having a smaller set of buckets and modifying the hash to fit within.

+

One of the most common approaches is to keep lengths of the hash tables in the +powers of 2 which allows bit-masking to take place.

+
Example

Let's say we're given h = 0xDEADBEEF and we have l = 65536=2^16 spots in our +hash table. What can we do here?

Well, we definitely have a bigger hash than spots available, so we need to +“shrink” it somehow. The most common practice is to take the lower bits of the +hash to represent an index in the table:

h & (l - 1)

Why does this work? Firstly we subtract 1 from the length (indices run from +⟨0 ; l - 1⟩, since table is zero-indexed). Therefore if we do binary and on +any number, we always get a valid index within the table. Let's find the index +for our hash:

0xDEADBEEF & 0xFFFF = 0xBEEF
+

Footnotes

+
    +
  1. +

    not true

    +
  2. +
  3. +

    also not true

    +
  4. +
  5. +

    actually the first of its kind (the self-balanced trees)

    +
  6. +
  7. +

    Rust chose to implement this instead of the common choice of the red-black +or AVL tree; main difference lies in the fact that B-trees are not binary +trees

    +
  8. +
  9. +

    This, of course, does not hold true for the educational implementations of +the hash tables where conflicts are handled by storing the items in the +linked lists. In practice linked lists are not that commonly used for +addressing this issue as it has even worse impact on the efficiency of the +data structure.

    +
  10. +
  11. +

    My guess is not very good, or it's really bad…

    +
  12. +
  13. +

    https://en.cppreference.com/w/cpp/utility/hash

    +
  14. +
+
+ + \ No newline at end of file diff --git a/algorithms/hash-tables/breaking/mitigations/index.html b/algorithms/hash-tables/breaking/mitigations/index.html new file mode 100644 index 0000000..29f0ab8 --- /dev/null +++ b/algorithms/hash-tables/breaking/mitigations/index.html @@ -0,0 +1,85 @@ + + + + + +Possible Mitigations | mf + + + + + + + + + + + + + + +

Possible Mitigations

There are multiple ways the issues created above can be mitigated. Still we can +only make it better, we cannot guarantee the ideal time complexity…

+

For the sake of simplicity (and referencing an article by Neal Wu on the same +topic; in references below) I will use the C++ to describe the mitigations.

+

Random seed

+

One of the options how to avoid this kind of an attack is to introduce a random +seed to the hash. That way it is not that easy to choose the nasty numbers.

+
struct custom_hash {
size_t operator()(uint64_t x) const {
return x + 7529;
}
};
+

As you may have noticed, this is not very helpful, since it just shifts the +issue by some number. Better option is to use a shift from random number +generator:

+
struct custom_hash {
size_t operator()(uint64_t x) const {
static const uint64_t FIXED_RANDOM =
chrono::steady_clock::now().time_since_epoch().count();
return x + FIXED_RANDOM;
}
};
+

In this case the hash is using a high-precision clock to shift the number, which +is much harder to break.

+

Better random seed

+

Building on the previous solution, we can do some bit magic instead of the +shifting:

+
struct custom_hash {
size_t operator()(uint64_t x) const {
static const uint64_t FIXED_RANDOM =
chrono::steady_clock::now().time_since_epoch().count();
x ^= FIXED_RANDOM;
return x ^ (x >> 16);
}
};
+

This not only shifts the number, it also manipulates the underlying bits of the +hash. In this case we're also applying the XOR operation.

+

Adjusting the hash function

+

Another option is to switch up the hash function.

+

For example Rust uses SipHash by +default.

+

On the other hand, you can usually specify your own hash function, here we will +follow the article by Neal that uses so-called splitmix64.

+
static uint64_t splitmix64(uint64_t x) {
// http://xorshift.di.unimi.it/splitmix64.c
x += 0x9e3779b97f4a7c15;
x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
return x ^ (x >> 31);
}
+

As you can see, this definitely doesn't do identity on the integers 😄

+

Another example would be +HashMap::hash() +function in Java:

+
/**
* Computes key.hashCode() and spreads (XORs) higher bits of hash
* to lower. Because the table uses power-of-two masking, sets of
* hashes that vary only in bits above the current mask will
* always collide. (Among known examples are sets of Float keys
* holding consecutive whole numbers in small tables.) So we
* apply a transform that spreads the impact of higher bits
* downward. There is a tradeoff between speed, utility, and
* quality of bit-spreading. Because many common sets of hashes
* are already reasonably distributed (so don't benefit from
* spreading), and because we use trees to handle large sets of
* collisions in bins, we just XOR some shifted bits in the
* cheapest possible way to reduce systematic lossage, as well as
* to incorporate impact of the highest bits that would otherwise
* never be used in index calculations because of table bounds.
*/
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
+

You can notice that they try to include the upper bits of the hash by using +XOR, this would render our attack in the previous part helpless.

+

Combining both

+

Can we make it better? Of course! Use multiple mitigations at the same time. In +our case, we will both inject the random value and use the splitmix64:

+
struct custom_hash {
static uint64_t splitmix64(uint64_t x) {
// http://xorshift.di.unimi.it/splitmix64.c
x += 0x9e3779b97f4a7c15;
x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
return x ^ (x >> 31);
}

size_t operator()(uint64_t x) const {
static const uint64_t FIXED_RANDOM =
chrono::steady_clock::now().time_since_epoch().count();
return splitmix64(x + FIXED_RANDOM);
}
};
+

Fallback for extreme cases

+

As we have mentioned above, Python resolves the conflicts by probing (it looks +for empty space somewhere else in the table, but it's deterministic about it, so +it's not “oops, this is full, let's go one-by-one and find some spot”). In the +case of C++ and Java, they resolve the conflicts by linked lists, as is the +usual text-book depiction of the hash table.

+

However Java does something more intelligent. Once you go over the threshold of +conflicts in one spot, it converts the linked list to an RB-tree that is sorted +by the hash and key respectively.

+
tip

You may wonder what sense does it make to define an ordering on the tree by the +hash, if we're dealing with conflicts. Well, there are less buckets than the +range of the hash, so if we take lower bits, we can have a conflict even though +the hashes are not the same.

+

You might have noticed that if we get a really bad hashing function, this is +not very helpful. It is not, but it can help in other cases.

+
danger

As the ordering on the keys of the hash table is not required and may not be +implemented, the tree may be ordered by just the hash.

+
+

References

+
    +
  1. Neal Wu. +Blowing up unordered_map, and how to stop getting hacked on it.
  2. +
+ + \ No newline at end of file diff --git a/algorithms/hash-tables/breaking/python/index.html b/algorithms/hash-tables/breaking/python/index.html new file mode 100644 index 0000000..de6ee32 --- /dev/null +++ b/algorithms/hash-tables/breaking/python/index.html @@ -0,0 +1,142 @@ + + + + + +Breaking Python | mf + + + + + + + + + + + + + + +

Breaking Python

Breaking the Hash Table in Python

+

Our language of choice for bringing the worst out of the hash table is Python.

+

Let's start by talking about the hash function and why we've chosen Python for +this. Hash function for integers in Python is simply identity, as you might've +guessed, there's no avalanche effect. Another thing that helps us is the fact +that integers in Python are technically BigInts1. This allows us to put bit +more pressure on the hashing function.

+

From the perspective of the implementation, it is a hash table that uses probing +to resolve conflicts. This also means that it's a contiguous space in memory. +Indexing works like in the provided example above. When the hash table reaches +a breaking point (defined somewhere in the C code), it reallocates the table +and rehashes everything.

+
tip

Resizing and rehashing can reduce the conflicts. That is coming from the fact +that the position in the table is determined by the hash and the size of the +table itself.

+

Preparing the attack

+

Knowing the things above, it is not that hard to construct a method how to cause +as many conflicts as possible. Let's go over it:

+
    +
  1. We know that integers are hashed to themselves.
  2. +
  3. We also know that from that hash we use only lower bits that are used as +indices.
  4. +
  5. We also know that there's a rehashing on resize that could possibly fix the +conflicts.
  6. +
+

We will test with different sequences:

+
    +
  1. ordered one, numbers through 1 to N
  2. +
  3. ordered one in a reversed order, numbers through N back to 1
  4. +
  5. numbers that are shifted to the left, so they create conflicts until resize
  6. +
  7. numbers that are shifted to the left, but resizing helps only in the end
  8. +
  9. numbers that are shifted to the left, but they won't be taken in account even +after final resize
  10. +
+

For each of these sequences, we will insert 10⁷ elements and look each of them +up for 10 times in a row.

+

As a base of our benchmark, we will use a Strategy class and then for each +strategy we will just implement the sequence of numbers that it uses:

+
class Strategy:
def __init__(self, data_structure=set):
self._table = data_structure()

@cached_property
def elements(self):
raise NotImplementedError("Implement for each strategy")

@property
def name(self):
raise NotImplementedError("Implement for each strategy")

def run(self):
print(f"\nBenchmarking:\t\t{self.name}")

# Extract the elements here, so that the evaluation of them does not
# slow down the relevant part of benchmark
elements = self.elements

# Insertion phase
start = monotonic_ns()
for x in elements:
self._table.add(x)
after_insertion = monotonic_ns()

print(f"Insertion phase:\t{(after_insertion - start) / 1000000:.2f}ms")

# Lookup phase
start = monotonic_ns()
for _ in range(LOOPS):
for x in elements:
assert x in self._table
after_lookups = monotonic_ns()

print(f"Lookup phase:\t\t{(after_lookups - start) / 1000000:.2f}ms")
+

Sequences

+

Let's have a look at how we generate the numbers to be inserted:

+
    +
  • ordered sequence (ascending) +
    x for x in range(N_ELEMENTS)
    +
  • +
  • ordered sequence (descending) +
    x for x in reversed(range(N_ELEMENTS))
    +
  • +
  • progressive sequence that “heals” on resize +
    (x << max(5, x.bit_length())) for x in range(N_ELEMENTS)
    +
  • +
  • progressive sequence that “heals” in the end +
    (x << max(5, x.bit_length())) for x in reversed(range(N_ELEMENTS))
    +
  • +
  • conflicts everywhere +
    x << 32 for x in range(N_ELEMENTS)
    +
  • +
+

Results

+

Let's have a look at the obtained results after running the code:

+
TechniqueInsertion phaseLookup phase
ordered sequence (ascending)558.60ms3304.26ms
ordered sequence (descending)554.08ms3365.84ms
progressive sequence that “heals” on resize3781.30ms28565.71ms
progressive sequence that “heals” in the end3280.38ms26494.61ms
conflicts everywhere4027.54ms29132.92ms
+

You can see a noticable “jump” in the time after switching to the “progressive” +sequence. The last sequence that has conflicts all the time has the worst time, +even though it's rather comparable with the first progressive sequence with +regards to the insertion phase.

+

If we were to compare the always conflicting one with the first one, we can +see that insertion took over 7× longer and lookups almost 9× longer.

+

You can have a look at the code here.

+

Comparing with the tree

+
danger

Source code can be found here.

Viewer discretion advised.

+

Python doesn't have a tree structure for sets/maps implemented, therefore for +a comparison we will run a similar benchmark in C++. By running the same +sequences on both hash table and tree (RB-tree) we will obtain the following +results:

+
TechniqueInsertion (hash)Lookup (hash)Insertion (tree)Lookup (tree)
ordered (ascending)316ms298ms2098ms5914ms
ordered (descending)259ms315ms1958ms14747ms
progressive a)1152ms6021ms2581ms16074ms
progressive b)1041ms6096ms2770ms15986ms
conflicts964ms1633ms2559ms13285ms
+
note

We can't forget that implementation details be involved. Hash function is still +the identity, to my knowledge.

+

One interesting thing to notice is the fact that the progressive sequences took +the most time in lookups (which is not same as in the Python).

+

Now, if we have a look at the tree implementation, we can notice two very +distinctive things:

+
    +
  1. Tree implementations are not affected by the input, therefore (except for the +first sequence) we can see very consistent times.
  2. +
  3. Compared to the hash table the times are much higher and not very ideal.
  4. +
+

The reason for the 2nd point may not be very obvious. From the technical +perspective it makes some sense. Let's dive into it!

+

If we take a hash table, it is an array in a memory, therefore it is contiguous +piece of memory. (For more information I'd suggest looking into the 1st blog +post below in references section by Bjarne Stroustrup)

+

On the other hand, if we take a look at the tree, each node holds some +attributes and pointers to the left and right descendants of itself. Even if we +maintain a reasonable height of the tree (keep the tree balanced), we still need +to follow the pointers which point to the nodes somewhere on the heap. When +traversing the tree, we get a consistent time complexity, but at the expense of +jumping between the nodes on the heap which takes some time.

+
danger

This is not supposed to leverage the hash table and try to persuade people not +to use the tree representations. There are benefits coming from the respective +data structures, even if the time is not the best.

Overall if we compare the worst-case time complexities of the tree and hash +table, tree representation comes off better.

+
Challenge

Try to benchmark with the similar approach in the Rust. Since Rust uses +different hash function, it would be the best to just override the hash, this +way you can also avoid the hard part of this attack (making up the numbers that +will collide).

+
+

References

+
    +
  1. Bjarne Stroustrup. +Are lists evil?
  2. +
+

Footnotes

+
    +
  1. +

    Arbitrary-sized integers, they can get as big as your memory allows.

    +
  2. +
+
+ + \ No newline at end of file diff --git a/algorithms/index.html b/algorithms/index.html index 353e51b..20bb4f2 100644 --- a/algorithms/index.html +++ b/algorithms/index.html @@ -14,15 +14,15 @@ - - + + -

Introduction

In this part you can find “random” additional materials I have written over the +

Introduction

In this part you can find “random” additional materials I have written over the course of teaching Algorithms and data structures I.

It is a various mix of stuff that may have been produced as a follow-up on some question asked at the seminar or spontanously.

If you have some ideas for posts, please do not hesitate to submit them as issues -in the linked GitLab.

+in the linked GitLab.

\ No newline at end of file diff --git a/algorithms/rb-trees/applications/index.html b/algorithms/rb-trees/applications/index.html index 6cc8b82..4a7b5d2 100644 --- a/algorithms/rb-trees/applications/index.html +++ b/algorithms/rb-trees/applications/index.html @@ -16,11 +16,11 @@ - - + + -

Použití červeno-černých stromů

Použití

+

Použití červeno-černých stromů

Použití

Červeno-černé stromy jsou celkem oblíbené pro implementaci ADT množiny nebo slovníku za předpokladu, že nad vkládanými klíči existuje uspořádání. Jazyky níže implementují dané datové struktury v 2 variantách a to:

Vysvětlení v komentáři trochu předbíhá náplň cvičení zaměřeného na B-stromy ;)

Vztah mezi množinou a mapou

-

Při každé implementaci ve standardní knihovně jsme si mohli všimnout, že strom implementuje vždy jenom jeden typ:

+

Při každé implementaci ve standardní knihovně jsme si mohli všimnout, že strom implementuje vždy jenom jeden typ:

JazykZpůsob implementace
C++mapa ukládá dvojice do množiny
Javamnožina ukládá prvky s „dummy“ hodnotou do mapy
C#mapa ukládá dvojice do množiny

Mapa vyžaduje, aby každý klíč měl přiřazenou právě jednu hodnotu, tedy klíče jsou navzájem mezi sebou unikátní. To nám umožňuje organizovat klíče do množiny, zde ale narazíme na nepříjemný problém spočívající v tom, že musíme do množiny vkladat dvojice prvků: (key, value). Tenhle přístup má ale zásadní problém:

# let's represent dictionary/map as a set
set_of_values = set()

# let's insert few pairs
set_of_values.add((1, 2))
set_of_values.add((0, 42))

# let's set key 1 to value 6
set_of_values.add((1, 6))

set_of_values
diff --git a/algorithms/rb-trees/rules/index.html b/algorithms/rb-trees/rules/index.html index 46c46bf..be5e1a7 100644 --- a/algorithms/rb-trees/rules/index.html +++ b/algorithms/rb-trees/rules/index.html @@ -16,11 +16,11 @@ - - + + -

On the rules of the red-black tree

Introduction

+

On the rules of the red-black tree

Introduction

Have you ever thought about the red-black tree rules in more depth? Why are they formulated the way they are? How come they keep the tree balanced? Let's go through each of the red-black tree rules and try to change, break and contemplate about diff --git a/algorithms/recursion/karel-1/index.html b/algorithms/recursion/karel-1/index.html index 6ea5668..7e0f048 100644 --- a/algorithms/recursion/karel-1/index.html +++ b/algorithms/recursion/karel-1/index.html @@ -16,11 +16,11 @@ - - + + -

Recursion and backtracking with Robot Karel

+
\ No newline at end of file diff --git a/algorithms/tags/applications/index.html b/algorithms/tags/applications/index.html index 4a19c53..6a73f20 100644 --- a/algorithms/tags/applications/index.html +++ b/algorithms/tags/applications/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "applications"

View All Tags

Použití červeno-černých stromů

Ukázka použití červeno-černých stromů v standardních knižnicích známých jazyků. diff --git a/algorithms/tags/backtracking/index.html b/algorithms/tags/backtracking/index.html index ad8adb6..e556d29 100644 --- a/algorithms/tags/backtracking/index.html +++ b/algorithms/tags/backtracking/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "backtracking"

View All Tags

Recursion and backtracking with Robot Karel

A problem with too many restrictions. diff --git a/algorithms/tags/balanced-trees/index.html b/algorithms/tags/balanced-trees/index.html index e6c3d30..3dfdd90 100644 --- a/algorithms/tags/balanced-trees/index.html +++ b/algorithms/tags/balanced-trees/index.html @@ -14,8 +14,8 @@ - - + +

2 docs tagged with "balanced trees"

View All Tags

On the rules of the red-black tree

Shower thoughts on the rules of the red-black tree. diff --git a/algorithms/tags/bfs/index.html b/algorithms/tags/bfs/index.html index e5bd554..8d05e8f 100644 --- a/algorithms/tags/bfs/index.html +++ b/algorithms/tags/bfs/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "bfs"

View All Tags

Distance boundaries from BFS tree on undirected graphs

Short explanation of distance boundaries deduced from a BFS tree. diff --git a/algorithms/tags/bottom-up-dp/index.html b/algorithms/tags/bottom-up-dp/index.html index 383e3d8..bbce80d 100644 --- a/algorithms/tags/bottom-up-dp/index.html +++ b/algorithms/tags/bottom-up-dp/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "bottom-up-dp"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/c/index.html b/algorithms/tags/c/index.html index 76980c9..e0fb054 100644 --- a/algorithms/tags/c/index.html +++ b/algorithms/tags/c/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "c"

View All Tags

Time complexity of ‹extend›

How to make inefficient algorithm unknowingly. diff --git a/algorithms/tags/cpp/index.html b/algorithms/tags/cpp/index.html new file mode 100644 index 0000000..b31d8d0 --- /dev/null +++ b/algorithms/tags/cpp/index.html @@ -0,0 +1,26 @@ + + + + + +3 docs tagged with "cpp" | mf + + + + + + + + + + + + + + +

3 docs tagged with "cpp"

View All Tags

Breaking Python

Actually getting the worst-case time complexity in Python. +

+ + \ No newline at end of file diff --git a/algorithms/tags/csharp/index.html b/algorithms/tags/csharp/index.html index c17e20d..4a580df 100644 --- a/algorithms/tags/csharp/index.html +++ b/algorithms/tags/csharp/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "csharp"

View All Tags

Iterative algorithms via iterators

Iterative DFS using iterators. diff --git a/algorithms/tags/dynamic-array/index.html b/algorithms/tags/dynamic-array/index.html index ab2dfb5..2d015a2 100644 --- a/algorithms/tags/dynamic-array/index.html +++ b/algorithms/tags/dynamic-array/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "dynamic array"

View All Tags

Time complexity of ‹extend›

How to make inefficient algorithm unknowingly. diff --git a/algorithms/tags/dynamic-programming/index.html b/algorithms/tags/dynamic-programming/index.html index d4ec58a..97cddf4 100644 --- a/algorithms/tags/dynamic-programming/index.html +++ b/algorithms/tags/dynamic-programming/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "dynamic-programming"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/exponential/index.html b/algorithms/tags/exponential/index.html index 9e01e52..2cec0ae 100644 --- a/algorithms/tags/exponential/index.html +++ b/algorithms/tags/exponential/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "exponential"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/graphs/index.html b/algorithms/tags/graphs/index.html index 5959f01..a0db273 100644 --- a/algorithms/tags/graphs/index.html +++ b/algorithms/tags/graphs/index.html @@ -14,8 +14,8 @@ - - + +

2 docs tagged with "graphs"

View All Tags

Distance boundaries from BFS tree on undirected graphs

Short explanation of distance boundaries deduced from a BFS tree. diff --git a/algorithms/tags/greedy/index.html b/algorithms/tags/greedy/index.html index ef0f1d8..d3dbd55 100644 --- a/algorithms/tags/greedy/index.html +++ b/algorithms/tags/greedy/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "greedy"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/hash-tables/index.html b/algorithms/tags/hash-tables/index.html new file mode 100644 index 0000000..2f63c74 --- /dev/null +++ b/algorithms/tags/hash-tables/index.html @@ -0,0 +1,26 @@ + + + + + +3 docs tagged with "hash-tables" | mf + + + + + + + + + + + + + + +

3 docs tagged with "hash-tables"

View All Tags

Breaking Python

Actually getting the worst-case time complexity in Python. +

+ + \ No newline at end of file diff --git a/algorithms/tags/index.html b/algorithms/tags/index.html index 01fa0af..99ff2ca 100644 --- a/algorithms/tags/index.html +++ b/algorithms/tags/index.html @@ -14,10 +14,10 @@ - - + + - + \ No newline at end of file diff --git a/algorithms/tags/iterative/index.html b/algorithms/tags/iterative/index.html index d129489..270f187 100644 --- a/algorithms/tags/iterative/index.html +++ b/algorithms/tags/iterative/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "iterative"

View All Tags

Iterative algorithms via iterators

Iterative DFS using iterators. diff --git a/algorithms/tags/iterators/index.html b/algorithms/tags/iterators/index.html index cc310a4..9fc7813 100644 --- a/algorithms/tags/iterators/index.html +++ b/algorithms/tags/iterators/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "iterators"

View All Tags

Iterative algorithms via iterators

Iterative DFS using iterators. diff --git a/algorithms/tags/java/index.html b/algorithms/tags/java/index.html index 1374f5e..698f15b 100644 --- a/algorithms/tags/java/index.html +++ b/algorithms/tags/java/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "java"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/karel/index.html b/algorithms/tags/karel/index.html index 71431b5..474e655 100644 --- a/algorithms/tags/karel/index.html +++ b/algorithms/tags/karel/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "karel"

View All Tags

Recursion and backtracking with Robot Karel

A problem with too many restrictions. diff --git a/algorithms/tags/postconditions/index.html b/algorithms/tags/postconditions/index.html index 660a412..b773359 100644 --- a/algorithms/tags/postconditions/index.html +++ b/algorithms/tags/postconditions/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "postconditions"

View All Tags

Vague postconditions and proving correctness of algorithms

Debugging and testing with precise postconditions. diff --git a/algorithms/tags/python/index.html b/algorithms/tags/python/index.html index 673160f..731be28 100644 --- a/algorithms/tags/python/index.html +++ b/algorithms/tags/python/index.html @@ -3,7 +3,7 @@ -3 docs tagged with "python" | mf +6 docs tagged with "python" | mf @@ -14,11 +14,14 @@ - - + + -

3 docs tagged with "python"

View All Tags

Recursion and backtracking with Robot Karel

A problem with too many restrictions. +

6 docs tagged with "python"

View All Tags

Breaking Python

Actually getting the worst-case time complexity in Python. +

diff --git a/algorithms/tags/recursion/index.html b/algorithms/tags/recursion/index.html index cba8dab..813a5b3 100644 --- a/algorithms/tags/recursion/index.html +++ b/algorithms/tags/recursion/index.html @@ -14,8 +14,8 @@ - - + +

3 docs tagged with "recursion"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/tags/red-black-trees/index.html b/algorithms/tags/red-black-trees/index.html index 06783bb..41456a7 100644 --- a/algorithms/tags/red-black-trees/index.html +++ b/algorithms/tags/red-black-trees/index.html @@ -14,8 +14,8 @@ - - + +

2 docs tagged with "red-black trees"

View All Tags

On the rules of the red-black tree

Shower thoughts on the rules of the red-black tree. diff --git a/algorithms/tags/sorting/index.html b/algorithms/tags/sorting/index.html index 5693227..802a423 100644 --- a/algorithms/tags/sorting/index.html +++ b/algorithms/tags/sorting/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "sorting"

View All Tags

Vague postconditions and proving correctness of algorithms

Debugging and testing with precise postconditions. diff --git a/algorithms/tags/testing/index.html b/algorithms/tags/testing/index.html index fe56f4b..690f592 100644 --- a/algorithms/tags/testing/index.html +++ b/algorithms/tags/testing/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "testing"

View All Tags

Vague postconditions and proving correctness of algorithms

Debugging and testing with precise postconditions. diff --git a/algorithms/tags/time-complexity/index.html b/algorithms/tags/time-complexity/index.html index e179c8b..5f6707d 100644 --- a/algorithms/tags/time-complexity/index.html +++ b/algorithms/tags/time-complexity/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "time complexity"

View All Tags

Time complexity of ‹extend›

How to make inefficient algorithm unknowingly. diff --git a/algorithms/tags/top-down-dp/index.html b/algorithms/tags/top-down-dp/index.html index eb4862b..8e3e815 100644 --- a/algorithms/tags/top-down-dp/index.html +++ b/algorithms/tags/top-down-dp/index.html @@ -14,8 +14,8 @@ - - + +

One doc tagged with "top-down-dp"

View All Tags

Introduction to dynamic programming

Solving a problem in different ways. diff --git a/algorithms/time-complexity/extend/index.html b/algorithms/time-complexity/extend/index.html index dcc4aac..b6ca43b 100644 --- a/algorithms/time-complexity/extend/index.html +++ b/algorithms/time-complexity/extend/index.html @@ -16,11 +16,11 @@ - - + + -

Time complexity of ‹extend›

Introduction

+

Time complexity of ‹extend›

Introduction

Each year there is a lot of confusion regarding time complexity of the extend operation on the lists in Python. I will introduce two specific examples from previous year and also will try to explain it on one of the possible implementations of extend operation.

Technicalities

At the beginning we should clear some of the “myths” regarding extending of the lists. There is a common misunderstanding regarding differences between a += b, a.extend(b) and a + b.

diff --git a/assets/js/0123bc76.5ca7d996.js b/assets/js/0123bc76.5ca7d996.js deleted file mode 100644 index e5a5323..0000000 --- a/assets/js/0123bc76.5ca7d996.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3734],{6554:e=>{e.exports=JSON.parse('{"label":"c","permalink":"/algorithms/tags/c","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/0123bc76.d7742152.js b/assets/js/0123bc76.d7742152.js new file mode 100644 index 0000000..492b352 --- /dev/null +++ b/assets/js/0123bc76.d7742152.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3734],{76554:e=>{e.exports=JSON.parse('{"label":"c","permalink":"/algorithms/tags/c","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/0178f9ad.3a9b9184.js b/assets/js/0178f9ad.3a9b9184.js deleted file mode 100644 index 7ae6f39..0000000 --- a/assets/js/0178f9ad.3a9b9184.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9898],{5610:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=a(5893),s=a(1151);const r={id:"applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",tags:["balanced trees","red-black trees","applications"],last_update:{date:new Date("2022-04-05T00:00:00.000Z")}},i=void 0,l={id:"rb-trees/applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",source:"@site/algorithms/08-rb-trees/2022-04-05-applications.md",sourceDirName:"08-rb-trees",slug:"/rb-trees/applications",permalink:"/algorithms/rb-trees/applications",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/08-rb-trees/2022-04-05-applications.md",tags:[{label:"balanced trees",permalink:"/algorithms/tags/balanced-trees"},{label:"red-black trees",permalink:"/algorithms/tags/red-black-trees"},{label:"applications",permalink:"/algorithms/tags/applications"}],version:"current",lastUpdatedAt:1649116800,formattedLastUpdatedAt:"Apr 5, 2022",frontMatter:{id:"applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",tags:["balanced trees","red-black trees","applications"],last_update:{date:"2022-04-05T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Red-Black Trees",permalink:"/algorithms/category/red-black-trees"},next:{title:"On the rules of the red-black tree",permalink:"/algorithms/rb-trees/rules"}},o={},c=[{value:"Pou\u017eit\xed",id:"pou\u017eit\xed",level:2},{value:"R\u016fzn\xe9 implementace",id:"r\u016fzn\xe9-implementace",level:2},{value:"C++",id:"c",level:3},{value:"clang",id:"clang",level:4},{value:"gcc",id:"gcc",level:4},{value:"Java",id:"java",level:3},{value:"C#",id:"c-1",level:3},{value:"Vztah mezi mno\u017einou a mapou",id:"vztah-mezi-mno\u017einou-a-mapou",level:2}];function d(e){const n={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"pou\u017eit\xed",children:"Pou\u017eit\xed"}),"\n",(0,t.jsx)(n.p,{children:"\u010cerveno-\u010dern\xe9 stromy jsou celkem obl\xedben\xe9 pro implementaci ADT mno\u017einy nebo slovn\xedku za p\u0159edpokladu, \u017ee nad vkl\xe1dan\xfdmi kl\xed\u010di existuje uspo\u0159\xe1d\xe1n\xed. Jazyky n\xed\u017ee implementuj\xed dan\xe9 datov\xe9 struktury v 2 variant\xe1ch a to:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"se\u0159azen\xe9: pou\u017e\xedvaj\xed na pozad\xed pr\xe1v\u011b \u010derveno-\u010dern\xfd strom"}),"\n",(0,t.jsx)(n.li,{children:"nese\u0159azen\xe9: pou\u017e\xedvaj\xed na pozad\xed ha\u0161ovac\xed tabulku"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Pro srovn\xe1n\xed, jak jsme si \u0159\xedkali na cvi\u010den\xed, \u010derveno-\u010dern\xfd strom m\xe1 operace hled\xe1n\xed, vkl\xe1d\xe1n\xed a maz\xe1n\xed v \u010dasov\xe9 slo\u017eitosti ",(0,t.jsxs)(n.span,{className:"katex",children:[(0,t.jsx)(n.span,{className:"katex-mathml",children:(0,t.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(n.semantics,{children:[(0,t.jsxs)(n.mrow,{children:[(0,t.jsx)(n.mi,{mathvariant:"script",children:"O"}),(0,t.jsx)(n.mo,{stretchy:"false",children:"("}),(0,t.jsx)(n.mi,{children:"log"}),(0,t.jsx)(n.mo,{children:"\u2061"}),(0,t.jsx)(n.mi,{children:"n"}),(0,t.jsx)(n.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\log n)"})]})})}),(0,t.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(n.span,{className:"base",children:[(0,t.jsx)(n.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(n.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,t.jsx)(n.span,{className:"mopen",children:"("}),(0,t.jsxs)(n.span,{className:"mop",children:["lo",(0,t.jsx)(n.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,t.jsx)(n.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(n.span,{className:"mord mathnormal",children:"n"}),(0,t.jsx)(n.span,{className:"mclose",children:")"})]})})]}),". Na druhou stranu ha\u0161ovac\xed tabulka m\xe1 ide\xe1ln\u011b konstantn\xed \u010dasovou slo\u017eitost, ale v nejhor\u0161\xedm p\u0159\xedpad\u011b (detaily na posledn\xedm cvi\u010den\xed v semestru) je to bohu\u017eel ",(0,t.jsxs)(n.span,{className:"katex",children:[(0,t.jsx)(n.span,{className:"katex-mathml",children:(0,t.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(n.semantics,{children:[(0,t.jsxs)(n.mrow,{children:[(0,t.jsx)(n.mi,{mathvariant:"script",children:"O"}),(0,t.jsx)(n.mo,{stretchy:"false",children:"("}),(0,t.jsx)(n.mi,{children:"n"}),(0,t.jsx)(n.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,t.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(n.span,{className:"base",children:[(0,t.jsx)(n.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(n.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,t.jsx)(n.span,{className:"mopen",children:"("}),(0,t.jsx)(n.span,{className:"mord mathnormal",children:"n"}),(0,t.jsx)(n.span,{className:"mclose",children:")"})]})})]}),"."]}),"\n",(0,t.jsx)(n.p,{children:"V\xfd\u0161e jsme si uk\xe1zali n\u011bjak\xe9 p\u0159edpoklady nutn\xe9 pro ha\u0161ovac\xed tabulku i \u010derveno-\u010dern\xfd strom. Co je tedy lep\u0161\xed?"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\u010derveno-\u010dern\xfd strom n\xe1m poskytuje ",(0,t.jsx)(n.em,{children:"stabiln\xed \u010dasovou slo\u017eitost"}),", ale za cenu po\u017eadavku ",(0,t.jsx)(n.em,{children:"uspo\u0159\xe1d\xe1n\xed"})," nad prvky"]}),"\n",(0,t.jsxs)(n.li,{children:["ha\u0161ovac\xed tabulka n\xe1m poskytuje ",(0,t.jsx)(n.em,{children:"pomyslnou perfektn\xed \u010dasovou slo\u017eitost"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"r\u016fzn\xe9-implementace",children:"R\u016fzn\xe9 implementace"}),"\n",(0,t.jsx)(n.p,{children:"Pro uk\xe1zku pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v implementac\xedch standardn\xedch knihoven\njsme vybrali n\u011bkolik jazyk\u016f."}),"\n",(0,t.jsxs)(n.p,{children:["Pokud V\xe1s zaj\xedmaj\xed r\u016fzn\xe9 implementace, tak bychom doporu\u010dili \u201eprohrab\xe1vat\u201c se p\u0159es n\u011b v n\xe1sleduj\xedc\xedm po\u0159ad\xed: ",(0,t.jsx)(n.code,{children:"C# \u2192 Java \u2192 C++"}),". D\u016fvod pro zvolen\xe9 po\u0159ad\xed vych\xe1z\xed z toho, \u017ee C# implementace je pom\u011brn\u011b \u010diteln\xe1 a obsahuje mno\u017estv\xed vysv\u011btluj\xedc\xedch koment\xe1\u0159\u016f. Implementace v Jav\u011b je stejn\u011b \u010diteln\xe1, a\u010dkoli ji\u017e s minimem koment\xe1\u0159\u016f, kter\xe9 se maxim\xe1ln\u011b odkazuj\xed na CLRS. C++ implementace je \u201ezna\u010dn\u011b pozna\u010den\xe1\u201c podtr\u017e\xedtky ;)"]}),"\n",(0,t.jsx)(n.h3,{id:"c",children:"C++"}),"\n",(0,t.jsxs)(n.p,{children:["V C++ si m\u016f\u017eeme vybrat mezi 2 r\u016fzn\xfdmi implementacemi (",(0,t.jsx)(n.code,{children:"clang"})," nebo ",(0,t.jsx)(n.code,{children:"gcc"}),")."]}),"\n",(0,t.jsx)(n.h4,{id:"clang",children:"clang"}),"\n",(0,t.jsx)(n.p,{children:"Hlavi\u010dkov\xe9 soubory, kter\xe9 pou\u017e\xedv\xe1me p\u0159i pr\xe1ci s mno\u017einou nebo slovn\xedkem (zaj\xedmav\xe9 sekce jsou vyta\u017eeny):"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/map",children:(0,t.jsx)(n.code,{children:"map"})})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"template ,\n class _Allocator = allocator > >\nclass _LIBCPP_TEMPLATE_VIS map\n{\npublic:\n // types:\n typedef _Key key_type;\n typedef _Tp mapped_type;\n typedef pair value_type;\n\n// \u2026\n\nprivate:\n typedef __tree<__value_type, __vc, __allocator_type> __base;\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/set",children:(0,t.jsx)(n.code,{children:"set"})})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"template ,\n class _Allocator = allocator<_Key> >\nclass _LIBCPP_TEMPLATE_VIS set\n{\npublic:\n // types:\n typedef _Key key_type;\n typedef key_type value_type;\n\n// \u2026\n\nprivate:\n typedef __tree __base;\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["U obou hlavi\u010dek si m\u016f\u017eeme v\u0161imnout, \u017ee deklaruj\xed n\u011bjak\xfd soukrom\xfd typ ",(0,t.jsx)(n.code,{children:"__base"}),", kter\xfd je aliasem pro ",(0,t.jsx)(n.code,{children:"__tree"}),". Ten n\xe1s pak vede k hlavi\u010dce ",(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/__tree",children:(0,t.jsx)(n.code,{children:"__tree"})}),"."]}),"\n",(0,t.jsx)(n.p,{children:"V\xfd\u0148atek:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"/*\n\n_NodePtr algorithms\n\nThe algorithms taking _NodePtr are red black tree algorithms. Those\nalgorithms taking a parameter named __root should assume that __root\npoints to a proper red black tree (unless otherwise specified).\n\n\u2026\n\n*/\n"})}),"\n",(0,t.jsx)(n.h4,{id:"gcc",children:"gcc"}),"\n",(0,t.jsxs)(n.p,{children:["Pro ",(0,t.jsx)(n.code,{children:"gcc"})," je postup t\xe9m\u011b\u0159 stejn\xfd. Pro zm\u011bnu v hlavi\u010dk\xe1ch ",(0,t.jsx)(n.code,{children:"map"})," a ",(0,t.jsx)(n.code,{children:"set"})," nenajdeme nic, deklarace jsou a\u017e v hlavi\u010dkov\xfdch souborech:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_map.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_map.h"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_set.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_set.h"})})}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["V obou se zase odkazuje na n\u011bjakou hlavi\u010dku ",(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_tree.h;h=a4de61417652a288e361a55fcc8bb7a9838c58a5;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_tree.h"})}),", zase v\xfd\u0148atek:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:" // Red-black tree class, designed for use in implementing STL\n // associative containers (set, multiset, map, and multimap). The\n // insertion and deletion algorithms are based on those in Cormen,\n // Leiserson, and Rivest, Introduction to Algorithms (MIT Press,\n // 1990), except that\n //\n // (1) the header cell is maintained with links not only to the root\n // but also to the leftmost node of the tree, to enable constant\n // time begin(), and to the rightmost node of the tree, to enable\n // linear time performance when used with the generic set algorithms\n // (set_union, etc.)\n //\n // (2) when a node being deleted has two children its successor node\n // is relinked into its place, rather than copied, so that the only\n // iterators invalidated are those referring to the deleted node.\n\n enum _Rb_tree_color { _S_red = false, _S_black = true };\n\n struct _Rb_tree_node_base\n {\n typedef _Rb_tree_node_base* _Base_ptr;\n typedef const _Rb_tree_node_base* _Const_Base_ptr;\n\n _Rb_tree_color\t_M_color;\n _Base_ptr\t\t_M_parent;\n _Base_ptr\t\t_M_left;\n _Base_ptr\t\t_M_right;\n\n static _Base_ptr\n _S_minimum(_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_left != 0) __x = __x->_M_left;\n return __x;\n }\n\n static _Const_Base_ptr\n _S_minimum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_left != 0) __x = __x->_M_left;\n return __x;\n }\n\n static _Base_ptr\n _S_maximum(_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_right != 0) __x = __x->_M_right;\n return __x;\n }\n\n static _Const_Base_ptr\n _S_maximum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_right != 0) __x = __x->_M_right;\n return __x;\n }\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Tady u\u017e taky vid\xedme n\u011bjak\xfd k\xf3d pro nalezen\xed minima/maxima ve strom\u011b. Mimo jin\xe9\nje\u0161t\u011b existuje ",(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/src/c%2B%2B98/tree.cc;h=fd14991589a57c6aa847f57105a938cd2bf4df6f;hb=HEAD",children:(0,t.jsx)(n.code,{children:"tree.cc"})}),", kde je lze nal\xe9zt t\u0159eba funkci s n\xe1sleduj\xedc\xed hlavi\u010dkou:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"void\n_Rb_tree_insert_and_rebalance(const bool __insert_left,\n _Rb_tree_node_base* __x,\n _Rb_tree_node_base* __p,\n _Rb_tree_node_base& __header) throw ();\n"})}),"\n",(0,t.jsx)(n.h3,{id:"java",children:"Java"}),"\n",(0,t.jsxs)(n.p,{children:["V Jav\u011b jsou pro n\xe1s kl\xed\u010dov\xe9 implementace ",(0,t.jsx)(n.a,{href:"https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeSet.java",children:(0,t.jsx)(n.code,{children:"TreeSet"})})," a ",(0,t.jsx)(n.a,{href:"https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeMap.java",children:(0,t.jsx)(n.code,{children:"TreeMap"})}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["V implementaci ",(0,t.jsx)(n.code,{children:"TreeSet"})," si m\u016f\u017eete pov\u0161imnout:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"public class TreeSet extends AbstractSet\n implements NavigableSet, Cloneable, java.io.Serializable\n{\n /**\n * The backing map.\n */\n private transient NavigableMap m;\n\n // Dummy value to associate with an Object in the backing Map\n private static final Object PRESENT = new Object();\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"TreeSet"})," v Jav\u011b tedy pou\u017e\xedv\xe1 na pozad\xed ",(0,t.jsx)(n.code,{children:"TreeMap"})," (co\u017e je vid\u011bt ve v\xfdchoz\xedm konstruktoru, kde se vol\xe1 konstruktor p\u0159eb\xedraj\xedc\xed ",(0,t.jsx)(n.code,{children:"NavigableMap"}),", a je mu p\u0159ed\xe1no ",(0,t.jsx)(n.code,{children:"new TreeMap<>()"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["Co se t\xfd\u010de ",(0,t.jsx)(n.code,{children:"TreeMap"}),", tak hned ze za\u010d\xe1tku definice ",(0,t.jsx)(n.code,{children:"TreeMap"})," je vid\u011bt:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'public class TreeMap\n extends AbstractMap\n implements NavigableMap, Cloneable, java.io.Serializable\n{\n /**\n * The comparator used to maintain order in this tree map, or\n * null if it uses the natural ordering of its keys.\n *\n * @serial\n */\n @SuppressWarnings("serial") // Conditionally serializable\n private final Comparator comparator;\n\n private transient Entry root;\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Tak\u017ee m\xe1me \u201en\u011bjak\xfd ko\u0159en\u201c typu ",(0,t.jsx)(n.code,{children:"Entry"}),". Zkus\xedme si naj\xedt definici dan\xe9ho typu\u2026"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:" // Red-black mechanics\n\n private static final boolean RED = false;\n private static final boolean BLACK = true;\n\n /**\n * Node in the Tree. Doubles as a means to pass key-value pairs back to\n * user (see Map.Entry).\n */\n\n static final class Entry implements Map.Entry {\n K key;\n V value;\n Entry left;\n Entry right;\n Entry parent;\n boolean color = BLACK;\n"})}),"\n",(0,t.jsx)(n.p,{children:"A m\xe1me RB-tree."}),"\n",(0,t.jsx)(n.p,{children:"(Implementace vych\xe1z\xed z projektu OpenJDK.)"}),"\n",(0,t.jsx)(n.h3,{id:"c-1",children:"C#"}),"\n",(0,t.jsx)(n.p,{children:"V C# se zam\u011b\u0159\xedme na nejnov\u011bj\u0161\xed vyd\xe1n\xed (.NET), kter\xe9 je open-source a podporov\xe1no i na opera\u010dn\xedch syst\xe9mech zalo\u017een\xfdch na Linuxu."}),"\n",(0,t.jsxs)(n.p,{children:["Nejd\u0159\xedve se pod\xedv\xe1me na implementaci slovn\xedku (",(0,t.jsx)(n.a,{href:"https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedDictionary.cs",children:(0,t.jsx)(n.code,{children:"SortedDictionary"})}),")."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-csharp",children:" public class SortedDictionary : IDictionary, IDictionary, IReadOnlyDictionary where TKey : notnull\n {\n [NonSerialized]\n private KeyCollection? _keys;\n [NonSerialized]\n private ValueCollection? _values;\n\n private readonly TreeSet> _set; // Do not rename (binary serialization)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Na prvn\xed pohled m\xe1me probl\xe9m, proto\u017ee ",(0,t.jsx)(n.code,{children:"TreeSet"})," nen\xed ",(0,t.jsx)(n.code,{children:"SortedSet"}),", kter\xfd by jsme \u010dekali. Kdy\u017e se p\u0159esuneme na konec souboru, tak zjist\xedme, \u017ee ",(0,t.jsx)(n.code,{children:"TreeSet"})," je jenom ",(0,t.jsx)(n.em,{children:"backward-compatible wrapper"})," pro ",(0,t.jsx)(n.code,{children:"SortedSet"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["P\u0159esuneme se k ",(0,t.jsx)(n.a,{href:"https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.cs",children:(0,t.jsx)(n.code,{children:"SortedSet"})}),". A hned ze za\u010d\xe1tku vid\xedme:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cs",children:' // A binary search tree is a red-black tree if it satisfies the following red-black properties:\n // 1. Every node is either red or black\n // 2. Every leaf (nil node) is black\n // 3. If a node is red, the both its children are black\n // 4. Every simple path from a node to a descendant leaf contains the same number of black nodes\n //\n // The basic idea of a red-black tree is to represent 2-3-4 trees as standard BSTs but to add one extra bit of information\n // per node to encode 3-nodes and 4-nodes.\n // 4-nodes will be represented as: B\n // R R\n //\n // 3 -node will be represented as: B or B\n // R B B R\n //\n // For a detailed description of the algorithm, take a look at "Algorithms" by Robert Sedgewick.\n\n internal enum NodeColor : byte\n {\n Black,\n Red\n }\n\n internal delegate bool TreeWalkPredicate(SortedSet.Node node);\n\n internal enum TreeRotation : byte\n {\n Left,\n LeftRight,\n Right,\n RightLeft\n }\n'})}),"\n",(0,t.jsx)(n.p,{children:"Vysv\u011btlen\xed v koment\xe1\u0159i trochu p\u0159edb\xedh\xe1 n\xe1pl\u0148 cvi\u010den\xed zam\u011b\u0159en\xe9ho na B-stromy ;)"}),"\n",(0,t.jsx)(n.h2,{id:"vztah-mezi-mno\u017einou-a-mapou",children:"Vztah mezi mno\u017einou a mapou"}),"\n",(0,t.jsx)(n.p,{children:"P\u0159i ka\u017ed\xe9 implementaci ve standardn\xed knihovn\u011b jsme si mohli v\u0161imnout, \u017ee strom implementuje v\u017edy jenom jeden typ:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Jazyk"}),(0,t.jsx)(n.th,{children:"Zp\u016fsob implementace"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"C++"}),(0,t.jsx)(n.td,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Java"}),(0,t.jsx)(n.td,{children:"mno\u017eina ukl\xe1d\xe1 prvky s \u201edummy\u201c hodnotou do mapy"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"C#"}),(0,t.jsx)(n.td,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["Mapa vy\u017eaduje, aby ka\u017ed\xfd kl\xed\u010d m\u011bl p\u0159i\u0159azenou pr\xe1v\u011b jednu hodnotu, tedy kl\xed\u010de jsou navz\xe1jem mezi sebou unik\xe1tn\xed. To n\xe1m umo\u017e\u0148uje organizovat kl\xed\u010de do mno\u017einy, zde ale naraz\xedme na nep\u0159\xedjemn\xfd probl\xe9m spo\u010d\xedvaj\xedc\xed v tom, \u017ee mus\xedme do mno\u017einy vkladat dvojice prvk\u016f: ",(0,t.jsx)(n.code,{children:"(key, value)"}),". Tenhle p\u0159\xedstup m\xe1 ale z\xe1sadn\xed probl\xe9m:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-py",metastring:"showLineNumbers",children:"# let's represent dictionary/map as a set\nset_of_values = set()\n\n# let's insert few pairs\nset_of_values.add((1, 2))\nset_of_values.add((0, 42))\n\n# let's set key 1 to value 6\nset_of_values.add((1, 6))\n\nset_of_values\n"})}),"\n",(0,t.jsx)(n.p,{children:"A dostaneme:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"{(1, 6), (1, 2), (0, 42)}\n"})}),"\n",(0,t.jsx)(n.p,{children:"V jednotliv\xfdch implementac\xedch, kter\xe9 jste mohli vid\u011bt v\xfd\u0161e, se vyu\u017e\xedv\xe1 nasleduj\xedc\xed, kdy\u017e:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"}),": Dvojice je obalen\xe1 v samostatn\xedm typu, kter\xfd porovn\xe1v\xe1 jenom kl\xed\u010de"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"mno\u017eina ukl\xe1d\xe1 kl\xed\u010de do mapy"}),": V map\u011b se ignoruj\xed hodnoty p\u0159i\u0159azen\xe9 kl\xed\u010d\u016fm"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>l,a:()=>i});var t=a(7294);const s={},r=t.createContext(s);function i(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0178f9ad.568886e5.js b/assets/js/0178f9ad.568886e5.js new file mode 100644 index 0000000..fb63c4b --- /dev/null +++ b/assets/js/0178f9ad.568886e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9898],{35610:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var t=a(85893),s=a(11151);const r={id:"applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",tags:["balanced trees","red-black trees","applications"],last_update:{date:new Date("2022-04-05T00:00:00.000Z")}},i=void 0,l={id:"rb-trees/applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",source:"@site/algorithms/08-rb-trees/2022-04-05-applications.md",sourceDirName:"08-rb-trees",slug:"/rb-trees/applications",permalink:"/algorithms/rb-trees/applications",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/08-rb-trees/2022-04-05-applications.md",tags:[{label:"balanced trees",permalink:"/algorithms/tags/balanced-trees"},{label:"red-black trees",permalink:"/algorithms/tags/red-black-trees"},{label:"applications",permalink:"/algorithms/tags/applications"}],version:"current",lastUpdatedAt:1649116800,formattedLastUpdatedAt:"Apr 5, 2022",frontMatter:{id:"applications",title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",description:"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\n",tags:["balanced trees","red-black trees","applications"],last_update:{date:"2022-04-05T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Red-Black Trees",permalink:"/algorithms/category/red-black-trees"},next:{title:"On the rules of the red-black tree",permalink:"/algorithms/rb-trees/rules"}},o={},c=[{value:"Pou\u017eit\xed",id:"pou\u017eit\xed",level:2},{value:"R\u016fzn\xe9 implementace",id:"r\u016fzn\xe9-implementace",level:2},{value:"C++",id:"c",level:3},{value:"clang",id:"clang",level:4},{value:"gcc",id:"gcc",level:4},{value:"Java",id:"java",level:3},{value:"C#",id:"c-1",level:3},{value:"Vztah mezi mno\u017einou a mapou",id:"vztah-mezi-mno\u017einou-a-mapou",level:2}];function d(e){const n={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"pou\u017eit\xed",children:"Pou\u017eit\xed"}),"\n",(0,t.jsx)(n.p,{children:"\u010cerveno-\u010dern\xe9 stromy jsou celkem obl\xedben\xe9 pro implementaci ADT mno\u017einy nebo slovn\xedku za p\u0159edpokladu, \u017ee nad vkl\xe1dan\xfdmi kl\xed\u010di existuje uspo\u0159\xe1d\xe1n\xed. Jazyky n\xed\u017ee implementuj\xed dan\xe9 datov\xe9 struktury v 2 variant\xe1ch a to:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"se\u0159azen\xe9: pou\u017e\xedvaj\xed na pozad\xed pr\xe1v\u011b \u010derveno-\u010dern\xfd strom"}),"\n",(0,t.jsx)(n.li,{children:"nese\u0159azen\xe9: pou\u017e\xedvaj\xed na pozad\xed ha\u0161ovac\xed tabulku"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Pro srovn\xe1n\xed, jak jsme si \u0159\xedkali na cvi\u010den\xed, \u010derveno-\u010dern\xfd strom m\xe1 operace hled\xe1n\xed, vkl\xe1d\xe1n\xed a maz\xe1n\xed v \u010dasov\xe9 slo\u017eitosti ",(0,t.jsxs)(n.span,{className:"katex",children:[(0,t.jsx)(n.span,{className:"katex-mathml",children:(0,t.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(n.semantics,{children:[(0,t.jsxs)(n.mrow,{children:[(0,t.jsx)(n.mi,{mathvariant:"script",children:"O"}),(0,t.jsx)(n.mo,{stretchy:"false",children:"("}),(0,t.jsx)(n.mi,{children:"log"}),(0,t.jsx)(n.mo,{children:"\u2061"}),(0,t.jsx)(n.mi,{children:"n"}),(0,t.jsx)(n.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\log n)"})]})})}),(0,t.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(n.span,{className:"base",children:[(0,t.jsx)(n.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(n.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,t.jsx)(n.span,{className:"mopen",children:"("}),(0,t.jsxs)(n.span,{className:"mop",children:["lo",(0,t.jsx)(n.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,t.jsx)(n.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,t.jsx)(n.span,{className:"mord mathnormal",children:"n"}),(0,t.jsx)(n.span,{className:"mclose",children:")"})]})})]}),". Na druhou stranu ha\u0161ovac\xed tabulka m\xe1 ide\xe1ln\u011b konstantn\xed \u010dasovou slo\u017eitost, ale v nejhor\u0161\xedm p\u0159\xedpad\u011b (detaily na posledn\xedm cvi\u010den\xed v semestru) je to bohu\u017eel ",(0,t.jsxs)(n.span,{className:"katex",children:[(0,t.jsx)(n.span,{className:"katex-mathml",children:(0,t.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,t.jsxs)(n.semantics,{children:[(0,t.jsxs)(n.mrow,{children:[(0,t.jsx)(n.mi,{mathvariant:"script",children:"O"}),(0,t.jsx)(n.mo,{stretchy:"false",children:"("}),(0,t.jsx)(n.mi,{children:"n"}),(0,t.jsx)(n.mo,{stretchy:"false",children:")"})]}),(0,t.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,t.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,t.jsxs)(n.span,{className:"base",children:[(0,t.jsx)(n.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,t.jsx)(n.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,t.jsx)(n.span,{className:"mopen",children:"("}),(0,t.jsx)(n.span,{className:"mord mathnormal",children:"n"}),(0,t.jsx)(n.span,{className:"mclose",children:")"})]})})]}),"."]}),"\n",(0,t.jsx)(n.p,{children:"V\xfd\u0161e jsme si uk\xe1zali n\u011bjak\xe9 p\u0159edpoklady nutn\xe9 pro ha\u0161ovac\xed tabulku i \u010derveno-\u010dern\xfd strom. Co je tedy lep\u0161\xed?"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\u010derveno-\u010dern\xfd strom n\xe1m poskytuje ",(0,t.jsx)(n.em,{children:"stabiln\xed \u010dasovou slo\u017eitost"}),", ale za cenu po\u017eadavku ",(0,t.jsx)(n.em,{children:"uspo\u0159\xe1d\xe1n\xed"})," nad prvky"]}),"\n",(0,t.jsxs)(n.li,{children:["ha\u0161ovac\xed tabulka n\xe1m poskytuje ",(0,t.jsx)(n.em,{children:"pomyslnou perfektn\xed \u010dasovou slo\u017eitost"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"r\u016fzn\xe9-implementace",children:"R\u016fzn\xe9 implementace"}),"\n",(0,t.jsx)(n.p,{children:"Pro uk\xe1zku pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v implementac\xedch standardn\xedch knihoven\njsme vybrali n\u011bkolik jazyk\u016f."}),"\n",(0,t.jsxs)(n.p,{children:["Pokud V\xe1s zaj\xedmaj\xed r\u016fzn\xe9 implementace, tak bychom doporu\u010dili \u201eprohrab\xe1vat\u201c se p\u0159es n\u011b v n\xe1sleduj\xedc\xedm po\u0159ad\xed: ",(0,t.jsx)(n.code,{children:"C# \u2192 Java \u2192 C++"}),". D\u016fvod pro zvolen\xe9 po\u0159ad\xed vych\xe1z\xed z toho, \u017ee C# implementace je pom\u011brn\u011b \u010diteln\xe1 a obsahuje mno\u017estv\xed vysv\u011btluj\xedc\xedch koment\xe1\u0159\u016f. Implementace v Jav\u011b je stejn\u011b \u010diteln\xe1, a\u010dkoli ji\u017e s minimem koment\xe1\u0159\u016f, kter\xe9 se maxim\xe1ln\u011b odkazuj\xed na CLRS. C++ implementace je \u201ezna\u010dn\u011b pozna\u010den\xe1\u201c podtr\u017e\xedtky ;)"]}),"\n",(0,t.jsx)(n.h3,{id:"c",children:"C++"}),"\n",(0,t.jsxs)(n.p,{children:["V C++ si m\u016f\u017eeme vybrat mezi 2 r\u016fzn\xfdmi implementacemi (",(0,t.jsx)(n.code,{children:"clang"})," nebo ",(0,t.jsx)(n.code,{children:"gcc"}),")."]}),"\n",(0,t.jsx)(n.h4,{id:"clang",children:"clang"}),"\n",(0,t.jsx)(n.p,{children:"Hlavi\u010dkov\xe9 soubory, kter\xe9 pou\u017e\xedv\xe1me p\u0159i pr\xe1ci s mno\u017einou nebo slovn\xedkem (zaj\xedmav\xe9 sekce jsou vyta\u017eeny):"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/map",children:(0,t.jsx)(n.code,{children:"map"})})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"template ,\n class _Allocator = allocator > >\nclass _LIBCPP_TEMPLATE_VIS map\n{\npublic:\n // types:\n typedef _Key key_type;\n typedef _Tp mapped_type;\n typedef pair value_type;\n\n// \u2026\n\nprivate:\n typedef __tree<__value_type, __vc, __allocator_type> __base;\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/set",children:(0,t.jsx)(n.code,{children:"set"})})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"template ,\n class _Allocator = allocator<_Key> >\nclass _LIBCPP_TEMPLATE_VIS set\n{\npublic:\n // types:\n typedef _Key key_type;\n typedef key_type value_type;\n\n// \u2026\n\nprivate:\n typedef __tree __base;\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["U obou hlavi\u010dek si m\u016f\u017eeme v\u0161imnout, \u017ee deklaruj\xed n\u011bjak\xfd soukrom\xfd typ ",(0,t.jsx)(n.code,{children:"__base"}),", kter\xfd je aliasem pro ",(0,t.jsx)(n.code,{children:"__tree"}),". Ten n\xe1s pak vede k hlavi\u010dce ",(0,t.jsx)(n.a,{href:"https://github.com/llvm/llvm-project/blob/main/libcxx/include/__tree",children:(0,t.jsx)(n.code,{children:"__tree"})}),"."]}),"\n",(0,t.jsx)(n.p,{children:"V\xfd\u0148atek:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"/*\n\n_NodePtr algorithms\n\nThe algorithms taking _NodePtr are red black tree algorithms. Those\nalgorithms taking a parameter named __root should assume that __root\npoints to a proper red black tree (unless otherwise specified).\n\n\u2026\n\n*/\n"})}),"\n",(0,t.jsx)(n.h4,{id:"gcc",children:"gcc"}),"\n",(0,t.jsxs)(n.p,{children:["Pro ",(0,t.jsx)(n.code,{children:"gcc"})," je postup t\xe9m\u011b\u0159 stejn\xfd. Pro zm\u011bnu v hlavi\u010dk\xe1ch ",(0,t.jsx)(n.code,{children:"map"})," a ",(0,t.jsx)(n.code,{children:"set"})," nenajdeme nic, deklarace jsou a\u017e v hlavi\u010dkov\xfdch souborech:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_map.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_map.h"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_set.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_set.h"})})}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["V obou se zase odkazuje na n\u011bjakou hlavi\u010dku ",(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_tree.h;h=a4de61417652a288e361a55fcc8bb7a9838c58a5;hb=HEAD",children:(0,t.jsx)(n.code,{children:"bits/stl_tree.h"})}),", zase v\xfd\u0148atek:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:" // Red-black tree class, designed for use in implementing STL\n // associative containers (set, multiset, map, and multimap). The\n // insertion and deletion algorithms are based on those in Cormen,\n // Leiserson, and Rivest, Introduction to Algorithms (MIT Press,\n // 1990), except that\n //\n // (1) the header cell is maintained with links not only to the root\n // but also to the leftmost node of the tree, to enable constant\n // time begin(), and to the rightmost node of the tree, to enable\n // linear time performance when used with the generic set algorithms\n // (set_union, etc.)\n //\n // (2) when a node being deleted has two children its successor node\n // is relinked into its place, rather than copied, so that the only\n // iterators invalidated are those referring to the deleted node.\n\n enum _Rb_tree_color { _S_red = false, _S_black = true };\n\n struct _Rb_tree_node_base\n {\n typedef _Rb_tree_node_base* _Base_ptr;\n typedef const _Rb_tree_node_base* _Const_Base_ptr;\n\n _Rb_tree_color\t_M_color;\n _Base_ptr\t\t_M_parent;\n _Base_ptr\t\t_M_left;\n _Base_ptr\t\t_M_right;\n\n static _Base_ptr\n _S_minimum(_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_left != 0) __x = __x->_M_left;\n return __x;\n }\n\n static _Const_Base_ptr\n _S_minimum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_left != 0) __x = __x->_M_left;\n return __x;\n }\n\n static _Base_ptr\n _S_maximum(_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_right != 0) __x = __x->_M_right;\n return __x;\n }\n\n static _Const_Base_ptr\n _S_maximum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT\n {\n while (__x->_M_right != 0) __x = __x->_M_right;\n return __x;\n }\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Tady u\u017e taky vid\xedme n\u011bjak\xfd k\xf3d pro nalezen\xed minima/maxima ve strom\u011b. Mimo jin\xe9\nje\u0161t\u011b existuje ",(0,t.jsx)(n.a,{href:"https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/src/c%2B%2B98/tree.cc;h=fd14991589a57c6aa847f57105a938cd2bf4df6f;hb=HEAD",children:(0,t.jsx)(n.code,{children:"tree.cc"})}),", kde je lze nal\xe9zt t\u0159eba funkci s n\xe1sleduj\xedc\xed hlavi\u010dkou:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cpp",children:"void\n_Rb_tree_insert_and_rebalance(const bool __insert_left,\n _Rb_tree_node_base* __x,\n _Rb_tree_node_base* __p,\n _Rb_tree_node_base& __header) throw ();\n"})}),"\n",(0,t.jsx)(n.h3,{id:"java",children:"Java"}),"\n",(0,t.jsxs)(n.p,{children:["V Jav\u011b jsou pro n\xe1s kl\xed\u010dov\xe9 implementace ",(0,t.jsx)(n.a,{href:"https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeSet.java",children:(0,t.jsx)(n.code,{children:"TreeSet"})})," a ",(0,t.jsx)(n.a,{href:"https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeMap.java",children:(0,t.jsx)(n.code,{children:"TreeMap"})}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["V implementaci ",(0,t.jsx)(n.code,{children:"TreeSet"})," si m\u016f\u017eete pov\u0161imnout:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:"public class TreeSet extends AbstractSet\n implements NavigableSet, Cloneable, java.io.Serializable\n{\n /**\n * The backing map.\n */\n private transient NavigableMap m;\n\n // Dummy value to associate with an Object in the backing Map\n private static final Object PRESENT = new Object();\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"TreeSet"})," v Jav\u011b tedy pou\u017e\xedv\xe1 na pozad\xed ",(0,t.jsx)(n.code,{children:"TreeMap"})," (co\u017e je vid\u011bt ve v\xfdchoz\xedm konstruktoru, kde se vol\xe1 konstruktor p\u0159eb\xedraj\xedc\xed ",(0,t.jsx)(n.code,{children:"NavigableMap"}),", a je mu p\u0159ed\xe1no ",(0,t.jsx)(n.code,{children:"new TreeMap<>()"}),")."]}),"\n",(0,t.jsxs)(n.p,{children:["Co se t\xfd\u010de ",(0,t.jsx)(n.code,{children:"TreeMap"}),", tak hned ze za\u010d\xe1tku definice ",(0,t.jsx)(n.code,{children:"TreeMap"})," je vid\u011bt:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'public class TreeMap\n extends AbstractMap\n implements NavigableMap, Cloneable, java.io.Serializable\n{\n /**\n * The comparator used to maintain order in this tree map, or\n * null if it uses the natural ordering of its keys.\n *\n * @serial\n */\n @SuppressWarnings("serial") // Conditionally serializable\n private final Comparator comparator;\n\n private transient Entry root;\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Tak\u017ee m\xe1me \u201en\u011bjak\xfd ko\u0159en\u201c typu ",(0,t.jsx)(n.code,{children:"Entry"}),". Zkus\xedme si naj\xedt definici dan\xe9ho typu\u2026"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:" // Red-black mechanics\n\n private static final boolean RED = false;\n private static final boolean BLACK = true;\n\n /**\n * Node in the Tree. Doubles as a means to pass key-value pairs back to\n * user (see Map.Entry).\n */\n\n static final class Entry implements Map.Entry {\n K key;\n V value;\n Entry left;\n Entry right;\n Entry parent;\n boolean color = BLACK;\n"})}),"\n",(0,t.jsx)(n.p,{children:"A m\xe1me RB-tree."}),"\n",(0,t.jsx)(n.p,{children:"(Implementace vych\xe1z\xed z projektu OpenJDK.)"}),"\n",(0,t.jsx)(n.h3,{id:"c-1",children:"C#"}),"\n",(0,t.jsx)(n.p,{children:"V C# se zam\u011b\u0159\xedme na nejnov\u011bj\u0161\xed vyd\xe1n\xed (.NET), kter\xe9 je open-source a podporov\xe1no i na opera\u010dn\xedch syst\xe9mech zalo\u017een\xfdch na Linuxu."}),"\n",(0,t.jsxs)(n.p,{children:["Nejd\u0159\xedve se pod\xedv\xe1me na implementaci slovn\xedku (",(0,t.jsx)(n.a,{href:"https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedDictionary.cs",children:(0,t.jsx)(n.code,{children:"SortedDictionary"})}),")."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-csharp",children:" public class SortedDictionary : IDictionary, IDictionary, IReadOnlyDictionary where TKey : notnull\n {\n [NonSerialized]\n private KeyCollection? _keys;\n [NonSerialized]\n private ValueCollection? _values;\n\n private readonly TreeSet> _set; // Do not rename (binary serialization)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Na prvn\xed pohled m\xe1me probl\xe9m, proto\u017ee ",(0,t.jsx)(n.code,{children:"TreeSet"})," nen\xed ",(0,t.jsx)(n.code,{children:"SortedSet"}),", kter\xfd by jsme \u010dekali. Kdy\u017e se p\u0159esuneme na konec souboru, tak zjist\xedme, \u017ee ",(0,t.jsx)(n.code,{children:"TreeSet"})," je jenom ",(0,t.jsx)(n.em,{children:"backward-compatible wrapper"})," pro ",(0,t.jsx)(n.code,{children:"SortedSet"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["P\u0159esuneme se k ",(0,t.jsx)(n.a,{href:"https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.cs",children:(0,t.jsx)(n.code,{children:"SortedSet"})}),". A hned ze za\u010d\xe1tku vid\xedme:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-cs",children:' // A binary search tree is a red-black tree if it satisfies the following red-black properties:\n // 1. Every node is either red or black\n // 2. Every leaf (nil node) is black\n // 3. If a node is red, the both its children are black\n // 4. Every simple path from a node to a descendant leaf contains the same number of black nodes\n //\n // The basic idea of a red-black tree is to represent 2-3-4 trees as standard BSTs but to add one extra bit of information\n // per node to encode 3-nodes and 4-nodes.\n // 4-nodes will be represented as: B\n // R R\n //\n // 3 -node will be represented as: B or B\n // R B B R\n //\n // For a detailed description of the algorithm, take a look at "Algorithms" by Robert Sedgewick.\n\n internal enum NodeColor : byte\n {\n Black,\n Red\n }\n\n internal delegate bool TreeWalkPredicate(SortedSet.Node node);\n\n internal enum TreeRotation : byte\n {\n Left,\n LeftRight,\n Right,\n RightLeft\n }\n'})}),"\n",(0,t.jsx)(n.p,{children:"Vysv\u011btlen\xed v koment\xe1\u0159i trochu p\u0159edb\xedh\xe1 n\xe1pl\u0148 cvi\u010den\xed zam\u011b\u0159en\xe9ho na B-stromy ;)"}),"\n",(0,t.jsx)(n.h2,{id:"vztah-mezi-mno\u017einou-a-mapou",children:"Vztah mezi mno\u017einou a mapou"}),"\n",(0,t.jsx)(n.p,{children:"P\u0159i ka\u017ed\xe9 implementaci ve standardn\xed knihovn\u011b jsme si mohli v\u0161imnout, \u017ee strom implementuje v\u017edy jenom jeden typ:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Jazyk"}),(0,t.jsx)(n.th,{children:"Zp\u016fsob implementace"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"C++"}),(0,t.jsx)(n.td,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Java"}),(0,t.jsx)(n.td,{children:"mno\u017eina ukl\xe1d\xe1 prvky s \u201edummy\u201c hodnotou do mapy"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"C#"}),(0,t.jsx)(n.td,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["Mapa vy\u017eaduje, aby ka\u017ed\xfd kl\xed\u010d m\u011bl p\u0159i\u0159azenou pr\xe1v\u011b jednu hodnotu, tedy kl\xed\u010de jsou navz\xe1jem mezi sebou unik\xe1tn\xed. To n\xe1m umo\u017e\u0148uje organizovat kl\xed\u010de do mno\u017einy, zde ale naraz\xedme na nep\u0159\xedjemn\xfd probl\xe9m spo\u010d\xedvaj\xedc\xed v tom, \u017ee mus\xedme do mno\u017einy vkladat dvojice prvk\u016f: ",(0,t.jsx)(n.code,{children:"(key, value)"}),". Tenhle p\u0159\xedstup m\xe1 ale z\xe1sadn\xed probl\xe9m:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-py",metastring:"showLineNumbers",children:"# let's represent dictionary/map as a set\nset_of_values = set()\n\n# let's insert few pairs\nset_of_values.add((1, 2))\nset_of_values.add((0, 42))\n\n# let's set key 1 to value 6\nset_of_values.add((1, 6))\n\nset_of_values\n"})}),"\n",(0,t.jsx)(n.p,{children:"A dostaneme:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"{(1, 6), (1, 2), (0, 42)}\n"})}),"\n",(0,t.jsx)(n.p,{children:"V jednotliv\xfdch implementac\xedch, kter\xe9 jste mohli vid\u011bt v\xfd\u0161e, se vyu\u017e\xedv\xe1 nasleduj\xedc\xed, kdy\u017e:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"mapa ukl\xe1d\xe1 dvojice do mno\u017einy"}),": Dvojice je obalen\xe1 v samostatn\xedm typu, kter\xfd porovn\xe1v\xe1 jenom kl\xed\u010de"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"mno\u017eina ukl\xe1d\xe1 kl\xed\u010de do mapy"}),": V map\u011b se ignoruj\xed hodnoty p\u0159i\u0159azen\xe9 kl\xed\u010d\u016fm"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},11151:(e,n,a)=>{a.d(n,{Z:()=>l,a:()=>i});var t=a(67294);const s={},r=t.createContext(s);function i(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.57ba4b21.js b/assets/js/01a85c17.57ba4b21.js new file mode 100644 index 0000000..fb2d971 --- /dev/null +++ b/assets/js/01a85c17.57ba4b21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4013],{61460:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(67294),i=s(86010),r=s(58207),l=s(87524),n=s(39960),c=s(95999),o=s(16550),m=s(48596);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var g=s(85893);function h(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("aside",{className:"col col--3",children:(0,g.jsxs)("nav",{className:(0,i.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,g.jsx)("div",{className:(0,i.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,g.jsx)("ul",{className:(0,i.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,g.jsx)("li",{className:u.sidebarItem,children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var b=s(13102);function p(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,g.jsx)("li",{className:"menu__list-item",children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function j(e){return(0,g.jsx)(b.Zo,{component:p,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,g.jsx)(j,{sidebar:t}):(0,g.jsx)(h,{sidebar:t}):null}function v(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,g.jsx)(r.Z,{...l,children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsxs)("div",{className:"row",children:[(0,g.jsx)(x,{sidebar:t}),(0,g.jsx)("main",{className:(0,i.Z)("col",{"col--7":n,"col--9 col--offset-1":!n}),itemScope:!0,itemType:"https://schema.org/Blog",children:a}),s&&(0,g.jsx)("div",{className:"col col--2",children:s})]})})})}},24524:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(67294);var a=s(86010),i=s(35155),r=s(10833),l=s(35281),n=s(61460),c=s(26090),o=s(90197),m=s(92503),d=s(85893);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.M)();return(0,d.jsxs)(r.FG,{className:(0,a.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,d.jsx)(r.d,{title:u}),(0,d.jsx)(o.Z,{tag:"blog_tags_list"}),(0,d.jsxs)(n.Z,{sidebar:s,children:[(0,d.jsx)(m.Z,{as:"h1",children:u}),(0,d.jsx)(c.Z,{tags:t})]})]})}},13008:(e,t,s)=>{s.d(t,{Z:()=>n});s(67294);var a=s(86010),i=s(39960);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(85893);function n(e){let{permalink:t,label:s,count:n}=e;return(0,l.jsxs)(i.Z,{href:t,className:(0,a.Z)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},26090:(e,t,s)=>{s.d(t,{Z:()=>o});s(67294);var a=s(35155),i=s(13008),r=s(92503);const l={tag:"tag_Nnez"};var n=s(85893);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.Z,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.Z,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const s=(0,a.P)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},35155:(e,t,s)=>{s.d(t,{M:()=>i,P:()=>r});var a=s(95999);const i=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.9250c3bc.js b/assets/js/01a85c17.9250c3bc.js deleted file mode 100644 index 68af2bd..0000000 --- a/assets/js/01a85c17.9250c3bc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4013],{1460:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(7294),i=s(6010),r=s(8207),l=s(7524),n=s(9960),c=s(5999),o=s(6550),m=s(8596);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var g=s(5893);function h(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("aside",{className:"col col--3",children:(0,g.jsxs)("nav",{className:(0,i.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,g.jsx)("div",{className:(0,i.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,g.jsx)("ul",{className:(0,i.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,g.jsx)("li",{className:u.sidebarItem,children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var b=s(3102);function p(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,g.jsx)("li",{className:"menu__list-item",children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function j(e){return(0,g.jsx)(b.Zo,{component:p,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,g.jsx)(j,{sidebar:t}):(0,g.jsx)(h,{sidebar:t}):null}function v(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,g.jsx)(r.Z,{...l,children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsxs)("div",{className:"row",children:[(0,g.jsx)(x,{sidebar:t}),(0,g.jsx)("main",{className:(0,i.Z)("col",{"col--7":n,"col--9 col--offset-1":!n}),itemScope:!0,itemType:"https://schema.org/Blog",children:a}),s&&(0,g.jsx)("div",{className:"col col--2",children:s})]})})})}},4524:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(7294);var a=s(6010),i=s(5155),r=s(833),l=s(5281),n=s(1460),c=s(6090),o=s(197),m=s(7955),d=s(5893);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.M)();return(0,d.jsxs)(r.FG,{className:(0,a.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,d.jsx)(r.d,{title:u}),(0,d.jsx)(o.Z,{tag:"blog_tags_list"}),(0,d.jsxs)(n.Z,{sidebar:s,children:[(0,d.jsx)(m.Z,{as:"h1",children:u}),(0,d.jsx)(c.Z,{tags:t})]})]})}},3008:(e,t,s)=>{s.d(t,{Z:()=>n});s(7294);var a=s(6010),i=s(9960);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(5893);function n(e){let{permalink:t,label:s,count:n}=e;return(0,l.jsxs)(i.Z,{href:t,className:(0,a.Z)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},6090:(e,t,s)=>{s.d(t,{Z:()=>o});s(7294);var a=s(5155),i=s(3008),r=s(7955);const l={tag:"tag_Nnez"};var n=s(5893);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.Z,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.Z,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const s=(0,a.P)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},5155:(e,t,s)=>{s.d(t,{M:()=>i,P:()=>r});var a=s(5999);const i=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/0220f5fc.5b1b8f6e.js b/assets/js/0220f5fc.5b1b8f6e.js deleted file mode 100644 index c1b7a12..0000000 --- a/assets/js/0220f5fc.5b1b8f6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1378],{5804:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"blog"}')}}]); \ No newline at end of file diff --git a/assets/js/0220f5fc.6bd42e59.js b/assets/js/0220f5fc.6bd42e59.js new file mode 100644 index 0000000..1962528 --- /dev/null +++ b/assets/js/0220f5fc.6bd42e59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1378],{85804:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"blog"}')}}]); \ No newline at end of file diff --git a/assets/js/0608d96f.a18c3650.js b/assets/js/0608d96f.a18c3650.js new file mode 100644 index 0000000..3edeeb0 --- /dev/null +++ b/assets/js/0608d96f.a18c3650.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7568],{77158:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/vps","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/0608d96f.ee46e047.js b/assets/js/0608d96f.ee46e047.js deleted file mode 100644 index b347ce5..0000000 --- a/assets/js/0608d96f.ee46e047.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7568],{7158:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/vps","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/087808f1.0a5fb140.js b/assets/js/087808f1.0a5fb140.js new file mode 100644 index 0000000..6afa8ee --- /dev/null +++ b/assets/js/087808f1.0a5fb140.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3731],{48157:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var s=n(85893),a=n(11151);const i={id:"breaking",slug:"/hash-tables/breaking",title:"Breaking Hash Table",description:"How to get the linear time complexity in a hash table.\n",tags:["cpp","python","hash-tables"],last_update:{date:new Date("2023-11-28T00:00:00.000Z")}},r=void 0,o={id:"hash-tables/2023-11-28-breaking/breaking",title:"Breaking Hash Table",description:"How to get the linear time complexity in a hash table.\n",source:"@site/algorithms/12-hash-tables/2023-11-28-breaking/index.md",sourceDirName:"12-hash-tables/2023-11-28-breaking",slug:"/hash-tables/breaking",permalink:"/algorithms/hash-tables/breaking",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/12-hash-tables/2023-11-28-breaking/index.md",tags:[{label:"cpp",permalink:"/algorithms/tags/cpp"},{label:"python",permalink:"/algorithms/tags/python"},{label:"hash-tables",permalink:"/algorithms/tags/hash-tables"}],version:"current",lastUpdatedAt:1701129600,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{id:"breaking",slug:"/hash-tables/breaking",title:"Breaking Hash Table",description:"How to get the linear time complexity in a hash table.\n",tags:["cpp","python","hash-tables"],last_update:{date:"2023-11-28T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Hash Tables",permalink:"/algorithms/category/hash-tables"},next:{title:"Breaking Python",permalink:"/algorithms/hash-tables/breaking/python"}},h={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Hash Table v. Trees",id:"hash-table-v-trees",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Underlying data structure",id:"underlying-data-structure",level:3},{value:"Major Factors of Hash Tables",id:"major-factors-of-hash-tables",level:2},{value:"Hash functions",id:"hash-functions",level:3},{value:"Implementation details",id:"implementation-details",level:3}];function c(e){const t={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"We will try to break a hash table and discuss possible ways how to prevent such\nissues to occur."}),"\n",(0,s.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.p,{children:["Hash tables are very commonly used to represent sets or dictionaries. Even when\nyou look up solution to some problem that requires set or dictionary, it is more\nthan likely that you'll find something that references usage of the hash table.\nYou might think it's the only possible option",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),", or it's the best one",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["One of the reasons to prefer hash tables over any other representation is the\nfact that they are ",(0,s.jsx)(t.strong,{children:"supposed"})," to be faster than the alternatives, but the\ntruth lies somewhere in between."]}),"\n",(0,s.jsxs)(t.p,{children:["One of the other possible implementations of the set is a balanced tree. Majorly\noccurring implementations rely on the ",(0,s.jsx)(t.em,{children:"red-black tree"}),", but you may see also\nothers like an ",(0,s.jsx)(t.em,{children:"AVL tree"}),(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-3",id:"user-content-fnref-3","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})})," or ",(0,s.jsx)(t.em,{children:"B-tree"}),(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-4",id:"user-content-fnref-4","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"4"})}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"hash-table-v-trees",children:"Hash Table v. Trees"}),"\n",(0,s.jsx)(t.p,{children:"The most interesting part are the differences between their implementations. Why\nshould you choose hash table, or why should you choose the tree implementation?\nLet's compare the differences one by one."}),"\n",(0,s.jsx)(t.h3,{id:"requirements",children:"Requirements"}),"\n",(0,s.jsxs)(t.p,{children:["We will start with the fundamentals on which the underlying data structures\nrely. We can also consider them as ",(0,s.jsx)(t.em,{children:"requirements"})," that must be met to be able to\nuse the underlying data structure."]}),"\n",(0,s.jsxs)(t.p,{children:["Hash table relies on the ",(0,s.jsx)(t.em,{children:"hash function"})," that is supposed to distribute the keys\nin such way that they're evenly spread across the slots where the keys (or\npairs, for dictionary) are stored, but at the same time they're somewhat unique,\nso no clustering occurs."]}),"\n",(0,s.jsxs)(t.p,{children:["Trees depend on the ",(0,s.jsx)(t.em,{children:"ordering"})," of the elements. They maintain the elements in\na sorted fashion, so for any pair of the elements that are used as keys, you\nneed to be able to decide which one of them is ",(0,s.jsx)(t.em,{children:"smaller or equal to"})," the other."]}),"\n",(0,s.jsxs)(t.p,{children:["Hash function can be easily created by using the bits that ",(0,s.jsx)(t.em,{children:"uniquely"})," identify\na unique element. On the other hand, ordering may not be as easy to define."]}),"\n",(0,s.jsxs)(t.admonition,{title:"Example",type:"tip",children:[(0,s.jsxs)(t.p,{children:["If you are familiar with complex numbers, they are a great example of a key that\ndoes not have ordering (unless you go element-wise for the sake of storing them\nin a tree; though the ordering ",(0,s.jsx)(t.strong,{children:"is not"})," defined on them)."]}),(0,s.jsx)(t.p,{children:"Hashing them is much easier though, you can just \u201ccombine\u201d the hashes of the\nreal and imaginary parts of the complex number to get a hash of the complex\nnumber itself."})]}),"\n",(0,s.jsx)(t.h3,{id:"underlying-data-structure",children:"Underlying data structure"}),"\n",(0,s.jsxs)(t.p,{children:["The most obvious difference is the ",(0,s.jsx)(t.em,{children:"core"})," of the idea behind these data\nstructures. Hash tables rely on data being stored in one continuous piece of\nmemory (the array) where you can \u201cguess\u201d (by using the hash function) the\nlocation of what you're looking for in a constant time and also access that\nlocation in the, said, constant time",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-5",id:"user-content-fnref-5","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"5"})}),". In case the hash function is\n",(0,s.jsx)(t.em,{children:"not good enough"}),(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-6",id:"user-content-fnref-6","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"6"})}),", you need to go in ",(0,s.jsx)(t.em,{children:"blind"}),", and if it comes to the worst,\ncheck everything."]}),"\n",(0,s.jsx)(t.admonition,{title:"tl;dr",type:"tip",children:(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I know where should I look"}),"\n",(0,s.jsx)(t.li,{children:"I can look there instantenously"}),"\n",(0,s.jsx)(t.li,{children:"If my guesses are very wrong, I might need to check everything"}),"\n"]})}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand, tree implementations rely on the self-balancing trees in\nwhich you don't get as ",(0,s.jsx)(t.em,{children:"amazing"})," results as with the hash table, but they're\n",(0,s.jsx)(t.strong,{children:"consistent"}),". Given that we have a self-balancing tree, the height of the tree\nis same for ",(0,s.jsx)(t.strong,{children:"every"})," input and therefore checking for any element can take the\nsame time even in the worst case."]}),"\n",(0,s.jsx)(t.admonition,{title:"tl;dr",type:"tip",children:(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"I don't know where to look"}),"\n",(0,s.jsx)(t.li,{children:"I know how to get there"}),"\n",(0,s.jsx)(t.li,{children:"Wherever I look, it takes me about the same time"}),"\n"]})}),"\n",(0,s.jsx)(t.p,{children:"Let's compare side by side:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"time complexity"}),(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"hash table"}),(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"tree"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"expected"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"constant"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"depends on the height"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"worst-case"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"gotta check everything"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"depends on the height"})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"major-factors-of-hash-tables",children:"Major Factors of Hash Tables"}),"\n",(0,s.jsx)(t.p,{children:"Let's have a look at the major factors that affect the efficiency and\nfunctioning of a hash table. We have already mentioned the hash function that\nplays a crucial role, but there are also different ways how you can implement\na hash table, so we will have a look at those too."}),"\n",(0,s.jsx)(t.h3,{id:"hash-functions",children:"Hash functions"}),"\n",(0,s.jsxs)(t.admonition,{type:"info",children:[(0,s.jsx)(t.p,{children:"We will start with a definition of hash function in a mathematical definition\nand type signature in some known language:"}),(0,s.jsx)(t.span,{className:"katex-display",children:(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsxs)(t.mrow,{children:[(0,s.jsx)(t.mi,{children:"h"}),(0,s.jsx)(t.mo,{children:":"}),(0,s.jsx)(t.mi,{children:"T"}),(0,s.jsx)(t.mo,{children:"\u2192"}),(0,s.jsx)(t.mi,{mathvariant:"double-struck",children:"N"})]}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:" h : T \\rightarrow \\mathbb{N}"})]})})}),(0,s.jsxs)(t.span,{className:"katex-html","aria-hidden":"true",children:[(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.6944em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"h"}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,s.jsx)(t.span,{className:"mrel",children:":"}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.6833em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,s.jsx)(t.span,{className:"mrel",children:"\u2192"}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.6889em"}}),(0,s.jsx)(t.span,{className:"mord mathbb",children:"N"})]})]})]})}),(0,s.jsxs)(t.p,{children:["For a type signature we will just take the declaration from C++",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-7",id:"user-content-fnref-7","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"7"})}),":"]}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"std::size_t operator()(const T& key) const;\n"})}),(0,s.jsxs)(t.p,{children:["If you compare with the mathematical definition, it is very similar, except for\nthe fact that the memory is not unlimited, so the ",(0,s.jsx)(t.em,{children:"natural number"})," turned into\nan ",(0,s.jsx)(t.em,{children:"unsigned integer type"})," (on majority of platforms it will be a 64-bit\nunsigned integer)."]})]}),"\n",(0,s.jsx)(t.p,{children:"As we have already touched above, hash function gives \u201ca guess\u201d where to look\nfor the key (either when doing a look up, or for insertion to guess a suitable\nspot for the insertion)."}),"\n",(0,s.jsxs)(t.p,{children:["Hash functions are expected to have a so-called ",(0,s.jsx)(t.em,{children:"avalanche effect"})," which means\nthat the smallest change to the key should result in a massive change of hash.\nAvalanche effect technically guarantees that even when your data are clustered\ntogether, it should lower the amount of conflicts that can occur."]}),"\n",(0,s.jsx)(t.admonition,{title:"Exercise for the reader",type:"tip",children:(0,s.jsx)(t.p,{children:"Try to give an example of a hash function that is not good at all."})}),"\n",(0,s.jsx)(t.h3,{id:"implementation-details",children:"Implementation details"}),"\n",(0,s.jsx)(t.p,{children:"There are different variations of the hash tables. You've more than likely seen\nan implementation that keeps linked lists for buckets. However there are also\nother variations that use probing instead."}),"\n",(0,s.jsx)(t.p,{children:"With regards to the implementation details, we need to mention the fact that\neven with the bounded hash (as we could've seen above), you're not likely to\nhave all the buckets for different hashes available. Most common approach to\nthis is having a smaller set of buckets and modifying the hash to fit within."}),"\n",(0,s.jsx)(t.p,{children:"One of the most common approaches is to keep lengths of the hash tables in the\npowers of 2 which allows bit-masking to take place."}),"\n",(0,s.jsxs)(t.admonition,{title:"Example",type:"tip",children:[(0,s.jsxs)(t.p,{children:["Let's say we're given ",(0,s.jsx)(t.code,{children:"h = 0xDEADBEEF"})," and we have ",(0,s.jsx)(t.code,{children:"l = 65536=2^16"})," spots in our\nhash table. What can we do here?"]}),(0,s.jsx)(t.p,{children:"Well, we definitely have a bigger hash than spots available, so we need to\n\u201cshrink\u201d it somehow. The most common practice is to take the lower bits of the\nhash to represent an index in the table:"}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"h & (l - 1)\n"})}),(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.em,{children:"Why does this work?"})," Firstly we subtract 1 from the length (indices run from\n",(0,s.jsx)(t.code,{children:"\u27e80 ; l - 1\u27e9"}),", since table is zero-indexed). Therefore if we do ",(0,s.jsx)(t.em,{children:"binary and"})," on\nany number, we always get a valid index within the table. Let's find the index\nfor our hash:"]}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"0xDEADBEEF & 0xFFFF = 0xBEEF\n"})})]}),"\n",(0,s.jsxs)(t.section,{"data-footnotes":!0,className:"footnotes",children:[(0,s.jsx)(t.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{id:"user-content-fn-1",children:["\n",(0,s.jsxs)(t.p,{children:["not true ",(0,s.jsx)(t.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-2",children:["\n",(0,s.jsxs)(t.p,{children:["also not true ",(0,s.jsx)(t.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-3",children:["\n",(0,s.jsxs)(t.p,{children:["actually the first of its kind (the self-balanced trees) ",(0,s.jsx)(t.a,{href:"#user-content-fnref-3","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-4",children:["\n",(0,s.jsxs)(t.p,{children:["Rust chose to implement this instead of the common choice of the red-black\nor AVL tree; main difference lies in the fact that B-trees are not binary\ntrees ",(0,s.jsx)(t.a,{href:"#user-content-fnref-4","data-footnote-backref":"","aria-label":"Back to reference 4",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-5",children:["\n",(0,s.jsxs)(t.p,{children:["This, of course, does not hold true for the educational implementations of\nthe hash tables where conflicts are handled by storing the items in the\nlinked lists. In practice linked lists are not that commonly used for\naddressing this issue as it has even worse impact on the efficiency of the\ndata structure. ",(0,s.jsx)(t.a,{href:"#user-content-fnref-5","data-footnote-backref":"","aria-label":"Back to reference 5",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-6",children:["\n",(0,s.jsxs)(t.p,{children:["My guess is not very good, or it's really bad\u2026 ",(0,s.jsx)(t.a,{href:"#user-content-fnref-6","data-footnote-backref":"","aria-label":"Back to reference 6",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{id:"user-content-fn-7",children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://en.cppreference.com/w/cpp/utility/hash",children:"https://en.cppreference.com/w/cpp/utility/hash"})," ",(0,s.jsx)(t.a,{href:"#user-content-fnref-7","data-footnote-backref":"","aria-label":"Back to reference 7",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var s=n(67294);const a={},i=s.createContext(a);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0bfe45d5.143f3da4.js b/assets/js/0bfe45d5.143f3da4.js new file mode 100644 index 0000000..3914bb5 --- /dev/null +++ b/assets/js/0bfe45d5.143f3da4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4269],{13847:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/rust","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/0bfe45d5.58ce388b.js b/assets/js/0bfe45d5.58ce388b.js deleted file mode 100644 index 40d7bbb..0000000 --- a/assets/js/0bfe45d5.58ce388b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4269],{3847:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/rust","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/0fcbc6ca.0506f58b.js b/assets/js/0fcbc6ca.0506f58b.js deleted file mode 100644 index bf9f71e..0000000 --- a/assets/js/0fcbc6ca.0506f58b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1851],{9900:(e,t,n)=>{n.r(t),n.d(t,{default:()=>S});var a=n(7294),r=n(8207),l=n(6010);const s="card_h7vX",i="eventDetailsContainer_ujlS",c="list_DjY4",o="buttons_jSVm",h="icon_R7DV";var d,v;function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,d||(d=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),v||(v=a.createElement("path",{d:"M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 5v14h8V5H8zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"})))};var p,j;function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,p||(p=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),j||(j=a.createElement("path",{d:"M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM4 5v11h16V5H4zm6 2.5 5 3-5 3v-6z"})))};var x,f;function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",w({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,x||(x=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),f||(f=a.createElement("path",{d:"M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"})))};var y,H;function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",O({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,y||(y=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),H||(H=a.createElement("path",{d:"M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z"})))};var N,E;function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",V({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,N||(N=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),E||(E=a.createElement("path",{d:"M6.455 19 2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"})))};var k,P;function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",C({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,k||(k=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),P||(P=a.createElement("path",{d:"m12 23.728-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zm4.95-7.778a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"})))};var L=n(5893);const R=e=>{let{data:t}=e;if(0===t.length)return null;const[n,...a]=t,{name:r,location:l,date:s}=n;return(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)("div",{className:"col col--12",children:(0,L.jsxs)("ul",{className:c,children:[(0,L.jsxs)("li",{children:[(0,L.jsx)(_,{className:h})," ",(0,L.jsx)("strong",{children:r})]}),(0,L.jsxs)("li",{children:[(0,L.jsx)(D,{className:h})," ",l]}),(0,L.jsxs)("li",{children:[(0,L.jsx)(M,{className:h})," ",I(s)]})]})}),t.length>1&&(0,L.jsxs)("div",{className:"col col--12",children:[(0,L.jsx)("p",{className:"margin--none",children:"Also presented on:"}),(0,L.jsx)("ul",{children:a.map((e=>{let{name:t,location:n,date:a}=e;return(0,L.jsxs)("li",{children:[(0,L.jsx)("strong",{children:t})," in ",n," (",I(a),")"]},t)}))})]})]})};function I(e){return`${e.getMonth()+1}/${e.getUTCFullYear()}`}const B=e=>{let{title:t,description:n,events:a=[],recordingURL:r,slidesURL:c,repoURL:h}=e;return(0,L.jsx)("div",{className:"col col--12",children:(0,L.jsxs)("div",{className:(0,l.Z)("card",s),children:[(0,L.jsx)("div",{className:"card__header",children:(0,L.jsx)("h2",{children:t})}),(0,L.jsx)("div",{className:"card__body",children:(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)("div",{className:"col col--7",children:n}),(0,L.jsx)("div",{className:(0,l.Z)("col col--5",i),children:(0,L.jsx)(R,{data:a})})]})}),(0,L.jsx)("div",{className:"card__footer",children:(0,L.jsxs)("div",{className:o,children:[r&&(0,L.jsxs)("a",{href:r,target:"_blank",className:"button button--primary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(u,{})}),"Watch recording"]}),c&&(0,L.jsxs)("a",{href:c,target:"_blank",className:"button button--secondary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(g,{})}),"See slides"]}),h&&(0,L.jsxs)("a",{href:h,target:"_blank",className:"button button--secondary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(z,{})}),"See repository"]})]})})]})})},F=[{title:"Packit: RPM integration, all in one",description:(0,L.jsx)(L.Fragment,{children:"Do you want to automate how you build and test your RPM packages? Do you maintain any package in Fedora and want to automate the releases? Or are you just interested in CI/CD on GitHub or GitLab, Fedora and integration of upstream projects with RPM-based Linux distributions? In this session, we are going to deep-dive into features of Packit that can help you do your day-to-day job."}),events:[{name:"DevConf.cz",location:"Brno, Czechia",date:new Date(2023,5,17)},{name:"DevConf.cz Mini",location:"Brno, Czechia",date:new Date(2023,2,31)}],recordingURL:"https://www.youtube.com/watch?v=FxhXzgxWO18",slidesURL:"https://static.sched.com/hosted_files/devconfcz2023/37/DevConf.cz%20June%202023%20Packit%20talk-1.pdf"}],U="Talks",A="Featured talks I presented on various events.";function S(){return(0,L.jsx)(r.Z,{title:U,description:A,children:(0,L.jsxs)("main",{className:"container container--fluid margin-vert--lg",children:[(0,L.jsx)("h1",{children:U}),(0,L.jsx)("p",{children:A}),(0,L.jsx)("div",{className:"row",children:F.map((e=>(0,L.jsx)(B,{...e},e.title)))}),(0,L.jsx)("hr",{}),(0,L.jsxs)("p",{children:["Credits to ",(0,L.jsx)("a",{href:"https://kosiec.dev/",target:"_blank",children:"Pawe\u0142 Kosiec"})," for implementing his own React components for talks."]})]})})}}}]); \ No newline at end of file diff --git a/assets/js/0fcbc6ca.24ec8bc7.js b/assets/js/0fcbc6ca.24ec8bc7.js new file mode 100644 index 0000000..3fa971e --- /dev/null +++ b/assets/js/0fcbc6ca.24ec8bc7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1851],{39900:(e,t,n)=>{n.r(t),n.d(t,{default:()=>S});var a=n(67294),r=n(58207),l=n(86010);const s="card_h7vX",i="eventDetailsContainer_ujlS",c="list_DjY4",o="buttons_jSVm",h="icon_R7DV";var d,v;function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,d||(d=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),v||(v=a.createElement("path",{d:"M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 5v14h8V5H8zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"})))};var p,j;function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,p||(p=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),j||(j=a.createElement("path",{d:"M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM4 5v11h16V5H4zm6 2.5 5 3-5 3v-6z"})))};var x,f;function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",w({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,x||(x=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),f||(f=a.createElement("path",{d:"M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"})))};var y,H;function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",O({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,y||(y=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),H||(H=a.createElement("path",{d:"M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z"})))};var N,E;function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",V({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,N||(N=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),E||(E=a.createElement("path",{d:"M6.455 19 2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"})))};var k,P;function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...r}=e;return a.createElement("svg",C({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,k||(k=a.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),P||(P=a.createElement("path",{d:"m12 23.728-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zm4.95-7.778a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"})))};var L=n(85893);const R=e=>{let{data:t}=e;if(0===t.length)return null;const[n,...a]=t,{name:r,location:l,date:s}=n;return(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)("div",{className:"col col--12",children:(0,L.jsxs)("ul",{className:c,children:[(0,L.jsxs)("li",{children:[(0,L.jsx)(_,{className:h})," ",(0,L.jsx)("strong",{children:r})]}),(0,L.jsxs)("li",{children:[(0,L.jsx)(D,{className:h})," ",l]}),(0,L.jsxs)("li",{children:[(0,L.jsx)(M,{className:h})," ",I(s)]})]})}),t.length>1&&(0,L.jsxs)("div",{className:"col col--12",children:[(0,L.jsx)("p",{className:"margin--none",children:"Also presented on:"}),(0,L.jsx)("ul",{children:a.map((e=>{let{name:t,location:n,date:a}=e;return(0,L.jsxs)("li",{children:[(0,L.jsx)("strong",{children:t})," in ",n," (",I(a),")"]},t)}))})]})]})};function I(e){return`${e.getMonth()+1}/${e.getUTCFullYear()}`}const B=e=>{let{title:t,description:n,events:a=[],recordingURL:r,slidesURL:c,repoURL:h}=e;return(0,L.jsx)("div",{className:"col col--12",children:(0,L.jsxs)("div",{className:(0,l.Z)("card",s),children:[(0,L.jsx)("div",{className:"card__header",children:(0,L.jsx)("h2",{children:t})}),(0,L.jsx)("div",{className:"card__body",children:(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)("div",{className:"col col--7",children:n}),(0,L.jsx)("div",{className:(0,l.Z)("col col--5",i),children:(0,L.jsx)(R,{data:a})})]})}),(0,L.jsx)("div",{className:"card__footer",children:(0,L.jsxs)("div",{className:o,children:[r&&(0,L.jsxs)("a",{href:r,target:"_blank",className:"button button--primary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(u,{})}),"Watch recording"]}),c&&(0,L.jsxs)("a",{href:c,target:"_blank",className:"button button--secondary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(g,{})}),"See slides"]}),h&&(0,L.jsxs)("a",{href:h,target:"_blank",className:"button button--secondary button--outline",children:[(0,L.jsx)("span",{className:"button__icon",children:(0,L.jsx)(z,{})}),"See repository"]})]})})]})})},F=[{title:"Packit: RPM integration, all in one",description:(0,L.jsx)(L.Fragment,{children:"Do you want to automate how you build and test your RPM packages? Do you maintain any package in Fedora and want to automate the releases? Or are you just interested in CI/CD on GitHub or GitLab, Fedora and integration of upstream projects with RPM-based Linux distributions? In this session, we are going to deep-dive into features of Packit that can help you do your day-to-day job."}),events:[{name:"DevConf.cz",location:"Brno, Czechia",date:new Date(2023,5,17)},{name:"DevConf.cz Mini",location:"Brno, Czechia",date:new Date(2023,2,31)}],recordingURL:"https://www.youtube.com/watch?v=FxhXzgxWO18",slidesURL:"https://static.sched.com/hosted_files/devconfcz2023/37/DevConf.cz%20June%202023%20Packit%20talk-1.pdf"}],U="Talks",A="Featured talks I presented on various events.";function S(){return(0,L.jsx)(r.Z,{title:U,description:A,children:(0,L.jsxs)("main",{className:"container container--fluid margin-vert--lg",children:[(0,L.jsx)("h1",{children:U}),(0,L.jsx)("p",{children:A}),(0,L.jsx)("div",{className:"row",children:F.map((e=>(0,L.jsx)(B,{...e},e.title)))}),(0,L.jsx)("hr",{}),(0,L.jsxs)("p",{children:["Credits to ",(0,L.jsx)("a",{href:"https://kosiec.dev/",target:"_blank",children:"Pawe\u0142 Kosiec"})," for implementing his own React components for talks."]})]})})}}}]); \ No newline at end of file diff --git a/assets/js/109.192a1082.js b/assets/js/109.192a1082.js new file mode 100644 index 0000000..590d687 --- /dev/null +++ b/assets/js/109.192a1082.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[109],{109:(t,e,a)=>{a.d(e,{diagram:()=>y});var r=a(54706),i=a(64218),n=a(41644),d=a(45625),o=a(85322);a(27484),a(17967),a(27856);let s=0;const l=function(t){let e=t.id;return t.type&&(e+="<"+(0,o.v)(t.type)+">"),e},p=function(t,e,a,r){const{displayText:i,cssStyle:n}=e.getDisplayDetails(),d=t.append("tspan").attr("x",r.padding).text(i);""!==n&&d.attr("style",e.cssStyle),a||d.attr("dy",r.textHeight)},c=function(t,e,a,r){o.l.debug("Rendering class ",e,a);const i=e.id,n={id:i,label:e.id,width:0,height:0},d=t.append("g").attr("id",r.db.lookUpDomId(i)).attr("class","classGroup");let s;s=e.link?d.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",a.textHeight+a.padding).attr("x",0):d.append("text").attr("y",a.textHeight+a.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",a.textHeight),c=!1}));let g=l(e);const h=s.append("tspan").text(g).attr("class","title");c||h.attr("dy",a.textHeight);const f=s.node().getBBox().height;let x,u,y;if(e.members.length>0){x=d.append("line").attr("x1",0).attr("y1",a.padding+f+a.dividerMargin/2).attr("y2",a.padding+f+a.dividerMargin/2);const t=d.append("text").attr("x",a.padding).attr("y",f+a.dividerMargin+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(e){p(t,e,c,a),c=!1})),u=t.node().getBBox()}if(e.methods.length>0){y=d.append("line").attr("x1",0).attr("y1",a.padding+f+a.dividerMargin+u.height).attr("y2",a.padding+f+a.dividerMargin+u.height);const t=d.append("text").attr("x",a.padding).attr("y",f+2*a.dividerMargin+u.height+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(e){p(t,e,c,a),c=!1}))}const b=d.node().getBBox();var m=" ";e.cssClasses.length>0&&(m+=e.cssClasses.join(" "));const k=d.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",b.width+2*a.padding).attr("height",b.height+a.padding+.5*a.dividerMargin).attr("class",m).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(k-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),x&&x.attr("x2",k),y&&y.attr("x2",k),n.width=k,n.height=b.height+a.padding+.5*a.dividerMargin,n},g=function(t,e,a,r,n){const d=function(t){switch(t){case n.db.relationType.AGGREGATION:return"aggregation";case n.db.relationType.EXTENSION:return"extension";case n.db.relationType.COMPOSITION:return"composition";case n.db.relationType.DEPENDENCY:return"dependency";case n.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const l=e.points,p=(0,i.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(i.$0Z),c=t.append("path").attr("d",p(l)).attr("id","edge"+s).attr("class","relation");let g,h,f="";r.arrowMarkerAbsolute&&(f=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,f=f.replace(/\(/g,"\\("),f=f.replace(/\)/g,"\\)")),1==a.relation.lineType&&c.attr("class","relation dashed-line"),10==a.relation.lineType&&c.attr("class","relation dotted-line"),"none"!==a.relation.type1&&c.attr("marker-start","url("+f+"#"+d(a.relation.type1)+"Start)"),"none"!==a.relation.type2&&c.attr("marker-end","url("+f+"#"+d(a.relation.type2)+"End)");const x=e.points.length;let u,y,b,m,k=o.u.calcLabelPosition(e.points);if(g=k.x,h=k.y,x%2!=0&&x>1){let t=o.u.calcCardinalityPosition("none"!==a.relation.type1,e.points,e.points[0]),r=o.u.calcCardinalityPosition("none"!==a.relation.type2,e.points,e.points[x-1]);o.l.debug("cardinality_1_point "+JSON.stringify(t)),o.l.debug("cardinality_2_point "+JSON.stringify(r)),u=t.x,y=t.y,b=r.x,m=r.y}if(void 0!==a.title){const e=t.append("g").attr("class","classLabel"),i=e.append("text").attr("class","label").attr("x",g).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(a.title);window.label=i;const n=i.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",n.x-r.padding/2).attr("y",n.y-r.padding/2).attr("width",n.width+r.padding).attr("height",n.height+r.padding)}if(o.l.info("Rendering relation "+JSON.stringify(a)),void 0!==a.relationTitle1&&"none"!==a.relationTitle1){t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",y).attr("fill","black").attr("font-size","6").text(a.relationTitle1)}if(void 0!==a.relationTitle2&&"none"!==a.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(a.relationTitle2)}s++},h=function(t,e,a,r){o.l.debug("Rendering note ",e,a);const i=e.id,n={id:i,text:e.text,width:0,height:0},d=t.append("g").attr("id",i).attr("class","classGroup");let s=d.append("text").attr("y",a.textHeight+a.padding).attr("x",0);const l=JSON.parse(`"${e.text}"`).split("\n");l.forEach((function(t){o.l.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",a.textHeight)}));const p=d.node().getBBox(),c=d.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",p.width+2*a.padding).attr("height",p.height+l.length*a.textHeight+a.padding+.5*a.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(c-t.getBBox().width)/2)})),n.width=c,n.height=p.height+l.length*a.textHeight+a.padding+.5*a.dividerMargin,n};let f={};const x=function(t){const e=Object.entries(f).find((e=>e[1].label===t));if(e)return e[0]},u={draw:function(t,e,a,r){const s=(0,o.c)().class;f={},o.l.info("Rendering diagram "+t);const l=(0,o.c)().securityLevel;let p;"sandbox"===l&&(p=(0,i.Ys)("#i"+e));const u="sandbox"===l?(0,i.Ys)(p.nodes()[0].contentDocument.body):(0,i.Ys)("body"),y=u.select(`[id='${e}']`);var b;(b=y).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"),b.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"),b.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"),b.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"),b.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"),b.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"),b.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"),b.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 m=new d.k({multigraph:!0});m.setGraph({isMultiGraph:!0}),m.setDefaultEdgeLabel((function(){return{}}));const k=r.db.getClasses(),w=Object.keys(k);for(const i of w){const t=k[i],e=c(y,t,s,r);f[e.id]=e,m.setNode(e.id,e),o.l.info("Org height: "+e.height)}r.db.getRelations().forEach((function(t){o.l.info("tjoho"+x(t.id1)+x(t.id2)+JSON.stringify(t)),m.setEdge(x(t.id1),x(t.id2),{relation:t},t.title||"DEFAULT")}));r.db.getNotes().forEach((function(t){o.l.debug(`Adding note: ${JSON.stringify(t)}`);const e=h(y,t,s,r);f[e.id]=e,m.setNode(e.id,e),t.class&&t.class in k&&m.setEdge(t.id,x(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),(0,n.bK)(m),m.nodes().forEach((function(t){void 0!==t&&void 0!==m.node(t)&&(o.l.debug("Node "+t+": "+JSON.stringify(m.node(t))),u.select("#"+(r.db.lookUpDomId(t)||t)).attr("transform","translate("+(m.node(t).x-m.node(t).width/2)+","+(m.node(t).y-m.node(t).height/2)+" )"))})),m.edges().forEach((function(t){void 0!==t&&void 0!==m.edge(t)&&(o.l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(m.edge(t))),g(y,m.edge(t),m.edge(t).relation,s,r))}));const L=y.node().getBBox(),v=L.width+40,E=L.height+40;(0,o.i)(y,E,v,s.useMaxWidth);const M=`${L.x-20} ${L.y-20} ${v} ${E}`;o.l.debug(`viewBox ${M}`),y.attr("viewBox",M)}},y={parser:r.p,db:r.d,renderer:u,styles:r.s,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/109.d822e2a0.js b/assets/js/109.d822e2a0.js deleted file mode 100644 index d62d40d..0000000 --- a/assets/js/109.d822e2a0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[109],{109:(t,e,a)=>{a.d(e,{diagram:()=>y});var r=a(4706),i=a(4218),n=a(1644),d=a(5625),o=a(5322);a(7484),a(7967),a(7856);let s=0;const l=function(t){let e=t.id;return t.type&&(e+="<"+(0,o.v)(t.type)+">"),e},p=function(t,e,a,r){const{displayText:i,cssStyle:n}=e.getDisplayDetails(),d=t.append("tspan").attr("x",r.padding).text(i);""!==n&&d.attr("style",e.cssStyle),a||d.attr("dy",r.textHeight)},c=function(t,e,a,r){o.l.debug("Rendering class ",e,a);const i=e.id,n={id:i,label:e.id,width:0,height:0},d=t.append("g").attr("id",r.db.lookUpDomId(i)).attr("class","classGroup");let s;s=e.link?d.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",a.textHeight+a.padding).attr("x",0):d.append("text").attr("y",a.textHeight+a.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",a.textHeight),c=!1}));let g=l(e);const h=s.append("tspan").text(g).attr("class","title");c||h.attr("dy",a.textHeight);const f=s.node().getBBox().height;let x,u,y;if(e.members.length>0){x=d.append("line").attr("x1",0).attr("y1",a.padding+f+a.dividerMargin/2).attr("y2",a.padding+f+a.dividerMargin/2);const t=d.append("text").attr("x",a.padding).attr("y",f+a.dividerMargin+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(e){p(t,e,c,a),c=!1})),u=t.node().getBBox()}if(e.methods.length>0){y=d.append("line").attr("x1",0).attr("y1",a.padding+f+a.dividerMargin+u.height).attr("y2",a.padding+f+a.dividerMargin+u.height);const t=d.append("text").attr("x",a.padding).attr("y",f+2*a.dividerMargin+u.height+a.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(e){p(t,e,c,a),c=!1}))}const b=d.node().getBBox();var m=" ";e.cssClasses.length>0&&(m+=e.cssClasses.join(" "));const k=d.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",b.width+2*a.padding).attr("height",b.height+a.padding+.5*a.dividerMargin).attr("class",m).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(k-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),x&&x.attr("x2",k),y&&y.attr("x2",k),n.width=k,n.height=b.height+a.padding+.5*a.dividerMargin,n},g=function(t,e,a,r,n){const d=function(t){switch(t){case n.db.relationType.AGGREGATION:return"aggregation";case n.db.relationType.EXTENSION:return"extension";case n.db.relationType.COMPOSITION:return"composition";case n.db.relationType.DEPENDENCY:return"dependency";case n.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const l=e.points,p=(0,i.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(i.$0Z),c=t.append("path").attr("d",p(l)).attr("id","edge"+s).attr("class","relation");let g,h,f="";r.arrowMarkerAbsolute&&(f=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,f=f.replace(/\(/g,"\\("),f=f.replace(/\)/g,"\\)")),1==a.relation.lineType&&c.attr("class","relation dashed-line"),10==a.relation.lineType&&c.attr("class","relation dotted-line"),"none"!==a.relation.type1&&c.attr("marker-start","url("+f+"#"+d(a.relation.type1)+"Start)"),"none"!==a.relation.type2&&c.attr("marker-end","url("+f+"#"+d(a.relation.type2)+"End)");const x=e.points.length;let u,y,b,m,k=o.u.calcLabelPosition(e.points);if(g=k.x,h=k.y,x%2!=0&&x>1){let t=o.u.calcCardinalityPosition("none"!==a.relation.type1,e.points,e.points[0]),r=o.u.calcCardinalityPosition("none"!==a.relation.type2,e.points,e.points[x-1]);o.l.debug("cardinality_1_point "+JSON.stringify(t)),o.l.debug("cardinality_2_point "+JSON.stringify(r)),u=t.x,y=t.y,b=r.x,m=r.y}if(void 0!==a.title){const e=t.append("g").attr("class","classLabel"),i=e.append("text").attr("class","label").attr("x",g).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(a.title);window.label=i;const n=i.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",n.x-r.padding/2).attr("y",n.y-r.padding/2).attr("width",n.width+r.padding).attr("height",n.height+r.padding)}if(o.l.info("Rendering relation "+JSON.stringify(a)),void 0!==a.relationTitle1&&"none"!==a.relationTitle1){t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",y).attr("fill","black").attr("font-size","6").text(a.relationTitle1)}if(void 0!==a.relationTitle2&&"none"!==a.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(a.relationTitle2)}s++},h=function(t,e,a,r){o.l.debug("Rendering note ",e,a);const i=e.id,n={id:i,text:e.text,width:0,height:0},d=t.append("g").attr("id",i).attr("class","classGroup");let s=d.append("text").attr("y",a.textHeight+a.padding).attr("x",0);const l=JSON.parse(`"${e.text}"`).split("\n");l.forEach((function(t){o.l.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",a.textHeight)}));const p=d.node().getBBox(),c=d.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",p.width+2*a.padding).attr("height",p.height+l.length*a.textHeight+a.padding+.5*a.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(c-t.getBBox().width)/2)})),n.width=c,n.height=p.height+l.length*a.textHeight+a.padding+.5*a.dividerMargin,n};let f={};const x=function(t){const e=Object.entries(f).find((e=>e[1].label===t));if(e)return e[0]},u={draw:function(t,e,a,r){const s=(0,o.c)().class;f={},o.l.info("Rendering diagram "+t);const l=(0,o.c)().securityLevel;let p;"sandbox"===l&&(p=(0,i.Ys)("#i"+e));const u="sandbox"===l?(0,i.Ys)(p.nodes()[0].contentDocument.body):(0,i.Ys)("body"),y=u.select(`[id='${e}']`);var b;(b=y).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"),b.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"),b.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"),b.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"),b.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"),b.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"),b.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"),b.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 m=new d.k({multigraph:!0});m.setGraph({isMultiGraph:!0}),m.setDefaultEdgeLabel((function(){return{}}));const k=r.db.getClasses(),w=Object.keys(k);for(const i of w){const t=k[i],e=c(y,t,s,r);f[e.id]=e,m.setNode(e.id,e),o.l.info("Org height: "+e.height)}r.db.getRelations().forEach((function(t){o.l.info("tjoho"+x(t.id1)+x(t.id2)+JSON.stringify(t)),m.setEdge(x(t.id1),x(t.id2),{relation:t},t.title||"DEFAULT")}));r.db.getNotes().forEach((function(t){o.l.debug(`Adding note: ${JSON.stringify(t)}`);const e=h(y,t,s,r);f[e.id]=e,m.setNode(e.id,e),t.class&&t.class in k&&m.setEdge(t.id,x(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),(0,n.bK)(m),m.nodes().forEach((function(t){void 0!==t&&void 0!==m.node(t)&&(o.l.debug("Node "+t+": "+JSON.stringify(m.node(t))),u.select("#"+(r.db.lookUpDomId(t)||t)).attr("transform","translate("+(m.node(t).x-m.node(t).width/2)+","+(m.node(t).y-m.node(t).height/2)+" )"))})),m.edges().forEach((function(t){void 0!==t&&void 0!==m.edge(t)&&(o.l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(m.edge(t))),g(y,m.edge(t),m.edge(t).relation,s,r))}));const L=y.node().getBBox(),v=L.width+40,E=L.height+40;(0,o.i)(y,E,v,s.useMaxWidth);const M=`${L.x-20} ${L.y-20} ${v} ${E}`;o.l.debug(`viewBox ${M}`),y.attr("viewBox",M)}},y={parser:r.p,db:r.d,renderer:u,styles:r.s,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,r.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/130.9adcef89.js b/assets/js/130.9adcef89.js deleted file mode 100644 index ad4450a..0000000 --- a/assets/js/130.9adcef89.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[130],{1460:(e,t,s)=>{s.d(t,{Z:()=>b});var r=s(7294),a=s(6010),n=s(8207),l=s(7524),i=s(9960),o=s(5999),c=s(6550),m=s(8596);function d(e){const{pathname:t}=(0,c.TH)();return(0,r.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=s(5893);function g(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,a.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,a.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,a.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var p=s(3102);function x(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function f(e){return(0,h.jsx)(p.Zo,{component:x,props:e})}function j(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,h.jsx)(f,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function b(e){const{sidebar:t,toc:s,children:r,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(n.Z,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(j,{sidebar:t}),(0,h.jsx)("main",{className:(0,a.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"https://schema.org/Blog",children:r}),s&&(0,h.jsx)("div",{className:"col col--2",children:s})]})})})}},390:(e,t,s)=>{s.d(t,{Z:()=>L});s(7294);var r=s(6010),a=s(9460),n=s(4996),l=s(5893);function i(e){let{children:t,className:s}=e;const{frontMatter:r,assets:i,metadata:{description:o}}=(0,a.C)(),{withBaseUrl:c}=(0,n.C)(),m=i.image??r.image,d=r.keywords??[];return(0,l.jsxs)("article",{className:s,itemProp:"blogPost",itemScope:!0,itemType:"https://schema.org/BlogPosting",children:[o&&(0,l.jsx)("meta",{itemProp:"description",content:o}),m&&(0,l.jsx)("link",{itemProp:"image",href:c(m,{absolute:!0})}),d.length>0&&(0,l.jsx)("meta",{itemProp:"keywords",content:d.join(",")}),t]})}var o=s(9960);const c={title:"title_f1Hy"};function m(e){let{className:t}=e;const{metadata:s,isBlogPostPage:n}=(0,a.C)(),{permalink:i,title:m}=s,d=n?"h1":"h2";return(0,l.jsx)(d,{className:(0,r.Z)(c.title,t),itemProp:"headline",children:n?m:(0,l.jsx)(o.Z,{itemProp:"url",to:i,children:m})})}var d=s(5999),u=s(8824);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const s=function(){const{selectMessage:e}=(0,u.c)();return t=>{const s=Math.ceil(t);return e(s,(0,d.I)({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:s}))}}();return(0,l.jsx)(l.Fragment,{children:s(t)})}function p(e){let{date:t,formattedDate:s}=e;return(0,l.jsx)("time",{dateTime:t,itemProp:"datePublished",children:s})}function x(){return(0,l.jsx)(l.Fragment,{children:" \xb7 "})}function f(e){let{className:t}=e;const{metadata:s}=(0,a.C)(),{date:n,formattedDate:i,readingTime:o}=s;return(0,l.jsxs)("div",{className:(0,r.Z)(h.container,"margin-vert--md",t),children:[(0,l.jsx)(p,{date:n,formattedDate:i}),void 0!==o&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(g,{readingTime:o})]})]})}function j(e){return e.href?(0,l.jsx)(o.Z,{...e}):(0,l.jsx)(l.Fragment,{children:e.children})}function b(e){let{author:t,className:s}=e;const{name:a,title:n,url:i,imageURL:o,email:c}=t,m=i||c&&`mailto:${c}`||void 0;return(0,l.jsxs)("div",{className:(0,r.Z)("avatar margin-bottom--sm",s),children:[o&&(0,l.jsx)(j,{href:m,className:"avatar__photo-link",children:(0,l.jsx)("img",{className:"avatar__photo",src:o,alt:a,itemProp:"image"})}),a&&(0,l.jsxs)("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person",children:[(0,l.jsx)("div",{className:"avatar__name",children:(0,l.jsx)(j,{href:m,itemProp:"url",children:(0,l.jsx)("span",{itemProp:"name",children:a})})}),n&&(0,l.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function P(e){let{className:t}=e;const{metadata:{authors:s},assets:n}=(0,a.C)();if(0===s.length)return null;const i=s.every((e=>{let{name:t}=e;return!t}));return(0,l.jsx)("div",{className:(0,r.Z)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:s.map(((e,t)=>(0,l.jsx)("div",{className:(0,r.Z)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,l.jsx)(b,{author:{...e,imageURL:n.authorsImageUrls[t]??e.imageURL}})},t)))})}function N(){return(0,l.jsxs)("header",{children:[(0,l.jsx)(m,{}),(0,l.jsx)(f,{}),(0,l.jsx)(P,{})]})}var _=s(8780),k=s(7779);function Z(e){let{children:t,className:s}=e;const{isBlogPostPage:n}=(0,a.C)();return(0,l.jsx)("div",{id:n?_.blogPostContainerID:void 0,className:(0,r.Z)("markdown",s),itemProp:"articleBody",children:(0,l.jsx)(k.Z,{children:t})})}var I=s(4881),C=s(1526);function w(){return(0,l.jsx)("b",{children:(0,l.jsx)(d.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function T(e){const{blogPostTitle:t,...s}=e;return(0,l.jsx)(o.Z,{"aria-label":(0,d.I)({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}),...s,children:(0,l.jsx)(w,{})})}const y={blogPostFooterDetailsFull:"blogPostFooterDetailsFull_mRVl"};function F(){const{metadata:e,isBlogPostPage:t}=(0,a.C)(),{tags:s,title:n,editUrl:i,hasTruncateMarker:o}=e,c=!t&&o,m=s.length>0;return m||c||i?(0,l.jsxs)("footer",{className:(0,r.Z)("row docusaurus-mt-lg",t&&y.blogPostFooterDetailsFull),children:[m&&(0,l.jsx)("div",{className:(0,r.Z)("col",{"col--9":c}),children:(0,l.jsx)(C.Z,{tags:s})}),t&&i&&(0,l.jsx)("div",{className:"col margin-top--sm",children:(0,l.jsx)(I.Z,{editUrl:i})}),c&&(0,l.jsx)("div",{className:(0,r.Z)("col text--right",{"col--3":m}),children:(0,l.jsx)(T,{blogPostTitle:n,to:e.permalink})})]}):null}function L(e){let{children:t,className:s}=e;const n=function(){const{isBlogPostPage:e}=(0,a.C)();return e?void 0:"margin-bottom--xl"}();return(0,l.jsxs)(i,{className:(0,r.Z)(n,s),children:[(0,l.jsx)(N,{}),(0,l.jsx)(Z,{children:t}),(0,l.jsx)(F,{})]})}},9460:(e,t,s)=>{s.d(t,{C:()=>o,n:()=>i});var r=s(7294),a=s(902),n=s(5893);const l=r.createContext(null);function i(e){let{children:t,content:s,isBlogPostPage:a=!1}=e;const i=function(e){let{content:t,isBlogPostPage:s}=e;return(0,r.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:s})),[t,s])}({content:s,isBlogPostPage:a});return(0,n.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,r.useContext)(l);if(null===e)throw new a.i6("BlogPostProvider");return e}},8824:(e,t,s)=>{s.d(t,{c:()=>c});var r=s(7294),a=s(2263);const n=["zero","one","two","few","many","other"];function l(e){return n.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(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`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,s)=>function(e,t,s){const r=e.split("|");if(1===r.length)return r[0];r.length>s.pluralForms.length&&console.error(`For locale=${s.locale}, a maximum of ${s.pluralForms.length} plural forms are expected (${s.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=s.select(t),n=s.pluralForms.indexOf(a);return r[Math.min(n,r.length-1)]}(s,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/130.aaabb811.js b/assets/js/130.aaabb811.js new file mode 100644 index 0000000..01c4402 --- /dev/null +++ b/assets/js/130.aaabb811.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[130],{61460:(e,t,s)=>{s.d(t,{Z:()=>b});var r=s(67294),a=s(86010),n=s(58207),l=s(87524),i=s(39960),o=s(95999),c=s(16550),m=s(48596);function d(e){const{pathname:t}=(0,c.TH)();return(0,r.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=s(85893);function g(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,a.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,a.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,a.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var p=s(13102);function x(e){let{sidebar:t}=e;const s=d(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function f(e){return(0,h.jsx)(p.Zo,{component:x,props:e})}function j(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,h.jsx)(f,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function b(e){const{sidebar:t,toc:s,children:r,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(n.Z,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(j,{sidebar:t}),(0,h.jsx)("main",{className:(0,a.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"https://schema.org/Blog",children:r}),s&&(0,h.jsx)("div",{className:"col col--2",children:s})]})})})}},30390:(e,t,s)=>{s.d(t,{Z:()=>L});s(67294);var r=s(86010),a=s(9460),n=s(44996),l=s(85893);function i(e){let{children:t,className:s}=e;const{frontMatter:r,assets:i,metadata:{description:o}}=(0,a.C)(),{withBaseUrl:c}=(0,n.C)(),m=i.image??r.image,d=r.keywords??[];return(0,l.jsxs)("article",{className:s,itemProp:"blogPost",itemScope:!0,itemType:"https://schema.org/BlogPosting",children:[o&&(0,l.jsx)("meta",{itemProp:"description",content:o}),m&&(0,l.jsx)("link",{itemProp:"image",href:c(m,{absolute:!0})}),d.length>0&&(0,l.jsx)("meta",{itemProp:"keywords",content:d.join(",")}),t]})}var o=s(39960);const c={title:"title_f1Hy"};function m(e){let{className:t}=e;const{metadata:s,isBlogPostPage:n}=(0,a.C)(),{permalink:i,title:m}=s,d=n?"h1":"h2";return(0,l.jsx)(d,{className:(0,r.Z)(c.title,t),itemProp:"headline",children:n?m:(0,l.jsx)(o.Z,{itemProp:"url",to:i,children:m})})}var d=s(95999),u=s(88824);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const s=function(){const{selectMessage:e}=(0,u.c)();return t=>{const s=Math.ceil(t);return e(s,(0,d.I)({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:s}))}}();return(0,l.jsx)(l.Fragment,{children:s(t)})}function p(e){let{date:t,formattedDate:s}=e;return(0,l.jsx)("time",{dateTime:t,itemProp:"datePublished",children:s})}function x(){return(0,l.jsx)(l.Fragment,{children:" \xb7 "})}function f(e){let{className:t}=e;const{metadata:s}=(0,a.C)(),{date:n,formattedDate:i,readingTime:o}=s;return(0,l.jsxs)("div",{className:(0,r.Z)(h.container,"margin-vert--md",t),children:[(0,l.jsx)(p,{date:n,formattedDate:i}),void 0!==o&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{}),(0,l.jsx)(g,{readingTime:o})]})]})}function j(e){return e.href?(0,l.jsx)(o.Z,{...e}):(0,l.jsx)(l.Fragment,{children:e.children})}function b(e){let{author:t,className:s}=e;const{name:a,title:n,url:i,imageURL:o,email:c}=t,m=i||c&&`mailto:${c}`||void 0;return(0,l.jsxs)("div",{className:(0,r.Z)("avatar margin-bottom--sm",s),children:[o&&(0,l.jsx)(j,{href:m,className:"avatar__photo-link",children:(0,l.jsx)("img",{className:"avatar__photo",src:o,alt:a,itemProp:"image"})}),a&&(0,l.jsxs)("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person",children:[(0,l.jsx)("div",{className:"avatar__name",children:(0,l.jsx)(j,{href:m,itemProp:"url",children:(0,l.jsx)("span",{itemProp:"name",children:a})})}),n&&(0,l.jsx)("small",{className:"avatar__subtitle",itemProp:"description",children:n})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function P(e){let{className:t}=e;const{metadata:{authors:s},assets:n}=(0,a.C)();if(0===s.length)return null;const i=s.every((e=>{let{name:t}=e;return!t}));return(0,l.jsx)("div",{className:(0,r.Z)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:s.map(((e,t)=>(0,l.jsx)("div",{className:(0,r.Z)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,l.jsx)(b,{author:{...e,imageURL:n.authorsImageUrls[t]??e.imageURL}})},t)))})}function N(){return(0,l.jsxs)("header",{children:[(0,l.jsx)(m,{}),(0,l.jsx)(f,{}),(0,l.jsx)(P,{})]})}var _=s(18780),k=s(27779);function Z(e){let{children:t,className:s}=e;const{isBlogPostPage:n}=(0,a.C)();return(0,l.jsx)("div",{id:n?_.blogPostContainerID:void 0,className:(0,r.Z)("markdown",s),itemProp:"articleBody",children:(0,l.jsx)(k.Z,{children:t})})}var I=s(84881),C=s(71526);function w(){return(0,l.jsx)("b",{children:(0,l.jsx)(d.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function T(e){const{blogPostTitle:t,...s}=e;return(0,l.jsx)(o.Z,{"aria-label":(0,d.I)({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}),...s,children:(0,l.jsx)(w,{})})}const y={blogPostFooterDetailsFull:"blogPostFooterDetailsFull_mRVl"};function F(){const{metadata:e,isBlogPostPage:t}=(0,a.C)(),{tags:s,title:n,editUrl:i,hasTruncateMarker:o}=e,c=!t&&o,m=s.length>0;return m||c||i?(0,l.jsxs)("footer",{className:(0,r.Z)("row docusaurus-mt-lg",t&&y.blogPostFooterDetailsFull),children:[m&&(0,l.jsx)("div",{className:(0,r.Z)("col",{"col--9":c}),children:(0,l.jsx)(C.Z,{tags:s})}),t&&i&&(0,l.jsx)("div",{className:"col margin-top--sm",children:(0,l.jsx)(I.Z,{editUrl:i})}),c&&(0,l.jsx)("div",{className:(0,r.Z)("col text--right",{"col--3":m}),children:(0,l.jsx)(T,{blogPostTitle:n,to:e.permalink})})]}):null}function L(e){let{children:t,className:s}=e;const n=function(){const{isBlogPostPage:e}=(0,a.C)();return e?void 0:"margin-bottom--xl"}();return(0,l.jsxs)(i,{className:(0,r.Z)(n,s),children:[(0,l.jsx)(N,{}),(0,l.jsx)(Z,{children:t}),(0,l.jsx)(F,{})]})}},9460:(e,t,s)=>{s.d(t,{C:()=>o,n:()=>i});var r=s(67294),a=s(902),n=s(85893);const l=r.createContext(null);function i(e){let{children:t,content:s,isBlogPostPage:a=!1}=e;const i=function(e){let{content:t,isBlogPostPage:s}=e;return(0,r.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:s})),[t,s])}({content:s,isBlogPostPage:a});return(0,n.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,r.useContext)(l);if(null===e)throw new a.i6("BlogPostProvider");return e}},88824:(e,t,s)=>{s.d(t,{c:()=>c});var r=s(67294),a=s(52263);const n=["zero","one","two","few","many","other"];function l(e){return n.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(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`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,s)=>function(e,t,s){const r=e.split("|");if(1===r.length)return r[0];r.length>s.pluralForms.length&&console.error(`For locale=${s.locale}, a maximum of ${s.pluralForms.length} plural forms are expected (${s.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=s.select(t),n=s.pluralForms.indexOf(a);return r[Math.min(n,r.length-1)]}(s,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/132.6eeb92f1.js b/assets/js/132.6eeb92f1.js new file mode 100644 index 0000000..63d8c8d --- /dev/null +++ b/assets/js/132.6eeb92f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[132],{70132:(t,e,n)=>{n.d(e,{diagram:()=>et});var a=n(85322),i=n(64218),s=n(43317),r=n(17967),l=(n(27484),n(27856),function(){var t=function(t,e,n,a){for(n=n||{},a=t.length;a--;n[t[a]]=e);return n},e=[1,24],n=[1,25],a=[1,26],i=[1,27],s=[1,28],r=[1,63],l=[1,64],o=[1,65],h=[1,66],d=[1,67],u=[1,68],p=[1,69],y=[1,29],f=[1,30],b=[1,31],g=[1,32],x=[1,33],_=[1,34],m=[1,35],E=[1,36],A=[1,37],S=[1,38],C=[1,39],k=[1,40],O=[1,41],v=[1,42],T=[1,43],w=[1,44],R=[1,45],D=[1,46],N=[1,47],P=[1,48],M=[1,50],j=[1,51],B=[1,52],Y=[1,53],L=[1,54],I=[1,55],U=[1,56],F=[1,57],X=[1,58],z=[1,59],W=[1,60],Q=[14,42],$=[14,34,36,37,38,39,40,41,42,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,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,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,70,71,72,73,74],V=[1,82],G=[1,83],H=[1,84],K=[1,85],J=[12,14,42],Z=[12,14,33,42],tt=[12,14,33,42,76,77,79,80],et=[12,33],nt=[34,36,37,38,39,40,41,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,70,71,72,73,74],at={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(t,e,n,a,i,s,r){var l=s.length-1;switch(i){case 3:a.setDirection("TB");break;case 4:a.setDirection("BT");break;case 5:a.setDirection("RL");break;case 6:a.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:a.setC4Type(s[l-3]);break;case 19:a.setTitle(s[l].substring(6)),this.$=s[l].substring(6);break;case 20:a.setAccDescription(s[l].substring(15)),this.$=s[l].substring(15);break;case 21:this.$=s[l].trim(),a.setTitle(this.$);break;case 22:case 23:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 28:case 29:s[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 30:a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 31:s[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...s[l]),this.$=s[l];break;case 32:a.addDeploymentNode("node",...s[l]),this.$=s[l];break;case 33:a.addDeploymentNode("nodeL",...s[l]),this.$=s[l];break;case 34:a.addDeploymentNode("nodeR",...s[l]),this.$=s[l];break;case 35:a.popBoundaryParseStack();break;case 39:a.addPersonOrSystem("person",...s[l]),this.$=s[l];break;case 40:a.addPersonOrSystem("external_person",...s[l]),this.$=s[l];break;case 41:a.addPersonOrSystem("system",...s[l]),this.$=s[l];break;case 42:a.addPersonOrSystem("system_db",...s[l]),this.$=s[l];break;case 43:a.addPersonOrSystem("system_queue",...s[l]),this.$=s[l];break;case 44:a.addPersonOrSystem("external_system",...s[l]),this.$=s[l];break;case 45:a.addPersonOrSystem("external_system_db",...s[l]),this.$=s[l];break;case 46:a.addPersonOrSystem("external_system_queue",...s[l]),this.$=s[l];break;case 47:a.addContainer("container",...s[l]),this.$=s[l];break;case 48:a.addContainer("container_db",...s[l]),this.$=s[l];break;case 49:a.addContainer("container_queue",...s[l]),this.$=s[l];break;case 50:a.addContainer("external_container",...s[l]),this.$=s[l];break;case 51:a.addContainer("external_container_db",...s[l]),this.$=s[l];break;case 52:a.addContainer("external_container_queue",...s[l]),this.$=s[l];break;case 53:a.addComponent("component",...s[l]),this.$=s[l];break;case 54:a.addComponent("component_db",...s[l]),this.$=s[l];break;case 55:a.addComponent("component_queue",...s[l]),this.$=s[l];break;case 56:a.addComponent("external_component",...s[l]),this.$=s[l];break;case 57:a.addComponent("external_component_db",...s[l]),this.$=s[l];break;case 58:a.addComponent("external_component_queue",...s[l]),this.$=s[l];break;case 60:a.addRel("rel",...s[l]),this.$=s[l];break;case 61:a.addRel("birel",...s[l]),this.$=s[l];break;case 62:a.addRel("rel_u",...s[l]),this.$=s[l];break;case 63:a.addRel("rel_d",...s[l]),this.$=s[l];break;case 64:a.addRel("rel_l",...s[l]),this.$=s[l];break;case 65:a.addRel("rel_r",...s[l]),this.$=s[l];break;case 66:a.addRel("rel_b",...s[l]),this.$=s[l];break;case 67:s[l].splice(0,1),a.addRel("rel",...s[l]),this.$=s[l];break;case 68:a.updateElStyle("update_el_style",...s[l]),this.$=s[l];break;case 69:a.updateRelStyle("update_rel_style",...s[l]),this.$=s[l];break;case 70:a.updateLayoutConfig("update_layout_config",...s[l]),this.$=s[l];break;case 71:this.$=[s[l]];break;case 72:s[l].unshift(s[l-1]),this.$=s[l];break;case 73:case 75:this.$=s[l].trim();break;case 74:let t={};t[s[l-1].trim()]=s[l].trim(),this.$=t;break;case 76:this.$=""}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:70,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:71,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:72,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:73,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{14:[1,74]},t(Q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:r,36:l,37:o,38:h,39:d,40:u,41:p,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W}),t(Q,[2,14]),t($,[2,16],{12:[1,76]}),t(Q,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:V,77:G,79:H,80:K},{35:86,75:81,76:V,77:G,79:H,80:K},{35:87,75:81,76:V,77:G,79:H,80:K},{35:88,75:81,76:V,77:G,79:H,80:K},{35:89,75:81,76:V,77:G,79:H,80:K},{35:90,75:81,76:V,77:G,79:H,80:K},{35:91,75:81,76:V,77:G,79:H,80:K},{35:92,75:81,76:V,77:G,79:H,80:K},{35:93,75:81,76:V,77:G,79:H,80:K},{35:94,75:81,76:V,77:G,79:H,80:K},{35:95,75:81,76:V,77:G,79:H,80:K},{35:96,75:81,76:V,77:G,79:H,80:K},{35:97,75:81,76:V,77:G,79:H,80:K},{35:98,75:81,76:V,77:G,79:H,80:K},{35:99,75:81,76:V,77:G,79:H,80:K},{35:100,75:81,76:V,77:G,79:H,80:K},{35:101,75:81,76:V,77:G,79:H,80:K},{35:102,75:81,76:V,77:G,79:H,80:K},{35:103,75:81,76:V,77:G,79:H,80:K},{35:104,75:81,76:V,77:G,79:H,80:K},t(J,[2,59]),{35:105,75:81,76:V,77:G,79:H,80:K},{35:106,75:81,76:V,77:G,79:H,80:K},{35:107,75:81,76:V,77:G,79:H,80:K},{35:108,75:81,76:V,77:G,79:H,80:K},{35:109,75:81,76:V,77:G,79:H,80:K},{35:110,75:81,76:V,77:G,79:H,80:K},{35:111,75:81,76:V,77:G,79:H,80:K},{35:112,75:81,76:V,77:G,79:H,80:K},{35:113,75:81,76:V,77:G,79:H,80:K},{35:114,75:81,76:V,77:G,79:H,80:K},{35:115,75:81,76:V,77:G,79:H,80:K},{20:116,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{12:[1,118],33:[1,117]},{35:119,75:81,76:V,77:G,79:H,80:K},{35:120,75:81,76:V,77:G,79:H,80:K},{35:121,75:81,76:V,77:G,79:H,80:K},{35:122,75:81,76:V,77:G,79:H,80:K},{35:123,75:81,76:V,77:G,79:H,80:K},{35:124,75:81,76:V,77:G,79:H,80:K},{35:125,75:81,76:V,77:G,79:H,80:K},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Q,[2,15]),t($,[2,17],{21:22,19:130,22:e,23:n,24:a,26:i,28:s}),t(Q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:n,24:a,26:i,28:s,34:r,36:l,37:o,38:h,39:d,40:u,41:p,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W}),t(q,[2,21]),t(q,[2,22]),t(J,[2,39]),t(Z,[2,71],{75:81,35:132,76:V,77:G,79:H,80:K}),t(tt,[2,73]),{78:[1,133]},t(tt,[2,75]),t(tt,[2,76]),t(J,[2,40]),t(J,[2,41]),t(J,[2,42]),t(J,[2,43]),t(J,[2,44]),t(J,[2,45]),t(J,[2,46]),t(J,[2,47]),t(J,[2,48]),t(J,[2,49]),t(J,[2,50]),t(J,[2,51]),t(J,[2,52]),t(J,[2,53]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),t(J,[2,57]),t(J,[2,58]),t(J,[2,60]),t(J,[2,61]),t(J,[2,62]),t(J,[2,63]),t(J,[2,64]),t(J,[2,65]),t(J,[2,66]),t(J,[2,67]),t(J,[2,68]),t(J,[2,69]),t(J,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(et,[2,28]),t(et,[2,29]),t(et,[2,30]),t(et,[2,31]),t(et,[2,32]),t(et,[2,33]),t(et,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t($,[2,18]),t(Q,[2,38]),t(Z,[2,72]),t(tt,[2,74]),t(J,[2,24]),t(J,[2,35]),t(nt,[2,25]),t(nt,[2,26],{12:[1,138]}),t(nt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},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],a=[],i=[null],s=[],r=this.table,l="",o=0,c=0,h=s.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var y=d.yylloc;s.push(y);var f=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,g,x,_,m,E,A,S,C,k={};;){if(g=n[n.length-1],this.defaultActions[g]?x=this.defaultActions[g]:(null==b&&(C=void 0,"number"!=typeof(C=a.pop()||d.lex()||1)&&(C instanceof Array&&(C=(a=C).pop()),C=e.symbols_[C]||C),b=C),x=r[g]&&r[g][b]),void 0===x||!x.length||!x[0]){var O="";for(m in S=[],r[g])this.terminals_[m]&&m>2&&S.push("'"+this.terminals_[m]+"'");O=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(O,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:y,expected:S})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+b);switch(x[0]){case 1:n.push(b),i.push(d.yytext),s.push(d.yylloc),n.push(x[1]),b=null,c=d.yyleng,l=d.yytext,o=d.yylineno,y=d.yylloc;break;case 2:if(E=this.productions_[x[1]][1],k.$=i[i.length-E],k._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},f&&(k._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(_=this.performAction.apply(k,[l,c,o,u.yy,x[1],i,s].concat(h))))return _;E&&(n=n.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),n.push(this.productions_[x[1]][0]),i.push(k.$),s.push(k._$),A=r[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},it={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 a=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===a.length?this.yylloc.first_column:0)+a[a.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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,a,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))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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 s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;se[0].length)){if(e=n,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[a]))&&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,a){switch(n){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\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:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,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,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};function st(){this.yy={}}return at.lexer=it,st.prototype=at,at.Parser=st,new st}());l.parser=l;const o=l;let h=[],d=[""],u="global",p="",y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],f=[],b="",g=!1,x=4,_=2;var m;const E=function(t){return null==t?h:h.filter((e=>e.parentBoundary===t))},A=function(){return g},S={addPersonOrSystem:function(t,e,n,a,i,s,r){if(null===e||null===n)return;let l={};const o=h.find((t=>t.alias===e));if(o&&e===o.alias?l=o:(l.alias=e,h.push(l)),l.label=null==n?{text:""}:{text:n},null==a)l.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.descr={text:a};if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.sprite=i;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.link=r;l.typeC4Shape={text:t},l.parentBoundary=u,l.wrap=A()},addPersonOrSystemBoundary:function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=y.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,y.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=u,s.wrap=A(),p=u,u=t,d.push(p)},addContainer:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=h.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,h.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=A(),o.typeC4Shape={text:t},o.parentBoundary=u},addContainerBoundary:function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=y.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,y.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=u,s.wrap=A(),p=u,u=t,d.push(p)},addComponent:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=h.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,h.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=A(),o.typeC4Shape={text:t},o.parentBoundary=u},addDeploymentNode:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=y.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,y.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.type={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=u,o.wrap=A(),p=u,u=e,d.push(p)},popBoundaryParseStack:function(){u=p,d.pop(),p=d.pop(),d.push(p)},addRel:function(t,e,n,a,i,s,r,l,o){if(null==t||null==e||null==n||null==a)return;let c={};const h=f.find((t=>t.from===e&&t.to===n));if(h?c=h:f.push(c),c.type=t,c.from=e,c.to=n,c.label={text:a},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==s)c.descr={text:""};else if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]={text:e}}else c.descr={text:s};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];c[t]=e}else c.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.link=o;c.wrap=A()},updateElStyle:function(t,e,n,a,i,s,r,l,o,c,d){let u=h.find((t=>t.alias===e));if(void 0!==u||(u=y.find((t=>t.alias===e)),void 0!==u)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];u[t]=e}else u.bgColor=n;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];u[t]=e}else u.fontColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];u[t]=e}else u.borderColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];u[t]=e}else u.shadowing=s;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];u[t]=e}else u.shape=r;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];u[t]=e}else u.sprite=l;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];u[t]=e}else u.techn=o;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];u[t]=e}else u.legendText=c;if(null!=d)if("object"==typeof d){let[t,e]=Object.entries(d)[0];u[t]=e}else u.legendSprite=d}},updateRelStyle:function(t,e,n,a,i,s,r){const l=f.find((t=>t.from===e&&t.to===n));if(void 0!==l){if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.lineColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(s);if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(r)}},updateLayoutConfig:function(t,e,n){let a=x,i=_;if("object"==typeof e){const t=Object.values(e)[0];a=parseInt(t)}else a=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];i=parseInt(t)}else i=parseInt(n);a>=1&&(x=a),i>=1&&(_=i)},autoWrap:A,setWrap:function(t){g=t},getC4ShapeArray:E,getC4Shape:function(t){return h.find((e=>e.alias===t))},getC4ShapeKeys:function(t){return Object.keys(E(t))},getBoundarys:function(t){return null==t?y:y.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return u},getParentBoundaryParse:function(){return p},getRels:function(){return f},getTitle:function(){return b},getC4Type:function(){return m},getC4ShapeInRow:function(){return x},getC4BoundaryInRow:function(){return _},setAccTitle:a.s,getAccTitle:a.g,getAccDescription:a.a,setAccDescription:a.b,getConfig:()=>(0,a.c)().c4,clear:function(){h=[],y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],p="",u="global",d=[""],f=[],d=[""],b="",g=!1,x=4,_=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=(0,a.d)(t,(0,a.c)());b=e},setC4Type:function(t){let e=(0,a.d)(t,(0,a.c)());m=e}},C=function(t,e){return(0,s.d)(t,e)},k=function(t,e,n,a,i,s){const l=t.append("image");l.attr("width",e),l.attr("height",n),l.attr("x",a),l.attr("y",i);let o=s.startsWith("data:image/png;base64")?s:(0,r.Nm)(s);l.attr("xlink:href",o)},O=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),v=function(){function t(t,e,n,a,s,r,l){i(e.append("text").attr("x",n+s/2).attr("y",a+r/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,n,s,r,l,o,c){const{fontSize:h,fontFamily:d,fontWeight:u}=c,p=t.split(a.e.lineBreakRegex);for(let a=0;a>"),e.typeC4Shape.text){case"person":case"external_person":k(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,o)}let u=n[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=l,v(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:l},u),u=n[e.typeC4Shape.text+"Font"](),u.fontColor=l,e.techn&&""!==(null==(a=e.techn)?void 0:a.text)?v(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:l,"font-style":"italic"},u):e.type&&""!==e.type.text&&v(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:l,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&(u=n.personFont(),u.fontColor=l,v(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:l},u)),e.height},R=(t,e,n)=>{const a=t.append("g");let i=0;for(let s of e){let t=s.textColor?s.textColor:"#444444",e=s.lineColor?s.lineColor:"#444444",r=s.offsetX?parseInt(s.offsetX):0,l=s.offsetY?parseInt(s.offsetY):0,o="";if(0===i){let t=a.append("line");t.attr("x1",s.startPoint.x),t.attr("y1",s.startPoint.y),t.attr("x2",s.endPoint.x),t.attr("y2",s.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)"),i=-1}else{let t=a.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",s.startPoint.x).replaceAll("starty",s.startPoint.y).replaceAll("controlx",s.startPoint.x+(s.endPoint.x-s.startPoint.x)/2-(s.endPoint.x-s.startPoint.x)/4).replaceAll("controly",s.startPoint.y+(s.endPoint.y-s.startPoint.y)/2).replaceAll("stopx",s.endPoint.x).replaceAll("stopy",s.endPoint.y)),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)")}let c=n.messageFont();v(n)(s.label.text,a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+l,s.label.width,s.label.height,{fill:t},c),s.techn&&""!==s.techn.text&&(c=n.messageFont(),v(n)("["+s.techn.text+"]",a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+n.messageFontSize+5+l,Math.max(s.label.width,s.techn.width),s.techn.height,{fill:t,"font-style":"italic"},c))}},D=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")},N=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")},P=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")},M=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")},j=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")},B=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")},Y=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")};let L=0,I=0,U=4,F=2;l.yy=S;let X={};class z{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,W(t.db.getConfig())}setData(t,e,n,a){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=a}updateVal(t,e,n,a){void 0===t[e]?t[e]=n:t[e]=a(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,a=this.nextData.starty+2*t.margin,i=a+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>U)&&(e=this.nextData.startx+t.margin+X.nextLinePaddingX,a=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=a+t.height,this.nextData.cnt=1),t.x=e,t.y=a,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",a,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",a,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",i,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},W(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const W=function(t){(0,a.f)(X,t),t.fontFamily&&(X.personFontFamily=X.systemFontFamily=X.messageFontFamily=t.fontFamily),t.fontSize&&(X.personFontSize=X.systemFontSize=X.messageFontSize=t.fontSize),t.fontWeight&&(X.personFontWeight=X.systemFontWeight=X.messageFontWeight=t.fontWeight)},Q=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),$=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight});function q(t,e,n,i,s){if(!e[t].width)if(n)e[t].text=(0,a.w)(e[t].text,s,i),e[t].textLines=e[t].text.split(a.e.lineBreakRegex).length,e[t].width=s,e[t].height=(0,a.j)(e[t].text,i);else{let n=e[t].text.split(a.e.lineBreakRegex);e[t].textLines=n.length;let s=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max((0,a.h)(r,i),e[t].width),s=(0,a.j)(r,i),e[t].height=e[t].height+s}}const V=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=X.c4ShapeMargin-35;let i=e.wrap&&X.wrap,s=$(X);s.fontSize=s.fontSize+2,s.fontWeight="bold",q("label",e,i,s,(0,a.h)(e.label.text,s)),T(t,e,X)},G=function(t,e,n,i){let s=0;for(const r of i){s=0;const i=n[r];let l=Q(X,i.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,i.typeC4Shape.width=(0,a.h)("\xab"+i.typeC4Shape.text+"\xbb",l),i.typeC4Shape.height=l.fontSize+2,i.typeC4Shape.Y=X.c4ShapePadding,s=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=s,s=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=s,s=i.image.Y+i.image.height);let o=i.wrap&&X.wrap,c=X.width-2*X.c4ShapePadding,h=Q(X,i.typeC4Shape.text);if(h.fontSize=h.fontSize+2,h.fontWeight="bold",q("label",i,o,h,c),i.label.Y=s+8,s=i.label.Y+i.label.height,i.type&&""!==i.type.text){i.type.text="["+i.type.text+"]",q("type",i,o,Q(X,i.typeC4Shape.text),c),i.type.Y=s+5,s=i.type.Y+i.type.height}else if(i.techn&&""!==i.techn.text){i.techn.text="["+i.techn.text+"]",q("techn",i,o,Q(X,i.techn.text),c),i.techn.Y=s+5,s=i.techn.Y+i.techn.height}let d=s,u=i.label.width;if(i.descr&&""!==i.descr.text){q("descr",i,o,Q(X,i.typeC4Shape.text),c),i.descr.Y=s+20,s=i.descr.Y+i.descr.height,u=Math.max(i.label.width,i.descr.width),d=s-5*i.descr.textLines}u+=X.c4ShapePadding,i.width=Math.max(i.width||X.width,u,X.width),i.height=Math.max(i.height||X.height,d,X.height),i.margin=i.margin||X.c4ShapeMargin,t.insert(i),w(e,i,X)}t.bumpLastMargin(X.c4ShapeMargin)};class H{constructor(t,e){this.x=t,this.y=e}}let K=function(t,e){let n=t.x,a=t.y,i=e.x,s=e.y,r=n+t.width/2,l=a+t.height/2,o=Math.abs(n-i),c=Math.abs(a-s),h=c/o,d=t.height/t.width,u=null;return a==s&&ni?u=new H(n,l):n==i&&as&&(u=new H(r,a)),n>i&&a=h?new H(n,l+h*t.width/2):new H(r-o/c*t.height/2,a+t.height):n=h?new H(n+t.width,l+h*t.width/2):new H(r+o/c*t.height/2,a+t.height):ns?u=d>=h?new H(n+t.width,l-h*t.width/2):new H(r+t.height/2*o/c,a):n>i&&a>s&&(u=d>=h?new H(n,l-t.width/2*h):new H(r-t.height/2*o/c,a)),u},J=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let a=K(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:a,endPoint:K(e,n)}};function Z(t,e,n,a,i){let s=new z(i);s.data.widthLimit=n.data.widthLimit/Math.min(F,a.length);for(let[r,l]of a.entries()){let a=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=a,a=l.image.Y+l.image.height);let o=l.wrap&&X.wrap,c=$(X);if(c.fontSize=c.fontSize+2,c.fontWeight="bold",q("label",l,o,c,s.data.widthLimit),l.label.Y=a+8,a=l.label.Y+l.label.height,l.type&&""!==l.type.text){l.type.text="["+l.type.text+"]",q("type",l,o,$(X),s.data.widthLimit),l.type.Y=a+5,a=l.type.Y+l.type.height}if(l.descr&&""!==l.descr.text){let t=$(X);t.fontSize=t.fontSize-2,q("descr",l,o,t,s.data.widthLimit),l.descr.Y=a+20,a=l.descr.Y+l.descr.height}if(0==r||r%F==0){let t=n.data.startx+X.diagramMarginX,e=n.data.stopy+X.diagramMarginY+a;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+X.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=l.alias;let h=i.db.getC4ShapeArray(l.alias),d=i.db.getC4ShapeKeys(l.alias);d.length>0&&G(s,t,h,d),e=l.alias;let u=i.db.getBoundarys(e);u.length>0&&Z(t,e,s,u,i),"global"!==l.alias&&V(t,l,s),n.data.stopy=Math.max(s.data.stopy+X.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(s.data.stopx+X.c4ShapeMargin,n.data.stopx),L=Math.max(L,n.data.stopx),I=Math.max(I,n.data.stopy)}}const tt={drawPersonOrSystemArray:G,drawBoundary:V,setConf:W,draw:function(t,e,n,s){X=(0,a.c)().c4;const r=(0,a.c)().securityLevel;let l;"sandbox"===r&&(l=(0,i.Ys)("#i"+e));const o="sandbox"===r?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body");let c=s.db;s.db.setWrap(X.wrap),U=c.getC4ShapeInRow(),F=c.getC4BoundaryInRow(),a.l.debug(`C:${JSON.stringify(X,null,2)}`);const h="sandbox"===r?o.select(`[id="${e}"]`):(0,i.Ys)(`[id="${e}"]`);B(h),j(h),Y(h);let d=new z(s);d.setData(X.diagramMarginX,X.diagramMarginX,X.diagramMarginY,X.diagramMarginY),d.data.widthLimit=screen.availWidth,L=X.diagramMarginX,I=X.diagramMarginY;const u=s.db.getTitle();Z(h,"",d,s.db.getBoundarys(""),s),D(h),N(h),M(h),P(h),function(t,e,n,i){let s=0;for(let l of e){s+=1;let t=l.wrap&&X.wrap,e={fontFamily:(r=X).messageFontFamily,fontSize:r.messageFontSize,fontWeight:r.messageFontWeight};"C4Dynamic"===i.db.getC4Type()&&(l.label.text=s+": "+l.label.text);let o=(0,a.h)(l.label.text,e);q("label",l,t,e,o),l.techn&&""!==l.techn.text&&(o=(0,a.h)(l.techn.text,e),q("techn",l,t,e,o)),l.descr&&""!==l.descr.text&&(o=(0,a.h)(l.descr.text,e),q("descr",l,t,e,o));let c=n(l.from),h=n(l.to),d=J(c,h);l.startPoint=d.startPoint,l.endPoint=d.endPoint}var r;R(t,e,X)}(h,s.db.getRels(),s.db.getC4Shape,s),d.data.stopx=L,d.data.stopy=I;const p=d.data;let y=p.stopy-p.starty+2*X.diagramMarginY;const f=p.stopx-p.startx+2*X.diagramMarginX;u&&h.append("text").text(u).attr("x",(p.stopx-p.startx)/2-4*X.diagramMarginX).attr("y",p.starty+X.diagramMarginY),(0,a.i)(h,y,f,X.useMaxWidth);const b=u?60:0;h.attr("viewBox",p.startx-X.diagramMarginX+" -"+(X.diagramMarginY+b)+" "+f+" "+(y+b)),a.l.debug("models:",p)}},et={parser:o,db:S,renderer:tt,styles:t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,init:({c4:t,wrap:e})=>{tt.setConf(t),S.setWrap(e)}}},43317:(t,e,n)=>{n.d(e,{a:()=>r,b:()=>c,c:()=>o,d:()=>s,e:()=>d,f:()=>l,g:()=>h});var a=n(17967),i=n(85322);const s=(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),void 0!==e.rx&&n.attr("rx",e.rx),void 0!==e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const a in e.attrs)n.attr(a,e.attrs[a]);return void 0!==e.class&&n.attr("class",e.class),n},r=(t,e)=>{const n={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};s(t,n).lower()},l=(t,e)=>{const n=e.text.replace(i.H," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.attr("class","legend"),a.style("text-anchor",e.anchor),void 0!==e.class&&a.attr("class",e.class);const s=a.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(n),a},o=(t,e,n,i)=>{const s=t.append("image");s.attr("x",e),s.attr("y",n);const r=(0,a.Nm)(i);s.attr("xlink:href",r)},c=(t,e,n,i)=>{const s=t.append("use");s.attr("x",e),s.attr("y",n);const r=(0,a.Nm)(i);s.attr("xlink:href",`#${r}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),d=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/132.d647898f.js b/assets/js/132.d647898f.js deleted file mode 100644 index 6dced01..0000000 --- a/assets/js/132.d647898f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[132],{132:(t,e,n)=>{n.d(e,{diagram:()=>et});var a=n(5322),i=n(4218),s=n(3317),r=n(7967),l=(n(7484),n(7856),function(){var t=function(t,e,n,a){for(n=n||{},a=t.length;a--;n[t[a]]=e);return n},e=[1,24],n=[1,25],a=[1,26],i=[1,27],s=[1,28],r=[1,63],l=[1,64],o=[1,65],h=[1,66],d=[1,67],u=[1,68],p=[1,69],y=[1,29],f=[1,30],b=[1,31],g=[1,32],x=[1,33],_=[1,34],m=[1,35],E=[1,36],A=[1,37],S=[1,38],C=[1,39],k=[1,40],O=[1,41],v=[1,42],T=[1,43],w=[1,44],R=[1,45],D=[1,46],N=[1,47],P=[1,48],M=[1,50],j=[1,51],B=[1,52],Y=[1,53],L=[1,54],I=[1,55],U=[1,56],F=[1,57],X=[1,58],z=[1,59],W=[1,60],Q=[14,42],$=[14,34,36,37,38,39,40,41,42,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,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,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,70,71,72,73,74],V=[1,82],G=[1,83],H=[1,84],K=[1,85],J=[12,14,42],Z=[12,14,33,42],tt=[12,14,33,42,76,77,79,80],et=[12,33],nt=[34,36,37,38,39,40,41,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,70,71,72,73,74],at={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(t,e,n,a,i,s,r){var l=s.length-1;switch(i){case 3:a.setDirection("TB");break;case 4:a.setDirection("BT");break;case 5:a.setDirection("RL");break;case 6:a.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:a.setC4Type(s[l-3]);break;case 19:a.setTitle(s[l].substring(6)),this.$=s[l].substring(6);break;case 20:a.setAccDescription(s[l].substring(15)),this.$=s[l].substring(15);break;case 21:this.$=s[l].trim(),a.setTitle(this.$);break;case 22:case 23:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 28:case 29:s[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 30:a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 31:s[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...s[l]),this.$=s[l];break;case 32:a.addDeploymentNode("node",...s[l]),this.$=s[l];break;case 33:a.addDeploymentNode("nodeL",...s[l]),this.$=s[l];break;case 34:a.addDeploymentNode("nodeR",...s[l]),this.$=s[l];break;case 35:a.popBoundaryParseStack();break;case 39:a.addPersonOrSystem("person",...s[l]),this.$=s[l];break;case 40:a.addPersonOrSystem("external_person",...s[l]),this.$=s[l];break;case 41:a.addPersonOrSystem("system",...s[l]),this.$=s[l];break;case 42:a.addPersonOrSystem("system_db",...s[l]),this.$=s[l];break;case 43:a.addPersonOrSystem("system_queue",...s[l]),this.$=s[l];break;case 44:a.addPersonOrSystem("external_system",...s[l]),this.$=s[l];break;case 45:a.addPersonOrSystem("external_system_db",...s[l]),this.$=s[l];break;case 46:a.addPersonOrSystem("external_system_queue",...s[l]),this.$=s[l];break;case 47:a.addContainer("container",...s[l]),this.$=s[l];break;case 48:a.addContainer("container_db",...s[l]),this.$=s[l];break;case 49:a.addContainer("container_queue",...s[l]),this.$=s[l];break;case 50:a.addContainer("external_container",...s[l]),this.$=s[l];break;case 51:a.addContainer("external_container_db",...s[l]),this.$=s[l];break;case 52:a.addContainer("external_container_queue",...s[l]),this.$=s[l];break;case 53:a.addComponent("component",...s[l]),this.$=s[l];break;case 54:a.addComponent("component_db",...s[l]),this.$=s[l];break;case 55:a.addComponent("component_queue",...s[l]),this.$=s[l];break;case 56:a.addComponent("external_component",...s[l]),this.$=s[l];break;case 57:a.addComponent("external_component_db",...s[l]),this.$=s[l];break;case 58:a.addComponent("external_component_queue",...s[l]),this.$=s[l];break;case 60:a.addRel("rel",...s[l]),this.$=s[l];break;case 61:a.addRel("birel",...s[l]),this.$=s[l];break;case 62:a.addRel("rel_u",...s[l]),this.$=s[l];break;case 63:a.addRel("rel_d",...s[l]),this.$=s[l];break;case 64:a.addRel("rel_l",...s[l]),this.$=s[l];break;case 65:a.addRel("rel_r",...s[l]),this.$=s[l];break;case 66:a.addRel("rel_b",...s[l]),this.$=s[l];break;case 67:s[l].splice(0,1),a.addRel("rel",...s[l]),this.$=s[l];break;case 68:a.updateElStyle("update_el_style",...s[l]),this.$=s[l];break;case 69:a.updateRelStyle("update_rel_style",...s[l]),this.$=s[l];break;case 70:a.updateLayoutConfig("update_layout_config",...s[l]),this.$=s[l];break;case 71:this.$=[s[l]];break;case 72:s[l].unshift(s[l-1]),this.$=s[l];break;case 73:case 75:this.$=s[l].trim();break;case 74:let t={};t[s[l-1].trim()]=s[l].trim(),this.$=t;break;case 76:this.$=""}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:70,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:71,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:72,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{13:73,19:20,20:21,21:22,22:e,23:n,24:a,26:i,28:s,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{14:[1,74]},t(Q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:r,36:l,37:o,38:h,39:d,40:u,41:p,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W}),t(Q,[2,14]),t($,[2,16],{12:[1,76]}),t(Q,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:V,77:G,79:H,80:K},{35:86,75:81,76:V,77:G,79:H,80:K},{35:87,75:81,76:V,77:G,79:H,80:K},{35:88,75:81,76:V,77:G,79:H,80:K},{35:89,75:81,76:V,77:G,79:H,80:K},{35:90,75:81,76:V,77:G,79:H,80:K},{35:91,75:81,76:V,77:G,79:H,80:K},{35:92,75:81,76:V,77:G,79:H,80:K},{35:93,75:81,76:V,77:G,79:H,80:K},{35:94,75:81,76:V,77:G,79:H,80:K},{35:95,75:81,76:V,77:G,79:H,80:K},{35:96,75:81,76:V,77:G,79:H,80:K},{35:97,75:81,76:V,77:G,79:H,80:K},{35:98,75:81,76:V,77:G,79:H,80:K},{35:99,75:81,76:V,77:G,79:H,80:K},{35:100,75:81,76:V,77:G,79:H,80:K},{35:101,75:81,76:V,77:G,79:H,80:K},{35:102,75:81,76:V,77:G,79:H,80:K},{35:103,75:81,76:V,77:G,79:H,80:K},{35:104,75:81,76:V,77:G,79:H,80:K},t(J,[2,59]),{35:105,75:81,76:V,77:G,79:H,80:K},{35:106,75:81,76:V,77:G,79:H,80:K},{35:107,75:81,76:V,77:G,79:H,80:K},{35:108,75:81,76:V,77:G,79:H,80:K},{35:109,75:81,76:V,77:G,79:H,80:K},{35:110,75:81,76:V,77:G,79:H,80:K},{35:111,75:81,76:V,77:G,79:H,80:K},{35:112,75:81,76:V,77:G,79:H,80:K},{35:113,75:81,76:V,77:G,79:H,80:K},{35:114,75:81,76:V,77:G,79:H,80:K},{35:115,75:81,76:V,77:G,79:H,80:K},{20:116,29:49,30:61,32:62,34:r,36:l,37:o,38:h,39:d,40:u,41:p,43:23,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W},{12:[1,118],33:[1,117]},{35:119,75:81,76:V,77:G,79:H,80:K},{35:120,75:81,76:V,77:G,79:H,80:K},{35:121,75:81,76:V,77:G,79:H,80:K},{35:122,75:81,76:V,77:G,79:H,80:K},{35:123,75:81,76:V,77:G,79:H,80:K},{35:124,75:81,76:V,77:G,79:H,80:K},{35:125,75:81,76:V,77:G,79:H,80:K},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Q,[2,15]),t($,[2,17],{21:22,19:130,22:e,23:n,24:a,26:i,28:s}),t(Q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:n,24:a,26:i,28:s,34:r,36:l,37:o,38:h,39:d,40:u,41:p,44:y,45:f,46:b,47:g,48:x,49:_,50:m,51:E,52:A,53:S,54:C,55:k,56:O,57:v,58:T,59:w,60:R,61:D,62:N,63:P,64:M,65:j,66:B,67:Y,68:L,69:I,70:U,71:F,72:X,73:z,74:W}),t(q,[2,21]),t(q,[2,22]),t(J,[2,39]),t(Z,[2,71],{75:81,35:132,76:V,77:G,79:H,80:K}),t(tt,[2,73]),{78:[1,133]},t(tt,[2,75]),t(tt,[2,76]),t(J,[2,40]),t(J,[2,41]),t(J,[2,42]),t(J,[2,43]),t(J,[2,44]),t(J,[2,45]),t(J,[2,46]),t(J,[2,47]),t(J,[2,48]),t(J,[2,49]),t(J,[2,50]),t(J,[2,51]),t(J,[2,52]),t(J,[2,53]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),t(J,[2,57]),t(J,[2,58]),t(J,[2,60]),t(J,[2,61]),t(J,[2,62]),t(J,[2,63]),t(J,[2,64]),t(J,[2,65]),t(J,[2,66]),t(J,[2,67]),t(J,[2,68]),t(J,[2,69]),t(J,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(et,[2,28]),t(et,[2,29]),t(et,[2,30]),t(et,[2,31]),t(et,[2,32]),t(et,[2,33]),t(et,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t($,[2,18]),t(Q,[2,38]),t(Z,[2,72]),t(tt,[2,74]),t(J,[2,24]),t(J,[2,35]),t(nt,[2,25]),t(nt,[2,26],{12:[1,138]}),t(nt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},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],a=[],i=[null],s=[],r=this.table,l="",o=0,c=0,h=s.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var y=d.yylloc;s.push(y);var f=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,g,x,_,m,E,A,S,C,k={};;){if(g=n[n.length-1],this.defaultActions[g]?x=this.defaultActions[g]:(null==b&&(C=void 0,"number"!=typeof(C=a.pop()||d.lex()||1)&&(C instanceof Array&&(C=(a=C).pop()),C=e.symbols_[C]||C),b=C),x=r[g]&&r[g][b]),void 0===x||!x.length||!x[0]){var O="";for(m in S=[],r[g])this.terminals_[m]&&m>2&&S.push("'"+this.terminals_[m]+"'");O=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(O,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:y,expected:S})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+b);switch(x[0]){case 1:n.push(b),i.push(d.yytext),s.push(d.yylloc),n.push(x[1]),b=null,c=d.yyleng,l=d.yytext,o=d.yylineno,y=d.yylloc;break;case 2:if(E=this.productions_[x[1]][1],k.$=i[i.length-E],k._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},f&&(k._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(_=this.performAction.apply(k,[l,c,o,u.yy,x[1],i,s].concat(h))))return _;E&&(n=n.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),n.push(this.productions_[x[1]][0]),i.push(k.$),s.push(k._$),A=r[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},it={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 a=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===a.length?this.yylloc.first_column:0)+a[a.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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,a,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))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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 s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;se[0].length)){if(e=n,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[a]))&&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,a){switch(n){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\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:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,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,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};function st(){this.yy={}}return at.lexer=it,st.prototype=at,at.Parser=st,new st}());l.parser=l;const o=l;let h=[],d=[""],u="global",p="",y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],f=[],b="",g=!1,x=4,_=2;var m;const E=function(t){return null==t?h:h.filter((e=>e.parentBoundary===t))},A=function(){return g},S={addPersonOrSystem:function(t,e,n,a,i,s,r){if(null===e||null===n)return;let l={};const o=h.find((t=>t.alias===e));if(o&&e===o.alias?l=o:(l.alias=e,h.push(l)),l.label=null==n?{text:""}:{text:n},null==a)l.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.descr={text:a};if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.sprite=i;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.link=r;l.typeC4Shape={text:t},l.parentBoundary=u,l.wrap=A()},addPersonOrSystemBoundary:function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=y.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,y.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=u,s.wrap=A(),p=u,u=t,d.push(p)},addContainer:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=h.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,h.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=A(),o.typeC4Shape={text:t},o.parentBoundary=u},addContainerBoundary:function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=y.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,y.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=u,s.wrap=A(),p=u,u=t,d.push(p)},addComponent:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=h.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,h.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=A(),o.typeC4Shape={text:t},o.parentBoundary=u},addDeploymentNode:function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=y.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,y.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.type={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=u,o.wrap=A(),p=u,u=e,d.push(p)},popBoundaryParseStack:function(){u=p,d.pop(),p=d.pop(),d.push(p)},addRel:function(t,e,n,a,i,s,r,l,o){if(null==t||null==e||null==n||null==a)return;let c={};const h=f.find((t=>t.from===e&&t.to===n));if(h?c=h:f.push(c),c.type=t,c.from=e,c.to=n,c.label={text:a},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==s)c.descr={text:""};else if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]={text:e}}else c.descr={text:s};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];c[t]=e}else c.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.link=o;c.wrap=A()},updateElStyle:function(t,e,n,a,i,s,r,l,o,c,d){let u=h.find((t=>t.alias===e));if(void 0!==u||(u=y.find((t=>t.alias===e)),void 0!==u)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];u[t]=e}else u.bgColor=n;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];u[t]=e}else u.fontColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];u[t]=e}else u.borderColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];u[t]=e}else u.shadowing=s;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];u[t]=e}else u.shape=r;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];u[t]=e}else u.sprite=l;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];u[t]=e}else u.techn=o;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];u[t]=e}else u.legendText=c;if(null!=d)if("object"==typeof d){let[t,e]=Object.entries(d)[0];u[t]=e}else u.legendSprite=d}},updateRelStyle:function(t,e,n,a,i,s,r){const l=f.find((t=>t.from===e&&t.to===n));if(void 0!==l){if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.lineColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(s);if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(r)}},updateLayoutConfig:function(t,e,n){let a=x,i=_;if("object"==typeof e){const t=Object.values(e)[0];a=parseInt(t)}else a=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];i=parseInt(t)}else i=parseInt(n);a>=1&&(x=a),i>=1&&(_=i)},autoWrap:A,setWrap:function(t){g=t},getC4ShapeArray:E,getC4Shape:function(t){return h.find((e=>e.alias===t))},getC4ShapeKeys:function(t){return Object.keys(E(t))},getBoundarys:function(t){return null==t?y:y.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return u},getParentBoundaryParse:function(){return p},getRels:function(){return f},getTitle:function(){return b},getC4Type:function(){return m},getC4ShapeInRow:function(){return x},getC4BoundaryInRow:function(){return _},setAccTitle:a.s,getAccTitle:a.g,getAccDescription:a.a,setAccDescription:a.b,getConfig:()=>(0,a.c)().c4,clear:function(){h=[],y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],p="",u="global",d=[""],f=[],d=[""],b="",g=!1,x=4,_=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=(0,a.d)(t,(0,a.c)());b=e},setC4Type:function(t){let e=(0,a.d)(t,(0,a.c)());m=e}},C=function(t,e){return(0,s.d)(t,e)},k=function(t,e,n,a,i,s){const l=t.append("image");l.attr("width",e),l.attr("height",n),l.attr("x",a),l.attr("y",i);let o=s.startsWith("data:image/png;base64")?s:(0,r.Nm)(s);l.attr("xlink:href",o)},O=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),v=function(){function t(t,e,n,a,s,r,l){i(e.append("text").attr("x",n+s/2).attr("y",a+r/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,n,s,r,l,o,c){const{fontSize:h,fontFamily:d,fontWeight:u}=c,p=t.split(a.e.lineBreakRegex);for(let a=0;a>"),e.typeC4Shape.text){case"person":case"external_person":k(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,o)}let u=n[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=l,v(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:l},u),u=n[e.typeC4Shape.text+"Font"](),u.fontColor=l,e.techn&&""!==(null==(a=e.techn)?void 0:a.text)?v(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:l,"font-style":"italic"},u):e.type&&""!==e.type.text&&v(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:l,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&(u=n.personFont(),u.fontColor=l,v(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:l},u)),e.height},R=(t,e,n)=>{const a=t.append("g");let i=0;for(let s of e){let t=s.textColor?s.textColor:"#444444",e=s.lineColor?s.lineColor:"#444444",r=s.offsetX?parseInt(s.offsetX):0,l=s.offsetY?parseInt(s.offsetY):0,o="";if(0===i){let t=a.append("line");t.attr("x1",s.startPoint.x),t.attr("y1",s.startPoint.y),t.attr("x2",s.endPoint.x),t.attr("y2",s.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)"),i=-1}else{let t=a.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",s.startPoint.x).replaceAll("starty",s.startPoint.y).replaceAll("controlx",s.startPoint.x+(s.endPoint.x-s.startPoint.x)/2-(s.endPoint.x-s.startPoint.x)/4).replaceAll("controly",s.startPoint.y+(s.endPoint.y-s.startPoint.y)/2).replaceAll("stopx",s.endPoint.x).replaceAll("stopy",s.endPoint.y)),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)")}let c=n.messageFont();v(n)(s.label.text,a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+l,s.label.width,s.label.height,{fill:t},c),s.techn&&""!==s.techn.text&&(c=n.messageFont(),v(n)("["+s.techn.text+"]",a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+n.messageFontSize+5+l,Math.max(s.label.width,s.techn.width),s.techn.height,{fill:t,"font-style":"italic"},c))}},D=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")},N=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")},P=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")},M=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")},j=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")},B=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")},Y=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")};let L=0,I=0,U=4,F=2;l.yy=S;let X={};class z{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,W(t.db.getConfig())}setData(t,e,n,a){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=a}updateVal(t,e,n,a){void 0===t[e]?t[e]=n:t[e]=a(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,a=this.nextData.starty+2*t.margin,i=a+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>U)&&(e=this.nextData.startx+t.margin+X.nextLinePaddingX,a=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=a+t.height,this.nextData.cnt=1),t.x=e,t.y=a,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",a,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",a,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",i,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},W(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const W=function(t){(0,a.f)(X,t),t.fontFamily&&(X.personFontFamily=X.systemFontFamily=X.messageFontFamily=t.fontFamily),t.fontSize&&(X.personFontSize=X.systemFontSize=X.messageFontSize=t.fontSize),t.fontWeight&&(X.personFontWeight=X.systemFontWeight=X.messageFontWeight=t.fontWeight)},Q=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),$=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight});function q(t,e,n,i,s){if(!e[t].width)if(n)e[t].text=(0,a.w)(e[t].text,s,i),e[t].textLines=e[t].text.split(a.e.lineBreakRegex).length,e[t].width=s,e[t].height=(0,a.j)(e[t].text,i);else{let n=e[t].text.split(a.e.lineBreakRegex);e[t].textLines=n.length;let s=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max((0,a.h)(r,i),e[t].width),s=(0,a.j)(r,i),e[t].height=e[t].height+s}}const V=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=X.c4ShapeMargin-35;let i=e.wrap&&X.wrap,s=$(X);s.fontSize=s.fontSize+2,s.fontWeight="bold",q("label",e,i,s,(0,a.h)(e.label.text,s)),T(t,e,X)},G=function(t,e,n,i){let s=0;for(const r of i){s=0;const i=n[r];let l=Q(X,i.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,i.typeC4Shape.width=(0,a.h)("\xab"+i.typeC4Shape.text+"\xbb",l),i.typeC4Shape.height=l.fontSize+2,i.typeC4Shape.Y=X.c4ShapePadding,s=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=s,s=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=s,s=i.image.Y+i.image.height);let o=i.wrap&&X.wrap,c=X.width-2*X.c4ShapePadding,h=Q(X,i.typeC4Shape.text);if(h.fontSize=h.fontSize+2,h.fontWeight="bold",q("label",i,o,h,c),i.label.Y=s+8,s=i.label.Y+i.label.height,i.type&&""!==i.type.text){i.type.text="["+i.type.text+"]",q("type",i,o,Q(X,i.typeC4Shape.text),c),i.type.Y=s+5,s=i.type.Y+i.type.height}else if(i.techn&&""!==i.techn.text){i.techn.text="["+i.techn.text+"]",q("techn",i,o,Q(X,i.techn.text),c),i.techn.Y=s+5,s=i.techn.Y+i.techn.height}let d=s,u=i.label.width;if(i.descr&&""!==i.descr.text){q("descr",i,o,Q(X,i.typeC4Shape.text),c),i.descr.Y=s+20,s=i.descr.Y+i.descr.height,u=Math.max(i.label.width,i.descr.width),d=s-5*i.descr.textLines}u+=X.c4ShapePadding,i.width=Math.max(i.width||X.width,u,X.width),i.height=Math.max(i.height||X.height,d,X.height),i.margin=i.margin||X.c4ShapeMargin,t.insert(i),w(e,i,X)}t.bumpLastMargin(X.c4ShapeMargin)};class H{constructor(t,e){this.x=t,this.y=e}}let K=function(t,e){let n=t.x,a=t.y,i=e.x,s=e.y,r=n+t.width/2,l=a+t.height/2,o=Math.abs(n-i),c=Math.abs(a-s),h=c/o,d=t.height/t.width,u=null;return a==s&&ni?u=new H(n,l):n==i&&as&&(u=new H(r,a)),n>i&&a=h?new H(n,l+h*t.width/2):new H(r-o/c*t.height/2,a+t.height):n=h?new H(n+t.width,l+h*t.width/2):new H(r+o/c*t.height/2,a+t.height):ns?u=d>=h?new H(n+t.width,l-h*t.width/2):new H(r+t.height/2*o/c,a):n>i&&a>s&&(u=d>=h?new H(n,l-t.width/2*h):new H(r-t.height/2*o/c,a)),u},J=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let a=K(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:a,endPoint:K(e,n)}};function Z(t,e,n,a,i){let s=new z(i);s.data.widthLimit=n.data.widthLimit/Math.min(F,a.length);for(let[r,l]of a.entries()){let a=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=a,a=l.image.Y+l.image.height);let o=l.wrap&&X.wrap,c=$(X);if(c.fontSize=c.fontSize+2,c.fontWeight="bold",q("label",l,o,c,s.data.widthLimit),l.label.Y=a+8,a=l.label.Y+l.label.height,l.type&&""!==l.type.text){l.type.text="["+l.type.text+"]",q("type",l,o,$(X),s.data.widthLimit),l.type.Y=a+5,a=l.type.Y+l.type.height}if(l.descr&&""!==l.descr.text){let t=$(X);t.fontSize=t.fontSize-2,q("descr",l,o,t,s.data.widthLimit),l.descr.Y=a+20,a=l.descr.Y+l.descr.height}if(0==r||r%F==0){let t=n.data.startx+X.diagramMarginX,e=n.data.stopy+X.diagramMarginY+a;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+X.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=l.alias;let h=i.db.getC4ShapeArray(l.alias),d=i.db.getC4ShapeKeys(l.alias);d.length>0&&G(s,t,h,d),e=l.alias;let u=i.db.getBoundarys(e);u.length>0&&Z(t,e,s,u,i),"global"!==l.alias&&V(t,l,s),n.data.stopy=Math.max(s.data.stopy+X.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(s.data.stopx+X.c4ShapeMargin,n.data.stopx),L=Math.max(L,n.data.stopx),I=Math.max(I,n.data.stopy)}}const tt={drawPersonOrSystemArray:G,drawBoundary:V,setConf:W,draw:function(t,e,n,s){X=(0,a.c)().c4;const r=(0,a.c)().securityLevel;let l;"sandbox"===r&&(l=(0,i.Ys)("#i"+e));const o="sandbox"===r?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body");let c=s.db;s.db.setWrap(X.wrap),U=c.getC4ShapeInRow(),F=c.getC4BoundaryInRow(),a.l.debug(`C:${JSON.stringify(X,null,2)}`);const h="sandbox"===r?o.select(`[id="${e}"]`):(0,i.Ys)(`[id="${e}"]`);B(h),j(h),Y(h);let d=new z(s);d.setData(X.diagramMarginX,X.diagramMarginX,X.diagramMarginY,X.diagramMarginY),d.data.widthLimit=screen.availWidth,L=X.diagramMarginX,I=X.diagramMarginY;const u=s.db.getTitle();Z(h,"",d,s.db.getBoundarys(""),s),D(h),N(h),M(h),P(h),function(t,e,n,i){let s=0;for(let l of e){s+=1;let t=l.wrap&&X.wrap,e={fontFamily:(r=X).messageFontFamily,fontSize:r.messageFontSize,fontWeight:r.messageFontWeight};"C4Dynamic"===i.db.getC4Type()&&(l.label.text=s+": "+l.label.text);let o=(0,a.h)(l.label.text,e);q("label",l,t,e,o),l.techn&&""!==l.techn.text&&(o=(0,a.h)(l.techn.text,e),q("techn",l,t,e,o)),l.descr&&""!==l.descr.text&&(o=(0,a.h)(l.descr.text,e),q("descr",l,t,e,o));let c=n(l.from),h=n(l.to),d=J(c,h);l.startPoint=d.startPoint,l.endPoint=d.endPoint}var r;R(t,e,X)}(h,s.db.getRels(),s.db.getC4Shape,s),d.data.stopx=L,d.data.stopy=I;const p=d.data;let y=p.stopy-p.starty+2*X.diagramMarginY;const f=p.stopx-p.startx+2*X.diagramMarginX;u&&h.append("text").text(u).attr("x",(p.stopx-p.startx)/2-4*X.diagramMarginX).attr("y",p.starty+X.diagramMarginY),(0,a.i)(h,y,f,X.useMaxWidth);const b=u?60:0;h.attr("viewBox",p.startx-X.diagramMarginX+" -"+(X.diagramMarginY+b)+" "+f+" "+(y+b)),a.l.debug("models:",p)}},et={parser:o,db:S,renderer:tt,styles:t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,init:({c4:t,wrap:e})=>{tt.setConf(t),S.setWrap(e)}}},3317:(t,e,n)=>{n.d(e,{a:()=>r,b:()=>c,c:()=>o,d:()=>s,e:()=>d,f:()=>l,g:()=>h});var a=n(7967),i=n(5322);const s=(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),void 0!==e.rx&&n.attr("rx",e.rx),void 0!==e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const a in e.attrs)n.attr(a,e.attrs[a]);return void 0!==e.class&&n.attr("class",e.class),n},r=(t,e)=>{const n={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};s(t,n).lower()},l=(t,e)=>{const n=e.text.replace(i.H," "),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.attr("class","legend"),a.style("text-anchor",e.anchor),void 0!==e.class&&a.attr("class",e.class);const s=a.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(n),a},o=(t,e,n,i)=>{const s=t.append("image");s.attr("x",e),s.attr("y",n);const r=(0,a.Nm)(i);s.attr("xlink:href",r)},c=(t,e,n,i)=>{const s=t.append("use");s.attr("x",e),s.attr("y",n);const r=(0,a.Nm)(i);s.attr("xlink:href",`#${r}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),d=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/1325.126c841a.js b/assets/js/1325.126c841a.js deleted file mode 100644 index c7c9be2..0000000 --- a/assets/js/1325.126c841a.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1325.126c841a.js.LICENSE.txt */ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1325],{7967:(t,e)=>{"use strict";e.Nm=e.Rq=void 0;var i=/^([^\w]*)(javascript|data|vbscript)/im,r=/&#(\w+)(^\w|;)?/g,n=/&(newline|tab);/gi,o=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,a=/^.+(:|:)/gim,s=[".","/"];e.Rq="about:blank",e.Nm=function(t){if(!t)return e.Rq;var l,c=(l=t,l.replace(o,"").replace(r,(function(t,e){return String.fromCharCode(e)}))).replace(n,"").replace(o,"").trim();if(!c)return e.Rq;if(function(t){return s.indexOf(t[0])>-1}(c))return c;var h=c.match(a);if(!h)return c;var u=h[0];return i.test(u)?e.Rq:c}},9047:(t,e,i)=>{"use strict";i.d(e,{Z:()=>A});var r=i(7294),n=i(5893);function o(t){const{mdxAdmonitionTitle:e,rest:i}=function(t){const e=r.Children.toArray(t),i=e.find((t=>r.isValidElement(t)&&"mdxAdmonitionTitle"===t.type)),o=e.filter((t=>t!==i)),a=i?.props.children;return{mdxAdmonitionTitle:a,rest:o.length>0?(0,n.jsx)(n.Fragment,{children:o}):null}}(t.children),o=t.title??e;return{...t,...o&&{title:o},children:i}}var a=i(6010),s=i(5999),l=i(5281);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function h(t){let{type:e,className:i,children:r}=t;return(0,n.jsx)("div",{className:(0,a.Z)(l.k.common.admonition,l.k.common.admonitionType(e),c.admonition,i),children:r})}function u(t){let{icon:e,title:i}=t;return(0,n.jsxs)("div",{className:c.admonitionHeading,children:[(0,n.jsx)("span",{className:c.admonitionIcon,children:e}),i]})}function d(t){let{children:e}=t;return e?(0,n.jsx)("div",{className:c.admonitionContent,children:e}):null}function f(t){const{type:e,icon:i,title:r,children:o,className:a}=t;return(0,n.jsxs)(h,{type:e,className:a,children:[(0,n.jsx)(u,{title:r,icon:i}),(0,n.jsx)(d,{children:o})]})}function p(t){return(0,n.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,n.jsx)("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"})})}const g={icon:(0,n.jsx)(p,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(t){return(0,n.jsx)(f,{...g,...t,className:(0,a.Z)("alert alert--secondary",t.className),children:t.children})}function y(t){return(0,n.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,n.jsx)("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"})})}const x={icon:(0,n.jsx)(y,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function C(t){return(0,n.jsx)(f,{...x,...t,className:(0,a.Z)("alert alert--success",t.className),children:t.children})}function b(t){return(0,n.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,n.jsx)("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"})})}const _={icon:(0,n.jsx)(b,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(t){return(0,n.jsx)(f,{..._,...t,className:(0,a.Z)("alert alert--info",t.className),children:t.children})}function k(t){return(0,n.jsx)("svg",{viewBox:"0 0 16 16",...t,children:(0,n.jsx)("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"})})}const T={icon:(0,n.jsx)(k,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function w(t){return(0,n.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,n.jsx)("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"})})}const S={icon:(0,n.jsx)(w,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,n.jsx)(k,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const F={...{note:m,tip:C,info:v,warning:function(t){return(0,n.jsx)(f,{...T,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})},danger:function(t){return(0,n.jsx)(f,{...S,...t,className:(0,a.Z)("alert alert--danger",t.className),children:t.children})}},...{secondary:t=>(0,n.jsx)(m,{title:"secondary",...t}),important:t=>(0,n.jsx)(v,{title:"important",...t}),success:t=>(0,n.jsx)(C,{title:"success",...t}),caution:function(t){return(0,n.jsx)(f,{...B,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})}}};function A(t){const e=o(t),i=(r=e.type,F[r]||(console.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),F.info));var r;return(0,n.jsx)(i,{...e})}},4881:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});i(7294);var r=i(5999),n=i(5281),o=i(9960),a=i(6010);const s={iconEdit:"iconEdit_Z9Sw"};var l=i(5893);function c(t){let{className:e,...i}=t;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,a.Z)(s.iconEdit,e),"aria-hidden":"true",...i,children:(0,l.jsx)("g",{children:(0,l.jsx)("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"})})})}function h(t){let{editUrl:e}=t;return(0,l.jsxs)(o.Z,{to:e,className:n.k.common.editThisPage,children:[(0,l.jsx)(c,{}),(0,l.jsx)(r.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}},7779:(t,e,i)=>{"use strict";i.d(e,{Z:()=>dt});var r=i(7294),n=i(1151),o=i(5742),a=i(2389),s=i(6010),l=i(2949),c=i(6668);function h(){const{prism:t}=(0,c.L)(),{colorMode:e}=(0,l.I)(),i=t.theme,r=t.darkTheme||i;return"dark"===e?r:i}var u=i(5281),d=i(7594),f=i.n(d);const p=/title=(?["'])(?.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,m={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function y(t,e){const i=t.map((t=>{const{start:i,end:r}=m[t];return`(?:${i}\\s*(${e.flatMap((t=>[t.line,t.block?.start,t.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${i})\\s*$`)}function x(t,e){let i=t.replace(/\n$/,"");const{language:r,magicComments:n,metastring:o}=e;if(o&&g.test(o)){const t=o.match(g).groups.range;if(0===n.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const e=n[0].className,r=f()(t).filter((t=>t>0)).map((t=>[t-1,[e]]));return{lineClassNames:Object.fromEntries(r),code:i}}if(void 0===r)return{lineClassNames:{},code:i};const a=function(t,e){switch(t){case"js":case"javascript":case"ts":case"typescript":return y(["js","jsBlock"],e);case"jsx":case"tsx":return y(["js","jsBlock","jsx"],e);case"html":return y(["js","jsBlock","html"],e);case"python":case"py":case"bash":return y(["bash"],e);case"markdown":case"md":return y(["html","jsx","bash"],e);case"tex":case"latex":case"matlab":return y(["tex"],e);case"lua":case"haskell":case"sql":return y(["lua"],e);case"wasm":return y(["wasm"],e);default:return y(Object.keys(m).filter((t=>!["lua","wasm","tex","latex","matlab"].includes(t))),e)}}(r,n),s=i.split("\n"),l=Object.fromEntries(n.map((t=>[t.className,{start:0,range:""}]))),c=Object.fromEntries(n.filter((t=>t.line)).map((t=>{let{className:e,line:i}=t;return[i,e]}))),h=Object.fromEntries(n.filter((t=>t.block)).map((t=>{let{className:e,block:i}=t;return[i.start,e]}))),u=Object.fromEntries(n.filter((t=>t.block)).map((t=>{let{className:e,block:i}=t;return[i.end,e]})));for(let f=0;f<s.length;){const t=s[f].match(a);if(!t){f+=1;continue}const e=t.slice(1).find((t=>void 0!==t));c[e]?l[c[e]].range+=`${f},`:h[e]?l[h[e]].start=f:u[e]&&(l[u[e]].range+=`${l[u[e]].start}-${f-1},`),s.splice(f,1)}i=s.join("\n");const d={};return Object.entries(l).forEach((t=>{let[e,{range:i}]=t;f()(i).forEach((t=>{d[t]??=[],d[t].push(e)}))})),{lineClassNames:d,code:i}}const C={codeBlockContainer:"codeBlockContainer_Ckt0"};var b=i(5893);function _(t){let{as:e,...i}=t;const r=function(t){const e={color:"--prism-color",backgroundColor:"--prism-background-color"},i={};return Object.entries(t.plain).forEach((t=>{let[r,n]=t;const o=e[r];o&&"string"==typeof n&&(i[o]=n)})),i}(h());return(0,b.jsx)(e,{...i,style:r,className:(0,s.Z)(i.className,C.codeBlockContainer,u.k.common.codeBlock)})}const v={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function k(t){let{children:e,className:i}=t;return(0,b.jsx)(_,{as:"pre",tabIndex:0,className:(0,s.Z)(v.codeBlockStandalone,"thin-scrollbar",i),children:(0,b.jsx)("code",{className:v.codeBlockLines,children:e})})}var T=i(902);const w={attributes:!0,characterData:!0,childList:!0,subtree:!0};function S(t,e){const[i,n]=(0,r.useState)(),o=(0,r.useCallback)((()=>{n(t.current?.closest("[role=tabpanel][hidden]"))}),[t,n]);(0,r.useEffect)((()=>{o()}),[o]),function(t,e,i){void 0===i&&(i=w);const n=(0,T.zX)(e),o=(0,T.Ql)(i);(0,r.useEffect)((()=>{const e=new MutationObserver(n);return t&&e.observe(t,o),()=>e.disconnect()}),[t,n,o])}(i,(t=>{t.forEach((t=>{"attributes"===t.type&&"hidden"===t.attributeName&&(e(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var B=i(4965);const F={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function A(t){let{line:e,classNames:i,showLineNumbers:r,getLineProps:n,getTokenProps:o}=t;1===e.length&&"\n"===e[0].content&&(e[0].content="");const a=n({line:e,className:(0,s.Z)(i,r&&F.codeLine)}),l=e.map(((t,e)=>(0,b.jsx)("span",{...o({token:t,key:e})},e)));return(0,b.jsxs)("span",{...a,children:[r?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:F.codeLineNumber}),(0,b.jsx)("span",{className:F.codeLineContent,children:l})]}):l,(0,b.jsx)("br",{})]})}var L=i(5999);function M(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("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 E(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const Z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function N(t){let{code:e,className:i}=t;const[n,o]=(0,r.useState)(!1),a=(0,r.useRef)(void 0),l=(0,r.useCallback)((()=>{!function(t,e){let{target:i=document.body}=void 0===e?{}:e;if("string"!=typeof t)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof t}\`.`);const r=document.createElement("textarea"),n=document.activeElement;r.value=t,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const o=document.getSelection(),a=o.rangeCount>0&&o.getRangeAt(0);i.append(r),r.select(),r.selectionStart=0,r.selectionEnd=t.length;let s=!1;try{s=document.execCommand("copy")}catch{}r.remove(),a&&(o.removeAllRanges(),o.addRange(a)),n&&n.focus()}(e),o(!0),a.current=window.setTimeout((()=>{o(!1)}),1e3)}),[e]);return(0,r.useEffect)((()=>()=>window.clearTimeout(a.current)),[]),(0,b.jsx)("button",{type:"button","aria-label":n?(0,L.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,L.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,L.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.Z)("clean-btn",i,Z.copyButton,n&&Z.copyButtonCopied),onClick:l,children:(0,b.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,b.jsx)(M,{className:Z.copyButtonIcon}),(0,b.jsx)(E,{className:Z.copyButtonSuccessIcon})]})})}function O(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("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 I={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function j(t){let{className:e,onClick:i,isEnabled:r}=t;const n=(0,L.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,b.jsx)("button",{type:"button",onClick:i,className:(0,s.Z)("clean-btn",e,r&&I.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,b.jsx)(O,{className:I.wordWrapButtonIcon,"aria-hidden":"true"})})}function q(t){let{children:e,className:i="",metastring:n,title:o,showLineNumbers:a,language:l}=t;const{prism:{defaultLanguage:u,magicComments:d}}=(0,c.L)(),f=function(t){return t?.toLowerCase()}(l??function(t){const e=t.split(" ").find((t=>t.startsWith("language-")));return e?.replace(/language-/,"")}(i)??u),g=h(),m=function(){const[t,e]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),o=(0,r.useRef)(null),a=(0,r.useCallback)((()=>{const i=o.current.querySelector("code");t?i.removeAttribute("style"):(i.style.whiteSpace="pre-wrap",i.style.overflowWrap="anywhere"),e((t=>!t))}),[o,t]),s=(0,r.useCallback)((()=>{const{scrollWidth:t,clientWidth:e}=o.current,i=t>e||o.current.querySelector("code").hasAttribute("style");n(i)}),[o]);return S(o,s),(0,r.useEffect)((()=>{s()}),[t,s]),(0,r.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:o,isEnabled:t,isCodeScrollable:i,toggle:a}}(),y=function(t){return t?.match(p)?.groups.title??""}(n)||o,{lineClassNames:C,code:k}=x(e,{metastring:n,language:f,magicComments:d}),T=a??function(t){return Boolean(t?.includes("showLineNumbers"))}(n);return(0,b.jsxs)(_,{as:"div",className:(0,s.Z)(i,f&&!i.includes(`language-${f}`)&&`language-${f}`),children:[y&&(0,b.jsx)("div",{className:v.codeBlockTitle,children:y}),(0,b.jsxs)("div",{className:v.codeBlockContent,children:[(0,b.jsx)(B.y$,{theme:g,code:k,language:f??"text",children:t=>{let{className:e,style:i,tokens:r,getLineProps:n,getTokenProps:o}=t;return(0,b.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,s.Z)(e,v.codeBlock,"thin-scrollbar"),style:i,children:(0,b.jsx)("code",{className:(0,s.Z)(v.codeBlockLines,T&&v.codeBlockLinesWithNumbering),children:r.map(((t,e)=>(0,b.jsx)(A,{line:t,getLineProps:n,getTokenProps:o,classNames:C[e],showLineNumbers:T},e)))})})}}),(0,b.jsxs)("div",{className:v.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,b.jsx)(j,{className:v.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,b.jsx)(N,{className:v.codeButton,code:k})]})]})]})}function D(t){let{children:e,...i}=t;const n=(0,a.Z)(),o=function(t){return r.Children.toArray(t).some((t=>(0,r.isValidElement)(t)))?t:Array.isArray(t)?t.join(""):t}(e),s="string"==typeof o?q:k;return(0,b.jsx)(s,{...i,children:o},String(n))}var $=i(9960);var z=i(6043);const P={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function R(t){return!!t&&("SUMMARY"===t.tagName||R(t.parentElement))}function W(t,e){return!!t&&(t===e||W(t.parentElement,e))}function H(t){let{summary:e,children:i,...n}=t;const o=(0,a.Z)(),l=(0,r.useRef)(null),{collapsed:c,setCollapsed:h}=(0,z.u)({initialState:!n.open}),[u,d]=(0,r.useState)(n.open),f=r.isValidElement(e)?e:(0,b.jsx)("summary",{children:e??"Details"});return(0,b.jsxs)("details",{...n,ref:l,open:u,"data-collapsed":c,className:(0,s.Z)(P.details,o&&P.isBrowser,n.className),onMouseDown:t=>{R(t.target)&&t.detail>1&&t.preventDefault()},onClick:t=>{t.stopPropagation();const e=t.target;R(e)&&W(e,l.current)&&(t.preventDefault(),c?(h(!1),d(!0)):h(!0))},children:[f,(0,b.jsx)(z.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:t=>{h(t),d(!t)},children:(0,b.jsx)("div",{className:P.collapsibleContent,children:i})})]})}const U={details:"details_b_Ee"},Y="alert alert--info";function V(t){let{...e}=t;return(0,b.jsx)(H,{...e,className:(0,s.Z)(Y,U.details,e.className)})}function G(t){const e=r.Children.toArray(t.children),i=e.find((t=>r.isValidElement(t)&&"summary"===t.type)),n=(0,b.jsx)(b.Fragment,{children:e.filter((t=>t!==i))});return(0,b.jsx)(V,{...t,summary:i,children:n})}var X=i(7955);function Q(t){return(0,b.jsx)(X.Z,{...t})}const J={containsTaskList:"containsTaskList_mC6p"};function K(t){if(void 0!==t)return(0,s.Z)(t,t?.includes("contains-task-list")&&J.containsTaskList)}const tt={img:"img_ev3q"};var et=i(9047),it=i(4763),rt=i(9690),nt=i(5322);const ot="docusaurus-mermaid-container";function at(){const{colorMode:t}=(0,l.I)(),e=(0,c.L)().mermaid,i=e.theme[t],{options:n}=e;return(0,r.useMemo)((()=>({startOnLoad:!1,...n,theme:i})),[i,n])}function st(t){let{text:e,config:i}=t;const[n,o]=(0,r.useState)(null),a=(0,r.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,s=at(),l=i??s;return(0,r.useEffect)((()=>{(async function(t){let{id:e,text:i,config:r}=t;nt.L.mermaidAPI.initialize(r);try{return await nt.L.render(e,i)}catch(n){throw document.querySelector(`#d${e}`)?.remove(),n}})({id:a,text:e,config:l}).then(o).catch((t=>{o((()=>{throw t}))}))}),[a,e,l]),n}const lt={container:"container_lyt7"};function ct(t){let{renderResult:e}=t;const i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{const t=i.current;e.bindFunctions?.(t)}),[e]),(0,b.jsx)("div",{ref:i,className:`${ot} ${lt.container}`,dangerouslySetInnerHTML:{__html:e.svg}})}function ht(t){let{value:e}=t;const i=st({text:e});return null===i?null:(0,b.jsx)(ct,{renderResult:i})}const ut={Head:o.Z,details:G,Details:G,code:function(t){return r.Children.toArray(t.children).every((t=>"string"==typeof t&&!t.includes("\n")))?(0,b.jsx)("code",{...t}):(0,b.jsx)(D,{...t})},a:function(t){return(0,b.jsx)($.Z,{...t})},pre:function(t){return(0,b.jsx)(b.Fragment,{children:t.children})},ul:function(t){return(0,b.jsx)("ul",{...t,className:K(t.className)})},img:function(t){return(0,b.jsx)("img",{loading:"lazy",...t,className:(e=t.className,(0,s.Z)(e,tt.img))});var e},h1:t=>(0,b.jsx)(Q,{as:"h1",...t}),h2:t=>(0,b.jsx)(Q,{as:"h2",...t}),h3:t=>(0,b.jsx)(Q,{as:"h3",...t}),h4:t=>(0,b.jsx)(Q,{as:"h4",...t}),h5:t=>(0,b.jsx)(Q,{as:"h5",...t}),h6:t=>(0,b.jsx)(Q,{as:"h6",...t}),admonition:et.Z,mermaid:function(t){return(0,b.jsx)(it.Z,{fallback:t=>(0,b.jsx)(rt.Ac,{...t}),children:(0,b.jsx)(ht,{...t})})}};function dt(t){let{children:e}=t;return(0,b.jsx)(n.Z,{components:ut,children:e})}},2244:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});i(7294);var r=i(6010),n=i(9960),o=i(5893);function a(t){const{permalink:e,title:i,subLabel:a,isNext:s}=t;return(0,o.jsxs)(n.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:e,children:[a&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,o.jsx)("div",{className:"pagination-nav__label",children:i})]})}},3008:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});i(7294);var r=i(6010),n=i(9960);const o={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var a=i(5893);function s(t){let{permalink:e,label:i,count:s}=t;return(0,a.jsxs)(n.Z,{href:e,className:(0,r.Z)(o.tag,s?o.tagWithCount:o.tagRegular),children:[i,s&&(0,a.jsx)("span",{children:s})]})}},1526:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});i(7294);var r=i(6010),n=i(5999),o=i(3008);const a={tags:"tags_jXut",tag:"tag_QGVx"};var s=i(5893);function l(t){let{tags:e}=t;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(n.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,r.Z)(a.tags,"padding--none","margin-left--sm"),children:e.map((t=>{let{label:e,permalink:i}=t;return(0,s.jsx)("li",{className:a.tag,children:(0,s.jsx)(o.Z,{label:e,permalink:i})},i)}))})]})}},7484:function(t){t.exports=function(){"use strict";var t=1e3,e=6e4,i=36e5,r="millisecond",n="second",o="minute",a="hour",s="day",l="week",c="month",h="quarter",u="year",d="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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,m={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"],i=t%100;return"["+t+(e[(i-20)%10]||e[i]||e[0])+"]"}},y=function(t,e,i){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(i)+t},x={s:y,z:function(t){var e=-t.utcOffset(),i=Math.abs(e),r=Math.floor(i/60),n=i%60;return(e<=0?"+":"-")+y(r,2,"0")+":"+y(n,2,"0")},m:function t(e,i){if(e.date()<i.date())return-t(i,e);var r=12*(i.year()-e.year())+(i.month()-e.month()),n=e.clone().add(r,c),o=i-n<0,a=e.clone().add(r+(o?-1:1),c);return+(-(r+(i-n)/(o?n-a:a-n))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:u,w:l,d:s,D:d,h:a,m:o,s:n,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},C="en",b={};b[C]=m;var _="$isDayjsObject",v=function(t){return t instanceof S||!(!t||!t[_])},k=function t(e,i,r){var n;if(!e)return C;if("string"==typeof e){var o=e.toLowerCase();b[o]&&(n=o),i&&(b[o]=i,n=o);var a=e.split("-");if(!n&&a.length>1)return t(a[0])}else{var s=e.name;b[s]=e,n=s}return!r&&n&&(C=n),n||!r&&C},T=function(t,e){if(v(t))return t.clone();var i="object"==typeof e?e:{};return i.date=t,i.args=arguments,new S(i)},w=x;w.l=k,w.i=v,w.w=function(t,e){return T(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var S=function(){function m(t){this.$L=k(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[_]=!0}var y=m.prototype;return y.parse=function(t){this.$d=function(t){var e=t.date,i=t.utc;if(null===e)return new Date(NaN);if(w.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(p);if(r){var n=r[2]-1||0,o=(r[7]||"0").substring(0,3);return i?new Date(Date.UTC(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.init()},y.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()},y.$utils=function(){return w},y.isValid=function(){return!(this.$d.toString()===f)},y.isSame=function(t,e){var i=T(t);return this.startOf(e)<=i&&i<=this.endOf(e)},y.isAfter=function(t,e){return T(t)<this.startOf(e)},y.isBefore=function(t,e){return this.endOf(e)<T(t)},y.$g=function(t,e,i){return w.u(t)?this[e]:this.set(i,t)},y.unix=function(){return Math.floor(this.valueOf()/1e3)},y.valueOf=function(){return this.$d.getTime()},y.startOf=function(t,e){var i=this,r=!!w.u(e)||e,h=w.p(t),f=function(t,e){var n=w.w(i.$u?Date.UTC(i.$y,e,t):new Date(i.$y,e,t),i);return r?n:n.endOf(s)},p=function(t,e){return w.w(i.toDate()[t].apply(i.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),i)},g=this.$W,m=this.$M,y=this.$D,x="set"+(this.$u?"UTC":"");switch(h){case u:return r?f(1,0):f(31,11);case c:return r?f(1,m):f(0,m+1);case l:var C=this.$locale().weekStart||0,b=(g<C?g+7:g)-C;return f(r?y-b:y+(6-b),m);case s:case d:return p(x+"Hours",0);case a:return p(x+"Minutes",1);case o:return p(x+"Seconds",2);case n:return p(x+"Milliseconds",3);default:return this.clone()}},y.endOf=function(t){return this.startOf(t,!1)},y.$set=function(t,e){var i,l=w.p(t),h="set"+(this.$u?"UTC":""),f=(i={},i[s]=h+"Date",i[d]=h+"Date",i[c]=h+"Month",i[u]=h+"FullYear",i[a]=h+"Hours",i[o]=h+"Minutes",i[n]=h+"Seconds",i[r]=h+"Milliseconds",i)[l],p=l===s?this.$D+(e-this.$W):e;if(l===c||l===u){var g=this.clone().set(d,1);g.$d[f](p),g.init(),this.$d=g.set(d,Math.min(this.$D,g.daysInMonth())).$d}else f&&this.$d[f](p);return this.init(),this},y.set=function(t,e){return this.clone().$set(t,e)},y.get=function(t){return this[w.p(t)]()},y.add=function(r,h){var d,f=this;r=Number(r);var p=w.p(h),g=function(t){var e=T(f);return w.w(e.date(e.date()+Math.round(t*r)),f)};if(p===c)return this.set(c,this.$M+r);if(p===u)return this.set(u,this.$y+r);if(p===s)return g(1);if(p===l)return g(7);var m=(d={},d[o]=e,d[a]=i,d[n]=t,d)[p]||1,y=this.$d.getTime()+r*m;return w.w(y,this)},y.subtract=function(t,e){return this.add(-1*t,e)},y.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return i.invalidDate||f;var r=t||"YYYY-MM-DDTHH:mm:ssZ",n=w.z(this),o=this.$H,a=this.$m,s=this.$M,l=i.weekdays,c=i.months,h=i.meridiem,u=function(t,i,n,o){return t&&(t[i]||t(e,r))||n[i].slice(0,o)},d=function(t){return w.s(o%12||12,t,"0")},p=h||function(t,e,i){var r=t<12?"AM":"PM";return i?r.toLowerCase():r};return r.replace(g,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return w.s(e.$y,4,"0");case"M":return s+1;case"MM":return w.s(s+1,2,"0");case"MMM":return u(i.monthsShort,s,c,3);case"MMMM":return u(c,s);case"D":return e.$D;case"DD":return w.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return u(i.weekdaysMin,e.$W,l,2);case"ddd":return u(i.weekdaysShort,e.$W,l,3);case"dddd":return l[e.$W];case"H":return String(o);case"HH":return w.s(o,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return p(o,a,!0);case"A":return p(o,a,!1);case"m":return String(a);case"mm":return w.s(a,2,"0");case"s":return String(e.$s);case"ss":return w.s(e.$s,2,"0");case"SSS":return w.s(e.$ms,3,"0");case"Z":return n}return null}(t)||n.replace(":","")}))},y.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},y.diff=function(r,d,f){var p,g=this,m=w.p(d),y=T(r),x=(y.utcOffset()-this.utcOffset())*e,C=this-y,b=function(){return w.m(g,y)};switch(m){case u:p=b()/12;break;case c:p=b();break;case h:p=b()/3;break;case l:p=(C-x)/6048e5;break;case s:p=(C-x)/864e5;break;case a:p=C/i;break;case o:p=C/e;break;case n:p=C/t;break;default:p=C}return f?p:w.a(p)},y.daysInMonth=function(){return this.endOf(c).$D},y.$locale=function(){return b[this.$L]},y.locale=function(t,e){if(!t)return this.$L;var i=this.clone(),r=k(t,e,!0);return r&&(i.$L=r),i},y.clone=function(){return w.w(this.$d,this)},y.toDate=function(){return new Date(this.valueOf())},y.toJSON=function(){return this.isValid()?this.toISOString():null},y.toISOString=function(){return this.$d.toISOString()},y.toString=function(){return this.$d.toUTCString()},m}(),B=S.prototype;return T.prototype=B,[["$ms",r],["$s",n],["$m",o],["$H",a],["$W",s],["$M",c],["$y",u],["$D",d]].forEach((function(t){B[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),T.extend=function(t,e){return t.$i||(t(e,S,T),t.$i=!0),T},T.locale=k,T.isDayjs=v,T.unix=function(t){return T(1e3*t)},T.en=b[C],T.Ls=b,T.p={},T}()},7856:function(t){t.exports=function(){"use strict";const{entries:t,setPrototypeOf:e,isFrozen:i,getPrototypeOf:r,getOwnPropertyDescriptor:n}=Object;let{freeze:o,seal:a,create:s}=Object,{apply:l,construct:c}="undefined"!=typeof Reflect&&Reflect;o||(o=function(t){return t}),a||(a=function(t){return t}),l||(l=function(t,e,i){return t.apply(e,i)}),c||(c=function(t,e){return new t(...e)});const h=_(Array.prototype.forEach),u=_(Array.prototype.pop),d=_(Array.prototype.push),f=_(String.prototype.toLowerCase),p=_(String.prototype.toString),g=_(String.prototype.match),m=_(String.prototype.replace),y=_(String.prototype.indexOf),x=_(String.prototype.trim),C=_(RegExp.prototype.test),b=v(TypeError);function _(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];return l(t,e,r)}}function v(t){return function(){for(var e=arguments.length,i=new Array(e),r=0;r<e;r++)i[r]=arguments[r];return c(t,i)}}function k(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;e&&e(t,null);let o=r.length;for(;o--;){let e=r[o];if("string"==typeof e){const t=n(e);t!==e&&(i(r)||(r[o]=t),e=t)}t[e]=!0}return t}function T(e){const i=s(null);for(const[r,o]of t(e))void 0!==n(e,r)&&(i[r]=o);return i}function w(t,e){for(;null!==t;){const i=n(t,e);if(i){if(i.get)return _(i.get);if("function"==typeof i.value)return _(i.value)}t=r(t)}function i(t){return console.warn("fallback value for",t),null}return i}const S=o(["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"]),B=o(["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"]),F=o(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),A=o(["animate","color-profile","cursor","discard","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"]),L=o(["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","mprescripts"]),M=o(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),E=o(["#text"]),Z=o(["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"]),N=o(["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"]),O=o(["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"]),I=o(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),j=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),q=a(/<%[\w\W]*|[\w\W]*%>/gm),D=a(/\${[\w\W]*}/gm),$=a(/^data-[\-\w.\u00B7-\uFFFF]/),z=a(/^aria-[\-\w]+$/),P=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),R=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H=a(/^html$/i);var U=Object.freeze({__proto__:null,MUSTACHE_EXPR:j,ERB_EXPR:q,TMPLIT_EXPR:D,DATA_ATTR:$,ARIA_ATTR:z,IS_ALLOWED_URI:P,IS_SCRIPT_OR_DATA:R,ATTR_WHITESPACE:W,DOCTYPE_NAME:H});const Y=function(){return"undefined"==typeof window?null:window},V=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let i=null;const r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(i=e.getAttribute(r));const n="dompurify"+(i?"#"+i:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(o){return console.warn("TrustedTypes policy "+n+" could not be created."),null}};function G(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y();const i=t=>G(t);if(i.version="3.0.6",i.removed=[],!e||!e.document||9!==e.document.nodeType)return i.isSupported=!1,i;let{document:r}=e;const n=r,a=n.currentScript,{DocumentFragment:l,HTMLTemplateElement:c,Node:_,Element:v,NodeFilter:j,NamedNodeMap:q=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:D,DOMParser:$,trustedTypes:z}=e,R=v.prototype,W=w(R,"cloneNode"),X=w(R,"nextSibling"),Q=w(R,"childNodes"),J=w(R,"parentNode");if("function"==typeof c){const t=r.createElement("template");t.content&&t.content.ownerDocument&&(r=t.content.ownerDocument)}let K,tt="";const{implementation:et,createNodeIterator:it,createDocumentFragment:rt,getElementsByTagName:nt}=r,{importNode:ot}=n;let at={};i.isSupported="function"==typeof t&&"function"==typeof J&&et&&void 0!==et.createHTMLDocument;const{MUSTACHE_EXPR:st,ERB_EXPR:lt,TMPLIT_EXPR:ct,DATA_ATTR:ht,ARIA_ATTR:ut,IS_SCRIPT_OR_DATA:dt,ATTR_WHITESPACE:ft}=U;let{IS_ALLOWED_URI:pt}=U,gt=null;const mt=k({},[...S,...B,...F,...L,...E]);let yt=null;const xt=k({},[...Z,...N,...O,...I]);let Ct=Object.seal(s(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}})),bt=null,_t=null,vt=!0,kt=!0,Tt=!1,wt=!0,St=!1,Bt=!1,Ft=!1,At=!1,Lt=!1,Mt=!1,Et=!1,Zt=!0,Nt=!1;const Ot="user-content-";let It=!0,jt=!1,qt={},Dt=null;const $t=k({},["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"]);let zt=null;const Pt=k({},["audio","video","img","source","image","track"]);let Rt=null;const Wt=k({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ht="http://www.w3.org/1998/Math/MathML",Ut="http://www.w3.org/2000/svg",Yt="http://www.w3.org/1999/xhtml";let Vt=Yt,Gt=!1,Xt=null;const Qt=k({},[Ht,Ut,Yt],p);let Jt=null;const Kt=["application/xhtml+xml","text/html"],te="text/html";let ee=null,ie=null;const re=r.createElement("form"),ne=function(t){return t instanceof RegExp||t instanceof Function},oe=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ie||ie!==t){if(t&&"object"==typeof t||(t={}),t=T(t),Jt=Jt=-1===Kt.indexOf(t.PARSER_MEDIA_TYPE)?te:t.PARSER_MEDIA_TYPE,ee="application/xhtml+xml"===Jt?p:f,gt="ALLOWED_TAGS"in t?k({},t.ALLOWED_TAGS,ee):mt,yt="ALLOWED_ATTR"in t?k({},t.ALLOWED_ATTR,ee):xt,Xt="ALLOWED_NAMESPACES"in t?k({},t.ALLOWED_NAMESPACES,p):Qt,Rt="ADD_URI_SAFE_ATTR"in t?k(T(Wt),t.ADD_URI_SAFE_ATTR,ee):Wt,zt="ADD_DATA_URI_TAGS"in t?k(T(Pt),t.ADD_DATA_URI_TAGS,ee):Pt,Dt="FORBID_CONTENTS"in t?k({},t.FORBID_CONTENTS,ee):$t,bt="FORBID_TAGS"in t?k({},t.FORBID_TAGS,ee):{},_t="FORBID_ATTR"in t?k({},t.FORBID_ATTR,ee):{},qt="USE_PROFILES"in t&&t.USE_PROFILES,vt=!1!==t.ALLOW_ARIA_ATTR,kt=!1!==t.ALLOW_DATA_ATTR,Tt=t.ALLOW_UNKNOWN_PROTOCOLS||!1,wt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,St=t.SAFE_FOR_TEMPLATES||!1,Bt=t.WHOLE_DOCUMENT||!1,Lt=t.RETURN_DOM||!1,Mt=t.RETURN_DOM_FRAGMENT||!1,Et=t.RETURN_TRUSTED_TYPE||!1,At=t.FORCE_BODY||!1,Zt=!1!==t.SANITIZE_DOM,Nt=t.SANITIZE_NAMED_PROPS||!1,It=!1!==t.KEEP_CONTENT,jt=t.IN_PLACE||!1,pt=t.ALLOWED_URI_REGEXP||P,Vt=t.NAMESPACE||Yt,Ct=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&ne(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ct.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&ne(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ct.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ct.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),St&&(kt=!1),Mt&&(Lt=!0),qt&&(gt=k({},[...E]),yt=[],!0===qt.html&&(k(gt,S),k(yt,Z)),!0===qt.svg&&(k(gt,B),k(yt,N),k(yt,I)),!0===qt.svgFilters&&(k(gt,F),k(yt,N),k(yt,I)),!0===qt.mathMl&&(k(gt,L),k(yt,O),k(yt,I))),t.ADD_TAGS&&(gt===mt&&(gt=T(gt)),k(gt,t.ADD_TAGS,ee)),t.ADD_ATTR&&(yt===xt&&(yt=T(yt)),k(yt,t.ADD_ATTR,ee)),t.ADD_URI_SAFE_ATTR&&k(Rt,t.ADD_URI_SAFE_ATTR,ee),t.FORBID_CONTENTS&&(Dt===$t&&(Dt=T(Dt)),k(Dt,t.FORBID_CONTENTS,ee)),It&&(gt["#text"]=!0),Bt&&k(gt,["html","head","body"]),gt.table&&(k(gt,["tbody"]),delete bt.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');K=t.TRUSTED_TYPES_POLICY,tt=K.createHTML("")}else void 0===K&&(K=V(z,a)),null!==K&&"string"==typeof tt&&(tt=K.createHTML(""));o&&o(t),ie=t}},ae=k({},["mi","mo","mn","ms","mtext"]),se=k({},["foreignobject","desc","title","annotation-xml"]),le=k({},["title","style","font","a","script"]),ce=k({},B);k(ce,F),k(ce,A);const he=k({},L);k(he,M);const ue=function(t){let e=J(t);e&&e.tagName||(e={namespaceURI:Vt,tagName:"template"});const i=f(t.tagName),r=f(e.tagName);return!!Xt[t.namespaceURI]&&(t.namespaceURI===Ut?e.namespaceURI===Yt?"svg"===i:e.namespaceURI===Ht?"svg"===i&&("annotation-xml"===r||ae[r]):Boolean(ce[i]):t.namespaceURI===Ht?e.namespaceURI===Yt?"math"===i:e.namespaceURI===Ut?"math"===i&&se[r]:Boolean(he[i]):t.namespaceURI===Yt?!(e.namespaceURI===Ut&&!se[r])&&!(e.namespaceURI===Ht&&!ae[r])&&!he[i]&&(le[i]||!ce[i]):!("application/xhtml+xml"!==Jt||!Xt[t.namespaceURI]))},de=function(t){d(i.removed,{element:t});try{t.parentNode.removeChild(t)}catch(e){t.remove()}},fe=function(t,e){try{d(i.removed,{attribute:e.getAttributeNode(t),from:e})}catch(r){d(i.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!yt[t])if(Lt||Mt)try{de(e)}catch(r){}else try{e.setAttribute(t,"")}catch(r){}},pe=function(t){let e=null,i=null;if(At)t="<remove></remove>"+t;else{const e=g(t,/^[\r\n\t ]+/);i=e&&e[0]}"application/xhtml+xml"===Jt&&Vt===Yt&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const n=K?K.createHTML(t):t;if(Vt===Yt)try{e=(new $).parseFromString(n,Jt)}catch(a){}if(!e||!e.documentElement){e=et.createDocument(Vt,"template",null);try{e.documentElement.innerHTML=Gt?tt:n}catch(a){}}const o=e.body||e.documentElement;return t&&i&&o.insertBefore(r.createTextNode(i),o.childNodes[0]||null),Vt===Yt?nt.call(e,Bt?"html":"body")[0]:Bt?e.documentElement:o},ge=function(t){return it.call(t.ownerDocument||t,t,j.SHOW_ELEMENT|j.SHOW_COMMENT|j.SHOW_TEXT,null)},me=function(t){return t instanceof D&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof q)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},ye=function(t){return"function"==typeof _&&t instanceof _},xe=function(t,e,r){at[t]&&h(at[t],(t=>{t.call(i,e,r,ie)}))},Ce=function(t){let e=null;if(xe("beforeSanitizeElements",t,null),me(t))return de(t),!0;const r=ee(t.nodeName);if(xe("uponSanitizeElement",t,{tagName:r,allowedTags:gt}),t.hasChildNodes()&&!ye(t.firstElementChild)&&C(/<[/\w]/g,t.innerHTML)&&C(/<[/\w]/g,t.textContent))return de(t),!0;if(!gt[r]||bt[r]){if(!bt[r]&&_e(r)){if(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,r))return!1;if(Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(r))return!1}if(It&&!Dt[r]){const e=J(t)||t.parentNode,i=Q(t)||t.childNodes;if(i&&e)for(let r=i.length-1;r>=0;--r)e.insertBefore(W(i[r],!0),X(t))}return de(t),!0}return t instanceof v&&!ue(t)?(de(t),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!C(/<\/no(script|embed|frames)/i,t.innerHTML)?(St&&3===t.nodeType&&(e=t.textContent,h([st,lt,ct],(t=>{e=m(e,t," ")})),t.textContent!==e&&(d(i.removed,{element:t.cloneNode()}),t.textContent=e)),xe("afterSanitizeElements",t,null),!1):(de(t),!0)},be=function(t,e,i){if(Zt&&("id"===e||"name"===e)&&(i in r||i in re))return!1;if(kt&&!_t[e]&&C(ht,e));else if(vt&&C(ut,e));else if(!yt[e]||_t[e]){if(!(_e(t)&&(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,t)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(t))&&(Ct.attributeNameCheck instanceof RegExp&&C(Ct.attributeNameCheck,e)||Ct.attributeNameCheck instanceof Function&&Ct.attributeNameCheck(e))||"is"===e&&Ct.allowCustomizedBuiltInElements&&(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,i)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(i))))return!1}else if(Rt[e]);else if(C(pt,m(i,ft,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==y(i,"data:")||!zt[t])if(Tt&&!C(dt,m(i,ft,"")));else if(i)return!1;return!0},_e=function(t){return t.indexOf("-")>0},ve=function(t){xe("beforeSanitizeAttributes",t,null);const{attributes:e}=t;if(!e)return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:yt};let n=e.length;for(;n--;){const a=e[n],{name:s,namespaceURI:l,value:c}=a,d=ee(s);let f="value"===s?c:x(c);if(r.attrName=d,r.attrValue=f,r.keepAttr=!0,r.forceKeepAttr=void 0,xe("uponSanitizeAttribute",t,r),f=r.attrValue,r.forceKeepAttr)continue;if(fe(s,t),!r.keepAttr)continue;if(!wt&&C(/\/>/i,f)){fe(s,t);continue}St&&h([st,lt,ct],(t=>{f=m(f,t," ")}));const p=ee(t.nodeName);if(be(p,d,f)){if(!Nt||"id"!==d&&"name"!==d||(fe(s,t),f=Ot+f),K&&"object"==typeof z&&"function"==typeof z.getAttributeType)if(l);else switch(z.getAttributeType(p,d)){case"TrustedHTML":f=K.createHTML(f);break;case"TrustedScriptURL":f=K.createScriptURL(f)}try{l?t.setAttributeNS(l,s,f):t.setAttribute(s,f),u(i.removed)}catch(o){}}}xe("afterSanitizeAttributes",t,null)},ke=function t(e){let i=null;const r=ge(e);for(xe("beforeSanitizeShadowDOM",e,null);i=r.nextNode();)xe("uponSanitizeShadowNode",i,null),Ce(i)||(i.content instanceof l&&t(i.content),ve(i));xe("afterSanitizeShadowDOM",e,null)};return i.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,o=null,a=null,s=null;if(Gt=!t,Gt&&(t="\x3c!--\x3e"),"string"!=typeof t&&!ye(t)){if("function"!=typeof t.toString)throw b("toString is not a function");if("string"!=typeof(t=t.toString()))throw b("dirty is not a string, aborting")}if(!i.isSupported)return t;if(Ft||oe(e),i.removed=[],"string"==typeof t&&(jt=!1),jt){if(t.nodeName){const e=ee(t.nodeName);if(!gt[e]||bt[e])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof _)r=pe("\x3c!----\x3e"),o=r.ownerDocument.importNode(t,!0),1===o.nodeType&&"BODY"===o.nodeName||"HTML"===o.nodeName?r=o:r.appendChild(o);else{if(!Lt&&!St&&!Bt&&-1===t.indexOf("<"))return K&&Et?K.createHTML(t):t;if(r=pe(t),!r)return Lt?null:Et?tt:""}r&&At&&de(r.firstChild);const c=ge(jt?t:r);for(;a=c.nextNode();)Ce(a)||(a.content instanceof l&&ke(a.content),ve(a));if(jt)return t;if(Lt){if(Mt)for(s=rt.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return(yt.shadowroot||yt.shadowrootmode)&&(s=ot.call(n,s,!0)),s}let u=Bt?r.outerHTML:r.innerHTML;return Bt&>["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&C(H,r.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+u),St&&h([st,lt,ct],(t=>{u=m(u,t," ")})),K&&Et?K.createHTML(u):u},i.setConfig=function(){oe(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ft=!0},i.clearConfig=function(){ie=null,Ft=!1},i.isValidAttribute=function(t,e,i){ie||oe({});const r=ee(t),n=ee(e);return be(r,n,i)},i.addHook=function(t,e){"function"==typeof e&&(at[t]=at[t]||[],d(at[t],e))},i.removeHook=function(t){if(at[t])return u(at[t])},i.removeHooks=function(t){at[t]&&(at[t]=[])},i.removeAllHooks=function(){at={}},i}return G()}()},7594:(t,e)=>{function i(t){let e,i=[];for(let r of t.split(",").map((t=>t.trim())))if(/^-?\d+$/.test(r))i.push(parseInt(r,10));else if(e=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[t,r,n,o]=e;if(r&&o){r=parseInt(r),o=parseInt(o);const t=r<o?1:-1;"-"!==n&&".."!==n&&"\u2025"!==n||(o+=t);for(let e=r;e!==o;e+=t)i.push(e)}}return i}e.default=i,t.exports=i},8464:(t,e,i)=>{"use strict";function r(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];var r=Array.from("string"==typeof t?[t]:t);r[r.length-1]=r[r.length-1].replace(/\r?\n([\t ]*)$/,"");var n=r.reduce((function(t,e){var i=e.match(/\n([\t ]+|(?!\s).)/g);return i?t.concat(i.map((function(t){var e,i;return null!==(i=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==i?i:0}))):t}),[]);if(n.length){var o=new RegExp("\n[\t ]{"+Math.min.apply(Math,n)+"}","g");r=r.map((function(t){return t.replace(o,"\n")}))}r[0]=r[0].replace(/^\r?\n/,"");var a=r[0];return e.forEach((function(t,e){var i=a.match(/(?:^|\n)( *)$/),n=i?i[1]:"",o=t;"string"==typeof t&&t.includes("\n")&&(o=String(t).split("\n").map((function(t,e){return 0===e?t:""+n+t})).join("\n")),a+=o+r[e+1]})),a}i.d(e,{Z:()=>r})},1151:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s,a:()=>a});var r=i(7294);const n={},o=r.createContext(n);function a(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),r.createElement(o.Provider,{value:e},t.children)}},4218:(t,e,i)=>{"use strict";function r(t,e){let i;if(void 0===e)for(const r of t)null!=r&&(i<r||void 0===i&&r>=r)&&(i=r);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i<n||void 0===i&&n>=n)&&(i=n)}return i}function n(t,e){let i;if(void 0===e)for(const r of t)null!=r&&(i>r||void 0===i&&r>=r)&&(i=r);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i>n||void 0===i&&n>=n)&&(i=n)}return i}function o(t){return t}i.d(e,{Nb1:()=>cs,LLu:()=>x,F5q:()=>y,$0Z:()=>vs,Dts:()=>Ts,WQY:()=>Ss,qpX:()=>Fs,u93:()=>As,tFB:()=>Ms,YY7:()=>Ns,OvA:()=>Is,dCK:()=>qs,zgE:()=>zs,fGX:()=>Rs,$m7:()=>Hs,c_6:()=>ds,fxm:()=>Ys,FdL:()=>el,ak_:()=>il,SxZ:()=>ol,eA_:()=>sl,jsv:()=>cl,iJ:()=>ll,JHv:()=>pr,jvg:()=>gs,Fp7:()=>r,VV$:()=>n,ve8:()=>xs,tiA:()=>kr,BYU:()=>mn,PKp:()=>vr,Xf:()=>Za,K2I:()=>Na,Ys:()=>Oa,td_:()=>Ia,YPS:()=>Yi,rr1:()=>Zn,i$Z:()=>uo,y2j:()=>Pn,WQD:()=>Mn,U8T:()=>Bn,Z_i:()=>An,Ox9:()=>qn,F0B:()=>Jn,LqH:()=>Rn,S1K:()=>Fn,Zyz:()=>jn,Igq:()=>zn,YDX:()=>Dn,EFj:()=>$n});var a=1,s=2,l=3,c=4,h=1e-6;function u(t){return"translate("+t+",0)"}function d(t){return"translate(0,"+t+")"}function f(t){return e=>+t(e)}function p(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),i=>+t(i)+e}function g(){return!this.__axis}function m(t,e){var i=[],r=null,n=null,m=6,y=6,x=3,C="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,b=t===a||t===c?-1:1,_=t===c||t===s?"x":"y",v=t===a||t===l?u:d;function k(u){var d=null==r?e.ticks?e.ticks.apply(e,i):e.domain():r,k=null==n?e.tickFormat?e.tickFormat.apply(e,i):o:n,T=Math.max(m,0)+x,w=e.range(),S=+w[0]+C,B=+w[w.length-1]+C,F=(e.bandwidth?p:f)(e.copy(),C),A=u.selection?u.selection():u,L=A.selectAll(".domain").data([null]),M=A.selectAll(".tick").data(d,e).order(),E=M.exit(),Z=M.enter().append("g").attr("class","tick"),N=M.select("line"),O=M.select("text");L=L.merge(L.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),M=M.merge(Z),N=N.merge(Z.append("line").attr("stroke","currentColor").attr(_+"2",b*m)),O=O.merge(Z.append("text").attr("fill","currentColor").attr(_,b*T).attr("dy",t===a?"0em":t===l?"0.71em":"0.32em")),u!==A&&(L=L.transition(u),M=M.transition(u),N=N.transition(u),O=O.transition(u),E=E.transition(u).attr("opacity",h).attr("transform",(function(t){return isFinite(t=F(t))?v(t+C):this.getAttribute("transform")})),Z.attr("opacity",h).attr("transform",(function(t){var e=this.parentNode.__axis;return v((e&&isFinite(e=e(t))?e:F(t))+C)}))),E.remove(),L.attr("d",t===c||t===s?y?"M"+b*y+","+S+"H"+C+"V"+B+"H"+b*y:"M"+C+","+S+"V"+B:y?"M"+S+","+b*y+"V"+C+"H"+B+"V"+b*y:"M"+S+","+C+"H"+B),M.attr("opacity",1).attr("transform",(function(t){return v(F(t)+C)})),N.attr(_+"2",b*m),O.attr(_,b*T).text(k),A.filter(g).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===s?"start":t===c?"end":"middle"),A.each((function(){this.__axis=F}))}return k.scale=function(t){return arguments.length?(e=t,k):e},k.ticks=function(){return i=Array.from(arguments),k},k.tickArguments=function(t){return arguments.length?(i=null==t?[]:Array.from(t),k):i.slice()},k.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),k):r&&r.slice()},k.tickFormat=function(t){return arguments.length?(n=t,k):n},k.tickSize=function(t){return arguments.length?(m=y=+t,k):m},k.tickSizeInner=function(t){return arguments.length?(m=+t,k):m},k.tickSizeOuter=function(t){return arguments.length?(y=+t,k):y},k.tickPadding=function(t){return arguments.length?(x=+t,k):x},k.offset=function(t){return arguments.length?(C=+t,k):C},k}function y(t){return m(a,t)}function x(t){return m(l,t)}function C(){}function b(t){return null==t?C:function(){return this.querySelector(t)}}function _(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function v(){return[]}function k(t){return null==t?v:function(){return this.querySelectorAll(t)}}function T(t){return function(){return this.matches(t)}}function w(t){return function(e){return e.matches(t)}}var S=Array.prototype.find;function B(){return this.firstElementChild}var F=Array.prototype.filter;function A(){return Array.from(this.children)}function L(t){return new Array(t.length)}function M(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function E(t,e,i,r,n,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],r[s]=a):i[s]=new M(t,o[s]);for(;s<l;++s)(a=e[s])&&(n[s]=a)}function Z(t,e,i,r,n,o,a){var s,l,c,h=new Map,u=e.length,d=o.length,f=new Array(u);for(s=0;s<u;++s)(l=e[s])&&(f[s]=c=a.call(l,l.__data__,s,e)+"",h.has(c)?n[s]=l:h.set(c,l));for(s=0;s<d;++s)c=a.call(t,o[s],s,o)+"",(l=h.get(c))?(r[s]=l,l.__data__=o[s],h.delete(c)):i[s]=new M(t,o[s]);for(s=0;s<u;++s)(l=e[s])&&h.get(f[s])===l&&(n[s]=l)}function N(t){return t.__data__}function O(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function I(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}M.prototype={constructor:M,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 j="http://www.w3.org/1999/xhtml";const q={svg:"http://www.w3.org/2000/svg",xhtml:j,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function D(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),q.hasOwnProperty(e)?{space:q[e],local:t}:t}function $(t){return function(){this.removeAttribute(t)}}function z(t){return function(){this.removeAttributeNS(t.space,t.local)}}function P(t,e){return function(){this.setAttribute(t,e)}}function R(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function W(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}function H(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function U(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Y(t){return function(){this.style.removeProperty(t)}}function V(t,e,i){return function(){this.style.setProperty(t,e,i)}}function G(t,e,i){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,i)}}function X(t,e){return t.style.getPropertyValue(e)||U(t).getComputedStyle(t,null).getPropertyValue(e)}function Q(t){return function(){delete this[t]}}function J(t,e){return function(){this[t]=e}}function K(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}function tt(t){return t.trim().split(/^|\s+/)}function et(t){return t.classList||new it(t)}function it(t){this._node=t,this._names=tt(t.getAttribute("class")||"")}function rt(t,e){for(var i=et(t),r=-1,n=e.length;++r<n;)i.add(e[r])}function nt(t,e){for(var i=et(t),r=-1,n=e.length;++r<n;)i.remove(e[r])}function ot(t){return function(){rt(this,t)}}function at(t){return function(){nt(this,t)}}function st(t,e){return function(){(e.apply(this,arguments)?rt:nt)(this,t)}}function lt(){this.textContent=""}function ct(t){return function(){this.textContent=t}}function ht(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function ut(){this.innerHTML=""}function dt(t){return function(){this.innerHTML=t}}function ft(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function pt(){this.nextSibling&&this.parentNode.appendChild(this)}function gt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function mt(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===j&&e.documentElement.namespaceURI===j?e.createElement(t):e.createElementNS(i,t)}}function yt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function xt(t){var e=D(t);return(e.local?yt:mt)(e)}function Ct(){return null}function bt(){var t=this.parentNode;t&&t.removeChild(this)}function _t(){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 kt(t){return function(){var e=this.__on;if(e){for(var i,r=0,n=-1,o=e.length;r<o;++r)i=e[r],t.type&&i.type!==t.type||i.name!==t.name?e[++n]=i:this.removeEventListener(i.type,i.listener,i.options);++n?e.length=n:delete this.__on}}}function Tt(t,e,i){return function(){var r,n=this.__on,o=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(n)for(var a=0,s=n.length;a<s;++a)if((r=n[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=i),void(r.value=e);this.addEventListener(t.type,o,i),r={type:t.type,name:t.name,value:e,listener:o,options:i},n?n.push(r):this.__on=[r]}}function wt(t,e,i){var r=U(t),n=r.CustomEvent;"function"==typeof n?n=new n(e,i):(n=r.document.createEvent("Event"),i?(n.initEvent(e,i.bubbles,i.cancelable),n.detail=i.detail):n.initEvent(e,!1,!1)),t.dispatchEvent(n)}function St(t,e){return function(){return wt(this,t,e)}}function Bt(t,e){return function(){return wt(this,t,e.apply(this,arguments))}}it.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 Ft=[null];function At(t,e){this._groups=t,this._parents=e}function Lt(){return new At([[document.documentElement]],Ft)}At.prototype=Lt.prototype={constructor:At,select:function(t){"function"!=typeof t&&(t=b(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a,s=e[n],l=s.length,c=r[n]=new Array(l),h=0;h<l;++h)(o=s[h])&&(a=t.call(o,o.__data__,h,s))&&("__data__"in o&&(a.__data__=o.__data__),c[h]=a);return new At(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return _(t.apply(this,arguments))}}(t):k(t);for(var e=this._groups,i=e.length,r=[],n=[],o=0;o<i;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(r.push(t.call(a,a.__data__,c,s)),n.push(a));return new At(r,n)},selectChild:function(t){return this.select(null==t?B:function(t){return function(){return S.call(this.children,t)}}("function"==typeof t?t:w(t)))},selectChildren:function(t){return this.selectAll(null==t?A:function(t){return function(){return F.call(this.children,t)}}("function"==typeof t?t:w(t)))},filter:function(t){"function"!=typeof t&&(t=T(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new At(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,N);var i,r=e?Z:E,n=this._parents,o=this._groups;"function"!=typeof t&&(i=t,t=function(){return i});for(var a=o.length,s=new Array(a),l=new Array(a),c=new Array(a),h=0;h<a;++h){var u=n[h],d=o[h],f=d.length,p=O(t.call(u,u&&u.__data__,h,n)),g=p.length,m=l[h]=new Array(g),y=s[h]=new Array(g);r(u,d,m,y,c[h]=new Array(f),p,e);for(var x,C,b=0,_=0;b<g;++b)if(x=m[b]){for(b>=_&&(_=b+1);!(C=y[_])&&++_<g;);x._next=C||null}}return(s=new At(s,n))._enter=l,s._exit=c,s},enter:function(){return new At(this._enter||this._groups.map(L),this._parents)},exit:function(){return new At(this._exit||this._groups.map(L),this._parents)},join:function(t,e,i){var r=this.enter(),n=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(n=e(n))&&(n=n.selection()),null==i?o.remove():i(o),r&&n?r.merge(n).order():n},merge:function(t){for(var e=t.selection?t.selection():t,i=this._groups,r=e._groups,n=i.length,o=r.length,a=Math.min(n,o),s=new Array(n),l=0;l<a;++l)for(var c,h=i[l],u=r[l],d=h.length,f=s[l]=new Array(d),p=0;p<d;++p)(c=h[p]||u[p])&&(f[p]=c);for(;l<n;++l)s[l]=i[l];return new At(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,i=t.length;++e<i;)for(var r,n=t[e],o=n.length-1,a=n[o];--o>=0;)(r=n[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=I);for(var i=this._groups,r=i.length,n=new Array(r),o=0;o<r;++o){for(var a,s=i[o],l=s.length,c=n[o]=new Array(l),h=0;h<l;++h)(a=s[h])&&(c[h]=a);c.sort(e)}return new At(n,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,i=t.length;e<i;++e)for(var r=t[e],n=0,o=r.length;n<o;++n){var a=r[n];if(a)return a}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,i=0,r=e.length;i<r;++i)for(var n,o=e[i],a=0,s=o.length;a<s;++a)(n=o[a])&&t.call(n,n.__data__,a,o);return this},attr:function(t,e){var i=D(t);if(arguments.length<2){var r=this.node();return i.local?r.getAttributeNS(i.space,i.local):r.getAttribute(i)}return this.each((null==e?i.local?z:$:"function"==typeof e?i.local?H:W:i.local?R:P)(i,e))},style:function(t,e,i){return arguments.length>1?this.each((null==e?Y:"function"==typeof e?G:V)(t,e,null==i?"":i)):X(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Q:"function"==typeof e?K:J)(t,e)):this.node()[t]},classed:function(t,e){var i=tt(t+"");if(arguments.length<2){for(var r=et(this.node()),n=-1,o=i.length;++n<o;)if(!r.contains(i[n]))return!1;return!0}return this.each(("function"==typeof e?st:e?ot:at)(i,e))},text:function(t){return arguments.length?this.each(null==t?lt:("function"==typeof t?ht:ct)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?ft:dt)(t)):this.node().innerHTML},raise:function(){return this.each(pt)},lower:function(){return this.each(gt)},append:function(t){var e="function"==typeof t?t:xt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var i="function"==typeof t?t:xt(t),r=null==e?Ct:"function"==typeof e?e:b(e);return this.select((function(){return this.insertBefore(i.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(bt)},clone:function(t){return this.select(t?vt:_t)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,i){var r,n,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?Tt:kt,r=0;r<a;++r)this.each(s(o[r],e,i));return this}var s=this.node().__on;if(s)for(var l,c=0,h=s.length;c<h;++c)for(r=0,l=s[c];r<a;++r)if((n=o[r]).type===l.type&&n.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?Bt:St)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var r,n=t[e],o=0,a=n.length;o<a;++o)(r=n[o])&&(yield r)}};const Mt=Lt;var Et={value:()=>{}};function Zt(){for(var t,e=0,i=arguments.length,r={};e<i;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Nt(r)}function Nt(t){this._=t}function Ot(t,e){for(var i,r=0,n=t.length;r<n;++r)if((i=t[r]).name===e)return i.value}function It(t,e,i){for(var r=0,n=t.length;r<n;++r)if(t[r].name===e){t[r]=Et,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=i&&t.push({name:e,value:i}),t}Nt.prototype=Zt.prototype={constructor:Nt,on:function(t,e){var i,r,n=this._,o=(r=n,(t+"").trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");if(i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(i=(t=o[a]).type)n[i]=It(n[i],t.name,e);else if(null==e)for(i in n)n[i]=It(n[i],t.name,null);return this}for(;++a<s;)if((i=(t=o[a]).type)&&(i=Ot(n[i],t.name)))return i},copy:function(){var t={},e=this._;for(var i in e)t[i]=e[i].slice();return new Nt(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var i,r,n=new Array(i),o=0;o<i;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,i=(r=this._[t]).length;o<i;++o)r[o].value.apply(e,n)},apply:function(t,e,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],n=0,o=r.length;n<o;++n)r[n].value.apply(e,i)}};const jt=Zt;var qt,Dt,$t=0,zt=0,Pt=0,Rt=1e3,Wt=0,Ht=0,Ut=0,Yt="object"==typeof performance&&performance.now?performance:Date,Vt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Gt(){return Ht||(Vt(Xt),Ht=Yt.now()+Ut)}function Xt(){Ht=0}function Qt(){this._call=this._time=this._next=null}function Jt(t,e,i){var r=new Qt;return r.restart(t,e,i),r}function Kt(){Ht=(Wt=Yt.now())+Ut,$t=zt=0;try{!function(){Gt(),++$t;for(var t,e=qt;e;)(t=Ht-e._time)>=0&&e._call.call(void 0,t),e=e._next;--$t}()}finally{$t=0,function(){var t,e,i=qt,r=1/0;for(;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:qt=e);Dt=t,ee(r)}(),Ht=0}}function te(){var t=Yt.now(),e=t-Wt;e>Rt&&(Ut-=e,Wt=t)}function ee(t){$t||(zt&&(zt=clearTimeout(zt)),t-Ht>24?(t<1/0&&(zt=setTimeout(Kt,t-Yt.now()-Ut)),Pt&&(Pt=clearInterval(Pt))):(Pt||(Wt=Yt.now(),Pt=setInterval(te,Rt)),$t=1,Vt(Kt)))}function ie(t,e,i){var r=new Qt;return e=null==e?0:+e,r.restart((i=>{r.stop(),t(i+e)}),e,i),r}Qt.prototype=Jt.prototype={constructor:Qt,restart:function(t,e,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?Gt():+i)+(null==e?0:+e),this._next||Dt===this||(Dt?Dt._next=this:qt=this,Dt=this),this._call=t,this._time=i,ee()},stop:function(){this._call&&(this._call=null,this._time=1/0,ee())}};var re=jt("start","end","cancel","interrupt"),ne=[],oe=0,ae=1,se=2,le=3,ce=4,he=5,ue=6;function de(t,e,i,r,n,o){var a=t.__transition;if(a){if(i in a)return}else t.__transition={};!function(t,e,i){var r,n=t.__transition;function o(t){i.state=ae,i.timer.restart(a,i.delay,i.time),i.delay<=t&&a(t-i.delay)}function a(o){var c,h,u,d;if(i.state!==ae)return l();for(c in n)if((d=n[c]).name===i.name){if(d.state===le)return ie(a);d.state===ce?(d.state=ue,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete n[c]):+c<e&&(d.state=ue,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete n[c])}if(ie((function(){i.state===le&&(i.state=ce,i.timer.restart(s,i.delay,i.time),s(o))})),i.state=se,i.on.call("start",t,t.__data__,i.index,i.group),i.state===se){for(i.state=le,r=new Array(u=i.tween.length),c=0,h=-1;c<u;++c)(d=i.tween[c].value.call(t,t.__data__,i.index,i.group))&&(r[++h]=d);r.length=h+1}}function s(e){for(var n=e<i.duration?i.ease.call(null,e/i.duration):(i.timer.restart(l),i.state=he,1),o=-1,a=r.length;++o<a;)r[o].call(t,n);i.state===he&&(i.on.call("end",t,t.__data__,i.index,i.group),l())}function l(){for(var r in i.state=ue,i.timer.stop(),delete n[e],n)return;delete t.__transition}n[e]=i,i.timer=Jt(o,0,i.time)}(t,i,{name:e,index:r,group:n,on:re,tween:ne,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:oe})}function fe(t,e){var i=ge(t,e);if(i.state>oe)throw new Error("too late; already scheduled");return i}function pe(t,e){var i=ge(t,e);if(i.state>le)throw new Error("too late; already running");return i}function ge(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function me(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var ye,xe=180/Math.PI,Ce={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function be(t,e,i,r,n,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*i+e*r)&&(i-=t*l,r-=e*l),(s=Math.sqrt(i*i+r*r))&&(i/=s,r/=s,l/=s),t*r<e*i&&(t=-t,e=-e,l=-l,a=-a),{translateX:n,translateY:o,rotate:Math.atan2(e,t)*xe,skewX:Math.atan(l)*xe,scaleX:a,scaleY:s}}function _e(t,e,i,r){function n(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),function(t,r,n,o,a,s){if(t!==n||r!==o){var l=a.push("translate(",null,e,null,i);s.push({i:l-4,x:me(t,n)},{i:l-2,x:me(r,o)})}else(n||o)&&a.push("translate("+n+e+o+i)}(o.translateX,o.translateY,a.translateX,a.translateY,s,l),function(t,e,i,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:i.push(n(i)+"rotate(",null,r)-2,x:me(t,e)})):e&&i.push(n(i)+"rotate("+e+r)}(o.rotate,a.rotate,s,l),function(t,e,i,o){t!==e?o.push({i:i.push(n(i)+"skewX(",null,r)-2,x:me(t,e)}):e&&i.push(n(i)+"skewX("+e+r)}(o.skewX,a.skewX,s,l),function(t,e,i,r,o,a){if(t!==i||e!==r){var s=o.push(n(o)+"scale(",null,",",null,")");a.push({i:s-4,x:me(t,i)},{i:s-2,x:me(e,r)})}else 1===i&&1===r||o.push(n(o)+"scale("+i+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,i=-1,r=l.length;++i<r;)s[(e=l[i]).i]=e.x(t);return s.join("")}}}var ve=_e((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Ce:be(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),ke=_e((function(t){return null==t?Ce:(ye||(ye=document.createElementNS("http://www.w3.org/2000/svg","g")),ye.setAttribute("transform",t),(t=ye.transform.baseVal.consolidate())?be((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Ce)}),", ",")",")");function Te(t,e){var i,r;return function(){var n=pe(this,t),o=n.tween;if(o!==i)for(var a=0,s=(r=i=o).length;a<s;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}n.tween=r}}function we(t,e,i){var r,n;if("function"!=typeof i)throw new Error;return function(){var o=pe(this,t),a=o.tween;if(a!==r){n=(r=a).slice();for(var s={name:e,value:i},l=0,c=n.length;l<c;++l)if(n[l].name===e){n[l]=s;break}l===c&&n.push(s)}o.tween=n}}function Se(t,e,i){var r=t._id;return t.each((function(){var t=pe(this,r);(t.value||(t.value={}))[e]=i.apply(this,arguments)})),function(t){return ge(t,r).value[e]}}function Be(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function Fe(t,e){var i=Object.create(t.prototype);for(var r in e)i[r]=e[r];return i}function Ae(){}var Le=.7,Me=1/Le,Ee="\\s*([+-]?\\d+)\\s*",Ze="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ne="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Oe=/^#([0-9a-f]{3,8})$/,Ie=new RegExp(`^rgb\\(${Ee},${Ee},${Ee}\\)$`),je=new RegExp(`^rgb\\(${Ne},${Ne},${Ne}\\)$`),qe=new RegExp(`^rgba\\(${Ee},${Ee},${Ee},${Ze}\\)$`),De=new RegExp(`^rgba\\(${Ne},${Ne},${Ne},${Ze}\\)$`),$e=new RegExp(`^hsl\\(${Ze},${Ne},${Ne}\\)$`),ze=new RegExp(`^hsla\\(${Ze},${Ne},${Ne},${Ze}\\)$`),Pe={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 Re(){return this.rgb().formatHex()}function We(){return this.rgb().formatRgb()}function He(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=Oe.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?Ue(e):3===i?new Xe(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?Ye(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=Ie.exec(t))?new Xe(e[1],e[2],e[3],1):(e=je.exec(t))?new Xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=qe.exec(t))?Ye(e[1],e[2],e[3],e[4]):(e=De.exec(t))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=$e.exec(t))?ii(e[1],e[2]/100,e[3]/100,1):(e=ze.exec(t))?ii(e[1],e[2]/100,e[3]/100,e[4]):Pe.hasOwnProperty(t)?Ue(Pe[t]):"transparent"===t?new Xe(NaN,NaN,NaN,0):null}function Ue(t){return new Xe(t>>16&255,t>>8&255,255&t,1)}function Ye(t,e,i,r){return r<=0&&(t=e=i=NaN),new Xe(t,e,i,r)}function Ve(t){return t instanceof Ae||(t=He(t)),t?new Xe((t=t.rgb()).r,t.g,t.b,t.opacity):new Xe}function Ge(t,e,i,r){return 1===arguments.length?Ve(t):new Xe(t,e,i,null==r?1:r)}function Xe(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}function Qe(){return`#${ei(this.r)}${ei(this.g)}${ei(this.b)}`}function Je(){const t=Ke(this.opacity);return`${1===t?"rgb(":"rgba("}${ti(this.r)}, ${ti(this.g)}, ${ti(this.b)}${1===t?")":`, ${t})`}`}function Ke(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ti(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ei(t){return((t=ti(t))<16?"0":"")+t.toString(16)}function ii(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new ni(t,e,i,r)}function ri(t){if(t instanceof ni)return new ni(t.h,t.s,t.l,t.opacity);if(t instanceof Ae||(t=He(t)),!t)return new ni;if(t instanceof ni)return t;var e=(t=t.rgb()).r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),a=NaN,s=o-n,l=(o+n)/2;return s?(a=e===o?(i-r)/s+6*(i<r):i===o?(r-e)/s+2:(e-i)/s+4,s/=l<.5?o+n:2-o-n,a*=60):s=l>0&&l<1?0:a,new ni(a,s,l,t.opacity)}function ni(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}function oi(t){return(t=(t||0)%360)<0?t+360:t}function ai(t){return Math.max(0,Math.min(1,t||0))}function si(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}function li(t,e,i,r,n){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*i+(1+3*t+3*o-3*a)*r+a*n)/6}Be(Ae,He,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Re,formatHex:Re,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ri(this).formatHsl()},formatRgb:We,toString:We}),Be(Xe,Ge,Fe(Ae,{brighter(t){return t=null==t?Me:Math.pow(Me,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Le:Math.pow(Le,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Xe(ti(this.r),ti(this.g),ti(this.b),Ke(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:Qe,formatHex:Qe,formatHex8:function(){return`#${ei(this.r)}${ei(this.g)}${ei(this.b)}${ei(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Je,toString:Je})),Be(ni,(function(t,e,i,r){return 1===arguments.length?ri(t):new ni(t,e,i,null==r?1:r)}),Fe(Ae,{brighter(t){return t=null==t?Me:Math.pow(Me,t),new ni(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Le:Math.pow(Le,t),new ni(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,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new Xe(si(t>=240?t-240:t+120,n,r),si(t,n,r),si(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new ni(oi(this.h),ai(this.s),ai(this.l),Ke(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=Ke(this.opacity);return`${1===t?"hsl(":"hsla("}${oi(this.h)}, ${100*ai(this.s)}%, ${100*ai(this.l)}%${1===t?")":`, ${t})`}`}}));const ci=t=>()=>t;function hi(t,e){return function(i){return t+i*e}}function ui(t){return 1==(t=+t)?di:function(e,i){return i-e?function(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}(e,i,t):ci(isNaN(e)?i:e)}}function di(t,e){var i=e-t;return i?hi(t,i):ci(isNaN(t)?e:t)}const fi=function t(e){var i=ui(e);function r(t,e){var r=i((t=Ge(t)).r,(e=Ge(e)).r),n=i(t.g,e.g),o=i(t.b,e.b),a=di(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=n(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function pi(t){return function(e){var i,r,n=e.length,o=new Array(n),a=new Array(n),s=new Array(n);for(i=0;i<n;++i)r=Ge(e[i]),o[i]=r.r||0,a[i]=r.g||0,s[i]=r.b||0;return o=t(o),a=t(a),s=t(s),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=s(t),r+""}}}pi((function(t){var e=t.length-1;return function(i){var r=i<=0?i=0:i>=1?(i=1,e-1):Math.floor(i*e),n=t[r],o=t[r+1],a=r>0?t[r-1]:2*n-o,s=r<e-1?t[r+2]:2*o-n;return li((i-r/e)*e,a,n,o,s)}})),pi((function(t){var e=t.length;return function(i){var r=Math.floor(((i%=1)<0?++i:i)*e),n=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return li((i-r/e)*e,n,o,a,s)}}));var gi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mi=new RegExp(gi.source,"g");function yi(t,e){var i,r,n,o=gi.lastIndex=mi.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(i=gi.exec(t))&&(r=mi.exec(e));)(n=r.index)>o&&(n=e.slice(o,n),s[a]?s[a]+=n:s[++a]=n),(i=i[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:me(i,r)})),o=mi.lastIndex;return o<e.length&&(n=e.slice(o),s[a]?s[a]+=n:s[++a]=n),s.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var i,r=0;r<e;++r)s[(i=l[r]).i]=i.x(t);return s.join("")})}function xi(t,e){var i;return("number"==typeof e?me:e instanceof He?fi:(i=He(e))?(e=i,fi):yi)(t,e)}function Ci(t){return function(){this.removeAttribute(t)}}function bi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function _i(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?n:n=e(r=a,i)}}function vi(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?n:n=e(r=a,i)}}function ki(t,e,i){var r,n,o;return function(){var a,s,l=i(this);if(null!=l)return(a=this.getAttribute(t))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l));this.removeAttribute(t)}}function Ti(t,e,i){var r,n,o;return function(){var a,s,l=i(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l));this.removeAttributeNS(t.space,t.local)}}function wi(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(t,e){return function(i){this.setAttributeNS(t.space,t.local,e.call(this,i))}}(t,n)),i}return n._value=e,n}function Si(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(t,e){return function(i){this.setAttribute(t,e.call(this,i))}}(t,n)),i}return n._value=e,n}function Bi(t,e){return function(){fe(this,t).delay=+e.apply(this,arguments)}}function Fi(t,e){return e=+e,function(){fe(this,t).delay=e}}function Ai(t,e){return function(){pe(this,t).duration=+e.apply(this,arguments)}}function Li(t,e){return e=+e,function(){pe(this,t).duration=e}}var Mi=Mt.prototype.constructor;function Ei(t){return function(){this.style.removeProperty(t)}}var Zi=0;function Ni(t,e,i,r){this._groups=t,this._parents=e,this._name=i,this._id=r}function Oi(){return++Zi}var Ii=Mt.prototype;Ni.prototype=function(t){return Mt().transition(t)}.prototype={constructor:Ni,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=b(t));for(var r=this._groups,n=r.length,o=new Array(n),a=0;a<n;++a)for(var s,l,c=r[a],h=c.length,u=o[a]=new Array(h),d=0;d<h;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),u[d]=l,de(u[d],e,i,d,u,ge(s,i)));return new Ni(o,this._parents,e,i)},selectAll:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=k(t));for(var r=this._groups,n=r.length,o=[],a=[],s=0;s<n;++s)for(var l,c=r[s],h=c.length,u=0;u<h;++u)if(l=c[u]){for(var d,f=t.call(l,l.__data__,u,c),p=ge(l,i),g=0,m=f.length;g<m;++g)(d=f[g])&&de(d,e,i,g,f,p);o.push(f),a.push(l)}return new Ni(o,a,e,i)},selectChild:Ii.selectChild,selectChildren:Ii.selectChildren,filter:function(t){"function"!=typeof t&&(t=T(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new Ni(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,i=t._groups,r=e.length,n=i.length,o=Math.min(r,n),a=new Array(r),s=0;s<o;++s)for(var l,c=e[s],h=i[s],u=c.length,d=a[s]=new Array(u),f=0;f<u;++f)(l=c[f]||h[f])&&(d[f]=l);for(;s<r;++s)a[s]=e[s];return new Ni(a,this._parents,this._name,this._id)},selection:function(){return new Mi(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,i=Oi(),r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var h=ge(a,e);de(a,t,i,c,s,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new Ni(r,this._parents,t,i)},call:Ii.call,nodes:Ii.nodes,node:Ii.node,size:Ii.size,empty:Ii.empty,each:Ii.each,on:function(t,e){var i=this._id;return arguments.length<2?ge(this.node(),i).on.on(t):this.each(function(t,e,i){var r,n,o=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)?fe:pe;return function(){var a=o(this,t),s=a.on;s!==r&&(n=(r=s).copy()).on(e,i),a.on=n}}(i,t,e))},attr:function(t,e){var i=D(t),r="transform"===i?ke:xi;return this.attrTween(t,"function"==typeof e?(i.local?Ti:ki)(i,r,Se(this,"attr."+t,e)):null==e?(i.local?bi:Ci)(i):(i.local?vi:_i)(i,r,e))},attrTween:function(t,e){var i="attr."+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;var r=D(t);return this.tween(i,(r.local?wi:Si)(r,e))},style:function(t,e,i){var r="transform"==(t+="")?ve:xi;return null==e?this.styleTween(t,function(t,e){var i,r,n;return function(){var o=X(this,t),a=(this.style.removeProperty(t),X(this,t));return o===a?null:o===i&&a===r?n:n=e(i=o,r=a)}}(t,r)).on("end.style."+t,Ei(t)):"function"==typeof e?this.styleTween(t,function(t,e,i){var r,n,o;return function(){var a=X(this,t),s=i(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=X(this,t)),a===l?null:a===r&&l===n?o:(n=l,o=e(r=a,s))}}(t,r,Se(this,"style."+t,e))).each(function(t,e){var i,r,n,o,a="style."+e,s="end."+a;return function(){var l=pe(this,t),c=l.on,h=null==l.value[a]?o||(o=Ei(e)):void 0;c===i&&n===h||(r=(i=c).copy()).on(s,n=h),l.on=r}}(this._id,t)):this.styleTween(t,function(t,e,i){var r,n,o=i+"";return function(){var a=X(this,t);return a===o?null:a===r?n:n=e(r=a,i)}}(t,r,e),i).on("end.style."+t,null)},styleTween:function(t,e,i){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,function(t,e,i){var r,n;function o(){var o=e.apply(this,arguments);return o!==n&&(r=(n=o)&&function(t,e,i){return function(r){this.style.setProperty(t,e.call(this,r),i)}}(t,o,i)),r}return o._value=e,o}(t,e,null==i?"":i))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Se(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,function(t){var e,i;function r(){var r=t.apply(this,arguments);return r!==i&&(e=(i=r)&&function(t){return function(e){this.textContent=t.call(this,e)}}(r)),e}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var i=this._id;if(t+="",arguments.length<2){for(var r,n=ge(this.node(),i).tween,o=0,a=n.length;o<a;++o)if((r=n[o]).name===t)return r.value;return null}return this.each((null==e?Te:we)(i,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Bi:Fi)(e,t)):ge(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ai:Li)(e,t)):ge(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){pe(this,t).ease=e}}(e,t)):ge(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var i=e.apply(this,arguments);if("function"!=typeof i)throw new Error;pe(this,t).ease=i}}(this._id,t))},end:function(){var t,e,i=this,r=i._id,n=i.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--n&&o()}};i.each((function(){var i=pe(this,r),n=i.on;n!==t&&((e=(t=n).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),i.on=e})),0===n&&o()}))},[Symbol.iterator]:Ii[Symbol.iterator]};var ji={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function qi(t,e){for(var i;!(i=t.__transition)||!(i=i[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return i}Mt.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var i,r,n,o=t.__transition,a=!0;if(o){for(n in e=null==e?null:e+"",o)(i=o[n]).name===e?(r=i.state>se&&i.state<he,i.state=ue,i.timer.stop(),i.on.call(r?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete o[n]):a=!1;a&&delete t.__transition}}(this,t)}))},Mt.prototype.transition=function(t){var e,i;t instanceof Ni?(e=t._id,t=t._name):(e=Oi(),(i=ji).time=Gt(),t=null==t?null:t+"");for(var r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,c=0;c<l;++c)(a=s[c])&&de(a,t,e,c,s,i||qi(a,e));return new Ni(r,this._parents,t,e)};const{abs:Di,max:$i,min:zi}=Math;function Pi(t){return[+t[0],+t[1]]}function Ri(t){return[Pi(t[0]),Pi(t[1])]}["w","e"].map(Wi),["n","s"].map(Wi),["n","w","e","s","nw","ne","sw","se"].map(Wi);function Wi(t){return{type:t}}function Hi(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Ui(t){return(e,i)=>function(t,e){return fetch(t,e).then(Hi)}(e,i).then((e=>(new DOMParser).parseFromString(e,t)))}Ui("application/xml");Ui("text/html");var Yi=Ui("image/svg+xml");const Vi=Math.PI/180,Gi=180/Math.PI,Xi=.96422,Qi=1,Ji=.82521,Ki=4/29,tr=6/29,er=3*tr*tr,ir=tr*tr*tr;function rr(t){if(t instanceof nr)return new nr(t.l,t.a,t.b,t.opacity);if(t instanceof ur)return dr(t);t instanceof Xe||(t=Ve(t));var e,i,r=lr(t.r),n=lr(t.g),o=lr(t.b),a=or((.2225045*r+.7168786*n+.0606169*o)/Qi);return r===n&&n===o?e=i=a:(e=or((.4360747*r+.3850649*n+.1430804*o)/Xi),i=or((.0139322*r+.0971045*n+.7141733*o)/Ji)),new nr(116*a-16,500*(e-a),200*(a-i),t.opacity)}function nr(t,e,i,r){this.l=+t,this.a=+e,this.b=+i,this.opacity=+r}function or(t){return t>ir?Math.pow(t,1/3):t/er+Ki}function ar(t){return t>tr?t*t*t:er*(t-Ki)}function sr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function lr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function cr(t){if(t instanceof ur)return new ur(t.h,t.c,t.l,t.opacity);if(t instanceof nr||(t=rr(t)),0===t.a&&0===t.b)return new ur(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Gi;return new ur(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function hr(t,e,i,r){return 1===arguments.length?cr(t):new ur(t,e,i,null==r?1:r)}function ur(t,e,i,r){this.h=+t,this.c=+e,this.l=+i,this.opacity=+r}function dr(t){if(isNaN(t.h))return new nr(t.l,0,0,t.opacity);var e=t.h*Vi;return new nr(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function fr(t){return function(e,i){var r=t((e=hr(e)).h,(i=hr(i)).h),n=di(e.c,i.c),o=di(e.l,i.l),a=di(e.opacity,i.opacity);return function(t){return e.h=r(t),e.c=n(t),e.l=o(t),e.opacity=a(t),e+""}}}Be(nr,(function(t,e,i,r){return 1===arguments.length?rr(t):new nr(t,e,i,null==r?1:r)}),Fe(Ae,{brighter(t){return new nr(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new nr(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,i=isNaN(this.b)?t:t-this.b/200;return new Xe(sr(3.1338561*(e=Xi*ar(e))-1.6168667*(t=Qi*ar(t))-.4906146*(i=Ji*ar(i))),sr(-.9787684*e+1.9161415*t+.033454*i),sr(.0719453*e-.2289914*t+1.4052427*i),this.opacity)}})),Be(ur,hr,Fe(Ae,{brighter(t){return new ur(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new ur(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return dr(this).rgb()}}));const pr=fr((function(t,e){var i=e-t;return i?hi(t,i>180||i<-180?i-360*Math.round(i/360):i):ci(isNaN(t)?e:t)}));fr(di);function gr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}class mr extends Map{constructor(t,e=br){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[i,r]of t)this.set(i,r)}get(t){return super.get(yr(this,t))}has(t){return super.has(yr(this,t))}set(t,e){return super.set(xr(this,t),e)}delete(t){return super.delete(Cr(this,t))}}function yr({_intern:t,_key:e},i){const r=e(i);return t.has(r)?t.get(r):i}function xr({_intern:t,_key:e},i){const r=e(i);return t.has(r)?t.get(r):(t.set(r,i),i)}function Cr({_intern:t,_key:e},i){const r=e(i);return t.has(r)&&(i=t.get(r),t.delete(r)),i}function br(t){return null!==t&&"object"==typeof t?t.valueOf():t}const _r=Symbol("implicit");function vr(){var t=new mr,e=[],i=[],r=_r;function n(n){let o=t.get(n);if(void 0===o){if(r!==_r)return r;t.set(n,o=e.push(n)-1)}return i[o%i.length]}return n.domain=function(i){if(!arguments.length)return e.slice();e=[],t=new mr;for(const r of i)t.has(r)||t.set(r,e.push(r)-1);return n},n.range=function(t){return arguments.length?(i=Array.from(t),n):i.slice()},n.unknown=function(t){return arguments.length?(r=t,n):r},n.copy=function(){return vr(e,i).unknown(r)},gr.apply(n,arguments),n}function kr(){var t,e,i=vr().unknown(void 0),r=i.domain,n=i.range,o=0,a=1,s=!1,l=0,c=0,h=.5;function u(){var i=r().length,u=a<o,d=u?a:o,f=u?o:a;t=(f-d)/Math.max(1,i-l+2*c),s&&(t=Math.floor(t)),d+=(f-d-t*(i-l))*h,e=t*(1-l),s&&(d=Math.round(d),e=Math.round(e));var p=function(t,e,i){t=+t,e=+e,i=(n=arguments.length)<2?(e=t,t=0,1):n<3?1:+i;for(var r=-1,n=0|Math.max(0,Math.ceil((e-t)/i)),o=new Array(n);++r<n;)o[r]=t+r*i;return o}(i).map((function(e){return d+t*e}));return n(u?p.reverse():p)}return delete i.unknown,i.domain=function(t){return arguments.length?(r(t),u()):r()},i.range=function(t){return arguments.length?([o,a]=t,o=+o,a=+a,u()):[o,a]},i.rangeRound=function(t){return[o,a]=t,o=+o,a=+a,s=!0,u()},i.bandwidth=function(){return e},i.step=function(){return t},i.round=function(t){return arguments.length?(s=!!t,u()):s},i.padding=function(t){return arguments.length?(l=Math.min(1,c=+t),u()):l},i.paddingInner=function(t){return arguments.length?(l=Math.min(1,t),u()):l},i.paddingOuter=function(t){return arguments.length?(c=+t,u()):c},i.align=function(t){return arguments.length?(h=Math.max(0,Math.min(1,t)),u()):h},i.copy=function(){return kr(r(),[o,a]).round(s).paddingInner(l).paddingOuter(c).align(h)},gr.apply(u(),arguments)}const Tr=Math.sqrt(50),wr=Math.sqrt(10),Sr=Math.sqrt(2);function Br(t,e,i){const r=(e-t)/Math.max(0,i),n=Math.floor(Math.log10(r)),o=r/Math.pow(10,n),a=o>=Tr?10:o>=wr?5:o>=Sr?2:1;let s,l,c;return n<0?(c=Math.pow(10,-n)/a,s=Math.round(t*c),l=Math.round(e*c),s/c<t&&++s,l/c>e&&--l,c=-c):(c=Math.pow(10,n)*a,s=Math.round(t/c),l=Math.round(e/c),s*c<t&&++s,l*c>e&&--l),l<s&&.5<=i&&i<2?Br(t,e,2*i):[s,l,c]}function Fr(t,e,i){return Br(t=+t,e=+e,i=+i)[2]}function Ar(t,e,i){i=+i;const r=(e=+e)<(t=+t),n=r?Fr(e,t,i):Fr(t,e,i);return(r?-1:1)*(n<0?1/-n:n)}function Lr(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Mr(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Er(t){let e,i,r;function n(t,r,n=0,o=t.length){if(n<o){if(0!==e(r,r))return o;do{const e=n+o>>>1;i(t[e],r)<0?n=e+1:o=e}while(n<o)}return n}return 2!==t.length?(e=Lr,i=(e,i)=>Lr(t(e),i),r=(e,i)=>t(e)-i):(e=t===Lr||t===Mr?t:Zr,i=t,r=t),{left:n,center:function(t,e,i=0,o=t.length){const a=n(t,e,i,o-1);return a>i&&r(t[a-1],e)>-r(t[a],e)?a-1:a},right:function(t,r,n=0,o=t.length){if(n<o){if(0!==e(r,r))return o;do{const e=n+o>>>1;i(t[e],r)<=0?n=e+1:o=e}while(n<o)}return n}}}function Zr(){return 0}const Nr=Er(Lr),Or=Nr.right,Ir=(Nr.left,Er((function(t){return null===t?NaN:+t})).center,Or);function jr(t,e){var i,r=e?e.length:0,n=t?Math.min(r,t.length):0,o=new Array(n),a=new Array(r);for(i=0;i<n;++i)o[i]=zr(t[i],e[i]);for(;i<r;++i)a[i]=e[i];return function(t){for(i=0;i<n;++i)a[i]=o[i](t);return a}}function qr(t,e){var i=new Date;return t=+t,e=+e,function(r){return i.setTime(t*(1-r)+e*r),i}}function Dr(t,e){var i,r={},n={};for(i in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)i in t?r[i]=zr(t[i],e[i]):n[i]=e[i];return function(t){for(i in r)n[i]=r[i](t);return n}}function $r(t,e){e||(e=[]);var i,r=t?Math.min(e.length,t.length):0,n=e.slice();return function(o){for(i=0;i<r;++i)n[i]=t[i]*(1-o)+e[i]*o;return n}}function zr(t,e){var i,r,n=typeof e;return null==e||"boolean"===n?ci(e):("number"===n?me:"string"===n?(i=He(e))?(e=i,fi):yi:e instanceof He?fi:e instanceof Date?qr:(r=e,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(e)?jr:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Dr:me:$r))(t,e)}function Pr(t,e){return t=+t,e=+e,function(i){return Math.round(t*(1-i)+e*i)}}function Rr(t){return+t}var Wr=[0,1];function Hr(t){return t}function Ur(t,e){return(e-=t=+t)?function(i){return(i-t)/e}:(i=isNaN(e)?NaN:.5,function(){return i});var i}function Yr(t,e,i){var r=t[0],n=t[1],o=e[0],a=e[1];return n<r?(r=Ur(n,r),o=i(a,o)):(r=Ur(r,n),o=i(o,a)),function(t){return o(r(t))}}function Vr(t,e,i){var r=Math.min(t.length,e.length)-1,n=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)n[a]=Ur(t[a],t[a+1]),o[a]=i(e[a],e[a+1]);return function(e){var i=Ir(t,e,1,r)-1;return o[i](n[i](e))}}function Gr(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Xr(){var t,e,i,r,n,o,a=Wr,s=Wr,l=zr,c=Hr;function h(){var t,e,i,l=Math.min(a.length,s.length);return c!==Hr&&(t=a[0],e=a[l-1],t>e&&(i=t,t=e,e=i),c=function(i){return Math.max(t,Math.min(e,i))}),r=l>2?Vr:Yr,n=o=null,u}function u(e){return null==e||isNaN(e=+e)?i:(n||(n=r(a.map(t),s,l)))(t(c(e)))}return u.invert=function(i){return c(e((o||(o=r(s,a.map(t),me)))(i)))},u.domain=function(t){return arguments.length?(a=Array.from(t,Rr),h()):a.slice()},u.range=function(t){return arguments.length?(s=Array.from(t),h()):s.slice()},u.rangeRound=function(t){return s=Array.from(t),l=Pr,h()},u.clamp=function(t){return arguments.length?(c=!!t||Hr,h()):c!==Hr},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(i=t,u):i},function(i,r){return t=i,e=r,h()}}function Qr(){return Xr()(Hr,Hr)}var Jr,Kr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tn(t){if(!(e=Kr.exec(t)))throw new Error("invalid format: "+t);var e;return new en({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 en(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 rn(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,r=t.slice(0,i);return[r.length>1?r[0]+r.slice(2):r,+t.slice(i+1)]}function nn(t){return(t=rn(Math.abs(t)))?t[1]:NaN}function on(t,e){var i=rn(t,e);if(!i)return t+"";var r=i[0],n=i[1];return n<0?"0."+new Array(-n).join("0")+r:r.length>n+1?r.slice(0,n+1)+"."+r.slice(n+1):r+new Array(n-r.length+2).join("0")}tn.prototype=en.prototype,en.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 an={"%":(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)=>on(100*t,e),r:on,s:function(t,e){var i=rn(t,e);if(!i)return t+"";var r=i[0],n=i[1],o=n-(Jr=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+rn(t,Math.max(0,e+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sn(t){return t}var ln,cn,hn,un=Array.prototype.map,dn=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function fn(t){var e,i,r=void 0===t.grouping||void 0===t.thousands?sn:(e=un.call(t.grouping,Number),i=t.thousands+"",function(t,r){for(var n=t.length,o=[],a=0,s=e[0],l=0;n>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(t.substring(n-=s,n+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(i)}),n=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?sn:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(un.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"\u2212":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=tn(t)).fill,i=t.align,u=t.sign,d=t.symbol,f=t.zero,p=t.width,g=t.comma,m=t.precision,y=t.trim,x=t.type;"n"===x?(g=!0,x="g"):an[x]||(void 0===m&&(m=12),y=!0,x="g"),(f||"0"===e&&"="===i)&&(f=!0,e="0",i="=");var C="$"===d?n:"#"===d&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",b="$"===d?o:/[%p]/.test(x)?l:"",_=an[x],v=/[defgprs%]/.test(x);function k(t){var n,o,l,d=C,k=b;if("c"===x)k=_(t)+k,t="";else{var T=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:_(Math.abs(t),m),y&&(t=function(t){t:for(var e,i=t.length,r=1,n=-1;r<i;++r)switch(t[r]){case".":n=e=r;break;case"0":0===n&&(n=r),e=r;break;default:if(!+t[r])break t;n>0&&(n=0)}return n>0?t.slice(0,n)+t.slice(e+1):t}(t)),T&&0==+t&&"+"!==u&&(T=!1),d=(T?"("===u?u:c:"-"===u||"("===u?"":u)+d,k=("s"===x?dn[8+Jr/3]:"")+k+(T&&"("===u?")":""),v)for(n=-1,o=t.length;++n<o;)if(48>(l=t.charCodeAt(n))||l>57){k=(46===l?a+t.slice(n+1):t.slice(n))+k,t=t.slice(0,n);break}}g&&!f&&(t=r(t,1/0));var w=d.length+t.length+k.length,S=w<p?new Array(p-w+1).join(e):"";switch(g&&f&&(t=r(S+t,S.length?p-k.length:1/0),S=""),i){case"<":t=d+t+k+S;break;case"=":t=d+S+t+k;break;case"^":t=S.slice(0,w=S.length>>1)+d+t+k+S.slice(w);break;default:t=S+d+t+k}return s(t)}return m=void 0===m?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),k.toString=function(){return t+""},k}return{format:u,formatPrefix:function(t,e){var i=u(((t=tn(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(nn(e)/3))),n=Math.pow(10,-r),o=dn[8+r/3];return function(t){return i(n*t)+o}}}}function pn(t,e,i,r){var n,o=Ar(t,e,i);switch((r=tn(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(n=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(nn(e)/3)))-nn(Math.abs(t)))}(o,a))||(r.precision=n),hn(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(n=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,nn(e)-nn(t))+1}(o,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=n-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(n=function(t){return Math.max(0,-nn(Math.abs(t)))}(o))||(r.precision=n-2*("%"===r.type))}return cn(r)}function gn(t){var e=t.domain;return t.ticks=function(t){var i=e();return function(t,e,i){if(!((i=+i)>0))return[];if((t=+t)==(e=+e))return[t];const r=e<t,[n,o,a]=r?Br(e,t,i):Br(t,e,i);if(!(o>=n))return[];const s=o-n+1,l=new Array(s);if(r)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(n+c)/-a;else for(let c=0;c<s;++c)l[c]=(n+c)*a;return l}(i[0],i[i.length-1],null==t?10:t)},t.tickFormat=function(t,i){var r=e();return pn(r[0],r[r.length-1],null==t?10:t,i)},t.nice=function(i){null==i&&(i=10);var r,n,o=e(),a=0,s=o.length-1,l=o[a],c=o[s],h=10;for(c<l&&(n=l,l=c,c=n,n=a,a=s,s=n);h-- >0;){if((n=Fr(l,c,i))===r)return o[a]=l,o[s]=c,e(o);if(n>0)l=Math.floor(l/n)*n,c=Math.ceil(c/n)*n;else{if(!(n<0))break;l=Math.ceil(l*n)/n,c=Math.floor(c*n)/n}r=n}return t},t}function mn(){var t=Qr();return t.copy=function(){return Gr(t,mn())},gr.apply(t,arguments),gn(t)}ln=fn({thousands:",",grouping:[3],currency:["$",""]}),cn=ln.format,hn=ln.formatPrefix;const yn=1e3,xn=6e4,Cn=36e5,bn=864e5,_n=6048e5,vn=2592e6,kn=31536e6,Tn=new Date,wn=new Date;function Sn(t,e,i,r){function n(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return n.floor=e=>(t(e=new Date(+e)),e),n.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),n.round=t=>{const e=n(t),i=n.ceil(t);return t-e<i-t?e:i},n.offset=(t,i)=>(e(t=new Date(+t),null==i?1:Math.floor(i)),t),n.range=(i,r,o)=>{const a=[];if(i=n.ceil(i),o=null==o?1:Math.floor(o),!(i<r&&o>0))return a;let s;do{a.push(s=new Date(+i)),e(i,o),t(i)}while(s<i&&i<r);return a},n.filter=i=>Sn((e=>{if(e>=e)for(;t(e),!i(e);)e.setTime(e-1)}),((t,r)=>{if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!i(t););else for(;--r>=0;)for(;e(t,1),!i(t););})),i&&(n.count=(e,r)=>(Tn.setTime(+e),wn.setTime(+r),t(Tn),t(wn),Math.floor(i(Tn,wn))),n.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?n.filter(r?e=>r(e)%t==0:e=>n.count(0,e)%t==0):n:null)),n}const Bn=Sn((()=>{}),((t,e)=>{t.setTime(+t+e)}),((t,e)=>e-t));Bn.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Sn((e=>{e.setTime(Math.floor(e/t)*t)}),((e,i)=>{e.setTime(+e+i*t)}),((e,i)=>(i-e)/t)):Bn:null);Bn.range;const Fn=Sn((t=>{t.setTime(t-t.getMilliseconds())}),((t,e)=>{t.setTime(+t+e*yn)}),((t,e)=>(e-t)/yn),(t=>t.getUTCSeconds())),An=(Fn.range,Sn((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*yn)}),((t,e)=>{t.setTime(+t+e*xn)}),((t,e)=>(e-t)/xn),(t=>t.getMinutes()))),Ln=(An.range,Sn((t=>{t.setUTCSeconds(0,0)}),((t,e)=>{t.setTime(+t+e*xn)}),((t,e)=>(e-t)/xn),(t=>t.getUTCMinutes()))),Mn=(Ln.range,Sn((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*yn-t.getMinutes()*xn)}),((t,e)=>{t.setTime(+t+e*Cn)}),((t,e)=>(e-t)/Cn),(t=>t.getHours()))),En=(Mn.range,Sn((t=>{t.setUTCMinutes(0,0,0)}),((t,e)=>{t.setTime(+t+e*Cn)}),((t,e)=>(e-t)/Cn),(t=>t.getUTCHours()))),Zn=(En.range,Sn((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*xn)/bn),(t=>t.getDate()-1))),Nn=(Zn.range,Sn((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/bn),(t=>t.getUTCDate()-1))),On=(Nn.range,Sn((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/bn),(t=>Math.floor(t/bn))));On.range;function In(t){return Sn((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())*xn)/_n))}const jn=In(0),qn=In(1),Dn=In(2),$n=In(3),zn=In(4),Pn=In(5),Rn=In(6);jn.range,qn.range,Dn.range,$n.range,zn.range,Pn.range,Rn.range;function Wn(t){return Sn((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)/_n))}const Hn=Wn(0),Un=Wn(1),Yn=Wn(2),Vn=Wn(3),Gn=Wn(4),Xn=Wn(5),Qn=Wn(6),Jn=(Hn.range,Un.range,Yn.range,Vn.range,Gn.range,Xn.range,Qn.range,Sn((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()))),Kn=(Jn.range,Sn((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()))),to=(Kn.range,Sn((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())));to.every=t=>isFinite(t=Math.floor(t))&&t>0?Sn((e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,i)=>{e.setFullYear(e.getFullYear()+i*t)})):null;to.range;const eo=Sn((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()));eo.every=t=>isFinite(t=Math.floor(t))&&t>0?Sn((e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,i)=>{e.setUTCFullYear(e.getUTCFullYear()+i*t)})):null;eo.range;function io(t,e,i,r,n,o){const a=[[Fn,1,yn],[Fn,5,5e3],[Fn,15,15e3],[Fn,30,3e4],[o,1,xn],[o,5,3e5],[o,15,9e5],[o,30,18e5],[n,1,Cn],[n,3,108e5],[n,6,216e5],[n,12,432e5],[r,1,bn],[r,2,1728e5],[i,1,_n],[e,1,vn],[e,3,7776e6],[t,1,kn]];function s(e,i,r){const n=Math.abs(i-e)/r,o=Er((([,,t])=>t)).right(a,n);if(o===a.length)return t.every(Ar(e/kn,i/kn,r));if(0===o)return Bn.every(Math.max(Ar(e,i,r),1));const[s,l]=a[n/a[o-1][2]<a[o][2]/n?o-1:o];return s.every(l)}return[function(t,e,i){const r=e<t;r&&([t,e]=[e,t]);const n=i&&"function"==typeof i.range?i:s(t,e,i),o=n?n.range(t,+e+1):[];return r?o.reverse():o},s]}const[ro,no]=io(eo,Kn,Hn,On,En,Ln),[oo,ao]=io(to,Jn,jn,Zn,Mn,An);function so(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 lo(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 co(t,e,i){return{y:t,m:e,d:i,H:0,M:0,S:0,L:0}}var ho,uo,fo={"-":"",_:" ",0:"0"},po=/^\s*\d+/,go=/^%/,mo=/[\\^$*+?|[\]().{}]/g;function yo(t,e,i){var r=t<0?"-":"",n=(r?-t:t)+"",o=n.length;return r+(o<i?new Array(i-o+1).join(e)+n:n)}function xo(t){return t.replace(mo,"\\$&")}function Co(t){return new RegExp("^(?:"+t.map(xo).join("|")+")","i")}function bo(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function _o(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.w=+r[0],i+r[0].length):-1}function vo(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.u=+r[0],i+r[0].length):-1}function ko(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.U=+r[0],i+r[0].length):-1}function To(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.V=+r[0],i+r[0].length):-1}function wo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.W=+r[0],i+r[0].length):-1}function So(t,e,i){var r=po.exec(e.slice(i,i+4));return r?(t.y=+r[0],i+r[0].length):-1}function Bo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),i+r[0].length):-1}function Fo(t,e,i){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(i,i+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),i+r[0].length):-1}function Ao(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.q=3*r[0]-3,i+r[0].length):-1}function Lo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.m=r[0]-1,i+r[0].length):-1}function Mo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.d=+r[0],i+r[0].length):-1}function Eo(t,e,i){var r=po.exec(e.slice(i,i+3));return r?(t.m=0,t.d=+r[0],i+r[0].length):-1}function Zo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.H=+r[0],i+r[0].length):-1}function No(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.M=+r[0],i+r[0].length):-1}function Oo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.S=+r[0],i+r[0].length):-1}function Io(t,e,i){var r=po.exec(e.slice(i,i+3));return r?(t.L=+r[0],i+r[0].length):-1}function jo(t,e,i){var r=po.exec(e.slice(i,i+6));return r?(t.L=Math.floor(r[0]/1e3),i+r[0].length):-1}function qo(t,e,i){var r=go.exec(e.slice(i,i+1));return r?i+r[0].length:-1}function Do(t,e,i){var r=po.exec(e.slice(i));return r?(t.Q=+r[0],i+r[0].length):-1}function $o(t,e,i){var r=po.exec(e.slice(i));return r?(t.s=+r[0],i+r[0].length):-1}function zo(t,e){return yo(t.getDate(),e,2)}function Po(t,e){return yo(t.getHours(),e,2)}function Ro(t,e){return yo(t.getHours()%12||12,e,2)}function Wo(t,e){return yo(1+Zn.count(to(t),t),e,3)}function Ho(t,e){return yo(t.getMilliseconds(),e,3)}function Uo(t,e){return Ho(t,e)+"000"}function Yo(t,e){return yo(t.getMonth()+1,e,2)}function Vo(t,e){return yo(t.getMinutes(),e,2)}function Go(t,e){return yo(t.getSeconds(),e,2)}function Xo(t){var e=t.getDay();return 0===e?7:e}function Qo(t,e){return yo(jn.count(to(t)-1,t),e,2)}function Jo(t){var e=t.getDay();return e>=4||0===e?zn(t):zn.ceil(t)}function Ko(t,e){return t=Jo(t),yo(zn.count(to(t),t)+(4===to(t).getDay()),e,2)}function ta(t){return t.getDay()}function ea(t,e){return yo(qn.count(to(t)-1,t),e,2)}function ia(t,e){return yo(t.getFullYear()%100,e,2)}function ra(t,e){return yo((t=Jo(t)).getFullYear()%100,e,2)}function na(t,e){return yo(t.getFullYear()%1e4,e,4)}function oa(t,e){var i=t.getDay();return yo((t=i>=4||0===i?zn(t):zn.ceil(t)).getFullYear()%1e4,e,4)}function aa(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+yo(e/60|0,"0",2)+yo(e%60,"0",2)}function sa(t,e){return yo(t.getUTCDate(),e,2)}function la(t,e){return yo(t.getUTCHours(),e,2)}function ca(t,e){return yo(t.getUTCHours()%12||12,e,2)}function ha(t,e){return yo(1+Nn.count(eo(t),t),e,3)}function ua(t,e){return yo(t.getUTCMilliseconds(),e,3)}function da(t,e){return ua(t,e)+"000"}function fa(t,e){return yo(t.getUTCMonth()+1,e,2)}function pa(t,e){return yo(t.getUTCMinutes(),e,2)}function ga(t,e){return yo(t.getUTCSeconds(),e,2)}function ma(t){var e=t.getUTCDay();return 0===e?7:e}function ya(t,e){return yo(Hn.count(eo(t)-1,t),e,2)}function xa(t){var e=t.getUTCDay();return e>=4||0===e?Gn(t):Gn.ceil(t)}function Ca(t,e){return t=xa(t),yo(Gn.count(eo(t),t)+(4===eo(t).getUTCDay()),e,2)}function ba(t){return t.getUTCDay()}function _a(t,e){return yo(Un.count(eo(t)-1,t),e,2)}function va(t,e){return yo(t.getUTCFullYear()%100,e,2)}function ka(t,e){return yo((t=xa(t)).getUTCFullYear()%100,e,2)}function Ta(t,e){return yo(t.getUTCFullYear()%1e4,e,4)}function wa(t,e){var i=t.getUTCDay();return yo((t=i>=4||0===i?Gn(t):Gn.ceil(t)).getUTCFullYear()%1e4,e,4)}function Sa(){return"+0000"}function Ba(){return"%"}function Fa(t){return+t}function Aa(t){return Math.floor(+t/1e3)}function La(t){return new Date(t)}function Ma(t){return t instanceof Date?+t:+new Date(+t)}function Ea(t,e,i,r,n,o,a,s,l,c){var h=Qr(),u=h.invert,d=h.domain,f=c(".%L"),p=c(":%S"),g=c("%I:%M"),m=c("%I %p"),y=c("%a %d"),x=c("%b %d"),C=c("%B"),b=c("%Y");function _(t){return(l(t)<t?f:s(t)<t?p:a(t)<t?g:o(t)<t?m:r(t)<t?n(t)<t?y:x:i(t)<t?C:b)(t)}return h.invert=function(t){return new Date(u(t))},h.domain=function(t){return arguments.length?d(Array.from(t,Ma)):d().map(La)},h.ticks=function(e){var i=d();return t(i[0],i[i.length-1],null==e?10:e)},h.tickFormat=function(t,e){return null==e?_:c(e)},h.nice=function(t){var i=d();return t&&"function"==typeof t.range||(t=e(i[0],i[i.length-1],null==t?10:t)),t?d(function(t,e){var i,r=0,n=(t=t.slice()).length-1,o=t[r],a=t[n];return a<o&&(i=r,r=n,n=i,i=o,o=a,a=i),t[r]=e.floor(o),t[n]=e.ceil(a),t}(i,t)):h},h.copy=function(){return Gr(h,Ea(t,e,i,r,n,o,a,s,l,c))},h}function Za(){return gr.apply(Ea(oo,ao,to,Jn,jn,Zn,Mn,An,Fn,uo).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}!function(t){ho=function(t){var e=t.dateTime,i=t.date,r=t.time,n=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=Co(n),h=bo(n),u=Co(o),d=bo(o),f=Co(a),p=bo(a),g=Co(s),m=bo(s),y=Co(l),x=bo(l),C={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:zo,e:zo,f:Uo,g:ra,G:oa,H:Po,I:Ro,j:Wo,L:Ho,m:Yo,M:Vo,p:function(t){return n[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Fa,s:Aa,S:Go,u:Xo,U:Qo,V:Ko,w:ta,W:ea,x:null,X:null,y:ia,Y:na,Z:aa,"%":Ba},b={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:sa,e:sa,f:da,g:ka,G:wa,H:la,I:ca,j:ha,L:ua,m:fa,M:pa,p:function(t){return n[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Fa,s:Aa,S:ga,u:ma,U:ya,V:Ca,w:ba,W:_a,x:null,X:null,y:va,Y:Ta,Z:Sa,"%":Ba},_={a:function(t,e,i){var r=f.exec(e.slice(i));return r?(t.w=p.get(r[0].toLowerCase()),i+r[0].length):-1},A:function(t,e,i){var r=u.exec(e.slice(i));return r?(t.w=d.get(r[0].toLowerCase()),i+r[0].length):-1},b:function(t,e,i){var r=y.exec(e.slice(i));return r?(t.m=x.get(r[0].toLowerCase()),i+r[0].length):-1},B:function(t,e,i){var r=g.exec(e.slice(i));return r?(t.m=m.get(r[0].toLowerCase()),i+r[0].length):-1},c:function(t,i,r){return T(t,e,i,r)},d:Mo,e:Mo,f:jo,g:Bo,G:So,H:Zo,I:Zo,j:Eo,L:Io,m:Lo,M:No,p:function(t,e,i){var r=c.exec(e.slice(i));return r?(t.p=h.get(r[0].toLowerCase()),i+r[0].length):-1},q:Ao,Q:Do,s:$o,S:Oo,u:vo,U:ko,V:To,w:_o,W:wo,x:function(t,e,r){return T(t,i,e,r)},X:function(t,e,i){return T(t,r,e,i)},y:Bo,Y:So,Z:Fo,"%":qo};function v(t,e){return function(i){var r,n,o,a=[],s=-1,l=0,c=t.length;for(i instanceof Date||(i=new Date(+i));++s<c;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(n=fo[r=t.charAt(++s)])?r=t.charAt(++s):n="e"===r?" ":"0",(o=e[r])&&(r=o(i,n)),a.push(r),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function k(t,e){return function(i){var r,n,o=co(1900,void 0,1);if(T(o,t,i+="",0)!=i.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(e&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(n=(r=lo(co(o.y,0,1))).getUTCDay(),r=n>4||0===n?Un.ceil(r):Un(r),r=Nn.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(n=(r=so(co(o.y,0,1))).getDay(),r=n>4||0===n?qn.ceil(r):qn(r),r=Zn.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),n="Z"in o?lo(co(o.y,0,1)).getUTCDay():so(co(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(n+5)%7:o.w+7*o.U-(n+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,lo(o)):so(o)}}function T(t,e,i,r){for(var n,o,a=0,s=e.length,l=i.length;a<s;){if(r>=l)return-1;if(37===(n=e.charCodeAt(a++))){if(n=e.charAt(a++),!(o=_[n in fo?e.charAt(a++):n])||(r=o(t,i,r))<0)return-1}else if(n!=i.charCodeAt(r++))return-1}return r}return C.x=v(i,C),C.X=v(r,C),C.c=v(e,C),b.x=v(i,b),b.X=v(r,b),b.c=v(e,b),{format:function(t){var e=v(t+="",C);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=v(t+="",b);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}(t),uo=ho.format,ho.parse,ho.utcFormat,ho.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 Na=function(t){for(var e=t.length/6|0,i=new Array(e),r=0;r<e;)i[r]="#"+t.slice(6*r,6*++r);return i}("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function Oa(t){return"string"==typeof t?new At([[document.querySelector(t)]],[document.documentElement]):new At([[t]],Ft)}function Ia(t){return"string"==typeof t?new At([document.querySelectorAll(t)],[document.documentElement]):new At([_(t)],Ft)}function ja(t){return function(){return t}}const qa=Math.abs,Da=Math.atan2,$a=Math.cos,za=Math.max,Pa=Math.min,Ra=Math.sin,Wa=Math.sqrt,Ha=1e-12,Ua=Math.PI,Ya=Ua/2,Va=2*Ua;function Ga(t){return t>=1?Ya:t<=-1?-Ya:Math.asin(t)}const Xa=Math.PI,Qa=2*Xa,Ja=1e-6,Ka=Qa-Ja;function ts(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=arguments[e]+t[e]}class es{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?ts:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return ts;const i=10**e;return function(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=Math.round(arguments[e]*i)/i+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,i,r){this._append`Q${+t},${+e},${this._x1=+i},${this._y1=+r}`}bezierCurveTo(t,e,i,r,n,o){this._append`C${+t},${+e},${+i},${+r},${this._x1=+n},${this._y1=+o}`}arcTo(t,e,i,r,n){if(t=+t,e=+e,i=+i,r=+r,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=this._x1,a=this._y1,s=i-t,l=r-e,c=o-t,h=a-e,u=c*c+h*h;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>Ja)if(Math.abs(h*s-l*c)>Ja&&n){let d=i-o,f=r-a,p=s*s+l*l,g=d*d+f*f,m=Math.sqrt(p),y=Math.sqrt(u),x=n*Math.tan((Xa-Math.acos((p+u-g)/(2*m*y)))/2),C=x/y,b=x/m;Math.abs(C-1)>Ja&&this._append`L${t+C*c},${e+C*h}`,this._append`A${n},${n},0,0,${+(h*d>c*f)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,i,r,n,o){if(t=+t,e=+e,o=!!o,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),s=i*Math.sin(r),l=t+a,c=e+s,h=1^o,u=o?r-n:n-r;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Ja||Math.abs(this._y1-c)>Ja)&&this._append`L${l},${c}`,i&&(u<0&&(u=u%Qa+Qa),u>Ka?this._append`A${i},${i},0,1,${h},${t-a},${e-s}A${i},${i},0,1,${h},${this._x1=l},${this._y1=c}`:u>Ja&&this._append`A${i},${i},0,${+(u>=Xa)},${h},${this._x1=t+i*Math.cos(n)},${this._y1=e+i*Math.sin(n)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function is(t){let e=3;return t.digits=function(i){if(!arguments.length)return e;if(null==i)e=null;else{const t=Math.floor(i);if(!(t>=0))throw new RangeError(`invalid digits: ${i}`);e=t}return t},()=>new es(e)}function rs(t){return t.innerRadius}function ns(t){return t.outerRadius}function os(t){return t.startAngle}function as(t){return t.endAngle}function ss(t){return t&&t.padAngle}function ls(t,e,i,r,n,o,a){var s=t-i,l=e-r,c=(a?o:-o)/Wa(s*s+l*l),h=c*l,u=-c*s,d=t+h,f=e+u,p=i+h,g=r+u,m=(d+p)/2,y=(f+g)/2,x=p-d,C=g-f,b=x*x+C*C,_=n-o,v=d*g-p*f,k=(C<0?-1:1)*Wa(za(0,_*_*b-v*v)),T=(v*C-x*k)/b,w=(-v*x-C*k)/b,S=(v*C+x*k)/b,B=(-v*x+C*k)/b,F=T-m,A=w-y,L=S-m,M=B-y;return F*F+A*A>L*L+M*M&&(T=S,w=B),{cx:T,cy:w,x01:-h,y01:-u,x11:T*(n/_-1),y11:w*(n/_-1)}}function cs(){var t=rs,e=ns,i=ja(0),r=null,n=os,o=as,a=ss,s=null,l=is(c);function c(){var c,h,u,d=+t.apply(this,arguments),f=+e.apply(this,arguments),p=n.apply(this,arguments)-Ya,g=o.apply(this,arguments)-Ya,m=qa(g-p),y=g>p;if(s||(s=c=l()),f<d&&(h=f,f=d,d=h),f>Ha)if(m>Va-Ha)s.moveTo(f*$a(p),f*Ra(p)),s.arc(0,0,f,p,g,!y),d>Ha&&(s.moveTo(d*$a(g),d*Ra(g)),s.arc(0,0,d,g,p,y));else{var x,C,b=p,_=g,v=p,k=g,T=m,w=m,S=a.apply(this,arguments)/2,B=S>Ha&&(r?+r.apply(this,arguments):Wa(d*d+f*f)),F=Pa(qa(f-d)/2,+i.apply(this,arguments)),A=F,L=F;if(B>Ha){var M=Ga(B/d*Ra(S)),E=Ga(B/f*Ra(S));(T-=2*M)>Ha?(v+=M*=y?1:-1,k-=M):(T=0,v=k=(p+g)/2),(w-=2*E)>Ha?(b+=E*=y?1:-1,_-=E):(w=0,b=_=(p+g)/2)}var Z=f*$a(b),N=f*Ra(b),O=d*$a(k),I=d*Ra(k);if(F>Ha){var j,q=f*$a(_),D=f*Ra(_),$=d*$a(v),z=d*Ra(v);if(m<Ua)if(j=function(t,e,i,r,n,o,a,s){var l=i-t,c=r-e,h=a-n,u=s-o,d=u*l-h*c;if(!(d*d<Ha))return[t+(d=(h*(e-o)-u*(t-n))/d)*l,e+d*c]}(Z,N,$,z,q,D,O,I)){var P=Z-j[0],R=N-j[1],W=q-j[0],H=D-j[1],U=1/Ra(((u=(P*W+R*H)/(Wa(P*P+R*R)*Wa(W*W+H*H)))>1?0:u<-1?Ua:Math.acos(u))/2),Y=Wa(j[0]*j[0]+j[1]*j[1]);A=Pa(F,(d-Y)/(U-1)),L=Pa(F,(f-Y)/(U+1))}else A=L=0}w>Ha?L>Ha?(x=ls($,z,Z,N,f,L,y),C=ls(q,D,O,I,f,L,y),s.moveTo(x.cx+x.x01,x.cy+x.y01),L<F?s.arc(x.cx,x.cy,L,Da(x.y01,x.x01),Da(C.y01,C.x01),!y):(s.arc(x.cx,x.cy,L,Da(x.y01,x.x01),Da(x.y11,x.x11),!y),s.arc(0,0,f,Da(x.cy+x.y11,x.cx+x.x11),Da(C.cy+C.y11,C.cx+C.x11),!y),s.arc(C.cx,C.cy,L,Da(C.y11,C.x11),Da(C.y01,C.x01),!y))):(s.moveTo(Z,N),s.arc(0,0,f,b,_,!y)):s.moveTo(Z,N),d>Ha&&T>Ha?A>Ha?(x=ls(O,I,q,D,d,-A,y),C=ls(Z,N,$,z,d,-A,y),s.lineTo(x.cx+x.x01,x.cy+x.y01),A<F?s.arc(x.cx,x.cy,A,Da(x.y01,x.x01),Da(C.y01,C.x01),!y):(s.arc(x.cx,x.cy,A,Da(x.y01,x.x01),Da(x.y11,x.x11),!y),s.arc(0,0,d,Da(x.cy+x.y11,x.cx+x.x11),Da(C.cy+C.y11,C.cx+C.x11),y),s.arc(C.cx,C.cy,A,Da(C.y11,C.x11),Da(C.y01,C.x01),!y))):s.arc(0,0,d,k,v,y):s.lineTo(O,I)}else s.moveTo(0,0);if(s.closePath(),c)return s=null,c+""||null}return c.centroid=function(){var i=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+n.apply(this,arguments)+ +o.apply(this,arguments))/2-Ua/2;return[$a(r)*i,Ra(r)*i]},c.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),c):t},c.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ja(+t),c):e},c.cornerRadius=function(t){return arguments.length?(i="function"==typeof t?t:ja(+t),c):i},c.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ja(+t),c):r},c.startAngle=function(t){return arguments.length?(n="function"==typeof t?t:ja(+t),c):n},c.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:ja(+t),c):o},c.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:ja(+t),c):a},c.context=function(t){return arguments.length?(s=null==t?null:t,c):s},c}es.prototype;Array.prototype.slice;function hs(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function us(t){this._context=t}function ds(t){return new us(t)}function fs(t){return t[0]}function ps(t){return t[1]}function gs(t,e){var i=ja(!0),r=null,n=ds,o=null,a=is(s);function s(s){var l,c,h,u=(s=hs(s)).length,d=!1;for(null==r&&(o=n(h=a())),l=0;l<=u;++l)!(l<u&&i(c=s[l],l,s))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+t(c,l,s),+e(c,l,s));if(h)return o=null,h+""||null}return t="function"==typeof t?t:void 0===t?fs:ja(t),e="function"==typeof e?e:void 0===e?ps:ja(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:ja(+t),s):e},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:ja(!!t),s):i},s.curve=function(t){return arguments.length?(n=t,null!=r&&(o=n(r)),s):n},s.context=function(t){return arguments.length?(null==t?r=o=null:o=n(r=t),s):r},s}function ms(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function ys(t){return t}function xs(){var t=ys,e=ms,i=null,r=ja(0),n=ja(Va),o=ja(0);function a(a){var s,l,c,h,u,d=(a=hs(a)).length,f=0,p=new Array(d),g=new Array(d),m=+r.apply(this,arguments),y=Math.min(Va,Math.max(-Va,n.apply(this,arguments)-m)),x=Math.min(Math.abs(y)/d,o.apply(this,arguments)),C=x*(y<0?-1:1);for(s=0;s<d;++s)(u=g[p[s]=s]=+t(a[s],s,a))>0&&(f+=u);for(null!=e?p.sort((function(t,i){return e(g[t],g[i])})):null!=i&&p.sort((function(t,e){return i(a[t],a[e])})),s=0,c=f?(y-d*C)/f:0;s<d;++s,m=h)l=p[s],h=m+((u=g[l])>0?u*c:0)+C,g[l]={data:a[l],index:s,value:u,startAngle:m,endAngle:h,padAngle:x};return g}return a.value=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,i=null,a):e},a.sort=function(t){return arguments.length?(i=t,e=null,a):i},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:ja(+t),a):r},a.endAngle=function(t){return arguments.length?(n="function"==typeof t?t:ja(+t),a):n},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:ja(+t),a):o},a}function Cs(){}function bs(t,e,i){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+i)/6)}function _s(t){this._context=t}function vs(t){return new _s(t)}function ks(t){this._context=t}function Ts(t){return new ks(t)}function ws(t){this._context=t}function Ss(t){return new ws(t)}us.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)}}},_s.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:bs(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:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ks.prototype={areaStart:Cs,areaEnd:Cs,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:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ws.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 i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class Bs{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 Fs(t){return new Bs(t,!0)}function As(t){return new Bs(t,!1)}function Ls(t,e){this._basis=new _s(t),this._beta=e}Ls.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r,n=t[0],o=e[0],a=t[i]-n,s=e[i]-o,l=-1;++l<=i;)r=l/i,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+r*a),this._beta*e[l]+(1-this._beta)*(o+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Ms=function t(e){function i(t){return 1===e?new _s(t):new Ls(t,e)}return i.beta=function(e){return t(+e)},i}(.85);function Es(t,e,i){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-i),t._x2,t._y2)}function Zs(t,e){this._context=t,this._k=(1-e)/6}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._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Es(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:Es(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 i(t){return new Zs(t,e)}return i.tension=function(e){return t(+e)},i}(0);function Os(t,e){this._context=t,this._k=(1-e)/6}Os.prototype={areaStart:Cs,areaEnd:Cs,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:Es(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 i(t){return new Os(t,e)}return i.tension=function(e){return t(+e)},i}(0);function js(t,e){this._context=t,this._k=(1-e)/6}js.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:Es(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 qs=function t(e){function i(t){return new js(t,e)}return i.tension=function(e){return t(+e)},i}(0);function Ds(t,e,i){var r=t._x1,n=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Ha){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Ha){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-e*t._l12_2a)/h,a=(a*c+t._y1*t._l23_2a-i*t._l12_2a)/h}t._context.bezierCurveTo(r,n,o,a,t._x2,t._y2)}function $s(t,e){this._context=t,this._alpha=e}$s.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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 zs=function t(e){function i(t){return e?new $s(t,e):new Zs(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Ps(t,e){this._context=t,this._alpha=e}Ps.prototype={areaStart:Cs,areaEnd:Cs,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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 Rs=function t(e){function i(t){return e?new Ps(t,e):new Os(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Ws(t,e){this._context=t,this._alpha=e}Ws.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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 i(t){return e?new Ws(t,e):new js(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Us(t){this._context=t}function Ys(t){return new Us(t)}function Vs(t){return t<0?-1:1}function Gs(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),a=(i-t._y1)/(n||r<0&&-0),s=(o*n+a*r)/(r+n);return(Vs(o)+Vs(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function Xs(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Qs(t,e,i){var r=t._x0,n=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,n+s*e,o-s,a-s*i,o,a)}function Js(t){this._context=t}function Ks(t){this._context=new tl(t)}function tl(t){this._context=t}function el(t){return new Js(t)}function il(t){return new Ks(t)}function rl(t){this._context=t}function nl(t){var e,i,r=t.length-1,n=new Array(r),o=new Array(r),a=new Array(r);for(n[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)n[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(n[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)i=n[e]/o[e-1],o[e]-=i,a[e]-=i*a[e-1];for(n[r-1]=a[r-1]/o[r-1],e=r-2;e>=0;--e)n[e]=(a[e]-n[e+1])/o[e];for(o[r-1]=(t[r]+n[r-1])/2,e=0;e<r-1;++e)o[e]=2*t[e+1]-n[e+1];return[n,o]}function ol(t){return new rl(t)}function al(t,e){this._context=t,this._t=e}function sl(t){return new al(t,.5)}function ll(t){return new al(t,0)}function cl(t){return new al(t,1)}function hl(t,e,i){this.k=t,this.x=e,this.y=i}Us.prototype={areaStart:Cs,areaEnd:Cs,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))}},Js.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:Qs(this,this._t0,Xs(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=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,Qs(this,Xs(this,i=Gs(this,t,e)),i);break;default:Qs(this,this._t0,i=Gs(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}},(Ks.prototype=Object.create(Js.prototype)).point=function(t,e){Js.prototype.point.call(this,e,t)},tl.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,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}},rl.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,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===i)this._context.lineTo(t[1],e[1]);else for(var r=nl(t),n=nl(e),o=0,a=1;a<i;++o,++a)this._context.bezierCurveTo(r[0][o],n[0][o],r[1][o],n[1][o],t[a],e[a]);(this._line||0!==this._line&&1===i)&&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)}},al.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 i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}}this._x=t,this._y=e}},hl.prototype={constructor:hl,scale:function(t){return 1===t?this:new hl(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new hl(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 hl(1,0,0);hl.prototype},1883:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(1691),n=i(2142);const o=class{constructor(){this.type=n.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=n.w.ALL}is(t){return this.type===t}};const a=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new o}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=n.w.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:i,l:n}=t;void 0===e&&(t.h=r.Z.channel.rgb2hsl(t,"h")),void 0===i&&(t.s=r.Z.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=r.Z.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:i,b:n}=t;void 0===e&&(t.r=r.Z.channel.hsl2rgb(t,"r")),void 0===i&&(t.g=r.Z.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=r.Z.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(n.w.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(n.w.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(n.w.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(n.w.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(n.w.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(n.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")},1610:(t,e,i)=>{"use strict";i.d(e,{Z:()=>g});var r=i(1883),n=i(2142);const o={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(o.re);if(!e)return;const i=e[1],n=parseInt(i,16),a=i.length,s=a%4==0,l=a>4,c=l?1:17,h=l?8:4,u=s?0:-1,d=l?255:15;return r.Z.set({r:(n>>h*(u+3)&d)*c,g:(n>>h*(u+2)&d)*c,b:(n>>h*(u+1)&d)*c,a:s?(n&d)*c/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:o}=t;return o<1?`#${n.Q[Math.round(e)]}${n.Q[Math.round(i)]}${n.Q[Math.round(r)]}${n.Q[Math.round(255*o)]}`:`#${n.Q[Math.round(e)]}${n.Q[Math.round(i)]}${n.Q[Math.round(r)]}`}},a=o;var s=i(1691);const l={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(l.hueRe);if(e){const[,t,i]=e;switch(i){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 i=t.match(l.re);if(!i)return;const[,n,o,a,c,h]=i;return r.Z.set({h:l._hue2deg(n),s:s.Z.channel.clamp.s(parseFloat(o)),l:s.Z.channel.clamp.l(parseFloat(a)),a:c?s.Z.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}%, ${s.Z.lang.round(r)}%, ${n})`:`hsl(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}%, ${s.Z.lang.round(r)}%)`}},c=l,h={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=h.colors[t];if(e)return a.parse(e)},stringify:t=>{const e=a.stringify(t);for(const i in h.colors)if(h.colors[i]===e)return i}},u=h,d={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 i=t.match(d.re);if(!i)return;const[,n,o,a,l,c,h,u,f]=i;return r.Z.set({r:s.Z.channel.clamp.r(o?2.55*parseFloat(n):parseFloat(n)),g:s.Z.channel.clamp.g(l?2.55*parseFloat(a):parseFloat(a)),b:s.Z.channel.clamp.b(h?2.55*parseFloat(c):parseFloat(c)),a:u?s.Z.channel.clamp.a(f?parseFloat(u)/100:parseFloat(u)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(r)}, ${s.Z.lang.round(n)})`:`rgb(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(r)})`}},f=d,p={format:{keyword:h,hex:a,rgb:d,rgba:d,hsl:l,hsla:l},parse:t=>{if("string"!=typeof t)return t;const e=a.parse(t)||f.parse(t)||c.parse(t)||u.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(n.w.HSL)||void 0===t.data.r?c.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?f.stringify(t):a.stringify(t)},g=p},2142:(t,e,i)=>{"use strict";i.d(e,{Q:()=>n,w:()=>o});var r=i(1691);const n={};for(let a=0;a<=255;a++)n[a]=r.Z.unit.dec2hex(a);const o={ALL:0,RGB:1,HSL:2}},6174:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(1691),n=i(1610);const o=(t,e,i)=>{const o=n.Z.parse(t),a=o[e],s=r.Z.channel.clamp[e](a+i);return a!==s&&(o[e]=s),n.Z.stringify(o)}},9807:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(1691),n=i(1610);const o=(t,e)=>{const i=n.Z.parse(t);for(const n in e)i[n]=r.Z.channel.clamp[n](e[n]);return n.Z.stringify(i)}},7201:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(6174);const n=(t,e)=>(0,r.Z)(t,"l",-e)},1619:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(1691),n=i(1610);const o=t=>{const{r:e,g:i,b:o}=n.Z.parse(t),a=.2126*r.Z.channel.toLinear(e)+.7152*r.Z.channel.toLinear(i)+.0722*r.Z.channel.toLinear(o);return r.Z.lang.round(a)},a=t=>o(t)>=.5,s=t=>!a(t)},2281:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(6174);const n=(t,e)=>(0,r.Z)(t,"l",e)},1117:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(1691),n=i(1883),o=i(1610),a=i(9807);const s=(t,e,i=0,s=1)=>{if("number"!=typeof t)return(0,a.Z)(t,{a:e});const l=n.Z.set({r:r.Z.channel.clamp.r(t),g:r.Z.channel.clamp.g(e),b:r.Z.channel.clamp.b(i),a:r.Z.channel.clamp.a(s)});return o.Z.stringify(l)}},1691:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});const r={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,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},n)=>{if(!e)return 2.55*i;t/=360,e/=100;const o=(i/=100)<.5?i*(1+e):i+e-i*e,a=2*i-o;switch(n){case"r":return 255*r.hue2rgb(a,o,t+1/3);case"g":return 255*r.hue2rgb(a,o,t);case"b":return 255*r.hue2rgb(a,o,t-1/3)}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),o=Math.min(t,e,i),a=(n+o)/2;if("l"===r)return 100*a;if(n===o)return 0;const s=n-o;if("s"===r)return 100*(a>.5?s/(2-n-o):s/(n+o));switch(n){case t:return 60*((e-i)/s+(e<i?6:0));case e:return 60*((i-t)/s+2);case i:return 60*((t-e)/s+4);default:return-1}}},n={channel:r,lang:{clamp:(t,e,i)=>e>i?Math.min(e,Math.max(i,t)):Math.min(i,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}`}}}},7308:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});const r=function(){this.__data__=[],this.size=0};var n=i(9651);const o=function(t,e){for(var i=t.length;i--;)if((0,n.Z)(t[i][0],e))return i;return-1};var a=Array.prototype.splice;const s=function(t){var e=this.__data__,i=o(e,t);return!(i<0)&&(i==e.length-1?e.pop():a.call(e,i,1),--this.size,!0)};const l=function(t){var e=this.__data__,i=o(e,t);return i<0?void 0:e[i][1]};const c=function(t){return o(this.__data__,t)>-1};const h=function(t,e){var i=this.__data__,r=o(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this};function u(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=s,u.prototype.get=l,u.prototype.has=c,u.prototype.set=h;const d=u},6183:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(2508),n=i(6092);const o=(0,r.Z)(n.Z,"Map")},7834:(t,e,i)=>{"use strict";i.d(e,{Z:()=>k});const r=(0,i(2508).Z)(Object,"create");const n=function(){this.__data__=r?r(null):{},this.size=0};const o=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var a=Object.prototype.hasOwnProperty;const s=function(t){var e=this.__data__;if(r){var i=e[t];return"__lodash_hash_undefined__"===i?void 0:i}return a.call(e,t)?e[t]:void 0};var l=Object.prototype.hasOwnProperty;const c=function(t){var e=this.__data__;return r?void 0!==e[t]:l.call(e,t)};const h=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=r&&void 0===e?"__lodash_hash_undefined__":e,this};function u(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}u.prototype.clear=n,u.prototype.delete=o,u.prototype.get=s,u.prototype.has=c,u.prototype.set=h;const d=u;var f=i(7308),p=i(6183);const g=function(){this.size=0,this.__data__={hash:new d,map:new(p.Z||f.Z),string:new d}};const m=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const y=function(t,e){var i=t.__data__;return m(e)?i["string"==typeof e?"string":"hash"]:i.map};const x=function(t){var e=y(this,t).delete(t);return this.size-=e?1:0,e};const C=function(t){return y(this,t).get(t)};const b=function(t){return y(this,t).has(t)};const _=function(t,e){var i=y(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this};function v(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}v.prototype.clear=g,v.prototype.delete=x,v.prototype.get=C,v.prototype.has=b,v.prototype.set=_;const k=v},3203:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(2508),n=i(6092);const o=(0,r.Z)(n.Z,"Set")},1667:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(7308);const n=function(){this.__data__=new r.Z,this.size=0};const o=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i};const a=function(t){return this.__data__.get(t)};const s=function(t){return this.__data__.has(t)};var l=i(6183),c=i(7834);const h=function(t,e){var i=this.__data__;if(i instanceof r.Z){var n=i.__data__;if(!l.Z||n.length<199)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new c.Z(n)}return i.set(t,e),this.size=i.size,this};function u(t){var e=this.__data__=new r.Z(t);this.size=e.size}u.prototype.clear=n,u.prototype.delete=o,u.prototype.get=a,u.prototype.has=s,u.prototype.set=h;const d=u},7685:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=i(6092).Z.Symbol},4073:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=i(6092).Z.Uint8Array},7668:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});const r=function(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r};var n=i(9169),o=i(7771),a=i(7008),s=i(6009),l=i(8843),c=Object.prototype.hasOwnProperty;const h=function(t,e){var i=(0,o.Z)(t),h=!i&&(0,n.Z)(t),u=!i&&!h&&(0,a.Z)(t),d=!i&&!h&&!u&&(0,l.Z)(t),f=i||h||u||d,p=f?r(t.length,String):[],g=p.length;for(var m in t)!e&&!c.call(t,m)||f&&("length"==m||u&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||(0,s.Z)(m,g))||p.push(m);return p}},2954:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(4752),n=i(9651),o=Object.prototype.hasOwnProperty;const a=function(t,e,i){var a=t[e];o.call(t,e)&&(0,n.Z)(a,i)&&(void 0!==i||e in t)||(0,r.Z)(t,e,i)}},4752:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(7904);const n=function(t,e,i){"__proto__"==e&&r.Z?(0,r.Z)(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}},1395:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(e,i,r){for(var n=-1,o=Object(e),a=r(e),s=a.length;s--;){var l=a[t?s:++n];if(!1===i(o[l],l,o))break}return e}}()},3589:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(7685),n=Object.prototype,o=n.hasOwnProperty,a=n.toString,s=r.Z?r.Z.toStringTag:void 0;const l=function(t){var e=o.call(t,s),i=t[s];try{t[s]=void 0;var r=!0}catch(l){}var n=a.call(t);return r&&(e?t[s]=i:delete t[s]),n};var c=Object.prototype.toString;const h=function(t){return c.call(t)};var u=r.Z?r.Z.toStringTag:void 0;const d=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?l(t):h(t)}},9473:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(2764);const n=(0,i(1851).Z)(Object.keys,Object);var o=Object.prototype.hasOwnProperty;const a=function(t){if(!(0,r.Z)(t))return n(t);var e=[];for(var i in Object(t))o.call(t,i)&&"constructor"!=i&&e.push(i);return e}},9581:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(9203),n=i(1211),o=i(7227);const a=function(t,e){return(0,o.Z)((0,n.Z)(t,e,r.Z),t+"")}},1162:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(e){return t(e)}}},1884:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(4073);const n=function(t){var e=new t.constructor(t.byteLength);return new r.Z(e).set(new r.Z(t)),e}},1050:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(6092),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n?r.Z.Buffer:void 0,s=a?a.allocUnsafe:void 0;const l=function(t,e){if(e)return t.slice();var i=t.length,r=s?s(i):new t.constructor(i);return t.copy(r),r}},2701:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(1884);const n=function(t,e){var i=e?(0,r.Z)(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}},7215:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}},1899:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(2954),n=i(4752);const o=function(t,e,i,o){var a=!i;i||(i={});for(var s=-1,l=e.length;++s<l;){var c=e[s],h=o?o(i[c],t[c],c,i,t):void 0;void 0===h&&(h=t[c]),a?(0,n.Z)(i,c,h):(0,r.Z)(i,c,h)}return i}},7904:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(2508);const n=function(){try{var t=(0,r.Z)(Object,"defineProperty");return t({},"",{}),t}catch(e){}}()},3413:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r="object"==typeof global&&global&&global.Object===Object&&global},2508:(t,e,i)=>{"use strict";i.d(e,{Z:()=>x});var r=i(3234);const n=i(6092).Z["__core-js_shared__"];var o,a=(o=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";const s=function(t){return!!a&&a in t};var l=i(7226),c=i(19),h=/^\[object .+?Constructor\]$/,u=Function.prototype,d=Object.prototype,f=u.toString,p=d.hasOwnProperty,g=RegExp("^"+f.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const m=function(t){return!(!(0,l.Z)(t)||s(t))&&((0,r.Z)(t)?g:h).test((0,c.Z)(t))};const y=function(t,e){return null==t?void 0:t[e]};const x=function(t,e){var i=y(t,e);return m(i)?i:void 0}},2513:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=(0,i(1851).Z)(Object.getPrototypeOf,Object)},3970:(t,e,i)=>{"use strict";i.d(e,{Z:()=>k});var r=i(2508),n=i(6092);const o=(0,r.Z)(n.Z,"DataView");var a=i(6183);const s=(0,r.Z)(n.Z,"Promise");var l=i(3203);const c=(0,r.Z)(n.Z,"WeakMap");var h=i(3589),u=i(19),d="[object Map]",f="[object Promise]",p="[object Set]",g="[object WeakMap]",m="[object DataView]",y=(0,u.Z)(o),x=(0,u.Z)(a.Z),C=(0,u.Z)(s),b=(0,u.Z)(l.Z),_=(0,u.Z)(c),v=h.Z;(o&&v(new o(new ArrayBuffer(1)))!=m||a.Z&&v(new a.Z)!=d||s&&v(s.resolve())!=f||l.Z&&v(new l.Z)!=p||c&&v(new c)!=g)&&(v=function(t){var e=(0,h.Z)(t),i="[object Object]"==e?t.constructor:void 0,r=i?(0,u.Z)(i):"";if(r)switch(r){case y:return m;case x:return d;case C:return f;case b:return p;case _:return g}return e});const k=v},3658:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(7226),n=Object.create;const o=function(){function t(){}return function(e){if(!(0,r.Z)(e))return{};if(n)return n(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();var a=i(2513),s=i(2764);const l=function(t){return"function"!=typeof t.constructor||(0,s.Z)(t)?{}:o((0,a.Z)(t))}},6009:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=/^(?:0|[1-9]\d*)$/;const n=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t<e}},439:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(9651),n=i(585),o=i(6009),a=i(7226);const s=function(t,e,i){if(!(0,a.Z)(i))return!1;var s=typeof e;return!!("number"==s?(0,n.Z)(i)&&(0,o.Z)(e,i.length):"string"==s&&e in i)&&(0,r.Z)(i[e],t)}},2764:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=Object.prototype;const n=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}},8351:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(3413),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n&&r.Z.process;const s=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(e){}}()},1851:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){return function(i){return t(e(i))}}},1211:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});const r=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)};var n=Math.max;const o=function(t,e,i){return e=n(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,s=n(o.length-e,0),l=Array(s);++a<s;)l[a]=o[e+a];a=-1;for(var c=Array(e+1);++a<e;)c[a]=o[a];return c[e]=i(l),r(t,this,c)}}},6092:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(3413),n="object"==typeof self&&self&&self.Object===Object&&self;const o=r.Z||n||Function("return this")()},7227:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(2002),n=i(7904),o=i(9203);const a=n.Z?function(t,e){return(0,n.Z)(t,"toString",{configurable:!0,enumerable:!1,value:(0,r.Z)(e),writable:!0})}:o.Z;var s=Date.now;const l=function(t){var e=0,i=0;return function(){var r=s(),n=16-(r-i);if(i=r,n>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(a)},19:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=Function.prototype.toString;const n=function(t){if(null!=t){try{return r.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},2002:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(){return t}}},9651:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){return t===e||t!=t&&e!=e}},9203:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return t}},9169:(t,e,i)=>{"use strict";i.d(e,{Z:()=>c});var r=i(3589),n=i(8533);const o=function(t){return(0,n.Z)(t)&&"[object Arguments]"==(0,r.Z)(t)};var a=Object.prototype,s=a.hasOwnProperty,l=a.propertyIsEnumerable;const c=o(function(){return arguments}())?o:function(t){return(0,n.Z)(t)&&s.call(t,"callee")&&!l.call(t,"callee")}},7771:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=Array.isArray},585:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(3234),n=i(1656);const o=function(t){return null!=t&&(0,n.Z)(t.length)&&!(0,r.Z)(t)}},836:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(585),n=i(8533);const o=function(t){return(0,n.Z)(t)&&(0,r.Z)(t)}},7008:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(6092);const n=function(){return!1};var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&"object"==typeof module&&module&&!module.nodeType&&module,s=a&&a.exports===o?r.Z.Buffer:void 0;const l=(s?s.isBuffer:void 0)||n},9697:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(9473),n=i(3970),o=i(9169),a=i(7771),s=i(585),l=i(7008),c=i(2764),h=i(8843),u=Object.prototype.hasOwnProperty;const d=function(t){if(null==t)return!0;if((0,s.Z)(t)&&((0,a.Z)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.Z)(t)||(0,h.Z)(t)||(0,o.Z)(t)))return!t.length;var e=(0,n.Z)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,c.Z)(t))return!(0,r.Z)(t).length;for(var i in t)if(u.call(t,i))return!1;return!0}},3234:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(3589),n=i(7226);const o=function(t){if(!(0,n.Z)(t))return!1;var e=(0,r.Z)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1656:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},7226:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},8533:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return null!=t&&"object"==typeof t}},7514:(t,e,i)=>{"use strict";i.d(e,{Z:()=>u});var r=i(3589),n=i(2513),o=i(8533),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,h=l.call(Object);const u=function(t){if(!(0,o.Z)(t)||"[object Object]"!=(0,r.Z)(t))return!1;var e=(0,n.Z)(t);if(null===e)return!0;var i=c.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&l.call(i)==h}},8843:(t,e,i)=>{"use strict";i.d(e,{Z:()=>u});var r=i(3589),n=i(1656),o=i(8533),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1;const s=function(t){return(0,o.Z)(t)&&(0,n.Z)(t.length)&&!!a[(0,r.Z)(t)]};var l=i(1162),c=i(8351),h=c.Z&&c.Z.isTypedArray;const u=h?(0,l.Z)(h):s},2957:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var r=i(7668),n=i(7226),o=i(2764);const a=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e};var s=Object.prototype.hasOwnProperty;const l=function(t){if(!(0,n.Z)(t))return a(t);var e=(0,o.Z)(t),i=[];for(var r in t)("constructor"!=r||!e&&s.call(t,r))&&i.push(r);return i};var c=i(585);const h=function(t){return(0,c.Z)(t)?(0,r.Z)(t,!0):l(t)}},2454:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(7834);function n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var r=arguments,n=e?e.apply(this,r):r[0],o=i.cache;if(o.has(n))return o.get(n);var a=t.apply(this,r);return i.cache=o.set(n,a)||o,a};return i.cache=new(n.Cache||r.Z),i}n.Cache=r.Z;const o=n},9236:(t,e,i)=>{"use strict";i.d(e,{Z:()=>F});var r=i(1667),n=i(4752),o=i(9651);const a=function(t,e,i){(void 0!==i&&!(0,o.Z)(t[e],i)||void 0===i&&!(e in t))&&(0,n.Z)(t,e,i)};var s=i(1395),l=i(1050),c=i(2701),h=i(7215),u=i(3658),d=i(9169),f=i(7771),p=i(836),g=i(7008),m=i(3234),y=i(7226),x=i(7514),C=i(8843);const b=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var _=i(1899),v=i(2957);const k=function(t){return(0,_.Z)(t,(0,v.Z)(t))};const T=function(t,e,i,r,n,o,s){var _=b(t,i),v=b(e,i),T=s.get(v);if(T)a(t,i,T);else{var w=o?o(_,v,i+"",t,e,s):void 0,S=void 0===w;if(S){var B=(0,f.Z)(v),F=!B&&(0,g.Z)(v),A=!B&&!F&&(0,C.Z)(v);w=v,B||F||A?(0,f.Z)(_)?w=_:(0,p.Z)(_)?w=(0,h.Z)(_):F?(S=!1,w=(0,l.Z)(v,!0)):A?(S=!1,w=(0,c.Z)(v,!0)):w=[]:(0,x.Z)(v)||(0,d.Z)(v)?(w=_,(0,d.Z)(_)?w=k(_):(0,y.Z)(_)&&!(0,m.Z)(_)||(w=(0,u.Z)(v))):S=!1}S&&(s.set(v,w),n(w,v,r,o,s),s.delete(v)),a(t,i,w)}};const w=function t(e,i,n,o,l){e!==i&&(0,s.Z)(i,(function(s,c){if(l||(l=new r.Z),(0,y.Z)(s))T(e,i,c,n,t,o,l);else{var h=o?o(b(e,c),s,c+"",e,i,l):void 0;void 0===h&&(h=s),a(e,c,h)}}),v.Z)};var S=i(9581),B=i(439);const F=function(t){return(0,S.Z)((function(e,i){var r=-1,n=i.length,o=n>1?i[n-1]:void 0,a=n>2?i[2]:void 0;for(o=t.length>3&&"function"==typeof o?(n--,o):void 0,a&&(0,B.Z)(i[0],i[1],a)&&(o=n<3?void 0:o,n=1),e=Object(e);++r<n;){var s=i[r];s&&t(e,s,r,o)}return e}))}((function(t,e,i){w(t,e,i)}))},5322:(t,e,i)=>{"use strict";i.d(e,{A:()=>It,B:()=>me,C:()=>ge,D:()=>Ft,E:()=>Be,F:()=>er,G:()=>oe,H:()=>ht,I:()=>Mi,J:()=>Dn,K:()=>Si,L:()=>to,Z:()=>Gt,a:()=>ki,b:()=>vi,c:()=>Ai,d:()=>ft,e:()=>_t,f:()=>Vt,g:()=>_i,h:()=>ue,i:()=>ui,j:()=>he,k:()=>re,l:()=>st,m:()=>mt,n:()=>Kt,o:()=>di,p:()=>Li,q:()=>Ti,r:()=>wi,s:()=>bi,t:()=>Ci,u:()=>ye,v:()=>yt,w:()=>le,x:()=>ae,y:()=>Zi,z:()=>qi});var r=i(8464),n=i(7484),o=i(7967),a=i(4218),s=i(7856),l=i(1610),c=i(9807);const h=(t,e)=>{const i=l.Z.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return(0,c.Z)(t,r)};var u=i(1117);const d=(t,e,i=50)=>{const{r:r,g:n,b:o,a:a}=l.Z.parse(t),{r:s,g:c,b:h,a:d}=l.Z.parse(e),f=i/100,p=2*f-1,g=a-d,m=((p*g==-1?p:(p+g)/(1+p*g))+1)/2,y=1-m,x=r*m+s*y,C=n*m+c*y,b=o*m+h*y,_=a*f+d*(1-f);return(0,u.Z)(x,C,b,_)},f=(t,e=100)=>{const i=l.Z.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,d(i,t,e)};var p=i(7201),g=i(2281),m=i(1619),y=i(2454),x=i(9236),C="comm",b="rule",_="decl",v=Math.abs,k=String.fromCharCode;Object.assign;function T(t){return t.trim()}function w(t,e,i){return t.replace(e,i)}function S(t,e){return t.indexOf(e)}function B(t,e){return 0|t.charCodeAt(e)}function F(t,e,i){return t.slice(e,i)}function A(t){return t.length}function L(t,e){return e.push(t),t}function M(t,e){for(var i="",r=0;r<t.length;r++)i+=e(t[r],r,t,e)||"";return i}function E(t,e,i,r){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case _:return t.return=t.return||t.value;case C:return"";case"@keyframes":return t.return=t.value+"{"+M(t.children,r)+"}";case b:if(!A(t.value=t.props.join(",")))return""}return A(i=M(t.children,r))?t.return=t.value+"{"+i+"}":""}var Z=1,N=1,O=0,I=0,j=0,q="";function D(t,e,i,r,n,o,a,s){return{value:t,root:e,parent:i,type:r,props:n,children:o,line:Z,column:N,length:a,return:"",siblings:s}}function $(){return j=I>0?B(q,--I):0,N--,10===j&&(N=1,Z--),j}function z(){return j=I<O?B(q,I++):0,N++,10===j&&(N=1,Z++),j}function P(){return B(q,I)}function R(){return I}function W(t,e){return F(q,t,e)}function H(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 U(t){return Z=N=1,O=A(q=t),I=0,[]}function Y(t){return q="",t}function V(t){return T(W(I-1,Q(91===t?t+2:40===t?t+1:t)))}function G(t){for(;(j=P())&&j<33;)z();return H(t)>2||H(j)>3?"":" "}function X(t,e){for(;--e&&z()&&!(j<48||j>102||j>57&&j<65||j>70&&j<97););return W(t,R()+(e<6&&32==P()&&32==z()))}function Q(t){for(;z();)switch(j){case t:return I;case 34:case 39:34!==t&&39!==t&&Q(j);break;case 40:41===t&&Q(t);break;case 92:z()}return I}function J(t,e){for(;z()&&t+j!==57&&(t+j!==84||47!==P()););return"/*"+W(e,I-1)+"*"+k(47===t?t:z())}function K(t){for(;!H(P());)z();return W(t,I)}function tt(t){return Y(et("",null,null,null,[""],t=U(t),0,[0],t))}function et(t,e,i,r,n,o,a,s,l){for(var c=0,h=0,u=a,d=0,f=0,p=0,g=1,m=1,y=1,x=0,C="",b=n,_=o,v=r,T=C;m;)switch(p=x,x=z()){case 40:if(108!=p&&58==B(T,u-1)){-1!=S(T+=w(V(x),"&","&\f"),"&\f")&&(y=-1);break}case 34:case 39:case 91:T+=V(x);break;case 9:case 10:case 13:case 32:T+=G(p);break;case 92:T+=X(R()-1,7);continue;case 47:switch(P()){case 42:case 47:L(rt(J(z(),R()),e,i,l),l);break;default:T+="/"}break;case 123*g:s[c++]=A(T)*y;case 125*g:case 59:case 0:switch(x){case 0:case 125:m=0;case 59+h:-1==y&&(T=w(T,/\f/g,"")),f>0&&A(T)-u&&L(f>32?nt(T+";",r,i,u-1,l):nt(w(T," ","")+";",r,i,u-2,l),l);break;case 59:T+=";";default:if(L(v=it(T,e,i,c,h,n,s,C,b=[],_=[],u,o),o),123===x)if(0===h)et(T,e,v,v,b,o,u,s,_);else switch(99===d&&110===B(T,3)?100:d){case 100:case 108:case 109:case 115:et(t,v,v,r&&L(it(t,v,v,0,0,n,s,C,n,b=[],u,_),_),n,_,u,s,r?b:_);break;default:et(T,v,v,v,[""],_,0,s,_)}}c=h=f=0,g=y=1,C=T="",u=a;break;case 58:u=1+A(T),f=p;default:if(g<1)if(123==x)--g;else if(125==x&&0==g++&&125==$())continue;switch(T+=k(x),x*g){case 38:y=h>0?1:(T+="\f",-1);break;case 44:s[c++]=(A(T)-1)*y,y=1;break;case 64:45===P()&&(T+=V(z())),d=P(),h=u=A(C=T+=K(R())),x++;break;case 45:45===p&&2==A(T)&&(g=0)}}return o}function it(t,e,i,r,n,o,a,s,l,c,h,u){for(var d=n-1,f=0===n?o:[""],p=function(t){return t.length}(f),g=0,m=0,y=0;g<r;++g)for(var x=0,C=F(t,d+1,d=v(m=a[g])),_=t;x<p;++x)(_=T(m>0?f[x]+" "+C:w(C,/&\f/g,f[x])))&&(l[y++]=_);return D(t,e,i,0===n?b:s,l,c,h,u)}function rt(t,e,i,r){return D(t,e,i,C,k(j),F(t,2,-2),0,r)}function nt(t,e,i,r,n){return D(t,e,i,_,F(t,0,r),F(t,r+1,-1),r,n)}var ot=i(9697);const at={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},st={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},lt=function(t="fatal"){let e=at.fatal;"string"==typeof t?(t=t.toLowerCase())in at&&(e=at[t]):"number"==typeof t&&(e=t),st.trace=()=>{},st.debug=()=>{},st.info=()=>{},st.warn=()=>{},st.error=()=>{},st.fatal=()=>{},e<=at.fatal&&(st.fatal=console.error?console.error.bind(console,ct("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",ct("FATAL"))),e<=at.error&&(st.error=console.error?console.error.bind(console,ct("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",ct("ERROR"))),e<=at.warn&&(st.warn=console.warn?console.warn.bind(console,ct("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",ct("WARN"))),e<=at.info&&(st.info=console.info?console.info.bind(console,ct("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",ct("INFO"))),e<=at.debug&&(st.debug=console.debug?console.debug.bind(console,ct("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",ct("DEBUG"))),e<=at.trace&&(st.trace=console.debug?console.debug.bind(console,ct("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",ct("TRACE")))},ct=t=>`%c${n().format("ss.SSS")} : ${t} : `,ht=/<br\s*\/?>/gi,ut=t=>s.sanitize(t),dt=(t,e)=>{var i;if(!1!==(null==(i=e.flowchart)?void 0:i.htmlLabels)){const i=e.securityLevel;"antiscript"===i||"strict"===i?t=ut(t):"loose"!==i&&(t=(t=(t=gt(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=pt(t))}return t},ft=(t,e)=>t?t=e.dompurifyConfig?s.sanitize(dt(t,e),e.dompurifyConfig).toString():s.sanitize(dt(t,e),{FORBID_TAGS:["style"]}).toString():t,pt=t=>t.replace(/#br#/g,"<br/>"),gt=t=>t.replace(ht,"#br#"),mt=t=>!1!==t&&!["false","null","0"].includes(String(t).trim().toLowerCase()),yt=function(t){const e=t.split(/(,)/),i=[];for(let r=0;r<e.length;r++){let t=e[r];if(","===t&&r>0&&r+1<e.length){const n=e[r-1],o=e[r+1];Ct(n,o)&&(t=n+","+o,r++,i.pop())}i.push(bt(t))}return i.join("")},xt=(t,e)=>Math.max(0,t.split(e).length-1),Ct=(t,e)=>{const i=xt(t,"~"),r=xt(e,"~");return 1===i&&1===r},bt=t=>{const e=xt(t,"~");let i=!1;if(e<=1)return t;e%2!=0&&t.startsWith("~")&&(t=t.substring(1),i=!0);const r=[...t];let n=r.indexOf("~"),o=r.lastIndexOf("~");for(;-1!==n&&-1!==o&&n!==o;)r[n]="<",r[o]=">",n=r.indexOf("~"),o=r.lastIndexOf("~");return i&&r.unshift("~"),r.join("")},_t={getRows:t=>{if(!t)return[""];return gt(t).replace(/\\n/g,"#br#").split("#br#")},sanitizeText:ft,sanitizeTextOrArray:(t,e)=>"string"==typeof t?ft(t,e):t.flat().map((t=>ft(t,e))),hasBreaks:t=>ht.test(t),splitBreaks:t=>t.split(ht),lineBreakRegex:ht,removeScript:ut,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:mt,getMax:function(...t){const e=t.filter((t=>!isNaN(t)));return Math.max(...e)},getMin:function(...t){const e=t.filter((t=>!isNaN(t)));return Math.min(...e)}},vt=(t,e)=>h(t,e?{s:-40,l:10}:{s:-40,l:-10}),kt="#ffffff",Tt="#f2f2f2";let wt=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(){var t,e,i,r,n,o,a,s,l,c,u;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||h(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||h(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||vt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||vt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||f(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||f(this.tertiaryColor),this.lineColor=this.lineColor||f(this.background),this.arrowheadColor=this.arrowheadColor||f(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,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,p.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,p.Z)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||f(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,g.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||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.darkMode)for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],75);else for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],25);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this.darkMode?this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10):this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;const d=this.darkMode?-4:-1;for(let f=0;f<5;f++)this["surface"+f]=this["surface"+f]||h(this.mainBkg,{h:180,s:-15,l:d*(5+3*f)}),this["surfacePeer"+f]=this["surfacePeer"+f]||h(this.mainBkg,{h:180,s:-15,l:d*(8+3*f)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||h(this.primaryColor,{h:64}),this.fillType3=this.fillType3||h(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||h(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||h(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||h(this.primaryColor,{h:128}),this.fillType7=this.fillType7||h(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||h(this.primaryColor,{l:-10}),this.pie5=this.pie5||h(this.secondaryColor,{l:-10}),this.pie6=this.pie6||h(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||h(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,p.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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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]}))}};let St=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,g.Z)(this.primaryColor,16),this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=f(this.background),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,g.Z)(f("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=(0,u.Z)(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,p.Z)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,p.Z)(this.sectionBkgColor,10),this.taskBorderColor=(0,u.Z)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,u.Z)(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.secondBkg=(0,g.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,g.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,g.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(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||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330});for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10);for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,s:-30,l:-(4*d-10)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,s:-30,l:-(4*d-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["pie"+h]=this["cScale"+h];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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"},this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,p.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,g.Z)(this.secondaryColor,20),this.git1=(0,g.Z)(this.pie2||this.secondaryColor,20),this.git2=(0,g.Z)(this.pie3||this.tertiaryColor,20),this.git3=(0,g.Z)(this.pie4||h(this.primaryColor,{h:-30}),20),this.git4=(0,g.Z)(this.pie5||h(this.primaryColor,{h:-60}),20),this.git5=(0,g.Z)(this.pie6||h(this.primaryColor,{h:-90}),10),this.git6=(0,g.Z)(this.pie7||h(this.primaryColor,{h:60}),10),this.git7=(0,g.Z)(this.pie8||h(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||(0,g.Z)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,g.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]}))}};let Bt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=h(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(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=(0,u.Z)(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,p.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,p.Z)(this.tertiaryColor,40);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],10),this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||h(this["cScale"+d],{h:180});for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,l:-(7+5*d)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||f(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||f(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,g.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||h(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||h(this.primaryColor,{l:-10}),this.pie5=this.pie5||h(this.secondaryColor,{l:-30}),this.pie6=this.pie6||h(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||h(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||(0,p.Z)(f(this.git0),25),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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 Ft=t=>{const e=new Bt;return e.calculate(t),e};let At=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,g.Z)("#cde498",10),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.primaryColor),this.lineColor=f(this.background),this.textColor=f(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.actorBorder=(0,p.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.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,p.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,p.Z)(this.tertiaryColor,40);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],10),this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||h(this["cScale"+d],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,s:-30,l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,s:-30,l:-(8+5*d)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(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||h(this.primaryColor,{l:-30}),this.pie5=this.pie5||h(this.secondaryColor,{l:-30}),this.pie6=this.pie6||h(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||h(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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]}))}};class Lt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,g.Z)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.secondBkg=(0,g.Z)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,g.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.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 h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this.darkMode?this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10):this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{l:-(8+5*d)});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.sectionBkgColor=(0,g.Z)(this.contrast,30),this.sectionBkgColor2=(0,g.Z)(this.contrast,30),this.taskBorderColor=(0,p.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,g.Z)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,p.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(this.secondaryColor,{h:128});for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["pie"+h]=this["cScale"+h];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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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,p.Z)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||h(this.primaryColor,{h:-30}),this.git4=this.pie5||h(this.primaryColor,{h:-60}),this.git5=this.pie6||h(this.primaryColor,{h:-90}),this.git6=this.pie7||h(this.primaryColor,{h:60}),this.git7=this.pie8||h(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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 Mt={base:{getThemeVariables:t=>{const e=new wt;return e.calculate(t),e}},dark:{getThemeVariables:t=>{const e=new St;return e.calculate(t),e}},default:{getThemeVariables:Ft},forest:{getThemeVariables:t=>{const e=new At;return e.calculate(t),e}},neutral:{getThemeVariables:t=>{const e=new Lt;return e.calculate(t),e}}},Et={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,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,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},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,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"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,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,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{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},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,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},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,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,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"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",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,fontSize:16},Zt={...Et,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Mt.default.getThemeVariables(),sequence:{...Et.sequence,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:{...Et.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Et.c4,useWidth:void 0,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}}},pie:{...Et.pie,useWidth:984},xyChart:{...Et.xyChart,useWidth:void 0},requirement:{...Et.requirement,useWidth:void 0},gitGraph:{...Et.gitGraph,useMaxWidth:!1},sankey:{...Et.sankey,useMaxWidth:!1}},Nt=(t,e="")=>Object.keys(t).reduce(((i,r)=>Array.isArray(t[r])?i:"object"==typeof t[r]&&null!==t[r]?[...i,e+r,...Nt(t[r],"")]:[...i,e+r]),[]),Ot=new Set(Nt(Zt,"")),It=Zt,jt=t=>{if(st.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t)if(Array.isArray(t))t.forEach((t=>jt(t)));else{for(const e of Object.keys(t)){if(st.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Ot.has(e)||null==t[e]){st.debug("sanitize deleting key: ",e),delete t[e];continue}if("object"==typeof t[e]){st.debug("sanitizing object",e),jt(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(st.debug("sanitizing css option",e),t[e]=qt(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];(null==i?void 0:i.match)&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}st.debug("After sanitization",t)}},qt=t=>{let e=0,i=0;for(const r of t){if(e<i)return"{ /* ERROR: Unbalanced CSS */ }";"{"===r?e++:"}"===r&&i++}return e!==i?"{ /* ERROR: Unbalanced CSS */ }":t},Dt=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,$t=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,zt=/\s*%%.*\n/gm;class Pt extends Error{constructor(t){super(t),this.name="UnknownDiagramError"}}const Rt={},Wt=function(t,e){t=t.replace(Dt,"").replace($t,"").replace(zt,"\n");for(const[i,{detector:r}]of Object.entries(Rt)){if(r(t,e))return i}throw new Pt(`No diagram type detected matching given configuration for text: ${t}`)},Ht=(...t)=>{for(const{id:e,detector:i,loader:r}of t)Ut(e,i,r)},Ut=(t,e,i)=>{Rt[t]?st.error(`Detector with key ${t} already exists`):Rt[t]={detector:e,loader:i},st.debug(`Detector with key ${t} added${i?" with loader":""}`)},Yt=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>Yt(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]?(r||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Yt(t[n],e[n],{depth:i-1,clobber:r}))})),t)},Vt=Yt,Gt="\u200b",Xt={curveBasis:a.$0Z,curveBasisClosed:a.Dts,curveBasisOpen:a.WQY,curveBumpX:a.qpX,curveBumpY:a.u93,curveBundle:a.tFB,curveCardinalClosed:a.OvA,curveCardinalOpen:a.dCK,curveCardinal:a.YY7,curveCatmullRomClosed:a.fGX,curveCatmullRomOpen:a.$m7,curveCatmullRom:a.zgE,curveLinear:a.c_6,curveLinearClosed:a.fxm,curveMonotoneX:a.FdL,curveMonotoneY:a.ak_,curveNatural:a.SxZ,curveStep:a.eA_,curveStepAfter:a.jsv,curveStepBefore:a.iJ},Qt=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Jt=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${Qt.source})(?=[}][%]{2}).*\n`,"ig");let r;t=t.trim().replace(i,"").replace(/'/gm,'"'),st.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const n=[];for(;null!==(r=$t.exec(t));)if(r.index===$t.lastIndex&&$t.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:t,args:e})}return 0===n.length?{type:t,args:null}:1===n.length?n[0]:n}catch(i){return st.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}};function Kt(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Xt[i]??e}function te(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}const ee=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},ie=(t,e)=>{let i,r=e;for(const n of t){if(i){const t=te(n,i);if(t<r)r-=t;else{const e=r/t;if(e<=0)return i;if(e>=1)return{x:n.x,y:n.y};if(e>0&&e<1)return{x:ee((1-e)*i.x+e*n.x,5),y:ee((1-e)*i.y+e*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")};function re(t){let e="",i="";for(const r of t)void 0!==r&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let ne=0;const oe=()=>(ne++,"id-"+Math.random().toString(36).substr(2,12)+"-"+ne);const ae=t=>function(t){let e="";const i="0123456789abcdef";for(let r=0;r<t;r++)e+=i.charAt(Math.floor(16*Math.random()));return e}(t.length),se=function(t,e){const i=e.text.replace(_t.lineBreakRegex," "),[,r]=ge(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),void 0!==e.class&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+2*e.textMargin),o.attr("fill",e.fill),o.text(i),n},le=(0,y.Z)(((t,e,i)=>{if(!t)return t;if(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},i),_t.lineBreakRegex.test(t))return t;const r=t.split(" "),n=[];let o="";return r.forEach(((t,a)=>{const s=ue(`${t} `,i),l=ue(o,i);if(s>e){const{hyphenatedStrings:r,remainingWord:a}=ce(t,e,"-",i);n.push(o,...r),o=a}else l+s>=e?(n.push(o),o=t):o=[o,t].filter(Boolean).join(" ");a+1===r.length&&n.push(o)})),n.filter((t=>""!==t)).join(i.joinWith)}),((t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`)),ce=(0,y.Z)(((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let a="";return n.forEach(((t,s)=>{const l=`${a}${t}`;if(ue(l,r)>=e){const t=s+1,e=n.length===t,r=`${l}${i}`;o.push(e?l:r),a=""}else a=l})),{hyphenatedStrings:o,remainingWord:a}}),((t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`));function he(t,e){return de(t,e).height}function ue(t,e){return de(t,e).width}const de=(0,y.Z)(((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=ge(i),s=["sans-serif",r],l=t.split(_t.lineBreakRegex),c=[],h=(0,a.Ys)("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const a of s){let t=0;const e={width:0,height:0,lineHeight:0};for(const i of l){const r={x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""};r.text=i||Gt;const s=se(u,r).style("font-size",o).style("font-weight",n).style("font-family",a),l=(s._groups||s)[0][0].getBBox();if(0===l.width&&0===l.height)throw new Error("svg element not in render tree");e.width=Math.round(Math.max(e.width,l.width)),t=Math.round(l.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}c.push(e)}u.remove();return 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 fe;function pe(t){return"str"in t}const ge=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]};function me(t,e){return(0,x.Z)({},t,e)}const ye={assignWithDepth:Vt,wrapLabel:le,calculateTextHeight:he,calculateTextWidth:ue,calculateTextDimensions:de,cleanAndMerge:me,detectInit:function(t,e){const i=Jt(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const t=i.map((t=>t.args));jt(t),r=Vt(r,[...t])}else r=i.args;if(!r)return;let n=Wt(t,e);const o="config";return void 0!==r[o]&&("flowchart-v2"===n&&(n="flowchart"),r[n]=r[o],delete r[o]),r},detectDirective:Jt,isSubstringInArray:function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1},interpolateToCurve:Kt,calcLabelPosition:function(t){return 1===t.length?t[0]:function(t){let e,i=0;return t.forEach((t=>{i+=te(t,e),e=t})),ie(t,i/2)}(t)},calcCardinalityPosition:(t,e,i)=>{st.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const r=ie(e,25),n=t?10:5,o=Math.atan2(e[0].y-r.y,e[0].x-r.x),a={x:0,y:0};return a.x=Math.sin(o)*n+(e[0].x+r.x)/2,a.y=-Math.cos(o)*n+(e[0].y+r.y)/2,a},calcTerminalLabelPosition:function(t,e,i){const r=structuredClone(i);st.info("our points",r),"start_left"!==e&&"start_right"!==e&&r.reverse();const n=ie(r,25+t),o=10+.5*t,a=Math.atan2(r[0].y-n.y,r[0].x-n.x),s={x:0,y:0};return"start_left"===e?(s.x=Math.sin(a+Math.PI)*o+(r[0].x+n.x)/2,s.y=-Math.cos(a+Math.PI)*o+(r[0].y+n.y)/2):"end_right"===e?(s.x=Math.sin(a-Math.PI)*o+(r[0].x+n.x)/2-5,s.y=-Math.cos(a-Math.PI)*o+(r[0].y+n.y)/2-5):"end_left"===e?(s.x=Math.sin(a)*o+(r[0].x+n.x)/2-5,s.y=-Math.cos(a)*o+(r[0].y+n.y)/2-5):(s.x=Math.sin(a)*o+(r[0].x+n.x)/2,s.y=-Math.cos(a)*o+(r[0].y+n.y)/2),s},formatUrl:function(t,e){const i=t.trim();if(i)return"loose"!==e.securityLevel?(0,o.Nm)(i):i},getStylesFromArray:re,generateId:oe,random:ae,runFunc:(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let a=0;a<r;a++)if(o=o[i[a]],!o)return void st.error(`Function name: ${t} not found in window`);o[n](...e)},entityDecode:function(t){return fe=fe||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),fe.innerHTML=t,unescape(fe.textContent)},insertTitle:(t,e,i,r)=>{var n;if(!r)return;const o=null==(n=t.node())?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},parseFontSize:ge,InitIDGenerator:class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}}},xe="10.6.1",Ce=Object.freeze(It);let be,_e=Vt({},Ce),ve=[],ke=Vt({},Ce);const Te=(t,e)=>{let i=Vt({},t),r={};for(const n of e)Fe(n),r=Vt(r,n);if(i=Vt(i,r),r.theme&&r.theme in Mt){const t=Vt({},be),e=Vt(t.themeVariables||{},r.themeVariables);i.theme&&i.theme in Mt&&(i.themeVariables=Mt[i.theme].getThemeVariables(e))}return ke=i,Ze(ke),ke},we=()=>Vt({},_e),Se=t=>(Ze(t),Vt(ke,t),Be()),Be=()=>Vt({},ke),Fe=t=>{t&&(["secure",..._e.secure??[]].forEach((e=>{Object.hasOwn(t,e)&&(st.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{e.startsWith("__")&&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]&&Fe(t[e])})))},Ae=t=>{jt(t),!t.fontFamily||t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily}),ve.push(t),Te(_e,ve)},Le=(t=_e)=>{ve=[],Te(t,ve)},Me={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Ee={},Ze=t=>{var e;t&&((t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&(Ee[e="LAZY_LOAD_DEPRECATED"]||(st.warn(Me[e]),Ee[e]=!0)))},Ne={id:"c4",detector:t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),loader:async()=>{const{diagram:t}=await i.e(132).then(i.bind(i,132));return{id:"c4",diagram:t}}},Oe="flowchart",Ie={id:Oe,detector:(t,e)=>{var i,r;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&"elk"!==(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)&&/^\s*graph/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(8955),i.e(1763)]).then(i.bind(i,1763));return{id:Oe,diagram:t}}},je="flowchart-v2",qe={id:je,detector:(t,e)=>{var i,r,n;return"dagre-d3"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&"elk"!==(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)&&(!(!/^\s*graph/.test(t)||"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))||/^\s*flowchart/.test(t))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(8955),i.e(9893)]).then(i.bind(i,9893));return{id:je,diagram:t}}},De={id:"er",detector:t=>/^\s*erDiagram/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3343)]).then(i.bind(i,3343));return{id:"er",diagram:t}}},$e="gitGraph",ze={id:$e,detector:t=>/^\s*gitGraph/.test(t),loader:async()=>{const{diagram:t}=await i.e(3619).then(i.bind(i,3619));return{id:$e,diagram:t}}},Pe="gantt",Re={id:Pe,detector:t=>/^\s*gantt/.test(t),loader:async()=>{const{diagram:t}=await i.e(8016).then(i.bind(i,8016));return{id:Pe,diagram:t}}},We="info",He={id:We,detector:t=>/^\s*info/.test(t),loader:async()=>{const{diagram:t}=await i.e(5326).then(i.bind(i,5326));return{id:We,diagram:t}}},Ue={id:"pie",detector:t=>/^\s*pie/.test(t),loader:async()=>{const{diagram:t}=await i.e(2661).then(i.bind(i,2661));return{id:"pie",diagram:t}}},Ye="quadrantChart",Ve={id:Ye,detector:t=>/^\s*quadrantChart/.test(t),loader:async()=>{const{diagram:t}=await i.e(6648).then(i.bind(i,6648));return{id:Ye,diagram:t}}},Ge="xychart",Xe={id:Ge,detector:t=>/^\s*xychart-beta/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(2693)]).then(i.bind(i,8088));return{id:Ge,diagram:t}}},Qe="requirement",Je={id:Qe,detector:t=>/^\s*requirement(Diagram)?/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(6985)]).then(i.bind(i,6985));return{id:Qe,diagram:t}}},Ke="sequence",ti={id:Ke,detector:t=>/^\s*sequenceDiagram/.test(t),loader:async()=>{const{diagram:t}=await i.e(5790).then(i.bind(i,5790));return{id:Ke,diagram:t}}},ei="class",ii={id:ei,detector:(t,e)=>{var i;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer)&&/^\s*classDiagram/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(4706),i.e(109)]).then(i.bind(i,109));return{id:ei,diagram:t}}},ri="classDiagram",ni={id:ri,detector:(t,e)=>{var i;return!(!/^\s*classDiagram/.test(t)||"dagre-wrapper"!==(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer))||/^\s*classDiagram-v2/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(4706),i.e(6255)]).then(i.bind(i,6255));return{id:ri,diagram:t}}},oi="state",ai={id:oi,detector:(t,e)=>{var i;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer)&&/^\s*stateDiagram/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(1504),i.e(2696)]).then(i.bind(i,2696));return{id:oi,diagram:t}}},si="stateDiagram",li={id:si,detector:(t,e)=>{var i;return!!/^\s*stateDiagram-v2/.test(t)||!(!/^\s*stateDiagram/.test(t)||"dagre-wrapper"!==(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(1504),i.e(5943)]).then(i.bind(i,5943));return{id:si,diagram:t}}},ci="journey",hi={id:ci,detector:t=>/^\s*journey/.test(t),loader:async()=>{const{diagram:t}=await i.e(2183).then(i.bind(i,2183));return{id:ci,diagram:t}}},ui=function(t,e,i,r){const n=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r}(e,i,r);!function(t,e){for(let i of e)t.attr(i[0],i[1])}(t,n)},di=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,a=n.height;st.info(`SVG bounds: ${o}x${a}`,n);let s=0,l=0;st.info(`Graph bounds: ${s}x${l}`,t),s=o+2*i,l=a+2*i,st.info(`Calculated bounds: ${s}x${l}`),ui(e,l,s,r);const c=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",c)},fi={},pi=(t,e,i)=>{let r="";return t in fi&&fi[t]?r=fi[t](i):st.warn(`No theme found for ${t}`),` & {\n font-family: ${i.fontFamily};\n font-size: ${i.fontSize};\n fill: ${i.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${i.errorBkgColor};\n }\n & .error-text {\n fill: ${i.errorTextColor};\n stroke: ${i.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: ${i.lineColor};\n stroke: ${i.lineColor};\n }\n & .marker.cross {\n stroke: ${i.lineColor};\n }\n\n & svg {\n font-family: ${i.fontFamily};\n font-size: ${i.fontSize};\n }\n\n ${r}\n\n ${e}\n`};let gi="",mi="",yi="";const xi=t=>ft(t,Be()),Ci=()=>{gi="",yi="",mi=""},bi=t=>{gi=xi(t).replace(/^\s+/g,"")},_i=()=>gi,vi=t=>{yi=xi(t).replace(/\n\s+/g,"\n")},ki=()=>yi,Ti=t=>{mi=xi(t)},wi=()=>mi,Si=Object.freeze(Object.defineProperty({__proto__:null,clear:Ci,getAccDescription:ki,getAccTitle:_i,getDiagramTitle:wi,setAccDescription:vi,setAccTitle:bi,setDiagramTitle:Ti},Symbol.toStringTag,{value:"Module"})),Bi=st,Fi=lt,Ai=Be,Li=Se,Mi=Ce,Ei=t=>ft(t,Ai()),Zi=di,Ni={},Oi=(t,e,i)=>{var r,n,o;if(Ni[t])throw new Error(`Diagram ${t} already registered.`);Ni[t]=e,i&&Ut(t,i),n=t,void 0!==(o=e.styles)&&(fi[n]=o),null==(r=e.injectUtils)||r.call(e,Bi,Fi,Ai,Ei,Zi,Si,(()=>{}))},Ii=t=>{if(t in Ni)return Ni[t];throw new ji(t)};class ji extends Error{constructor(t){super(`Diagram ${t} not found.`)}}const qi=t=>{var e;const{securityLevel:i}=Ai();let r=(0,a.Ys)("body");if("sandbox"===i){const i=(null==(e=(0,a.Ys)(`#i${t}`).node())?void 0:e.contentDocument)??document;r=(0,a.Ys)(i.body)}return r.select(`#${t}`)},Di={draw:(t,e,i)=>{st.debug("renering svg for syntax error\n");const r=qi(e);r.attr("viewBox","0 0 2412 512"),ui(r,100,512,!0);const n=r.append("g");n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)}},$i=Di,zi={db:{},renderer:Di,parser:{parser:{yy:{}},parse:()=>{}}},Pi="flowchart-elk",Ri={id:Pi,detector:(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&"elk"===(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(5269),i.e(8955),i.e(4238)]).then(i.bind(i,4238));return{id:Pi,diagram:t}}},Wi="timeline",Hi={id:Wi,detector:t=>/^\s*timeline/.test(t),loader:async()=>{const{diagram:t}=await i.e(2700).then(i.bind(i,2700));return{id:Wi,diagram:t}}},Ui="mindmap",Yi={id:Ui,detector:t=>/^\s*mindmap/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(9138)]).then(i.bind(i,9138));return{id:Ui,diagram:t}}},Vi="sankey",Gi={id:Vi,detector:t=>/^\s*sankey-beta/.test(t),loader:async()=>{const{diagram:t}=await i.e(240).then(i.bind(i,240));return{id:Vi,diagram:t}}};let Xi=!1;const Qi=()=>{Xi||(Xi=!0,Oi("error",zi,(t=>"error"===t.toLowerCase().trim())),Oi("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},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 un-indented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),Ht(Ne,ni,ii,De,Re,He,Ue,Je,ti,Ri,qe,Ie,Yi,Hi,ze,li,ai,hi,Ve,Gi,Xe))};class Ji{constructor(t,e={}){this.text=t,this.metadata=e,this.type="graph",this.text+="\n";const i=Be();try{this.type=Wt(t,i)}catch(n){this.type="error",this.detectError=n}const r=Ii(this.type);st.debug("Type "+this.type),this.db=r.db,this.renderer=r.renderer,this.parser=r.parser,this.parser.parser.yy=this.db,this.init=r.init,this.parse()}parse(){var t,e,i,r,n;if(this.detectError)throw this.detectError;null==(e=(t=this.db).clear)||e.call(t);const o=Be();null==(i=this.init)||i.call(this,o),this.metadata.title&&(null==(n=(r=this.db).setDiagramTitle)||n.call(r,this.metadata.title)),this.parser.parse(this.text)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}}const Ki=async(t,e={})=>{const i=Wt(t,Be());try{Ii(i)}catch(r){const t=Rt[i].loader;if(!t)throw new Pt(`Diagram ${i} not found.`);const{id:e,diagram:n}=await t();Oi(e,n)}return new Ji(t,e)};let tr=[];const er=t=>{tr.push(t)},ir="graphics-document document";const rr=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();function nr(t){return null==t}var or={isNothing:nr,isObject:function(t){return"object"==typeof t&&null!==t},toArray:function(t){return Array.isArray(t)?t:nr(t)?[]:[t]},repeat:function(t,e){var i,r="";for(i=0;i<e;i+=1)r+=t;return r},isNegativeZero:function(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t},extend:function(t,e){var i,r,n,o;if(e)for(i=0,r=(o=Object.keys(e)).length;i<r;i+=1)t[n=o[i]]=e[n];return t}};function ar(t,e){var i="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(i+='in "'+t.mark.name+'" '),i+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(i+="\n\n"+t.mark.snippet),r+" "+i):r}function sr(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=ar(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}sr.prototype=Object.create(Error.prototype),sr.prototype.constructor=sr,sr.prototype.toString=function(t){return this.name+": "+ar(this,t)};var lr=sr;function cr(t,e,i,r,n){var o="",a="",s=Math.floor(n/2)-1;return r-e>s&&(e=r-s+(o=" ... ").length),i-r>s&&(i=r+s-(a=" ...").length),{str:o+t.slice(e,i).replace(/\t/g,"\u2192")+a,pos:r-e+o.length}}function hr(t,e){return or.repeat(" ",e-t.length)+t}var ur=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 i,r=/\r?\n|\r|\0/g,n=[0],o=[],a=-1;i=r.exec(t.buffer);)o.push(i.index),n.push(i.index+i[0].length),t.position<=i.index&&a<0&&(a=n.length-2);a<0&&(a=n.length-1);var s,l,c="",h=Math.min(t.line+e.linesAfter,o.length).toString().length,u=e.maxLength-(e.indent+h+3);for(s=1;s<=e.linesBefore&&!(a-s<0);s++)l=cr(t.buffer,n[a-s],o[a-s],t.position-(n[a]-n[a-s]),u),c=or.repeat(" ",e.indent)+hr((t.line-s+1).toString(),h)+" | "+l.str+"\n"+c;for(l=cr(t.buffer,n[a],o[a],t.position,u),c+=or.repeat(" ",e.indent)+hr((t.line+1).toString(),h)+" | "+l.str+"\n",c+=or.repeat("-",e.indent+h+3+l.pos)+"^\n",s=1;s<=e.linesAfter&&!(a+s>=o.length);s++)l=cr(t.buffer,n[a+s],o[a+s],t.position-(n[a]-n[a+s]),u),c+=or.repeat(" ",e.indent)+hr((t.line+s+1).toString(),h)+" | "+l.str+"\n";return c.replace(/\n$/,"")},dr=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],fr=["scalar","sequence","mapping"];var pr=function(t,e){var i,r;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===dr.indexOf(e))throw new lr('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=(i=e.styleAliases||null,r={},null!==i&&Object.keys(i).forEach((function(t){i[t].forEach((function(e){r[String(e)]=t}))})),r),-1===fr.indexOf(this.kind))throw new lr('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')};function gr(t,e){var i=[];return t[e].forEach((function(t){var e=i.length;i.forEach((function(i,r){i.tag===t.tag&&i.kind===t.kind&&i.multi===t.multi&&(e=r)})),i[e]=t})),i}function mr(t){return this.extend(t)}mr.prototype.extend=function(t){var e=[],i=[];if(t instanceof pr)i.push(t);else if(Array.isArray(t))i=i.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new lr("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof pr))throw new lr("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new lr("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 lr("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),i.forEach((function(t){if(!(t instanceof pr))throw new lr("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var r=Object.create(mr.prototype);return r.implicit=(this.implicit||[]).concat(e),r.explicit=(this.explicit||[]).concat(i),r.compiledImplicit=gr(r,"implicit"),r.compiledExplicit=gr(r,"explicit"),r.compiledTypeMap=function(){var t,e,i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function r(t){t.multi?(i.multi[t.kind].push(t),i.multi.fallback.push(t)):i[t.kind][t.tag]=i.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(r);return i}(r.compiledImplicit,r.compiledExplicit),r};var yr=new mr({explicit:[new pr("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),new pr("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),new pr("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})]});var xr=new pr("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 Cr=new pr("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 br(t){return 48<=t&&t<=55}function _r(t){return 48<=t&&t<=57}var vr=new pr("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r=t.length,n=0,o=!1;if(!r)return!1;if("-"!==(e=t[n])&&"+"!==e||(e=t[++n]),"0"===e){if(n+1===r)return!0;if("b"===(e=t[++n])){for(n++;n<r;n++)if("_"!==(e=t[n])){if("0"!==e&&"1"!==e)return!1;o=!0}return o&&"_"!==e}if("x"===e){for(n++;n<r;n++)if("_"!==(e=t[n])){if(!(48<=(i=t.charCodeAt(n))&&i<=57||65<=i&&i<=70||97<=i&&i<=102))return!1;o=!0}return o&&"_"!==e}if("o"===e){for(n++;n<r;n++)if("_"!==(e=t[n])){if(!br(t.charCodeAt(n)))return!1;o=!0}return o&&"_"!==e}}if("_"===e)return!1;for(;n<r;n++)if("_"!==(e=t[n])){if(!_r(t.charCodeAt(n)))return!1;o=!0}return!(!o||"_"===e)},construct:function(t){var e,i=t,r=1;if(-1!==i.indexOf("_")&&(i=i.replace(/_/g,"")),"-"!==(e=i[0])&&"+"!==e||("-"===e&&(r=-1),e=(i=i.slice(1))[0]),"0"===i)return 0;if("0"===e){if("b"===i[1])return r*parseInt(i.slice(2),2);if("x"===i[1])return r*parseInt(i.slice(2),16);if("o"===i[1])return r*parseInt(i.slice(2),8)}return r*parseInt(i,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!or.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"]}}),kr=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var Tr=/^[-+]?[0-9]+e/;var wr=new pr("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!kr.test(t)||"_"===t[t.length-1])},construct:function(t){var e,i;return i="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:i*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||or.isNegativeZero(t))},represent:function(t,e){var i;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(or.isNegativeZero(t))return"-0.0";return i=t.toString(10),Tr.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),Sr=yr.extend({implicit:[xr,Cr,vr,wr]}),Br=Sr,Fr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Ar=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 Lr=new pr("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==Fr.exec(t)||null!==Ar.exec(t))},construct:function(t){var e,i,r,n,o,a,s,l,c=0,h=null;if(null===(e=Fr.exec(t))&&(e=Ar.exec(t)),null===e)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],a=+e[5],s=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(h=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(h=-h)),l=new Date(Date.UTC(i,r,n,o,a,s,c)),h&&l.setTime(l.getTime()-h),l},instanceOf:Date,represent:function(t){return t.toISOString()}});var Mr=new pr("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Zr=new pr("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r=0,n=t.length,o=Er;for(i=0;i<n;i++)if(!((e=o.indexOf(t.charAt(i)))>64)){if(e<0)return!1;r+=6}return r%8==0},construct:function(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=Er,a=0,s=[];for(e=0;e<n;e++)e%4==0&&e&&(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(r.charAt(e));return 0===(i=n%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===i?(s.push(a>>10&255),s.push(a>>2&255)):12===i&&s.push(a>>4&255),new Uint8Array(s)},predicate:function(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)},represent:function(t){var e,i,r="",n=0,o=t.length,a=Er;for(e=0;e<o;e++)e%3==0&&e&&(r+=a[n>>18&63],r+=a[n>>12&63],r+=a[n>>6&63],r+=a[63&n]),n=(n<<8)+t[e];return 0===(i=o%3)?(r+=a[n>>18&63],r+=a[n>>12&63],r+=a[n>>6&63],r+=a[63&n]):2===i?(r+=a[n>>10&63],r+=a[n>>4&63],r+=a[n<<2&63],r+=a[64]):1===i&&(r+=a[n>>2&63],r+=a[n<<4&63],r+=a[64],r+=a[64]),r}}),Nr=Object.prototype.hasOwnProperty,Or=Object.prototype.toString;var Ir=new pr("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,r,n,o,a=[],s=t;for(e=0,i=s.length;e<i;e+=1){if(r=s[e],o=!1,"[object Object]"!==Or.call(r))return!1;for(n in r)if(Nr.call(r,n)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(n))return!1;a.push(n)}return!0},construct:function(t){return null!==t?t:[]}}),jr=Object.prototype.toString;var qr=new pr("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,r,n,o,a=t;for(o=new Array(a.length),e=0,i=a.length;e<i;e+=1){if(r=a[e],"[object Object]"!==jr.call(r))return!1;if(1!==(n=Object.keys(r)).length)return!1;o[e]=[n[0],r[n[0]]]}return!0},construct:function(t){if(null===t)return[];var e,i,r,n,o,a=t;for(o=new Array(a.length),e=0,i=a.length;e<i;e+=1)r=a[e],n=Object.keys(r),o[e]=[n[0],r[n[0]]];return o}}),Dr=Object.prototype.hasOwnProperty;var $r=new pr("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){if(null===t)return!0;var e,i=t;for(e in i)if(Dr.call(i,e)&&null!==i[e])return!1;return!0},construct:function(t){return null!==t?t:{}}}),zr=Br.extend({implicit:[Lr,Mr],explicit:[Zr,Ir,qr,$r]}),Pr=Object.prototype.hasOwnProperty,Rr=1,Wr=2,Hr=3,Ur=4,Yr=1,Vr=2,Gr=3,Xr=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Qr=/[\x85\u2028\u2029]/,Jr=/[,\[\]\{\}]/,Kr=/^(?:!|!!|![a-z\-]+!)$/i,tn=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function en(t){return Object.prototype.toString.call(t)}function rn(t){return 10===t||13===t}function nn(t){return 9===t||32===t}function on(t){return 9===t||32===t||10===t||13===t}function an(t){return 44===t||91===t||93===t||123===t||125===t}function sn(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function ln(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 cn(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var hn=new Array(256),un=new Array(256),dn=0;dn<256;dn++)hn[dn]=ln(dn)?1:0,un[dn]=ln(dn);function fn(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||zr,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 pn(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=ur(i),new lr(e,i)}function gn(t,e){throw pn(t,e)}function mn(t,e){t.onWarning&&t.onWarning.call(null,pn(t,e))}var yn={YAML:function(t,e,i){var r,n,o;null!==t.version&&gn(t,"duplication of %YAML directive"),1!==i.length&&gn(t,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&gn(t,"ill-formed argument of the YAML directive"),n=parseInt(r[1],10),o=parseInt(r[2],10),1!==n&&gn(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=o<2,1!==o&&2!==o&&mn(t,"unsupported YAML version of the document")},TAG:function(t,e,i){var r,n;2!==i.length&&gn(t,"TAG directive accepts exactly two arguments"),r=i[0],n=i[1],Kr.test(r)||gn(t,"ill-formed tag handle (first argument) of the TAG directive"),Pr.call(t.tagMap,r)&&gn(t,'there is a previously declared suffix for "'+r+'" tag handle'),tn.test(n)||gn(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(o){gn(t,"tag prefix is malformed: "+n)}t.tagMap[r]=n}};function xn(t,e,i,r){var n,o,a,s;if(e<i){if(s=t.input.slice(e,i),r)for(n=0,o=s.length;n<o;n+=1)9===(a=s.charCodeAt(n))||32<=a&&a<=1114111||gn(t,"expected valid JSON character");else Xr.test(s)&&gn(t,"the stream contains non-printable characters");t.result+=s}}function Cn(t,e,i,r){var n,o,a,s;for(or.isObject(i)||gn(t,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(n=Object.keys(i)).length;a<s;a+=1)o=n[a],Pr.call(e,o)||(e[o]=i[o],r[o]=!0)}function bn(t,e,i,r,n,o,a,s,l){var c,h;if(Array.isArray(n))for(c=0,h=(n=Array.prototype.slice.call(n)).length;c<h;c+=1)Array.isArray(n[c])&&gn(t,"nested arrays are not supported inside keys"),"object"==typeof n&&"[object Object]"===en(n[c])&&(n[c]="[object Object]");if("object"==typeof n&&"[object Object]"===en(n)&&(n="[object Object]"),n=String(n),null===e&&(e={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(o))for(c=0,h=o.length;c<h;c+=1)Cn(t,e,o[c],i);else Cn(t,e,o,i);else t.json||Pr.call(i,n)||!Pr.call(e,n)||(t.line=a||t.line,t.lineStart=s||t.lineStart,t.position=l||t.position,gn(t,"duplicated mapping key")),"__proto__"===n?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:o}):e[n]=o,delete i[n];return e}function _n(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):gn(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function vn(t,e,i){for(var r=0,n=t.input.charCodeAt(t.position);0!==n;){for(;nn(n);)9===n&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&35===n)do{n=t.input.charCodeAt(++t.position)}while(10!==n&&13!==n&&0!==n);if(!rn(n))break;for(_n(t),n=t.input.charCodeAt(t.position),r++,t.lineIndent=0;32===n;)t.lineIndent++,n=t.input.charCodeAt(++t.position)}return-1!==i&&0!==r&&t.lineIndent<i&&mn(t,"deficient indentation"),r}function kn(t){var e,i=t.position;return!(45!==(e=t.input.charCodeAt(i))&&46!==e||e!==t.input.charCodeAt(i+1)||e!==t.input.charCodeAt(i+2)||(i+=3,0!==(e=t.input.charCodeAt(i))&&!on(e)))}function Tn(t,e){1===e?t.result+=" ":e>1&&(t.result+=or.repeat("\n",e-1))}function wn(t,e){var i,r,n=t.tag,o=t.anchor,a=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),r=t.input.charCodeAt(t.position);0!==r&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,gn(t,"tab characters must not be used in indentation")),45===r)&&on(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,vn(t,!0,-1)&&t.lineIndent<=e)a.push(null),r=t.input.charCodeAt(t.position);else if(i=t.line,Fn(t,e,Hr,!1,!0),a.push(t.result),vn(t,!0,-1),r=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&0!==r)gn(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=n,t.anchor=o,t.kind="sequence",t.result=a,!0)}function Sn(t){var e,i,r,n,o=!1,a=!1;if(33!==(n=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&gn(t,"duplication of a tag property"),60===(n=t.input.charCodeAt(++t.position))?(o=!0,n=t.input.charCodeAt(++t.position)):33===n?(a=!0,i="!!",n=t.input.charCodeAt(++t.position)):i="!",e=t.position,o){do{n=t.input.charCodeAt(++t.position)}while(0!==n&&62!==n);t.position<t.length?(r=t.input.slice(e,t.position),n=t.input.charCodeAt(++t.position)):gn(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==n&&!on(n);)33===n&&(a?gn(t,"tag suffix cannot contain exclamation marks"):(i=t.input.slice(e-1,t.position+1),Kr.test(i)||gn(t,"named tag handle cannot contain such characters"),a=!0,e=t.position+1)),n=t.input.charCodeAt(++t.position);r=t.input.slice(e,t.position),Jr.test(r)&&gn(t,"tag suffix cannot contain flow indicator characters")}r&&!tn.test(r)&&gn(t,"tag name cannot contain such characters: "+r);try{r=decodeURIComponent(r)}catch(s){gn(t,"tag name is malformed: "+r)}return o?t.tag=r:Pr.call(t.tagMap,i)?t.tag=t.tagMap[i]+r:"!"===i?t.tag="!"+r:"!!"===i?t.tag="tag:yaml.org,2002:"+r:gn(t,'undeclared tag handle "'+i+'"'),!0}function Bn(t){var e,i;if(38!==(i=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&gn(t,"duplication of an anchor property"),i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!on(i)&&!an(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&gn(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,i,r,n){var o,a,s,l,c,h,u,d,f,p=1,g=!1,m=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,o=a=s=Ur===i||Hr===i,r&&vn(t,!0,-1)&&(g=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),1===p)for(;Sn(t)||Bn(t);)vn(t,!0,-1)?(g=!0,s=o,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):s=!1;if(s&&(s=g||n),1!==p&&Ur!==i||(d=Rr===i||Wr===i?e:e+1,f=t.position-t.lineStart,1===p?s&&(wn(t,f)||function(t,e,i){var r,n,o,a,s,l,c,h=t.tag,u=t.anchor,d={},f=Object.create(null),p=null,g=null,m=null,y=!1,x=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=d),c=t.input.charCodeAt(t.position);0!==c;){if(y||-1===t.firstTabInLine||(t.position=t.firstTabInLine,gn(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),o=t.line,63!==c&&58!==c||!on(r)){if(a=t.line,s=t.lineStart,l=t.position,!Fn(t,i,Wr,!1,!0))break;if(t.line===o){for(c=t.input.charCodeAt(t.position);nn(c);)c=t.input.charCodeAt(++t.position);if(58===c)on(c=t.input.charCodeAt(++t.position))||gn(t,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(bn(t,d,f,p,g,null,a,s,l),p=g=m=null),x=!0,y=!1,n=!1,p=t.tag,g=t.result;else{if(!x)return t.tag=h,t.anchor=u,!0;gn(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!x)return t.tag=h,t.anchor=u,!0;gn(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(y&&(bn(t,d,f,p,g,null,a,s,l),p=g=m=null),x=!0,y=!0,n=!0):y?(y=!1,n=!0):gn(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,c=r;if((t.line===o||t.lineIndent>e)&&(y&&(a=t.line,s=t.lineStart,l=t.position),Fn(t,e,Ur,!0,n)&&(y?g=t.result:m=t.result),y||(bn(t,d,f,p,g,m,a,s,l),p=g=m=null),vn(t,!0,-1),c=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&0!==c)gn(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return y&&bn(t,d,f,p,g,null,a,s,l),x&&(t.tag=h,t.anchor=u,t.kind="mapping",t.result=d),x}(t,f,d))||function(t,e){var i,r,n,o,a,s,l,c,h,u,d,f,p=!0,g=t.tag,m=t.anchor,y=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))a=93,c=!1,o=[];else{if(123!==f)return!1;a=125,c=!0,o={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),f=t.input.charCodeAt(++t.position);0!==f;){if(vn(t,!0,e),(f=t.input.charCodeAt(t.position))===a)return t.position++,t.tag=g,t.anchor=m,t.kind=c?"mapping":"sequence",t.result=o,!0;p?44===f&&gn(t,"expected the node content, but found ','"):gn(t,"missed comma between flow collection entries"),d=null,s=l=!1,63===f&&on(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,vn(t,!0,e)),i=t.line,r=t.lineStart,n=t.position,Fn(t,e,Rr,!1,!0),u=t.tag,h=t.result,vn(t,!0,e),f=t.input.charCodeAt(t.position),!l&&t.line!==i||58!==f||(s=!0,f=t.input.charCodeAt(++t.position),vn(t,!0,e),Fn(t,e,Rr,!1,!0),d=t.result),c?bn(t,o,y,u,h,d,i,r,n):s?o.push(bn(t,null,y,u,h,d,i,r,n)):o.push(h),vn(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(p=!0,f=t.input.charCodeAt(++t.position)):p=!1}gn(t,"unexpected end of the stream within a flow collection")}(t,d)?m=!0:(a&&function(t,e){var i,r,n,o,a,s=Yr,l=!1,c=!1,h=e,u=0,d=!1;if(124===(o=t.input.charCodeAt(t.position)))r=!1;else{if(62!==o)return!1;r=!0}for(t.kind="scalar",t.result="";0!==o;)if(43===(o=t.input.charCodeAt(++t.position))||45===o)Yr===s?s=43===o?Gr:Vr:gn(t,"repeat of a chomping mode identifier");else{if(!((n=48<=(a=o)&&a<=57?a-48:-1)>=0))break;0===n?gn(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?gn(t,"repeat of an indentation width identifier"):(h=e+n-1,c=!0)}if(nn(o)){do{o=t.input.charCodeAt(++t.position)}while(nn(o));if(35===o)do{o=t.input.charCodeAt(++t.position)}while(!rn(o)&&0!==o)}for(;0!==o;){for(_n(t),t.lineIndent=0,o=t.input.charCodeAt(t.position);(!c||t.lineIndent<h)&&32===o;)t.lineIndent++,o=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>h&&(h=t.lineIndent),rn(o))u++;else{if(t.lineIndent<h){s===Gr?t.result+=or.repeat("\n",l?1+u:u):s===Yr&&l&&(t.result+="\n");break}for(r?nn(o)?(d=!0,t.result+=or.repeat("\n",l?1+u:u)):d?(d=!1,t.result+=or.repeat("\n",u+1)):0===u?l&&(t.result+=" "):t.result+=or.repeat("\n",u):t.result+=or.repeat("\n",l?1+u:u),l=!0,c=!0,u=0,i=t.position;!rn(o)&&0!==o;)o=t.input.charCodeAt(++t.position);xn(t,i,t.position,!1)}}return!0}(t,d)||function(t,e){var i,r,n;if(39!==(i=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;0!==(i=t.input.charCodeAt(t.position));)if(39===i){if(xn(t,r,t.position,!0),39!==(i=t.input.charCodeAt(++t.position)))return!0;r=t.position,t.position++,n=t.position}else rn(i)?(xn(t,r,n,!0),Tn(t,vn(t,!1,e)),r=n=t.position):t.position===t.lineStart&&kn(t)?gn(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);gn(t,"unexpected end of the stream within a single quoted scalar")}(t,d)||function(t,e){var i,r,n,o,a,s,l;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return xn(t,i,t.position,!0),t.position++,!0;if(92===s){if(xn(t,i,t.position,!0),rn(s=t.input.charCodeAt(++t.position)))vn(t,!1,e);else if(s<256&&hn[s])t.result+=un[s],t.position++;else if((a=120===(l=s)?2:117===l?4:85===l?8:0)>0){for(n=a,o=0;n>0;n--)(a=sn(s=t.input.charCodeAt(++t.position)))>=0?o=(o<<4)+a:gn(t,"expected hexadecimal character");t.result+=cn(o),t.position++}else gn(t,"unknown escape sequence");i=r=t.position}else rn(s)?(xn(t,i,r,!0),Tn(t,vn(t,!1,e)),i=r=t.position):t.position===t.lineStart&&kn(t)?gn(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}gn(t,"unexpected end of the stream within a double quoted scalar")}(t,d)?m=!0:!function(t){var e,i,r;if(42!==(r=t.input.charCodeAt(t.position)))return!1;for(r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!on(r)&&!an(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&gn(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),Pr.call(t.anchorMap,i)||gn(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],vn(t,!0,-1),!0}(t)?function(t,e,i){var r,n,o,a,s,l,c,h,u=t.kind,d=t.result;if(on(h=t.input.charCodeAt(t.position))||an(h)||35===h||38===h||42===h||33===h||124===h||62===h||39===h||34===h||37===h||64===h||96===h)return!1;if((63===h||45===h)&&(on(r=t.input.charCodeAt(t.position+1))||i&&an(r)))return!1;for(t.kind="scalar",t.result="",n=o=t.position,a=!1;0!==h;){if(58===h){if(on(r=t.input.charCodeAt(t.position+1))||i&&an(r))break}else if(35===h){if(on(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&kn(t)||i&&an(h))break;if(rn(h)){if(s=t.line,l=t.lineStart,c=t.lineIndent,vn(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}t.position=o,t.line=s,t.lineStart=l,t.lineIndent=c;break}}a&&(xn(t,n,o,!1),Tn(t,t.line-s),n=o=t.position,a=!1),nn(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return xn(t,n,o,!1),!!t.result||(t.kind=u,t.result=d,!1)}(t,d,Rr===i)&&(m=!0,null===t.tag&&(t.tag="?")):(m=!0,null===t.tag&&null===t.anchor||gn(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===p&&(m=s&&wn(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&&gn(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),l=0,c=t.implicitTypes.length;l<c;l+=1)if((u=t.implicitTypes[l]).resolve(t.result)){t.result=u.construct(t.result),t.tag=u.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(Pr.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(u=null,l=0,c=(h=t.typeMap.multi[t.kind||"fallback"]).length;l<c;l+=1)if(t.tag.slice(0,h[l].tag.length)===h[l].tag){u=h[l];break}u||gn(t,"unknown tag !<"+t.tag+">"),null!==t.result&&u.kind!==t.kind&&gn(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):gn(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||m}function An(t){var e,i,r,n,o=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(n=t.input.charCodeAt(t.position))&&(vn(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==n));){for(a=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!on(n);)n=t.input.charCodeAt(++t.position);for(r=[],(i=t.input.slice(e,t.position)).length<1&&gn(t,"directive name must not be less than one character in length");0!==n;){for(;nn(n);)n=t.input.charCodeAt(++t.position);if(35===n){do{n=t.input.charCodeAt(++t.position)}while(0!==n&&!rn(n));break}if(rn(n))break;for(e=t.position;0!==n&&!on(n);)n=t.input.charCodeAt(++t.position);r.push(t.input.slice(e,t.position))}0!==n&&_n(t),Pr.call(yn,i)?yn[i](t,i,r):mn(t,'unknown document directive "'+i+'"')}vn(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,vn(t,!0,-1)):a&&gn(t,"directives end mark is expected"),Fn(t,t.lineIndent-1,Ur,!1,!0),vn(t,!0,-1),t.checkLineBreaks&&Qr.test(t.input.slice(o,t.position))&&mn(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&kn(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,vn(t,!0,-1)):t.position<t.length-1&&gn(t,"end of the stream or a document separator is expected")}function Ln(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 i=new fn(t,e),r=t.indexOf("\0");for(-1!==r&&(i.position=r,gn(i,"null byte is not allowed in input")),i.input+="\0";32===i.input.charCodeAt(i.position);)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)An(i);return i.documents}var Mn=Sr,En={loadAll:function(t,e,i){null!==e&&"object"==typeof e&&void 0===i&&(i=e,e=null);var r=Ln(t,i);if("function"!=typeof e)return r;for(var n=0,o=r.length;n<o;n+=1)e(r[n])},load:function(t,e){var i=Ln(t,e);if(0!==i.length){if(1===i.length)return i[0];throw new lr("expected a single document in the stream, but found more")}}}.load;const Zn=t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,((t,e,i)=>"<"+e+i.replace(/="([^"]*)"/g,"='$1'")+">")),Nn=t=>{const{text:e,metadata:i}=function(t){const e=t.match(Dt);if(!e)return{text:t,metadata:{}};let i=En(e[1],{schema:Mn})??{};i="object"!=typeof i||Array.isArray(i)?{}:i;const r={};return i.displayMode&&(r.displayMode=i.displayMode.toString()),i.title&&(r.title=i.title.toString()),i.config&&(r.config=i.config),{text:t.slice(e[0].length),metadata:r}}(t),{displayMode:r,title:n,config:o={}}=i;return r&&(o.gantt||(o.gantt={}),o.gantt.displayMode=r),{title:n,config:o,text:e}},On=t=>{const e=ye.detectInit(t)??{},i=ye.detectDirective(t,"wrap");return Array.isArray(i)?e.wrap=i.some((({type:t})=>{})):"wrap"===(null==i?void 0:i.type)&&(e.wrap=!0),{text:(r=t,r.replace($t,"")),directive:e};var r};const In=["foreignobject"],jn=["dominant-baseline"];function qn(t){const e=function(t){const e=Zn(t),i=Nn(e),r=On(i.text),n=me(i.config,r.directive);return{code:t=rr(r.text),title:i.title,config:n}}(t);return Le(),Ae(e.config??{}),e}const Dn=function(t){return t.replace(/\ufb02\xb0\xb0/g,"&#").replace(/\ufb02\xb0/g,"&").replace(/\xb6\xdf/g,";")},$n=(t,e,i=[])=>`\n.${t} ${e} { ${i.join(" !important; ")} !important; }`,zn=(t,e,i,r)=>{const n=((t,e={})=>{var i;let r="";if(void 0!==t.themeCSS&&(r+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(r+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(r+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!(0,ot.Z)(e)){const n=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const t in e){const i=e[t];(0,ot.Z)(i.styles)||n.forEach((t=>{r+=$n(i.id,t,i.styles)})),(0,ot.Z)(i.textStyles)||(r+=$n(i.id,"tspan",i.textStyles))}}return r})(t,i);return M(tt(`${r}{${pi(e,n,t.themeVariables)}}`),E)},Pn=(t,e,i,r,n)=>{const o=t.append("div");o.attr("id",i),r&&o.attr("style",r);const a=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return n&&a.attr("xmlns:xlink",n),a.append("g"),t};function Rn(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const Wn=Object.freeze({render:async function(t,e,i){var r,n,o,l,c,h;Qi();const u=qn(e);e=u.code;const d=Be();st.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");const f="#"+t,p="i"+t,g="#"+p,m="d"+t,y="#"+m;let x=(0,a.Ys)("body");const C="sandbox"===d.securityLevel,b="loose"===d.securityLevel,_=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),C){const t=Rn((0,a.Ys)(i),p);x=(0,a.Ys)(t.nodes()[0].contentDocument.body),x.node().style.margin=0}else x=(0,a.Ys)(i);Pn(x,t,m,`font-family: ${_}`,"http://www.w3.org/1999/xlink")}else{if(((t,e,i,r)=>{var n,o,a;null==(n=t.getElementById(e))||n.remove(),null==(o=t.getElementById(i))||o.remove(),null==(a=t.getElementById(r))||a.remove()})(document,t,m,p),C){const t=Rn((0,a.Ys)("body"),p);x=(0,a.Ys)(t.nodes()[0].contentDocument.body),x.node().style.margin=0}else x=(0,a.Ys)("body");Pn(x,t,m)}let v,k;e=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}(e);try{v=await Ki(e,{title:u.title})}catch(N){v=new Ji("error"),k=N}const T=x.select(y).node(),w=v.type,S=T.firstChild,B=S.firstChild,F=null==(n=(r=v.renderer).getClasses)?void 0:n.call(r,e,v),A=zn(d,w,F,f),L=document.createElement("style");L.innerHTML=A,S.insertBefore(L,B);try{await v.renderer.draw(e,t,xe,v)}catch(O){throw $i.draw(e,t,xe),O}!function(t,e,i,r){(function(t,e){t.attr("role",ir),""!==e&&t.attr("aria-roledescription",e)})(e,t),function(t,e,i,r){if(void 0!==t.insert){if(i){const e=`chart-desc-${r}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(i)}if(e){const i=`chart-title-${r}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}(e,i,r,e.attr("id"))}(w,x.select(`${y} svg`),null==(l=(o=v.db).getAccTitle)?void 0:l.call(o),null==(h=(c=v.db).getAccDescription)?void 0:h.call(c)),x.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let M=x.select(y).node().innerHTML;if(st.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),M=((t="",e,i)=>{let r=t;return i||e||(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=Dn(r),r=r.replace(/<br>/g,"<br/>"),r})(M,C,mt(d.arrowMarkerAbsolute)),C){M=((t="",e)=>{var i,r;return`<iframe style="width:100%;height:${(null==(r=null==(i=null==e?void 0:e.viewBox)?void 0:i.baseVal)?void 0:r.height)?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>`})(M,x.select(y+" svg").node())}else b||(M=s.sanitize(M,{ADD_TAGS:In,ADD_ATTR:jn}));if(tr.forEach((t=>{t()})),tr=[],k)throw k;const E=C?g:y,Z=(0,a.Ys)(E).node();return Z&&"remove"in Z&&Z.remove(),{svg:M,bindFunctions:v.db.bindFunctions}},parse:async function(t,e){Qi(),t=qn(t).code;try{await Ki(t)}catch(i){if(null==e?void 0:e.suppressErrors)return!1;throw i}return!0},getDiagramFromText:Ki,initialize:function(t={}){var e;(null==t?void 0:t.fontFamily)&&!(null==(e=t.themeVariables)?void 0:e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),be=Vt({},t),(null==t?void 0:t.theme)&&t.theme in Mt?t.themeVariables=Mt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Mt.default.getThemeVariables(t.themeVariables));const i="object"==typeof t?(t=>(_e=Vt({},Ce),_e=Vt(_e,t),t.theme&&Mt[t.theme]&&(_e.themeVariables=Mt[t.theme].getThemeVariables(t.themeVariables)),Te(_e,ve),_e))(t):we();lt(i.logLevel),Qi()},getConfig:Be,setConfig:Se,getSiteConfig:we,updateSiteConfig:t=>(_e=Vt(_e,t),Te(_e,ve),_e),reset:()=>{Le()},globalReset:()=>{Le(Ce)},defaultConfig:Ce});lt(Be().logLevel),Le(Be());const Hn=(t,e,i)=>{st.warn(t),pe(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},Un=async function(t={querySelector:".mermaid"}){try{await Yn(t)}catch(e){if(pe(e)&&st.error(e.str),to.parseError&&to.parseError(e),!t.suppressErrors)throw st.error("Use the suppressErrors option to suppress these errors"),e}},Yn=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const n=Wn.getConfig();let o;if(st.debug((t?"":"No ")+"Callback function found"),i)o=i;else{if(!e)throw new Error("Nodes and querySelector are both undefined");o=document.querySelectorAll(e)}st.debug(`Found ${o.length} diagrams`),void 0!==(null==n?void 0:n.startOnLoad)&&(st.debug("Start On Load: "+(null==n?void 0:n.startOnLoad)),Wn.updateSiteConfig({startOnLoad:null==n?void 0:n.startOnLoad}));const a=new ye.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed);let s;const l=[];for(const h of Array.from(o)){if(st.info("Rendering diagram: "+h.id),h.getAttribute("data-processed"))continue;h.setAttribute("data-processed","true");const e=`mermaid-${a.next()}`;s=h.innerHTML,s=(0,r.Z)(ye.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const i=ye.detectInit(s);i&&st.debug("Detected early reinit: ",i);try{const{svg:i,bindFunctions:r}=await Kn(e,s,h);h.innerHTML=i,t&&await t(e),r&&r(h)}catch(c){Hn(c,l,to.parseError)}}if(l.length>0)throw l[0]},Vn=function(t){Wn.initialize(t)},Gn=function(){if(to.startOnLoad){const{startOnLoad:t}=Wn.getConfig();t&&to.run().catch((t=>st.error("Mermaid failed to initialize",t)))}};"undefined"!=typeof document&&window.addEventListener("load",Gn,!1);const Xn=[];let Qn=!1;const Jn=async()=>{if(!Qn){for(Qn=!0;Xn.length>0;){const e=Xn.shift();if(e)try{await e()}catch(t){st.error("Error executing queue",t)}}Qn=!1}},Kn=(t,e,i)=>new Promise(((r,n)=>{Xn.push((()=>new Promise(((o,a)=>{Wn.render(t,e,i).then((t=>{o(t),r(t)}),(t=>{var e;st.error("Error parsing",t),null==(e=to.parseError)||e.call(to,t),a(t),n(t)}))})))),Jn().catch(n)})),to={startOnLoad:!0,mermaidAPI:Wn,parse:async(t,e)=>new Promise(((i,r)=>{Xn.push((()=>new Promise(((n,o)=>{Wn.parse(t,e).then((t=>{n(t),i(t)}),(t=>{var e;st.error("Error parsing",t),null==(e=to.parseError)||e.call(to,t),o(t),r(t)}))})))),Jn().catch(r)})),render:Kn,init:async function(t,e,i){st.warn("mermaid.init is deprecated. Please use run instead."),t&&Vn(t);const r={postRenderCallback:i,querySelector:".mermaid"};"string"==typeof e?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await Un(r)},run:Un,registerExternalDiagrams:async(t,{lazyLoad:e=!0}={})=>{Ht(...t),!1===e&&await(async()=>{st.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Rt).map((async([t,{detector:e,loader:i}])=>{if(i)try{Ii(t)}catch(r){try{const{diagram:t,id:r}=await i();Oi(r,t,e)}catch(n){throw st.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete Rt[t],n}}})))).filter((t=>"rejected"===t.status));if(t.length>0){st.error(`Failed to load ${t.length} external diagrams`);for(const e of t)st.error(e);throw new Error(`Failed to load ${t.length} external diagrams`)}})()},initialize:Vn,parseError:void 0,contentLoaded:Gn,setParseErrorHandler:function(t){to.parseError=t},detectType:Wt}}}]); \ No newline at end of file diff --git a/assets/js/1325.fc0073e5.js b/assets/js/1325.fc0073e5.js new file mode 100644 index 0000000..a7dbd6d --- /dev/null +++ b/assets/js/1325.fc0073e5.js @@ -0,0 +1,2 @@ +/*! For license information please see 1325.fc0073e5.js.LICENSE.txt */ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1325],{17967:(t,e)=>{"use strict";e.Nm=e.Rq=void 0;var i=/^([^\w]*)(javascript|data|vbscript)/im,r=/&#(\w+)(^\w|;)?/g,n=/&(newline|tab);/gi,o=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,a=/^.+(:|:)/gim,s=[".","/"];e.Rq="about:blank",e.Nm=function(t){if(!t)return e.Rq;var l,c=(l=t,l.replace(o,"").replace(r,(function(t,e){return String.fromCharCode(e)}))).replace(n,"").replace(o,"").trim();if(!c)return e.Rq;if(function(t){return s.indexOf(t[0])>-1}(c))return c;var h=c.match(a);if(!h)return c;var u=h[0];return i.test(u)?e.Rq:c}},59047:(t,e,i)=>{"use strict";i.d(e,{Z:()=>A});var r=i(67294),n=i(85893);function o(t){const{mdxAdmonitionTitle:e,rest:i}=function(t){const e=r.Children.toArray(t),i=e.find((t=>r.isValidElement(t)&&"mdxAdmonitionTitle"===t.type)),o=e.filter((t=>t!==i)),a=i?.props.children;return{mdxAdmonitionTitle:a,rest:o.length>0?(0,n.jsx)(n.Fragment,{children:o}):null}}(t.children),o=t.title??e;return{...t,...o&&{title:o},children:i}}var a=i(86010),s=i(95999),l=i(35281);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function h(t){let{type:e,className:i,children:r}=t;return(0,n.jsx)("div",{className:(0,a.Z)(l.k.common.admonition,l.k.common.admonitionType(e),c.admonition,i),children:r})}function u(t){let{icon:e,title:i}=t;return(0,n.jsxs)("div",{className:c.admonitionHeading,children:[(0,n.jsx)("span",{className:c.admonitionIcon,children:e}),i]})}function d(t){let{children:e}=t;return e?(0,n.jsx)("div",{className:c.admonitionContent,children:e}):null}function f(t){const{type:e,icon:i,title:r,children:o,className:a}=t;return(0,n.jsxs)(h,{type:e,className:a,children:[(0,n.jsx)(u,{title:r,icon:i}),(0,n.jsx)(d,{children:o})]})}function p(t){return(0,n.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,n.jsx)("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"})})}const g={icon:(0,n.jsx)(p,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(t){return(0,n.jsx)(f,{...g,...t,className:(0,a.Z)("alert alert--secondary",t.className),children:t.children})}function y(t){return(0,n.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,n.jsx)("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"})})}const x={icon:(0,n.jsx)(y,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function C(t){return(0,n.jsx)(f,{...x,...t,className:(0,a.Z)("alert alert--success",t.className),children:t.children})}function b(t){return(0,n.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,n.jsx)("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"})})}const _={icon:(0,n.jsx)(b,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function v(t){return(0,n.jsx)(f,{..._,...t,className:(0,a.Z)("alert alert--info",t.className),children:t.children})}function k(t){return(0,n.jsx)("svg",{viewBox:"0 0 16 16",...t,children:(0,n.jsx)("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"})})}const T={icon:(0,n.jsx)(k,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function w(t){return(0,n.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,n.jsx)("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"})})}const S={icon:(0,n.jsx)(w,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,n.jsx)(k,{}),title:(0,n.jsx)(s.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const F={...{note:m,tip:C,info:v,warning:function(t){return(0,n.jsx)(f,{...T,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})},danger:function(t){return(0,n.jsx)(f,{...S,...t,className:(0,a.Z)("alert alert--danger",t.className),children:t.children})}},...{secondary:t=>(0,n.jsx)(m,{title:"secondary",...t}),important:t=>(0,n.jsx)(v,{title:"important",...t}),success:t=>(0,n.jsx)(C,{title:"success",...t}),caution:function(t){return(0,n.jsx)(f,{...B,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})}}};function A(t){const e=o(t),i=(r=e.type,F[r]||(console.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),F.info));var r;return(0,n.jsx)(i,{...e})}},84881:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});i(67294);var r=i(95999),n=i(35281),o=i(39960),a=i(86010);const s={iconEdit:"iconEdit_Z9Sw"};var l=i(85893);function c(t){let{className:e,...i}=t;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,a.Z)(s.iconEdit,e),"aria-hidden":"true",...i,children:(0,l.jsx)("g",{children:(0,l.jsx)("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"})})})}function h(t){let{editUrl:e}=t;return(0,l.jsxs)(o.Z,{to:e,className:n.k.common.editThisPage,children:[(0,l.jsx)(c,{}),(0,l.jsx)(r.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}},27779:(t,e,i)=>{"use strict";i.d(e,{Z:()=>dt});var r=i(67294),n=i(11151),o=i(35742),a=i(72389),s=i(86010),l=i(92949),c=i(86668);function h(){const{prism:t}=(0,c.L)(),{colorMode:e}=(0,l.I)(),i=t.theme,r=t.darkTheme||i;return"dark"===e?r:i}var u=i(35281),d=i(87594),f=i.n(d);const p=/title=(?<quote>["'])(?<title>.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,m={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function y(t,e){const i=t.map((t=>{const{start:i,end:r}=m[t];return`(?:${i}\\s*(${e.flatMap((t=>[t.line,t.block?.start,t.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${i})\\s*$`)}function x(t,e){let i=t.replace(/\n$/,"");const{language:r,magicComments:n,metastring:o}=e;if(o&&g.test(o)){const t=o.match(g).groups.range;if(0===n.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const e=n[0].className,r=f()(t).filter((t=>t>0)).map((t=>[t-1,[e]]));return{lineClassNames:Object.fromEntries(r),code:i}}if(void 0===r)return{lineClassNames:{},code:i};const a=function(t,e){switch(t){case"js":case"javascript":case"ts":case"typescript":return y(["js","jsBlock"],e);case"jsx":case"tsx":return y(["js","jsBlock","jsx"],e);case"html":return y(["js","jsBlock","html"],e);case"python":case"py":case"bash":return y(["bash"],e);case"markdown":case"md":return y(["html","jsx","bash"],e);case"tex":case"latex":case"matlab":return y(["tex"],e);case"lua":case"haskell":case"sql":return y(["lua"],e);case"wasm":return y(["wasm"],e);default:return y(Object.keys(m).filter((t=>!["lua","wasm","tex","latex","matlab"].includes(t))),e)}}(r,n),s=i.split("\n"),l=Object.fromEntries(n.map((t=>[t.className,{start:0,range:""}]))),c=Object.fromEntries(n.filter((t=>t.line)).map((t=>{let{className:e,line:i}=t;return[i,e]}))),h=Object.fromEntries(n.filter((t=>t.block)).map((t=>{let{className:e,block:i}=t;return[i.start,e]}))),u=Object.fromEntries(n.filter((t=>t.block)).map((t=>{let{className:e,block:i}=t;return[i.end,e]})));for(let f=0;f<s.length;){const t=s[f].match(a);if(!t){f+=1;continue}const e=t.slice(1).find((t=>void 0!==t));c[e]?l[c[e]].range+=`${f},`:h[e]?l[h[e]].start=f:u[e]&&(l[u[e]].range+=`${l[u[e]].start}-${f-1},`),s.splice(f,1)}i=s.join("\n");const d={};return Object.entries(l).forEach((t=>{let[e,{range:i}]=t;f()(i).forEach((t=>{d[t]??=[],d[t].push(e)}))})),{lineClassNames:d,code:i}}const C={codeBlockContainer:"codeBlockContainer_Ckt0"};var b=i(85893);function _(t){let{as:e,...i}=t;const r=function(t){const e={color:"--prism-color",backgroundColor:"--prism-background-color"},i={};return Object.entries(t.plain).forEach((t=>{let[r,n]=t;const o=e[r];o&&"string"==typeof n&&(i[o]=n)})),i}(h());return(0,b.jsx)(e,{...i,style:r,className:(0,s.Z)(i.className,C.codeBlockContainer,u.k.common.codeBlock)})}const v={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function k(t){let{children:e,className:i}=t;return(0,b.jsx)(_,{as:"pre",tabIndex:0,className:(0,s.Z)(v.codeBlockStandalone,"thin-scrollbar",i),children:(0,b.jsx)("code",{className:v.codeBlockLines,children:e})})}var T=i(902);const w={attributes:!0,characterData:!0,childList:!0,subtree:!0};function S(t,e){const[i,n]=(0,r.useState)(),o=(0,r.useCallback)((()=>{n(t.current?.closest("[role=tabpanel][hidden]"))}),[t,n]);(0,r.useEffect)((()=>{o()}),[o]),function(t,e,i){void 0===i&&(i=w);const n=(0,T.zX)(e),o=(0,T.Ql)(i);(0,r.useEffect)((()=>{const e=new MutationObserver(n);return t&&e.observe(t,o),()=>e.disconnect()}),[t,n,o])}(i,(t=>{t.forEach((t=>{"attributes"===t.type&&"hidden"===t.attributeName&&(e(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var B=i(14965);const F={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function A(t){let{line:e,classNames:i,showLineNumbers:r,getLineProps:n,getTokenProps:o}=t;1===e.length&&"\n"===e[0].content&&(e[0].content="");const a=n({line:e,className:(0,s.Z)(i,r&&F.codeLine)}),l=e.map(((t,e)=>(0,b.jsx)("span",{...o({token:t,key:e})},e)));return(0,b.jsxs)("span",{...a,children:[r?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:F.codeLineNumber}),(0,b.jsx)("span",{className:F.codeLineContent,children:l})]}):l,(0,b.jsx)("br",{})]})}var L=i(95999);function M(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("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 E(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const Z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function N(t){let{code:e,className:i}=t;const[n,o]=(0,r.useState)(!1),a=(0,r.useRef)(void 0),l=(0,r.useCallback)((()=>{!function(t,e){let{target:i=document.body}=void 0===e?{}:e;if("string"!=typeof t)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof t}\`.`);const r=document.createElement("textarea"),n=document.activeElement;r.value=t,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const o=document.getSelection(),a=o.rangeCount>0&&o.getRangeAt(0);i.append(r),r.select(),r.selectionStart=0,r.selectionEnd=t.length;let s=!1;try{s=document.execCommand("copy")}catch{}r.remove(),a&&(o.removeAllRanges(),o.addRange(a)),n&&n.focus()}(e),o(!0),a.current=window.setTimeout((()=>{o(!1)}),1e3)}),[e]);return(0,r.useEffect)((()=>()=>window.clearTimeout(a.current)),[]),(0,b.jsx)("button",{type:"button","aria-label":n?(0,L.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,L.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,L.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.Z)("clean-btn",i,Z.copyButton,n&&Z.copyButtonCopied),onClick:l,children:(0,b.jsxs)("span",{className:Z.copyButtonIcons,"aria-hidden":"true",children:[(0,b.jsx)(M,{className:Z.copyButtonIcon}),(0,b.jsx)(E,{className:Z.copyButtonSuccessIcon})]})})}function O(t){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...t,children:(0,b.jsx)("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 I={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function j(t){let{className:e,onClick:i,isEnabled:r}=t;const n=(0,L.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,b.jsx)("button",{type:"button",onClick:i,className:(0,s.Z)("clean-btn",e,r&&I.wordWrapButtonEnabled),"aria-label":n,title:n,children:(0,b.jsx)(O,{className:I.wordWrapButtonIcon,"aria-hidden":"true"})})}function q(t){let{children:e,className:i="",metastring:n,title:o,showLineNumbers:a,language:l}=t;const{prism:{defaultLanguage:u,magicComments:d}}=(0,c.L)(),f=function(t){return t?.toLowerCase()}(l??function(t){const e=t.split(" ").find((t=>t.startsWith("language-")));return e?.replace(/language-/,"")}(i)??u),g=h(),m=function(){const[t,e]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),o=(0,r.useRef)(null),a=(0,r.useCallback)((()=>{const i=o.current.querySelector("code");t?i.removeAttribute("style"):(i.style.whiteSpace="pre-wrap",i.style.overflowWrap="anywhere"),e((t=>!t))}),[o,t]),s=(0,r.useCallback)((()=>{const{scrollWidth:t,clientWidth:e}=o.current,i=t>e||o.current.querySelector("code").hasAttribute("style");n(i)}),[o]);return S(o,s),(0,r.useEffect)((()=>{s()}),[t,s]),(0,r.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:o,isEnabled:t,isCodeScrollable:i,toggle:a}}(),y=function(t){return t?.match(p)?.groups.title??""}(n)||o,{lineClassNames:C,code:k}=x(e,{metastring:n,language:f,magicComments:d}),T=a??function(t){return Boolean(t?.includes("showLineNumbers"))}(n);return(0,b.jsxs)(_,{as:"div",className:(0,s.Z)(i,f&&!i.includes(`language-${f}`)&&`language-${f}`),children:[y&&(0,b.jsx)("div",{className:v.codeBlockTitle,children:y}),(0,b.jsxs)("div",{className:v.codeBlockContent,children:[(0,b.jsx)(B.y$,{theme:g,code:k,language:f??"text",children:t=>{let{className:e,style:i,tokens:r,getLineProps:n,getTokenProps:o}=t;return(0,b.jsx)("pre",{tabIndex:0,ref:m.codeBlockRef,className:(0,s.Z)(e,v.codeBlock,"thin-scrollbar"),style:i,children:(0,b.jsx)("code",{className:(0,s.Z)(v.codeBlockLines,T&&v.codeBlockLinesWithNumbering),children:r.map(((t,e)=>(0,b.jsx)(A,{line:t,getLineProps:n,getTokenProps:o,classNames:C[e],showLineNumbers:T},e)))})})}}),(0,b.jsxs)("div",{className:v.buttonGroup,children:[(m.isEnabled||m.isCodeScrollable)&&(0,b.jsx)(j,{className:v.codeButton,onClick:()=>m.toggle(),isEnabled:m.isEnabled}),(0,b.jsx)(N,{className:v.codeButton,code:k})]})]})]})}function D(t){let{children:e,...i}=t;const n=(0,a.Z)(),o=function(t){return r.Children.toArray(t).some((t=>(0,r.isValidElement)(t)))?t:Array.isArray(t)?t.join(""):t}(e),s="string"==typeof o?q:k;return(0,b.jsx)(s,{...i,children:o},String(n))}var $=i(39960);var z=i(86043);const P={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function R(t){return!!t&&("SUMMARY"===t.tagName||R(t.parentElement))}function W(t,e){return!!t&&(t===e||W(t.parentElement,e))}function H(t){let{summary:e,children:i,...n}=t;const o=(0,a.Z)(),l=(0,r.useRef)(null),{collapsed:c,setCollapsed:h}=(0,z.u)({initialState:!n.open}),[u,d]=(0,r.useState)(n.open),f=r.isValidElement(e)?e:(0,b.jsx)("summary",{children:e??"Details"});return(0,b.jsxs)("details",{...n,ref:l,open:u,"data-collapsed":c,className:(0,s.Z)(P.details,o&&P.isBrowser,n.className),onMouseDown:t=>{R(t.target)&&t.detail>1&&t.preventDefault()},onClick:t=>{t.stopPropagation();const e=t.target;R(e)&&W(e,l.current)&&(t.preventDefault(),c?(h(!1),d(!0)):h(!0))},children:[f,(0,b.jsx)(z.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:t=>{h(t),d(!t)},children:(0,b.jsx)("div",{className:P.collapsibleContent,children:i})})]})}const U={details:"details_b_Ee"},Y="alert alert--info";function V(t){let{...e}=t;return(0,b.jsx)(H,{...e,className:(0,s.Z)(Y,U.details,e.className)})}function G(t){const e=r.Children.toArray(t.children),i=e.find((t=>r.isValidElement(t)&&"summary"===t.type)),n=(0,b.jsx)(b.Fragment,{children:e.filter((t=>t!==i))});return(0,b.jsx)(V,{...t,summary:i,children:n})}var X=i(92503);function Q(t){return(0,b.jsx)(X.Z,{...t})}const J={containsTaskList:"containsTaskList_mC6p"};function K(t){if(void 0!==t)return(0,s.Z)(t,t?.includes("contains-task-list")&&J.containsTaskList)}const tt={img:"img_ev3q"};var et=i(59047),it=i(44763),rt=i(69690),nt=i(85322);const ot="docusaurus-mermaid-container";function at(){const{colorMode:t}=(0,l.I)(),e=(0,c.L)().mermaid,i=e.theme[t],{options:n}=e;return(0,r.useMemo)((()=>({startOnLoad:!1,...n,theme:i})),[i,n])}function st(t){let{text:e,config:i}=t;const[n,o]=(0,r.useState)(null),a=(0,r.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,s=at(),l=i??s;return(0,r.useEffect)((()=>{(async function(t){let{id:e,text:i,config:r}=t;nt.L.mermaidAPI.initialize(r);try{return await nt.L.render(e,i)}catch(n){throw document.querySelector(`#d${e}`)?.remove(),n}})({id:a,text:e,config:l}).then(o).catch((t=>{o((()=>{throw t}))}))}),[a,e,l]),n}const lt={container:"container_lyt7"};function ct(t){let{renderResult:e}=t;const i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{const t=i.current;e.bindFunctions?.(t)}),[e]),(0,b.jsx)("div",{ref:i,className:`${ot} ${lt.container}`,dangerouslySetInnerHTML:{__html:e.svg}})}function ht(t){let{value:e}=t;const i=st({text:e});return null===i?null:(0,b.jsx)(ct,{renderResult:i})}const ut={Head:o.Z,details:G,Details:G,code:function(t){return r.Children.toArray(t.children).every((t=>"string"==typeof t&&!t.includes("\n")))?(0,b.jsx)("code",{...t}):(0,b.jsx)(D,{...t})},a:function(t){return(0,b.jsx)($.Z,{...t})},pre:function(t){return(0,b.jsx)(b.Fragment,{children:t.children})},ul:function(t){return(0,b.jsx)("ul",{...t,className:K(t.className)})},img:function(t){return(0,b.jsx)("img",{loading:"lazy",...t,className:(e=t.className,(0,s.Z)(e,tt.img))});var e},h1:t=>(0,b.jsx)(Q,{as:"h1",...t}),h2:t=>(0,b.jsx)(Q,{as:"h2",...t}),h3:t=>(0,b.jsx)(Q,{as:"h3",...t}),h4:t=>(0,b.jsx)(Q,{as:"h4",...t}),h5:t=>(0,b.jsx)(Q,{as:"h5",...t}),h6:t=>(0,b.jsx)(Q,{as:"h6",...t}),admonition:et.Z,mermaid:function(t){return(0,b.jsx)(it.Z,{fallback:t=>(0,b.jsx)(rt.Ac,{...t}),children:(0,b.jsx)(ht,{...t})})}};function dt(t){let{children:e}=t;return(0,b.jsx)(n.Z,{components:ut,children:e})}},32244:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});i(67294);var r=i(86010),n=i(39960),o=i(85893);function a(t){const{permalink:e,title:i,subLabel:a,isNext:s}=t;return(0,o.jsxs)(n.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:e,children:[a&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,o.jsx)("div",{className:"pagination-nav__label",children:i})]})}},13008:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});i(67294);var r=i(86010),n=i(39960);const o={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var a=i(85893);function s(t){let{permalink:e,label:i,count:s}=t;return(0,a.jsxs)(n.Z,{href:e,className:(0,r.Z)(o.tag,s?o.tagWithCount:o.tagRegular),children:[i,s&&(0,a.jsx)("span",{children:s})]})}},71526:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});i(67294);var r=i(86010),n=i(95999),o=i(13008);const a={tags:"tags_jXut",tag:"tag_QGVx"};var s=i(85893);function l(t){let{tags:e}=t;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(n.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,r.Z)(a.tags,"padding--none","margin-left--sm"),children:e.map((t=>{let{label:e,permalink:i}=t;return(0,s.jsx)("li",{className:a.tag,children:(0,s.jsx)(o.Z,{label:e,permalink:i})},i)}))})]})}},27484:function(t){t.exports=function(){"use strict";var t=1e3,e=6e4,i=36e5,r="millisecond",n="second",o="minute",a="hour",s="day",l="week",c="month",h="quarter",u="year",d="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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,m={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"],i=t%100;return"["+t+(e[(i-20)%10]||e[i]||e[0])+"]"}},y=function(t,e,i){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(i)+t},x={s:y,z:function(t){var e=-t.utcOffset(),i=Math.abs(e),r=Math.floor(i/60),n=i%60;return(e<=0?"+":"-")+y(r,2,"0")+":"+y(n,2,"0")},m:function t(e,i){if(e.date()<i.date())return-t(i,e);var r=12*(i.year()-e.year())+(i.month()-e.month()),n=e.clone().add(r,c),o=i-n<0,a=e.clone().add(r+(o?-1:1),c);return+(-(r+(i-n)/(o?n-a:a-n))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:u,w:l,d:s,D:d,h:a,m:o,s:n,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},C="en",b={};b[C]=m;var _="$isDayjsObject",v=function(t){return t instanceof S||!(!t||!t[_])},k=function t(e,i,r){var n;if(!e)return C;if("string"==typeof e){var o=e.toLowerCase();b[o]&&(n=o),i&&(b[o]=i,n=o);var a=e.split("-");if(!n&&a.length>1)return t(a[0])}else{var s=e.name;b[s]=e,n=s}return!r&&n&&(C=n),n||!r&&C},T=function(t,e){if(v(t))return t.clone();var i="object"==typeof e?e:{};return i.date=t,i.args=arguments,new S(i)},w=x;w.l=k,w.i=v,w.w=function(t,e){return T(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var S=function(){function m(t){this.$L=k(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[_]=!0}var y=m.prototype;return y.parse=function(t){this.$d=function(t){var e=t.date,i=t.utc;if(null===e)return new Date(NaN);if(w.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(p);if(r){var n=r[2]-1||0,o=(r[7]||"0").substring(0,3);return i?new Date(Date.UTC(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],n,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(e)}(t),this.init()},y.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()},y.$utils=function(){return w},y.isValid=function(){return!(this.$d.toString()===f)},y.isSame=function(t,e){var i=T(t);return this.startOf(e)<=i&&i<=this.endOf(e)},y.isAfter=function(t,e){return T(t)<this.startOf(e)},y.isBefore=function(t,e){return this.endOf(e)<T(t)},y.$g=function(t,e,i){return w.u(t)?this[e]:this.set(i,t)},y.unix=function(){return Math.floor(this.valueOf()/1e3)},y.valueOf=function(){return this.$d.getTime()},y.startOf=function(t,e){var i=this,r=!!w.u(e)||e,h=w.p(t),f=function(t,e){var n=w.w(i.$u?Date.UTC(i.$y,e,t):new Date(i.$y,e,t),i);return r?n:n.endOf(s)},p=function(t,e){return w.w(i.toDate()[t].apply(i.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),i)},g=this.$W,m=this.$M,y=this.$D,x="set"+(this.$u?"UTC":"");switch(h){case u:return r?f(1,0):f(31,11);case c:return r?f(1,m):f(0,m+1);case l:var C=this.$locale().weekStart||0,b=(g<C?g+7:g)-C;return f(r?y-b:y+(6-b),m);case s:case d:return p(x+"Hours",0);case a:return p(x+"Minutes",1);case o:return p(x+"Seconds",2);case n:return p(x+"Milliseconds",3);default:return this.clone()}},y.endOf=function(t){return this.startOf(t,!1)},y.$set=function(t,e){var i,l=w.p(t),h="set"+(this.$u?"UTC":""),f=(i={},i[s]=h+"Date",i[d]=h+"Date",i[c]=h+"Month",i[u]=h+"FullYear",i[a]=h+"Hours",i[o]=h+"Minutes",i[n]=h+"Seconds",i[r]=h+"Milliseconds",i)[l],p=l===s?this.$D+(e-this.$W):e;if(l===c||l===u){var g=this.clone().set(d,1);g.$d[f](p),g.init(),this.$d=g.set(d,Math.min(this.$D,g.daysInMonth())).$d}else f&&this.$d[f](p);return this.init(),this},y.set=function(t,e){return this.clone().$set(t,e)},y.get=function(t){return this[w.p(t)]()},y.add=function(r,h){var d,f=this;r=Number(r);var p=w.p(h),g=function(t){var e=T(f);return w.w(e.date(e.date()+Math.round(t*r)),f)};if(p===c)return this.set(c,this.$M+r);if(p===u)return this.set(u,this.$y+r);if(p===s)return g(1);if(p===l)return g(7);var m=(d={},d[o]=e,d[a]=i,d[n]=t,d)[p]||1,y=this.$d.getTime()+r*m;return w.w(y,this)},y.subtract=function(t,e){return this.add(-1*t,e)},y.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return i.invalidDate||f;var r=t||"YYYY-MM-DDTHH:mm:ssZ",n=w.z(this),o=this.$H,a=this.$m,s=this.$M,l=i.weekdays,c=i.months,h=i.meridiem,u=function(t,i,n,o){return t&&(t[i]||t(e,r))||n[i].slice(0,o)},d=function(t){return w.s(o%12||12,t,"0")},p=h||function(t,e,i){var r=t<12?"AM":"PM";return i?r.toLowerCase():r};return r.replace(g,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return w.s(e.$y,4,"0");case"M":return s+1;case"MM":return w.s(s+1,2,"0");case"MMM":return u(i.monthsShort,s,c,3);case"MMMM":return u(c,s);case"D":return e.$D;case"DD":return w.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return u(i.weekdaysMin,e.$W,l,2);case"ddd":return u(i.weekdaysShort,e.$W,l,3);case"dddd":return l[e.$W];case"H":return String(o);case"HH":return w.s(o,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return p(o,a,!0);case"A":return p(o,a,!1);case"m":return String(a);case"mm":return w.s(a,2,"0");case"s":return String(e.$s);case"ss":return w.s(e.$s,2,"0");case"SSS":return w.s(e.$ms,3,"0");case"Z":return n}return null}(t)||n.replace(":","")}))},y.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},y.diff=function(r,d,f){var p,g=this,m=w.p(d),y=T(r),x=(y.utcOffset()-this.utcOffset())*e,C=this-y,b=function(){return w.m(g,y)};switch(m){case u:p=b()/12;break;case c:p=b();break;case h:p=b()/3;break;case l:p=(C-x)/6048e5;break;case s:p=(C-x)/864e5;break;case a:p=C/i;break;case o:p=C/e;break;case n:p=C/t;break;default:p=C}return f?p:w.a(p)},y.daysInMonth=function(){return this.endOf(c).$D},y.$locale=function(){return b[this.$L]},y.locale=function(t,e){if(!t)return this.$L;var i=this.clone(),r=k(t,e,!0);return r&&(i.$L=r),i},y.clone=function(){return w.w(this.$d,this)},y.toDate=function(){return new Date(this.valueOf())},y.toJSON=function(){return this.isValid()?this.toISOString():null},y.toISOString=function(){return this.$d.toISOString()},y.toString=function(){return this.$d.toUTCString()},m}(),B=S.prototype;return T.prototype=B,[["$ms",r],["$s",n],["$m",o],["$H",a],["$W",s],["$M",c],["$y",u],["$D",d]].forEach((function(t){B[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),T.extend=function(t,e){return t.$i||(t(e,S,T),t.$i=!0),T},T.locale=k,T.isDayjs=v,T.unix=function(t){return T(1e3*t)},T.en=b[C],T.Ls=b,T.p={},T}()},27856:function(t){t.exports=function(){"use strict";const{entries:t,setPrototypeOf:e,isFrozen:i,getPrototypeOf:r,getOwnPropertyDescriptor:n}=Object;let{freeze:o,seal:a,create:s}=Object,{apply:l,construct:c}="undefined"!=typeof Reflect&&Reflect;o||(o=function(t){return t}),a||(a=function(t){return t}),l||(l=function(t,e,i){return t.apply(e,i)}),c||(c=function(t,e){return new t(...e)});const h=_(Array.prototype.forEach),u=_(Array.prototype.pop),d=_(Array.prototype.push),f=_(String.prototype.toLowerCase),p=_(String.prototype.toString),g=_(String.prototype.match),m=_(String.prototype.replace),y=_(String.prototype.indexOf),x=_(String.prototype.trim),C=_(RegExp.prototype.test),b=v(TypeError);function _(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];return l(t,e,r)}}function v(t){return function(){for(var e=arguments.length,i=new Array(e),r=0;r<e;r++)i[r]=arguments[r];return c(t,i)}}function k(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;e&&e(t,null);let o=r.length;for(;o--;){let e=r[o];if("string"==typeof e){const t=n(e);t!==e&&(i(r)||(r[o]=t),e=t)}t[e]=!0}return t}function T(e){const i=s(null);for(const[r,o]of t(e))void 0!==n(e,r)&&(i[r]=o);return i}function w(t,e){for(;null!==t;){const i=n(t,e);if(i){if(i.get)return _(i.get);if("function"==typeof i.value)return _(i.value)}t=r(t)}function i(t){return console.warn("fallback value for",t),null}return i}const S=o(["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"]),B=o(["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"]),F=o(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),A=o(["animate","color-profile","cursor","discard","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"]),L=o(["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","mprescripts"]),M=o(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),E=o(["#text"]),Z=o(["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"]),N=o(["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"]),O=o(["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"]),I=o(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),j=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),q=a(/<%[\w\W]*|[\w\W]*%>/gm),D=a(/\${[\w\W]*}/gm),$=a(/^data-[\-\w.\u00B7-\uFFFF]/),z=a(/^aria-[\-\w]+$/),P=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),R=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H=a(/^html$/i);var U=Object.freeze({__proto__:null,MUSTACHE_EXPR:j,ERB_EXPR:q,TMPLIT_EXPR:D,DATA_ATTR:$,ARIA_ATTR:z,IS_ALLOWED_URI:P,IS_SCRIPT_OR_DATA:R,ATTR_WHITESPACE:W,DOCTYPE_NAME:H});const Y=function(){return"undefined"==typeof window?null:window},V=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let i=null;const r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(i=e.getAttribute(r));const n="dompurify"+(i?"#"+i:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(o){return console.warn("TrustedTypes policy "+n+" could not be created."),null}};function G(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y();const i=t=>G(t);if(i.version="3.0.6",i.removed=[],!e||!e.document||9!==e.document.nodeType)return i.isSupported=!1,i;let{document:r}=e;const n=r,a=n.currentScript,{DocumentFragment:l,HTMLTemplateElement:c,Node:_,Element:v,NodeFilter:j,NamedNodeMap:q=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:D,DOMParser:$,trustedTypes:z}=e,R=v.prototype,W=w(R,"cloneNode"),X=w(R,"nextSibling"),Q=w(R,"childNodes"),J=w(R,"parentNode");if("function"==typeof c){const t=r.createElement("template");t.content&&t.content.ownerDocument&&(r=t.content.ownerDocument)}let K,tt="";const{implementation:et,createNodeIterator:it,createDocumentFragment:rt,getElementsByTagName:nt}=r,{importNode:ot}=n;let at={};i.isSupported="function"==typeof t&&"function"==typeof J&&et&&void 0!==et.createHTMLDocument;const{MUSTACHE_EXPR:st,ERB_EXPR:lt,TMPLIT_EXPR:ct,DATA_ATTR:ht,ARIA_ATTR:ut,IS_SCRIPT_OR_DATA:dt,ATTR_WHITESPACE:ft}=U;let{IS_ALLOWED_URI:pt}=U,gt=null;const mt=k({},[...S,...B,...F,...L,...E]);let yt=null;const xt=k({},[...Z,...N,...O,...I]);let Ct=Object.seal(s(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}})),bt=null,_t=null,vt=!0,kt=!0,Tt=!1,wt=!0,St=!1,Bt=!1,Ft=!1,At=!1,Lt=!1,Mt=!1,Et=!1,Zt=!0,Nt=!1;const Ot="user-content-";let It=!0,jt=!1,qt={},Dt=null;const $t=k({},["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"]);let zt=null;const Pt=k({},["audio","video","img","source","image","track"]);let Rt=null;const Wt=k({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ht="http://www.w3.org/1998/Math/MathML",Ut="http://www.w3.org/2000/svg",Yt="http://www.w3.org/1999/xhtml";let Vt=Yt,Gt=!1,Xt=null;const Qt=k({},[Ht,Ut,Yt],p);let Jt=null;const Kt=["application/xhtml+xml","text/html"],te="text/html";let ee=null,ie=null;const re=r.createElement("form"),ne=function(t){return t instanceof RegExp||t instanceof Function},oe=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ie||ie!==t){if(t&&"object"==typeof t||(t={}),t=T(t),Jt=Jt=-1===Kt.indexOf(t.PARSER_MEDIA_TYPE)?te:t.PARSER_MEDIA_TYPE,ee="application/xhtml+xml"===Jt?p:f,gt="ALLOWED_TAGS"in t?k({},t.ALLOWED_TAGS,ee):mt,yt="ALLOWED_ATTR"in t?k({},t.ALLOWED_ATTR,ee):xt,Xt="ALLOWED_NAMESPACES"in t?k({},t.ALLOWED_NAMESPACES,p):Qt,Rt="ADD_URI_SAFE_ATTR"in t?k(T(Wt),t.ADD_URI_SAFE_ATTR,ee):Wt,zt="ADD_DATA_URI_TAGS"in t?k(T(Pt),t.ADD_DATA_URI_TAGS,ee):Pt,Dt="FORBID_CONTENTS"in t?k({},t.FORBID_CONTENTS,ee):$t,bt="FORBID_TAGS"in t?k({},t.FORBID_TAGS,ee):{},_t="FORBID_ATTR"in t?k({},t.FORBID_ATTR,ee):{},qt="USE_PROFILES"in t&&t.USE_PROFILES,vt=!1!==t.ALLOW_ARIA_ATTR,kt=!1!==t.ALLOW_DATA_ATTR,Tt=t.ALLOW_UNKNOWN_PROTOCOLS||!1,wt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,St=t.SAFE_FOR_TEMPLATES||!1,Bt=t.WHOLE_DOCUMENT||!1,Lt=t.RETURN_DOM||!1,Mt=t.RETURN_DOM_FRAGMENT||!1,Et=t.RETURN_TRUSTED_TYPE||!1,At=t.FORCE_BODY||!1,Zt=!1!==t.SANITIZE_DOM,Nt=t.SANITIZE_NAMED_PROPS||!1,It=!1!==t.KEEP_CONTENT,jt=t.IN_PLACE||!1,pt=t.ALLOWED_URI_REGEXP||P,Vt=t.NAMESPACE||Yt,Ct=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&ne(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ct.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&ne(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ct.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ct.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),St&&(kt=!1),Mt&&(Lt=!0),qt&&(gt=k({},[...E]),yt=[],!0===qt.html&&(k(gt,S),k(yt,Z)),!0===qt.svg&&(k(gt,B),k(yt,N),k(yt,I)),!0===qt.svgFilters&&(k(gt,F),k(yt,N),k(yt,I)),!0===qt.mathMl&&(k(gt,L),k(yt,O),k(yt,I))),t.ADD_TAGS&&(gt===mt&&(gt=T(gt)),k(gt,t.ADD_TAGS,ee)),t.ADD_ATTR&&(yt===xt&&(yt=T(yt)),k(yt,t.ADD_ATTR,ee)),t.ADD_URI_SAFE_ATTR&&k(Rt,t.ADD_URI_SAFE_ATTR,ee),t.FORBID_CONTENTS&&(Dt===$t&&(Dt=T(Dt)),k(Dt,t.FORBID_CONTENTS,ee)),It&&(gt["#text"]=!0),Bt&&k(gt,["html","head","body"]),gt.table&&(k(gt,["tbody"]),delete bt.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');K=t.TRUSTED_TYPES_POLICY,tt=K.createHTML("")}else void 0===K&&(K=V(z,a)),null!==K&&"string"==typeof tt&&(tt=K.createHTML(""));o&&o(t),ie=t}},ae=k({},["mi","mo","mn","ms","mtext"]),se=k({},["foreignobject","desc","title","annotation-xml"]),le=k({},["title","style","font","a","script"]),ce=k({},B);k(ce,F),k(ce,A);const he=k({},L);k(he,M);const ue=function(t){let e=J(t);e&&e.tagName||(e={namespaceURI:Vt,tagName:"template"});const i=f(t.tagName),r=f(e.tagName);return!!Xt[t.namespaceURI]&&(t.namespaceURI===Ut?e.namespaceURI===Yt?"svg"===i:e.namespaceURI===Ht?"svg"===i&&("annotation-xml"===r||ae[r]):Boolean(ce[i]):t.namespaceURI===Ht?e.namespaceURI===Yt?"math"===i:e.namespaceURI===Ut?"math"===i&&se[r]:Boolean(he[i]):t.namespaceURI===Yt?!(e.namespaceURI===Ut&&!se[r])&&!(e.namespaceURI===Ht&&!ae[r])&&!he[i]&&(le[i]||!ce[i]):!("application/xhtml+xml"!==Jt||!Xt[t.namespaceURI]))},de=function(t){d(i.removed,{element:t});try{t.parentNode.removeChild(t)}catch(e){t.remove()}},fe=function(t,e){try{d(i.removed,{attribute:e.getAttributeNode(t),from:e})}catch(r){d(i.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!yt[t])if(Lt||Mt)try{de(e)}catch(r){}else try{e.setAttribute(t,"")}catch(r){}},pe=function(t){let e=null,i=null;if(At)t="<remove></remove>"+t;else{const e=g(t,/^[\r\n\t ]+/);i=e&&e[0]}"application/xhtml+xml"===Jt&&Vt===Yt&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const n=K?K.createHTML(t):t;if(Vt===Yt)try{e=(new $).parseFromString(n,Jt)}catch(a){}if(!e||!e.documentElement){e=et.createDocument(Vt,"template",null);try{e.documentElement.innerHTML=Gt?tt:n}catch(a){}}const o=e.body||e.documentElement;return t&&i&&o.insertBefore(r.createTextNode(i),o.childNodes[0]||null),Vt===Yt?nt.call(e,Bt?"html":"body")[0]:Bt?e.documentElement:o},ge=function(t){return it.call(t.ownerDocument||t,t,j.SHOW_ELEMENT|j.SHOW_COMMENT|j.SHOW_TEXT,null)},me=function(t){return t instanceof D&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof q)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},ye=function(t){return"function"==typeof _&&t instanceof _},xe=function(t,e,r){at[t]&&h(at[t],(t=>{t.call(i,e,r,ie)}))},Ce=function(t){let e=null;if(xe("beforeSanitizeElements",t,null),me(t))return de(t),!0;const r=ee(t.nodeName);if(xe("uponSanitizeElement",t,{tagName:r,allowedTags:gt}),t.hasChildNodes()&&!ye(t.firstElementChild)&&C(/<[/\w]/g,t.innerHTML)&&C(/<[/\w]/g,t.textContent))return de(t),!0;if(!gt[r]||bt[r]){if(!bt[r]&&_e(r)){if(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,r))return!1;if(Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(r))return!1}if(It&&!Dt[r]){const e=J(t)||t.parentNode,i=Q(t)||t.childNodes;if(i&&e)for(let r=i.length-1;r>=0;--r)e.insertBefore(W(i[r],!0),X(t))}return de(t),!0}return t instanceof v&&!ue(t)?(de(t),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!C(/<\/no(script|embed|frames)/i,t.innerHTML)?(St&&3===t.nodeType&&(e=t.textContent,h([st,lt,ct],(t=>{e=m(e,t," ")})),t.textContent!==e&&(d(i.removed,{element:t.cloneNode()}),t.textContent=e)),xe("afterSanitizeElements",t,null),!1):(de(t),!0)},be=function(t,e,i){if(Zt&&("id"===e||"name"===e)&&(i in r||i in re))return!1;if(kt&&!_t[e]&&C(ht,e));else if(vt&&C(ut,e));else if(!yt[e]||_t[e]){if(!(_e(t)&&(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,t)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(t))&&(Ct.attributeNameCheck instanceof RegExp&&C(Ct.attributeNameCheck,e)||Ct.attributeNameCheck instanceof Function&&Ct.attributeNameCheck(e))||"is"===e&&Ct.allowCustomizedBuiltInElements&&(Ct.tagNameCheck instanceof RegExp&&C(Ct.tagNameCheck,i)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(i))))return!1}else if(Rt[e]);else if(C(pt,m(i,ft,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==y(i,"data:")||!zt[t])if(Tt&&!C(dt,m(i,ft,"")));else if(i)return!1;return!0},_e=function(t){return t.indexOf("-")>0},ve=function(t){xe("beforeSanitizeAttributes",t,null);const{attributes:e}=t;if(!e)return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:yt};let n=e.length;for(;n--;){const a=e[n],{name:s,namespaceURI:l,value:c}=a,d=ee(s);let f="value"===s?c:x(c);if(r.attrName=d,r.attrValue=f,r.keepAttr=!0,r.forceKeepAttr=void 0,xe("uponSanitizeAttribute",t,r),f=r.attrValue,r.forceKeepAttr)continue;if(fe(s,t),!r.keepAttr)continue;if(!wt&&C(/\/>/i,f)){fe(s,t);continue}St&&h([st,lt,ct],(t=>{f=m(f,t," ")}));const p=ee(t.nodeName);if(be(p,d,f)){if(!Nt||"id"!==d&&"name"!==d||(fe(s,t),f=Ot+f),K&&"object"==typeof z&&"function"==typeof z.getAttributeType)if(l);else switch(z.getAttributeType(p,d)){case"TrustedHTML":f=K.createHTML(f);break;case"TrustedScriptURL":f=K.createScriptURL(f)}try{l?t.setAttributeNS(l,s,f):t.setAttribute(s,f),u(i.removed)}catch(o){}}}xe("afterSanitizeAttributes",t,null)},ke=function t(e){let i=null;const r=ge(e);for(xe("beforeSanitizeShadowDOM",e,null);i=r.nextNode();)xe("uponSanitizeShadowNode",i,null),Ce(i)||(i.content instanceof l&&t(i.content),ve(i));xe("afterSanitizeShadowDOM",e,null)};return i.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,o=null,a=null,s=null;if(Gt=!t,Gt&&(t="\x3c!--\x3e"),"string"!=typeof t&&!ye(t)){if("function"!=typeof t.toString)throw b("toString is not a function");if("string"!=typeof(t=t.toString()))throw b("dirty is not a string, aborting")}if(!i.isSupported)return t;if(Ft||oe(e),i.removed=[],"string"==typeof t&&(jt=!1),jt){if(t.nodeName){const e=ee(t.nodeName);if(!gt[e]||bt[e])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof _)r=pe("\x3c!----\x3e"),o=r.ownerDocument.importNode(t,!0),1===o.nodeType&&"BODY"===o.nodeName||"HTML"===o.nodeName?r=o:r.appendChild(o);else{if(!Lt&&!St&&!Bt&&-1===t.indexOf("<"))return K&&Et?K.createHTML(t):t;if(r=pe(t),!r)return Lt?null:Et?tt:""}r&&At&&de(r.firstChild);const c=ge(jt?t:r);for(;a=c.nextNode();)Ce(a)||(a.content instanceof l&&ke(a.content),ve(a));if(jt)return t;if(Lt){if(Mt)for(s=rt.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return(yt.shadowroot||yt.shadowrootmode)&&(s=ot.call(n,s,!0)),s}let u=Bt?r.outerHTML:r.innerHTML;return Bt&>["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&C(H,r.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+u),St&&h([st,lt,ct],(t=>{u=m(u,t," ")})),K&&Et?K.createHTML(u):u},i.setConfig=function(){oe(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ft=!0},i.clearConfig=function(){ie=null,Ft=!1},i.isValidAttribute=function(t,e,i){ie||oe({});const r=ee(t),n=ee(e);return be(r,n,i)},i.addHook=function(t,e){"function"==typeof e&&(at[t]=at[t]||[],d(at[t],e))},i.removeHook=function(t){if(at[t])return u(at[t])},i.removeHooks=function(t){at[t]&&(at[t]=[])},i.removeAllHooks=function(){at={}},i}return G()}()},87594:(t,e)=>{function i(t){let e,i=[];for(let r of t.split(",").map((t=>t.trim())))if(/^-?\d+$/.test(r))i.push(parseInt(r,10));else if(e=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[t,r,n,o]=e;if(r&&o){r=parseInt(r),o=parseInt(o);const t=r<o?1:-1;"-"!==n&&".."!==n&&"\u2025"!==n||(o+=t);for(let e=r;e!==o;e+=t)i.push(e)}}return i}e.default=i,t.exports=i},18464:(t,e,i)=>{"use strict";function r(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];var r=Array.from("string"==typeof t?[t]:t);r[r.length-1]=r[r.length-1].replace(/\r?\n([\t ]*)$/,"");var n=r.reduce((function(t,e){var i=e.match(/\n([\t ]+|(?!\s).)/g);return i?t.concat(i.map((function(t){var e,i;return null!==(i=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==i?i:0}))):t}),[]);if(n.length){var o=new RegExp("\n[\t ]{"+Math.min.apply(Math,n)+"}","g");r=r.map((function(t){return t.replace(o,"\n")}))}r[0]=r[0].replace(/^\r?\n/,"");var a=r[0];return e.forEach((function(t,e){var i=a.match(/(?:^|\n)( *)$/),n=i?i[1]:"",o=t;"string"==typeof t&&t.includes("\n")&&(o=String(t).split("\n").map((function(t,e){return 0===e?t:""+n+t})).join("\n")),a+=o+r[e+1]})),a}i.d(e,{Z:()=>r})},11151:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s,a:()=>a});var r=i(67294);const n={},o=r.createContext(n);function a(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),r.createElement(o.Provider,{value:e},t.children)}},64218:(t,e,i)=>{"use strict";function r(t,e){let i;if(void 0===e)for(const r of t)null!=r&&(i<r||void 0===i&&r>=r)&&(i=r);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i<n||void 0===i&&n>=n)&&(i=n)}return i}function n(t,e){let i;if(void 0===e)for(const r of t)null!=r&&(i>r||void 0===i&&r>=r)&&(i=r);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(i>n||void 0===i&&n>=n)&&(i=n)}return i}function o(t){return t}i.d(e,{Nb1:()=>cs,LLu:()=>x,F5q:()=>y,$0Z:()=>vs,Dts:()=>Ts,WQY:()=>Ss,qpX:()=>Fs,u93:()=>As,tFB:()=>Ms,YY7:()=>Ns,OvA:()=>Is,dCK:()=>qs,zgE:()=>zs,fGX:()=>Rs,$m7:()=>Hs,c_6:()=>ds,fxm:()=>Ys,FdL:()=>el,ak_:()=>il,SxZ:()=>ol,eA_:()=>sl,jsv:()=>cl,iJ:()=>ll,JHv:()=>pr,jvg:()=>gs,Fp7:()=>r,VV$:()=>n,ve8:()=>xs,tiA:()=>kr,BYU:()=>mn,PKp:()=>vr,Xf:()=>Za,K2I:()=>Na,Ys:()=>Oa,td_:()=>Ia,YPS:()=>Yi,rr1:()=>Zn,i$Z:()=>uo,y2j:()=>Pn,WQD:()=>Mn,U8T:()=>Bn,Z_i:()=>An,Ox9:()=>qn,F0B:()=>Jn,LqH:()=>Rn,S1K:()=>Fn,Zyz:()=>jn,Igq:()=>zn,YDX:()=>Dn,EFj:()=>$n});var a=1,s=2,l=3,c=4,h=1e-6;function u(t){return"translate("+t+",0)"}function d(t){return"translate(0,"+t+")"}function f(t){return e=>+t(e)}function p(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),i=>+t(i)+e}function g(){return!this.__axis}function m(t,e){var i=[],r=null,n=null,m=6,y=6,x=3,C="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,b=t===a||t===c?-1:1,_=t===c||t===s?"x":"y",v=t===a||t===l?u:d;function k(u){var d=null==r?e.ticks?e.ticks.apply(e,i):e.domain():r,k=null==n?e.tickFormat?e.tickFormat.apply(e,i):o:n,T=Math.max(m,0)+x,w=e.range(),S=+w[0]+C,B=+w[w.length-1]+C,F=(e.bandwidth?p:f)(e.copy(),C),A=u.selection?u.selection():u,L=A.selectAll(".domain").data([null]),M=A.selectAll(".tick").data(d,e).order(),E=M.exit(),Z=M.enter().append("g").attr("class","tick"),N=M.select("line"),O=M.select("text");L=L.merge(L.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),M=M.merge(Z),N=N.merge(Z.append("line").attr("stroke","currentColor").attr(_+"2",b*m)),O=O.merge(Z.append("text").attr("fill","currentColor").attr(_,b*T).attr("dy",t===a?"0em":t===l?"0.71em":"0.32em")),u!==A&&(L=L.transition(u),M=M.transition(u),N=N.transition(u),O=O.transition(u),E=E.transition(u).attr("opacity",h).attr("transform",(function(t){return isFinite(t=F(t))?v(t+C):this.getAttribute("transform")})),Z.attr("opacity",h).attr("transform",(function(t){var e=this.parentNode.__axis;return v((e&&isFinite(e=e(t))?e:F(t))+C)}))),E.remove(),L.attr("d",t===c||t===s?y?"M"+b*y+","+S+"H"+C+"V"+B+"H"+b*y:"M"+C+","+S+"V"+B:y?"M"+S+","+b*y+"V"+C+"H"+B+"V"+b*y:"M"+S+","+C+"H"+B),M.attr("opacity",1).attr("transform",(function(t){return v(F(t)+C)})),N.attr(_+"2",b*m),O.attr(_,b*T).text(k),A.filter(g).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===s?"start":t===c?"end":"middle"),A.each((function(){this.__axis=F}))}return k.scale=function(t){return arguments.length?(e=t,k):e},k.ticks=function(){return i=Array.from(arguments),k},k.tickArguments=function(t){return arguments.length?(i=null==t?[]:Array.from(t),k):i.slice()},k.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),k):r&&r.slice()},k.tickFormat=function(t){return arguments.length?(n=t,k):n},k.tickSize=function(t){return arguments.length?(m=y=+t,k):m},k.tickSizeInner=function(t){return arguments.length?(m=+t,k):m},k.tickSizeOuter=function(t){return arguments.length?(y=+t,k):y},k.tickPadding=function(t){return arguments.length?(x=+t,k):x},k.offset=function(t){return arguments.length?(C=+t,k):C},k}function y(t){return m(a,t)}function x(t){return m(l,t)}function C(){}function b(t){return null==t?C:function(){return this.querySelector(t)}}function _(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function v(){return[]}function k(t){return null==t?v:function(){return this.querySelectorAll(t)}}function T(t){return function(){return this.matches(t)}}function w(t){return function(e){return e.matches(t)}}var S=Array.prototype.find;function B(){return this.firstElementChild}var F=Array.prototype.filter;function A(){return Array.from(this.children)}function L(t){return new Array(t.length)}function M(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function E(t,e,i,r,n,o){for(var a,s=0,l=e.length,c=o.length;s<c;++s)(a=e[s])?(a.__data__=o[s],r[s]=a):i[s]=new M(t,o[s]);for(;s<l;++s)(a=e[s])&&(n[s]=a)}function Z(t,e,i,r,n,o,a){var s,l,c,h=new Map,u=e.length,d=o.length,f=new Array(u);for(s=0;s<u;++s)(l=e[s])&&(f[s]=c=a.call(l,l.__data__,s,e)+"",h.has(c)?n[s]=l:h.set(c,l));for(s=0;s<d;++s)c=a.call(t,o[s],s,o)+"",(l=h.get(c))?(r[s]=l,l.__data__=o[s],h.delete(c)):i[s]=new M(t,o[s]);for(s=0;s<u;++s)(l=e[s])&&h.get(f[s])===l&&(n[s]=l)}function N(t){return t.__data__}function O(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function I(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}M.prototype={constructor:M,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 j="http://www.w3.org/1999/xhtml";const q={svg:"http://www.w3.org/2000/svg",xhtml:j,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function D(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),q.hasOwnProperty(e)?{space:q[e],local:t}:t}function $(t){return function(){this.removeAttribute(t)}}function z(t){return function(){this.removeAttributeNS(t.space,t.local)}}function P(t,e){return function(){this.setAttribute(t,e)}}function R(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function W(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}function H(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function U(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Y(t){return function(){this.style.removeProperty(t)}}function V(t,e,i){return function(){this.style.setProperty(t,e,i)}}function G(t,e,i){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,i)}}function X(t,e){return t.style.getPropertyValue(e)||U(t).getComputedStyle(t,null).getPropertyValue(e)}function Q(t){return function(){delete this[t]}}function J(t,e){return function(){this[t]=e}}function K(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}function tt(t){return t.trim().split(/^|\s+/)}function et(t){return t.classList||new it(t)}function it(t){this._node=t,this._names=tt(t.getAttribute("class")||"")}function rt(t,e){for(var i=et(t),r=-1,n=e.length;++r<n;)i.add(e[r])}function nt(t,e){for(var i=et(t),r=-1,n=e.length;++r<n;)i.remove(e[r])}function ot(t){return function(){rt(this,t)}}function at(t){return function(){nt(this,t)}}function st(t,e){return function(){(e.apply(this,arguments)?rt:nt)(this,t)}}function lt(){this.textContent=""}function ct(t){return function(){this.textContent=t}}function ht(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function ut(){this.innerHTML=""}function dt(t){return function(){this.innerHTML=t}}function ft(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function pt(){this.nextSibling&&this.parentNode.appendChild(this)}function gt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function mt(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===j&&e.documentElement.namespaceURI===j?e.createElement(t):e.createElementNS(i,t)}}function yt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function xt(t){var e=D(t);return(e.local?yt:mt)(e)}function Ct(){return null}function bt(){var t=this.parentNode;t&&t.removeChild(this)}function _t(){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 kt(t){return function(){var e=this.__on;if(e){for(var i,r=0,n=-1,o=e.length;r<o;++r)i=e[r],t.type&&i.type!==t.type||i.name!==t.name?e[++n]=i:this.removeEventListener(i.type,i.listener,i.options);++n?e.length=n:delete this.__on}}}function Tt(t,e,i){return function(){var r,n=this.__on,o=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(n)for(var a=0,s=n.length;a<s;++a)if((r=n[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=i),void(r.value=e);this.addEventListener(t.type,o,i),r={type:t.type,name:t.name,value:e,listener:o,options:i},n?n.push(r):this.__on=[r]}}function wt(t,e,i){var r=U(t),n=r.CustomEvent;"function"==typeof n?n=new n(e,i):(n=r.document.createEvent("Event"),i?(n.initEvent(e,i.bubbles,i.cancelable),n.detail=i.detail):n.initEvent(e,!1,!1)),t.dispatchEvent(n)}function St(t,e){return function(){return wt(this,t,e)}}function Bt(t,e){return function(){return wt(this,t,e.apply(this,arguments))}}it.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 Ft=[null];function At(t,e){this._groups=t,this._parents=e}function Lt(){return new At([[document.documentElement]],Ft)}At.prototype=Lt.prototype={constructor:At,select:function(t){"function"!=typeof t&&(t=b(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a,s=e[n],l=s.length,c=r[n]=new Array(l),h=0;h<l;++h)(o=s[h])&&(a=t.call(o,o.__data__,h,s))&&("__data__"in o&&(a.__data__=o.__data__),c[h]=a);return new At(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return _(t.apply(this,arguments))}}(t):k(t);for(var e=this._groups,i=e.length,r=[],n=[],o=0;o<i;++o)for(var a,s=e[o],l=s.length,c=0;c<l;++c)(a=s[c])&&(r.push(t.call(a,a.__data__,c,s)),n.push(a));return new At(r,n)},selectChild:function(t){return this.select(null==t?B:function(t){return function(){return S.call(this.children,t)}}("function"==typeof t?t:w(t)))},selectChildren:function(t){return this.selectAll(null==t?A:function(t){return function(){return F.call(this.children,t)}}("function"==typeof t?t:w(t)))},filter:function(t){"function"!=typeof t&&(t=T(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new At(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,N);var i,r=e?Z:E,n=this._parents,o=this._groups;"function"!=typeof t&&(i=t,t=function(){return i});for(var a=o.length,s=new Array(a),l=new Array(a),c=new Array(a),h=0;h<a;++h){var u=n[h],d=o[h],f=d.length,p=O(t.call(u,u&&u.__data__,h,n)),g=p.length,m=l[h]=new Array(g),y=s[h]=new Array(g);r(u,d,m,y,c[h]=new Array(f),p,e);for(var x,C,b=0,_=0;b<g;++b)if(x=m[b]){for(b>=_&&(_=b+1);!(C=y[_])&&++_<g;);x._next=C||null}}return(s=new At(s,n))._enter=l,s._exit=c,s},enter:function(){return new At(this._enter||this._groups.map(L),this._parents)},exit:function(){return new At(this._exit||this._groups.map(L),this._parents)},join:function(t,e,i){var r=this.enter(),n=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(n=e(n))&&(n=n.selection()),null==i?o.remove():i(o),r&&n?r.merge(n).order():n},merge:function(t){for(var e=t.selection?t.selection():t,i=this._groups,r=e._groups,n=i.length,o=r.length,a=Math.min(n,o),s=new Array(n),l=0;l<a;++l)for(var c,h=i[l],u=r[l],d=h.length,f=s[l]=new Array(d),p=0;p<d;++p)(c=h[p]||u[p])&&(f[p]=c);for(;l<n;++l)s[l]=i[l];return new At(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,i=t.length;++e<i;)for(var r,n=t[e],o=n.length-1,a=n[o];--o>=0;)(r=n[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=I);for(var i=this._groups,r=i.length,n=new Array(r),o=0;o<r;++o){for(var a,s=i[o],l=s.length,c=n[o]=new Array(l),h=0;h<l;++h)(a=s[h])&&(c[h]=a);c.sort(e)}return new At(n,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,i=t.length;e<i;++e)for(var r=t[e],n=0,o=r.length;n<o;++n){var a=r[n];if(a)return a}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,i=0,r=e.length;i<r;++i)for(var n,o=e[i],a=0,s=o.length;a<s;++a)(n=o[a])&&t.call(n,n.__data__,a,o);return this},attr:function(t,e){var i=D(t);if(arguments.length<2){var r=this.node();return i.local?r.getAttributeNS(i.space,i.local):r.getAttribute(i)}return this.each((null==e?i.local?z:$:"function"==typeof e?i.local?H:W:i.local?R:P)(i,e))},style:function(t,e,i){return arguments.length>1?this.each((null==e?Y:"function"==typeof e?G:V)(t,e,null==i?"":i)):X(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Q:"function"==typeof e?K:J)(t,e)):this.node()[t]},classed:function(t,e){var i=tt(t+"");if(arguments.length<2){for(var r=et(this.node()),n=-1,o=i.length;++n<o;)if(!r.contains(i[n]))return!1;return!0}return this.each(("function"==typeof e?st:e?ot:at)(i,e))},text:function(t){return arguments.length?this.each(null==t?lt:("function"==typeof t?ht:ct)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?ft:dt)(t)):this.node().innerHTML},raise:function(){return this.each(pt)},lower:function(){return this.each(gt)},append:function(t){var e="function"==typeof t?t:xt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var i="function"==typeof t?t:xt(t),r=null==e?Ct:"function"==typeof e?e:b(e);return this.select((function(){return this.insertBefore(i.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(bt)},clone:function(t){return this.select(t?vt:_t)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,i){var r,n,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?Tt:kt,r=0;r<a;++r)this.each(s(o[r],e,i));return this}var s=this.node().__on;if(s)for(var l,c=0,h=s.length;c<h;++c)for(r=0,l=s[c];r<a;++r)if((n=o[r]).type===l.type&&n.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?Bt:St)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,i=t.length;e<i;++e)for(var r,n=t[e],o=0,a=n.length;o<a;++o)(r=n[o])&&(yield r)}};const Mt=Lt;var Et={value:()=>{}};function Zt(){for(var t,e=0,i=arguments.length,r={};e<i;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Nt(r)}function Nt(t){this._=t}function Ot(t,e){for(var i,r=0,n=t.length;r<n;++r)if((i=t[r]).name===e)return i.value}function It(t,e,i){for(var r=0,n=t.length;r<n;++r)if(t[r].name===e){t[r]=Et,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=i&&t.push({name:e,value:i}),t}Nt.prototype=Zt.prototype={constructor:Nt,on:function(t,e){var i,r,n=this._,o=(r=n,(t+"").trim().split(/^|\s+/).map((function(t){var e="",i=t.indexOf(".");if(i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(i=(t=o[a]).type)n[i]=It(n[i],t.name,e);else if(null==e)for(i in n)n[i]=It(n[i],t.name,null);return this}for(;++a<s;)if((i=(t=o[a]).type)&&(i=Ot(n[i],t.name)))return i},copy:function(){var t={},e=this._;for(var i in e)t[i]=e[i].slice();return new Nt(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var i,r,n=new Array(i),o=0;o<i;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,i=(r=this._[t]).length;o<i;++o)r[o].value.apply(e,n)},apply:function(t,e,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],n=0,o=r.length;n<o;++n)r[n].value.apply(e,i)}};const jt=Zt;var qt,Dt,$t=0,zt=0,Pt=0,Rt=1e3,Wt=0,Ht=0,Ut=0,Yt="object"==typeof performance&&performance.now?performance:Date,Vt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Gt(){return Ht||(Vt(Xt),Ht=Yt.now()+Ut)}function Xt(){Ht=0}function Qt(){this._call=this._time=this._next=null}function Jt(t,e,i){var r=new Qt;return r.restart(t,e,i),r}function Kt(){Ht=(Wt=Yt.now())+Ut,$t=zt=0;try{!function(){Gt(),++$t;for(var t,e=qt;e;)(t=Ht-e._time)>=0&&e._call.call(void 0,t),e=e._next;--$t}()}finally{$t=0,function(){var t,e,i=qt,r=1/0;for(;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:qt=e);Dt=t,ee(r)}(),Ht=0}}function te(){var t=Yt.now(),e=t-Wt;e>Rt&&(Ut-=e,Wt=t)}function ee(t){$t||(zt&&(zt=clearTimeout(zt)),t-Ht>24?(t<1/0&&(zt=setTimeout(Kt,t-Yt.now()-Ut)),Pt&&(Pt=clearInterval(Pt))):(Pt||(Wt=Yt.now(),Pt=setInterval(te,Rt)),$t=1,Vt(Kt)))}function ie(t,e,i){var r=new Qt;return e=null==e?0:+e,r.restart((i=>{r.stop(),t(i+e)}),e,i),r}Qt.prototype=Jt.prototype={constructor:Qt,restart:function(t,e,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?Gt():+i)+(null==e?0:+e),this._next||Dt===this||(Dt?Dt._next=this:qt=this,Dt=this),this._call=t,this._time=i,ee()},stop:function(){this._call&&(this._call=null,this._time=1/0,ee())}};var re=jt("start","end","cancel","interrupt"),ne=[],oe=0,ae=1,se=2,le=3,ce=4,he=5,ue=6;function de(t,e,i,r,n,o){var a=t.__transition;if(a){if(i in a)return}else t.__transition={};!function(t,e,i){var r,n=t.__transition;function o(t){i.state=ae,i.timer.restart(a,i.delay,i.time),i.delay<=t&&a(t-i.delay)}function a(o){var c,h,u,d;if(i.state!==ae)return l();for(c in n)if((d=n[c]).name===i.name){if(d.state===le)return ie(a);d.state===ce?(d.state=ue,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete n[c]):+c<e&&(d.state=ue,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete n[c])}if(ie((function(){i.state===le&&(i.state=ce,i.timer.restart(s,i.delay,i.time),s(o))})),i.state=se,i.on.call("start",t,t.__data__,i.index,i.group),i.state===se){for(i.state=le,r=new Array(u=i.tween.length),c=0,h=-1;c<u;++c)(d=i.tween[c].value.call(t,t.__data__,i.index,i.group))&&(r[++h]=d);r.length=h+1}}function s(e){for(var n=e<i.duration?i.ease.call(null,e/i.duration):(i.timer.restart(l),i.state=he,1),o=-1,a=r.length;++o<a;)r[o].call(t,n);i.state===he&&(i.on.call("end",t,t.__data__,i.index,i.group),l())}function l(){for(var r in i.state=ue,i.timer.stop(),delete n[e],n)return;delete t.__transition}n[e]=i,i.timer=Jt(o,0,i.time)}(t,i,{name:e,index:r,group:n,on:re,tween:ne,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:oe})}function fe(t,e){var i=ge(t,e);if(i.state>oe)throw new Error("too late; already scheduled");return i}function pe(t,e){var i=ge(t,e);if(i.state>le)throw new Error("too late; already running");return i}function ge(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function me(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var ye,xe=180/Math.PI,Ce={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function be(t,e,i,r,n,o){var a,s,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*i+e*r)&&(i-=t*l,r-=e*l),(s=Math.sqrt(i*i+r*r))&&(i/=s,r/=s,l/=s),t*r<e*i&&(t=-t,e=-e,l=-l,a=-a),{translateX:n,translateY:o,rotate:Math.atan2(e,t)*xe,skewX:Math.atan(l)*xe,scaleX:a,scaleY:s}}function _e(t,e,i,r){function n(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],l=[];return o=t(o),a=t(a),function(t,r,n,o,a,s){if(t!==n||r!==o){var l=a.push("translate(",null,e,null,i);s.push({i:l-4,x:me(t,n)},{i:l-2,x:me(r,o)})}else(n||o)&&a.push("translate("+n+e+o+i)}(o.translateX,o.translateY,a.translateX,a.translateY,s,l),function(t,e,i,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:i.push(n(i)+"rotate(",null,r)-2,x:me(t,e)})):e&&i.push(n(i)+"rotate("+e+r)}(o.rotate,a.rotate,s,l),function(t,e,i,o){t!==e?o.push({i:i.push(n(i)+"skewX(",null,r)-2,x:me(t,e)}):e&&i.push(n(i)+"skewX("+e+r)}(o.skewX,a.skewX,s,l),function(t,e,i,r,o,a){if(t!==i||e!==r){var s=o.push(n(o)+"scale(",null,",",null,")");a.push({i:s-4,x:me(t,i)},{i:s-2,x:me(e,r)})}else 1===i&&1===r||o.push(n(o)+"scale("+i+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,i=-1,r=l.length;++i<r;)s[(e=l[i]).i]=e.x(t);return s.join("")}}}var ve=_e((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Ce:be(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),ke=_e((function(t){return null==t?Ce:(ye||(ye=document.createElementNS("http://www.w3.org/2000/svg","g")),ye.setAttribute("transform",t),(t=ye.transform.baseVal.consolidate())?be((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Ce)}),", ",")",")");function Te(t,e){var i,r;return function(){var n=pe(this,t),o=n.tween;if(o!==i)for(var a=0,s=(r=i=o).length;a<s;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}n.tween=r}}function we(t,e,i){var r,n;if("function"!=typeof i)throw new Error;return function(){var o=pe(this,t),a=o.tween;if(a!==r){n=(r=a).slice();for(var s={name:e,value:i},l=0,c=n.length;l<c;++l)if(n[l].name===e){n[l]=s;break}l===c&&n.push(s)}o.tween=n}}function Se(t,e,i){var r=t._id;return t.each((function(){var t=pe(this,r);(t.value||(t.value={}))[e]=i.apply(this,arguments)})),function(t){return ge(t,r).value[e]}}function Be(t,e,i){t.prototype=e.prototype=i,i.constructor=t}function Fe(t,e){var i=Object.create(t.prototype);for(var r in e)i[r]=e[r];return i}function Ae(){}var Le=.7,Me=1/Le,Ee="\\s*([+-]?\\d+)\\s*",Ze="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ne="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Oe=/^#([0-9a-f]{3,8})$/,Ie=new RegExp(`^rgb\\(${Ee},${Ee},${Ee}\\)$`),je=new RegExp(`^rgb\\(${Ne},${Ne},${Ne}\\)$`),qe=new RegExp(`^rgba\\(${Ee},${Ee},${Ee},${Ze}\\)$`),De=new RegExp(`^rgba\\(${Ne},${Ne},${Ne},${Ze}\\)$`),$e=new RegExp(`^hsl\\(${Ze},${Ne},${Ne}\\)$`),ze=new RegExp(`^hsla\\(${Ze},${Ne},${Ne},${Ze}\\)$`),Pe={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 Re(){return this.rgb().formatHex()}function We(){return this.rgb().formatRgb()}function He(t){var e,i;return t=(t+"").trim().toLowerCase(),(e=Oe.exec(t))?(i=e[1].length,e=parseInt(e[1],16),6===i?Ue(e):3===i?new Xe(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?Ye(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=Ie.exec(t))?new Xe(e[1],e[2],e[3],1):(e=je.exec(t))?new Xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=qe.exec(t))?Ye(e[1],e[2],e[3],e[4]):(e=De.exec(t))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=$e.exec(t))?ii(e[1],e[2]/100,e[3]/100,1):(e=ze.exec(t))?ii(e[1],e[2]/100,e[3]/100,e[4]):Pe.hasOwnProperty(t)?Ue(Pe[t]):"transparent"===t?new Xe(NaN,NaN,NaN,0):null}function Ue(t){return new Xe(t>>16&255,t>>8&255,255&t,1)}function Ye(t,e,i,r){return r<=0&&(t=e=i=NaN),new Xe(t,e,i,r)}function Ve(t){return t instanceof Ae||(t=He(t)),t?new Xe((t=t.rgb()).r,t.g,t.b,t.opacity):new Xe}function Ge(t,e,i,r){return 1===arguments.length?Ve(t):new Xe(t,e,i,null==r?1:r)}function Xe(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}function Qe(){return`#${ei(this.r)}${ei(this.g)}${ei(this.b)}`}function Je(){const t=Ke(this.opacity);return`${1===t?"rgb(":"rgba("}${ti(this.r)}, ${ti(this.g)}, ${ti(this.b)}${1===t?")":`, ${t})`}`}function Ke(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ti(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ei(t){return((t=ti(t))<16?"0":"")+t.toString(16)}function ii(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new ni(t,e,i,r)}function ri(t){if(t instanceof ni)return new ni(t.h,t.s,t.l,t.opacity);if(t instanceof Ae||(t=He(t)),!t)return new ni;if(t instanceof ni)return t;var e=(t=t.rgb()).r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),a=NaN,s=o-n,l=(o+n)/2;return s?(a=e===o?(i-r)/s+6*(i<r):i===o?(r-e)/s+2:(e-i)/s+4,s/=l<.5?o+n:2-o-n,a*=60):s=l>0&&l<1?0:a,new ni(a,s,l,t.opacity)}function ni(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}function oi(t){return(t=(t||0)%360)<0?t+360:t}function ai(t){return Math.max(0,Math.min(1,t||0))}function si(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}function li(t,e,i,r,n){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*i+(1+3*t+3*o-3*a)*r+a*n)/6}Be(Ae,He,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Re,formatHex:Re,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ri(this).formatHsl()},formatRgb:We,toString:We}),Be(Xe,Ge,Fe(Ae,{brighter(t){return t=null==t?Me:Math.pow(Me,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Le:Math.pow(Le,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Xe(ti(this.r),ti(this.g),ti(this.b),Ke(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:Qe,formatHex:Qe,formatHex8:function(){return`#${ei(this.r)}${ei(this.g)}${ei(this.b)}${ei(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Je,toString:Je})),Be(ni,(function(t,e,i,r){return 1===arguments.length?ri(t):new ni(t,e,i,null==r?1:r)}),Fe(Ae,{brighter(t){return t=null==t?Me:Math.pow(Me,t),new ni(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Le:Math.pow(Le,t),new ni(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,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new Xe(si(t>=240?t-240:t+120,n,r),si(t,n,r),si(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new ni(oi(this.h),ai(this.s),ai(this.l),Ke(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=Ke(this.opacity);return`${1===t?"hsl(":"hsla("}${oi(this.h)}, ${100*ai(this.s)}%, ${100*ai(this.l)}%${1===t?")":`, ${t})`}`}}));const ci=t=>()=>t;function hi(t,e){return function(i){return t+i*e}}function ui(t){return 1==(t=+t)?di:function(e,i){return i-e?function(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}(e,i,t):ci(isNaN(e)?i:e)}}function di(t,e){var i=e-t;return i?hi(t,i):ci(isNaN(t)?e:t)}const fi=function t(e){var i=ui(e);function r(t,e){var r=i((t=Ge(t)).r,(e=Ge(e)).r),n=i(t.g,e.g),o=i(t.b,e.b),a=di(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=n(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function pi(t){return function(e){var i,r,n=e.length,o=new Array(n),a=new Array(n),s=new Array(n);for(i=0;i<n;++i)r=Ge(e[i]),o[i]=r.r||0,a[i]=r.g||0,s[i]=r.b||0;return o=t(o),a=t(a),s=t(s),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=s(t),r+""}}}pi((function(t){var e=t.length-1;return function(i){var r=i<=0?i=0:i>=1?(i=1,e-1):Math.floor(i*e),n=t[r],o=t[r+1],a=r>0?t[r-1]:2*n-o,s=r<e-1?t[r+2]:2*o-n;return li((i-r/e)*e,a,n,o,s)}})),pi((function(t){var e=t.length;return function(i){var r=Math.floor(((i%=1)<0?++i:i)*e),n=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return li((i-r/e)*e,n,o,a,s)}}));var gi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mi=new RegExp(gi.source,"g");function yi(t,e){var i,r,n,o=gi.lastIndex=mi.lastIndex=0,a=-1,s=[],l=[];for(t+="",e+="";(i=gi.exec(t))&&(r=mi.exec(e));)(n=r.index)>o&&(n=e.slice(o,n),s[a]?s[a]+=n:s[++a]=n),(i=i[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:me(i,r)})),o=mi.lastIndex;return o<e.length&&(n=e.slice(o),s[a]?s[a]+=n:s[++a]=n),s.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var i,r=0;r<e;++r)s[(i=l[r]).i]=i.x(t);return s.join("")})}function xi(t,e){var i;return("number"==typeof e?me:e instanceof He?fi:(i=He(e))?(e=i,fi):yi)(t,e)}function Ci(t){return function(){this.removeAttribute(t)}}function bi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function _i(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?n:n=e(r=a,i)}}function vi(t,e,i){var r,n,o=i+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?n:n=e(r=a,i)}}function ki(t,e,i){var r,n,o;return function(){var a,s,l=i(this);if(null!=l)return(a=this.getAttribute(t))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l));this.removeAttribute(t)}}function Ti(t,e,i){var r,n,o;return function(){var a,s,l=i(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:a===r&&s===n?o:(n=s,o=e(r=a,l));this.removeAttributeNS(t.space,t.local)}}function wi(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(t,e){return function(i){this.setAttributeNS(t.space,t.local,e.call(this,i))}}(t,n)),i}return n._value=e,n}function Si(t,e){var i,r;function n(){var n=e.apply(this,arguments);return n!==r&&(i=(r=n)&&function(t,e){return function(i){this.setAttribute(t,e.call(this,i))}}(t,n)),i}return n._value=e,n}function Bi(t,e){return function(){fe(this,t).delay=+e.apply(this,arguments)}}function Fi(t,e){return e=+e,function(){fe(this,t).delay=e}}function Ai(t,e){return function(){pe(this,t).duration=+e.apply(this,arguments)}}function Li(t,e){return e=+e,function(){pe(this,t).duration=e}}var Mi=Mt.prototype.constructor;function Ei(t){return function(){this.style.removeProperty(t)}}var Zi=0;function Ni(t,e,i,r){this._groups=t,this._parents=e,this._name=i,this._id=r}function Oi(){return++Zi}var Ii=Mt.prototype;Ni.prototype=function(t){return Mt().transition(t)}.prototype={constructor:Ni,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=b(t));for(var r=this._groups,n=r.length,o=new Array(n),a=0;a<n;++a)for(var s,l,c=r[a],h=c.length,u=o[a]=new Array(h),d=0;d<h;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),u[d]=l,de(u[d],e,i,d,u,ge(s,i)));return new Ni(o,this._parents,e,i)},selectAll:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=k(t));for(var r=this._groups,n=r.length,o=[],a=[],s=0;s<n;++s)for(var l,c=r[s],h=c.length,u=0;u<h;++u)if(l=c[u]){for(var d,f=t.call(l,l.__data__,u,c),p=ge(l,i),g=0,m=f.length;g<m;++g)(d=f[g])&&de(d,e,i,g,f,p);o.push(f),a.push(l)}return new Ni(o,a,e,i)},selectChild:Ii.selectChild,selectChildren:Ii.selectChildren,filter:function(t){"function"!=typeof t&&(t=T(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n<i;++n)for(var o,a=e[n],s=a.length,l=r[n]=[],c=0;c<s;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&l.push(o);return new Ni(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,i=t._groups,r=e.length,n=i.length,o=Math.min(r,n),a=new Array(r),s=0;s<o;++s)for(var l,c=e[s],h=i[s],u=c.length,d=a[s]=new Array(u),f=0;f<u;++f)(l=c[f]||h[f])&&(d[f]=l);for(;s<r;++s)a[s]=e[s];return new Ni(a,this._parents,this._name,this._id)},selection:function(){return new Mi(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,i=Oi(),r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,c=0;c<l;++c)if(a=s[c]){var h=ge(a,e);de(a,t,i,c,s,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new Ni(r,this._parents,t,i)},call:Ii.call,nodes:Ii.nodes,node:Ii.node,size:Ii.size,empty:Ii.empty,each:Ii.each,on:function(t,e){var i=this._id;return arguments.length<2?ge(this.node(),i).on.on(t):this.each(function(t,e,i){var r,n,o=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)?fe:pe;return function(){var a=o(this,t),s=a.on;s!==r&&(n=(r=s).copy()).on(e,i),a.on=n}}(i,t,e))},attr:function(t,e){var i=D(t),r="transform"===i?ke:xi;return this.attrTween(t,"function"==typeof e?(i.local?Ti:ki)(i,r,Se(this,"attr."+t,e)):null==e?(i.local?bi:Ci)(i):(i.local?vi:_i)(i,r,e))},attrTween:function(t,e){var i="attr."+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;var r=D(t);return this.tween(i,(r.local?wi:Si)(r,e))},style:function(t,e,i){var r="transform"==(t+="")?ve:xi;return null==e?this.styleTween(t,function(t,e){var i,r,n;return function(){var o=X(this,t),a=(this.style.removeProperty(t),X(this,t));return o===a?null:o===i&&a===r?n:n=e(i=o,r=a)}}(t,r)).on("end.style."+t,Ei(t)):"function"==typeof e?this.styleTween(t,function(t,e,i){var r,n,o;return function(){var a=X(this,t),s=i(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=X(this,t)),a===l?null:a===r&&l===n?o:(n=l,o=e(r=a,s))}}(t,r,Se(this,"style."+t,e))).each(function(t,e){var i,r,n,o,a="style."+e,s="end."+a;return function(){var l=pe(this,t),c=l.on,h=null==l.value[a]?o||(o=Ei(e)):void 0;c===i&&n===h||(r=(i=c).copy()).on(s,n=h),l.on=r}}(this._id,t)):this.styleTween(t,function(t,e,i){var r,n,o=i+"";return function(){var a=X(this,t);return a===o?null:a===r?n:n=e(r=a,i)}}(t,r,e),i).on("end.style."+t,null)},styleTween:function(t,e,i){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,function(t,e,i){var r,n;function o(){var o=e.apply(this,arguments);return o!==n&&(r=(n=o)&&function(t,e,i){return function(r){this.style.setProperty(t,e.call(this,r),i)}}(t,o,i)),r}return o._value=e,o}(t,e,null==i?"":i))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Se(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,function(t){var e,i;function r(){var r=t.apply(this,arguments);return r!==i&&(e=(i=r)&&function(t){return function(e){this.textContent=t.call(this,e)}}(r)),e}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var i=this._id;if(t+="",arguments.length<2){for(var r,n=ge(this.node(),i).tween,o=0,a=n.length;o<a;++o)if((r=n[o]).name===t)return r.value;return null}return this.each((null==e?Te:we)(i,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Bi:Fi)(e,t)):ge(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ai:Li)(e,t)):ge(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){pe(this,t).ease=e}}(e,t)):ge(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var i=e.apply(this,arguments);if("function"!=typeof i)throw new Error;pe(this,t).ease=i}}(this._id,t))},end:function(){var t,e,i=this,r=i._id,n=i.size();return new Promise((function(o,a){var s={value:a},l={value:function(){0==--n&&o()}};i.each((function(){var i=pe(this,r),n=i.on;n!==t&&((e=(t=n).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),i.on=e})),0===n&&o()}))},[Symbol.iterator]:Ii[Symbol.iterator]};var ji={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function qi(t,e){for(var i;!(i=t.__transition)||!(i=i[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return i}Mt.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var i,r,n,o=t.__transition,a=!0;if(o){for(n in e=null==e?null:e+"",o)(i=o[n]).name===e?(r=i.state>se&&i.state<he,i.state=ue,i.timer.stop(),i.on.call(r?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete o[n]):a=!1;a&&delete t.__transition}}(this,t)}))},Mt.prototype.transition=function(t){var e,i;t instanceof Ni?(e=t._id,t=t._name):(e=Oi(),(i=ji).time=Gt(),t=null==t?null:t+"");for(var r=this._groups,n=r.length,o=0;o<n;++o)for(var a,s=r[o],l=s.length,c=0;c<l;++c)(a=s[c])&&de(a,t,e,c,s,i||qi(a,e));return new Ni(r,this._parents,t,e)};const{abs:Di,max:$i,min:zi}=Math;function Pi(t){return[+t[0],+t[1]]}function Ri(t){return[Pi(t[0]),Pi(t[1])]}["w","e"].map(Wi),["n","s"].map(Wi),["n","w","e","s","nw","ne","sw","se"].map(Wi);function Wi(t){return{type:t}}function Hi(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Ui(t){return(e,i)=>function(t,e){return fetch(t,e).then(Hi)}(e,i).then((e=>(new DOMParser).parseFromString(e,t)))}Ui("application/xml");Ui("text/html");var Yi=Ui("image/svg+xml");const Vi=Math.PI/180,Gi=180/Math.PI,Xi=.96422,Qi=1,Ji=.82521,Ki=4/29,tr=6/29,er=3*tr*tr,ir=tr*tr*tr;function rr(t){if(t instanceof nr)return new nr(t.l,t.a,t.b,t.opacity);if(t instanceof ur)return dr(t);t instanceof Xe||(t=Ve(t));var e,i,r=lr(t.r),n=lr(t.g),o=lr(t.b),a=or((.2225045*r+.7168786*n+.0606169*o)/Qi);return r===n&&n===o?e=i=a:(e=or((.4360747*r+.3850649*n+.1430804*o)/Xi),i=or((.0139322*r+.0971045*n+.7141733*o)/Ji)),new nr(116*a-16,500*(e-a),200*(a-i),t.opacity)}function nr(t,e,i,r){this.l=+t,this.a=+e,this.b=+i,this.opacity=+r}function or(t){return t>ir?Math.pow(t,1/3):t/er+Ki}function ar(t){return t>tr?t*t*t:er*(t-Ki)}function sr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function lr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function cr(t){if(t instanceof ur)return new ur(t.h,t.c,t.l,t.opacity);if(t instanceof nr||(t=rr(t)),0===t.a&&0===t.b)return new ur(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Gi;return new ur(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function hr(t,e,i,r){return 1===arguments.length?cr(t):new ur(t,e,i,null==r?1:r)}function ur(t,e,i,r){this.h=+t,this.c=+e,this.l=+i,this.opacity=+r}function dr(t){if(isNaN(t.h))return new nr(t.l,0,0,t.opacity);var e=t.h*Vi;return new nr(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function fr(t){return function(e,i){var r=t((e=hr(e)).h,(i=hr(i)).h),n=di(e.c,i.c),o=di(e.l,i.l),a=di(e.opacity,i.opacity);return function(t){return e.h=r(t),e.c=n(t),e.l=o(t),e.opacity=a(t),e+""}}}Be(nr,(function(t,e,i,r){return 1===arguments.length?rr(t):new nr(t,e,i,null==r?1:r)}),Fe(Ae,{brighter(t){return new nr(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new nr(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,i=isNaN(this.b)?t:t-this.b/200;return new Xe(sr(3.1338561*(e=Xi*ar(e))-1.6168667*(t=Qi*ar(t))-.4906146*(i=Ji*ar(i))),sr(-.9787684*e+1.9161415*t+.033454*i),sr(.0719453*e-.2289914*t+1.4052427*i),this.opacity)}})),Be(ur,hr,Fe(Ae,{brighter(t){return new ur(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new ur(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return dr(this).rgb()}}));const pr=fr((function(t,e){var i=e-t;return i?hi(t,i>180||i<-180?i-360*Math.round(i/360):i):ci(isNaN(t)?e:t)}));fr(di);function gr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}class mr extends Map{constructor(t,e=br){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[i,r]of t)this.set(i,r)}get(t){return super.get(yr(this,t))}has(t){return super.has(yr(this,t))}set(t,e){return super.set(xr(this,t),e)}delete(t){return super.delete(Cr(this,t))}}function yr({_intern:t,_key:e},i){const r=e(i);return t.has(r)?t.get(r):i}function xr({_intern:t,_key:e},i){const r=e(i);return t.has(r)?t.get(r):(t.set(r,i),i)}function Cr({_intern:t,_key:e},i){const r=e(i);return t.has(r)&&(i=t.get(r),t.delete(r)),i}function br(t){return null!==t&&"object"==typeof t?t.valueOf():t}const _r=Symbol("implicit");function vr(){var t=new mr,e=[],i=[],r=_r;function n(n){let o=t.get(n);if(void 0===o){if(r!==_r)return r;t.set(n,o=e.push(n)-1)}return i[o%i.length]}return n.domain=function(i){if(!arguments.length)return e.slice();e=[],t=new mr;for(const r of i)t.has(r)||t.set(r,e.push(r)-1);return n},n.range=function(t){return arguments.length?(i=Array.from(t),n):i.slice()},n.unknown=function(t){return arguments.length?(r=t,n):r},n.copy=function(){return vr(e,i).unknown(r)},gr.apply(n,arguments),n}function kr(){var t,e,i=vr().unknown(void 0),r=i.domain,n=i.range,o=0,a=1,s=!1,l=0,c=0,h=.5;function u(){var i=r().length,u=a<o,d=u?a:o,f=u?o:a;t=(f-d)/Math.max(1,i-l+2*c),s&&(t=Math.floor(t)),d+=(f-d-t*(i-l))*h,e=t*(1-l),s&&(d=Math.round(d),e=Math.round(e));var p=function(t,e,i){t=+t,e=+e,i=(n=arguments.length)<2?(e=t,t=0,1):n<3?1:+i;for(var r=-1,n=0|Math.max(0,Math.ceil((e-t)/i)),o=new Array(n);++r<n;)o[r]=t+r*i;return o}(i).map((function(e){return d+t*e}));return n(u?p.reverse():p)}return delete i.unknown,i.domain=function(t){return arguments.length?(r(t),u()):r()},i.range=function(t){return arguments.length?([o,a]=t,o=+o,a=+a,u()):[o,a]},i.rangeRound=function(t){return[o,a]=t,o=+o,a=+a,s=!0,u()},i.bandwidth=function(){return e},i.step=function(){return t},i.round=function(t){return arguments.length?(s=!!t,u()):s},i.padding=function(t){return arguments.length?(l=Math.min(1,c=+t),u()):l},i.paddingInner=function(t){return arguments.length?(l=Math.min(1,t),u()):l},i.paddingOuter=function(t){return arguments.length?(c=+t,u()):c},i.align=function(t){return arguments.length?(h=Math.max(0,Math.min(1,t)),u()):h},i.copy=function(){return kr(r(),[o,a]).round(s).paddingInner(l).paddingOuter(c).align(h)},gr.apply(u(),arguments)}const Tr=Math.sqrt(50),wr=Math.sqrt(10),Sr=Math.sqrt(2);function Br(t,e,i){const r=(e-t)/Math.max(0,i),n=Math.floor(Math.log10(r)),o=r/Math.pow(10,n),a=o>=Tr?10:o>=wr?5:o>=Sr?2:1;let s,l,c;return n<0?(c=Math.pow(10,-n)/a,s=Math.round(t*c),l=Math.round(e*c),s/c<t&&++s,l/c>e&&--l,c=-c):(c=Math.pow(10,n)*a,s=Math.round(t/c),l=Math.round(e/c),s*c<t&&++s,l*c>e&&--l),l<s&&.5<=i&&i<2?Br(t,e,2*i):[s,l,c]}function Fr(t,e,i){return Br(t=+t,e=+e,i=+i)[2]}function Ar(t,e,i){i=+i;const r=(e=+e)<(t=+t),n=r?Fr(e,t,i):Fr(t,e,i);return(r?-1:1)*(n<0?1/-n:n)}function Lr(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Mr(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Er(t){let e,i,r;function n(t,r,n=0,o=t.length){if(n<o){if(0!==e(r,r))return o;do{const e=n+o>>>1;i(t[e],r)<0?n=e+1:o=e}while(n<o)}return n}return 2!==t.length?(e=Lr,i=(e,i)=>Lr(t(e),i),r=(e,i)=>t(e)-i):(e=t===Lr||t===Mr?t:Zr,i=t,r=t),{left:n,center:function(t,e,i=0,o=t.length){const a=n(t,e,i,o-1);return a>i&&r(t[a-1],e)>-r(t[a],e)?a-1:a},right:function(t,r,n=0,o=t.length){if(n<o){if(0!==e(r,r))return o;do{const e=n+o>>>1;i(t[e],r)<=0?n=e+1:o=e}while(n<o)}return n}}}function Zr(){return 0}const Nr=Er(Lr),Or=Nr.right,Ir=(Nr.left,Er((function(t){return null===t?NaN:+t})).center,Or);function jr(t,e){var i,r=e?e.length:0,n=t?Math.min(r,t.length):0,o=new Array(n),a=new Array(r);for(i=0;i<n;++i)o[i]=zr(t[i],e[i]);for(;i<r;++i)a[i]=e[i];return function(t){for(i=0;i<n;++i)a[i]=o[i](t);return a}}function qr(t,e){var i=new Date;return t=+t,e=+e,function(r){return i.setTime(t*(1-r)+e*r),i}}function Dr(t,e){var i,r={},n={};for(i in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)i in t?r[i]=zr(t[i],e[i]):n[i]=e[i];return function(t){for(i in r)n[i]=r[i](t);return n}}function $r(t,e){e||(e=[]);var i,r=t?Math.min(e.length,t.length):0,n=e.slice();return function(o){for(i=0;i<r;++i)n[i]=t[i]*(1-o)+e[i]*o;return n}}function zr(t,e){var i,r,n=typeof e;return null==e||"boolean"===n?ci(e):("number"===n?me:"string"===n?(i=He(e))?(e=i,fi):yi:e instanceof He?fi:e instanceof Date?qr:(r=e,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(e)?jr:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Dr:me:$r))(t,e)}function Pr(t,e){return t=+t,e=+e,function(i){return Math.round(t*(1-i)+e*i)}}function Rr(t){return+t}var Wr=[0,1];function Hr(t){return t}function Ur(t,e){return(e-=t=+t)?function(i){return(i-t)/e}:(i=isNaN(e)?NaN:.5,function(){return i});var i}function Yr(t,e,i){var r=t[0],n=t[1],o=e[0],a=e[1];return n<r?(r=Ur(n,r),o=i(a,o)):(r=Ur(r,n),o=i(o,a)),function(t){return o(r(t))}}function Vr(t,e,i){var r=Math.min(t.length,e.length)-1,n=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)n[a]=Ur(t[a],t[a+1]),o[a]=i(e[a],e[a+1]);return function(e){var i=Ir(t,e,1,r)-1;return o[i](n[i](e))}}function Gr(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Xr(){var t,e,i,r,n,o,a=Wr,s=Wr,l=zr,c=Hr;function h(){var t,e,i,l=Math.min(a.length,s.length);return c!==Hr&&(t=a[0],e=a[l-1],t>e&&(i=t,t=e,e=i),c=function(i){return Math.max(t,Math.min(e,i))}),r=l>2?Vr:Yr,n=o=null,u}function u(e){return null==e||isNaN(e=+e)?i:(n||(n=r(a.map(t),s,l)))(t(c(e)))}return u.invert=function(i){return c(e((o||(o=r(s,a.map(t),me)))(i)))},u.domain=function(t){return arguments.length?(a=Array.from(t,Rr),h()):a.slice()},u.range=function(t){return arguments.length?(s=Array.from(t),h()):s.slice()},u.rangeRound=function(t){return s=Array.from(t),l=Pr,h()},u.clamp=function(t){return arguments.length?(c=!!t||Hr,h()):c!==Hr},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(i=t,u):i},function(i,r){return t=i,e=r,h()}}function Qr(){return Xr()(Hr,Hr)}var Jr,Kr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tn(t){if(!(e=Kr.exec(t)))throw new Error("invalid format: "+t);var e;return new en({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 en(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 rn(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,r=t.slice(0,i);return[r.length>1?r[0]+r.slice(2):r,+t.slice(i+1)]}function nn(t){return(t=rn(Math.abs(t)))?t[1]:NaN}function on(t,e){var i=rn(t,e);if(!i)return t+"";var r=i[0],n=i[1];return n<0?"0."+new Array(-n).join("0")+r:r.length>n+1?r.slice(0,n+1)+"."+r.slice(n+1):r+new Array(n-r.length+2).join("0")}tn.prototype=en.prototype,en.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 an={"%":(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)=>on(100*t,e),r:on,s:function(t,e){var i=rn(t,e);if(!i)return t+"";var r=i[0],n=i[1],o=n-(Jr=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+rn(t,Math.max(0,e+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sn(t){return t}var ln,cn,hn,un=Array.prototype.map,dn=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function fn(t){var e,i,r=void 0===t.grouping||void 0===t.thousands?sn:(e=un.call(t.grouping,Number),i=t.thousands+"",function(t,r){for(var n=t.length,o=[],a=0,s=e[0],l=0;n>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(t.substring(n-=s,n+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(i)}),n=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?sn:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(un.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"\u2212":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=tn(t)).fill,i=t.align,u=t.sign,d=t.symbol,f=t.zero,p=t.width,g=t.comma,m=t.precision,y=t.trim,x=t.type;"n"===x?(g=!0,x="g"):an[x]||(void 0===m&&(m=12),y=!0,x="g"),(f||"0"===e&&"="===i)&&(f=!0,e="0",i="=");var C="$"===d?n:"#"===d&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",b="$"===d?o:/[%p]/.test(x)?l:"",_=an[x],v=/[defgprs%]/.test(x);function k(t){var n,o,l,d=C,k=b;if("c"===x)k=_(t)+k,t="";else{var T=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:_(Math.abs(t),m),y&&(t=function(t){t:for(var e,i=t.length,r=1,n=-1;r<i;++r)switch(t[r]){case".":n=e=r;break;case"0":0===n&&(n=r),e=r;break;default:if(!+t[r])break t;n>0&&(n=0)}return n>0?t.slice(0,n)+t.slice(e+1):t}(t)),T&&0==+t&&"+"!==u&&(T=!1),d=(T?"("===u?u:c:"-"===u||"("===u?"":u)+d,k=("s"===x?dn[8+Jr/3]:"")+k+(T&&"("===u?")":""),v)for(n=-1,o=t.length;++n<o;)if(48>(l=t.charCodeAt(n))||l>57){k=(46===l?a+t.slice(n+1):t.slice(n))+k,t=t.slice(0,n);break}}g&&!f&&(t=r(t,1/0));var w=d.length+t.length+k.length,S=w<p?new Array(p-w+1).join(e):"";switch(g&&f&&(t=r(S+t,S.length?p-k.length:1/0),S=""),i){case"<":t=d+t+k+S;break;case"=":t=d+S+t+k;break;case"^":t=S.slice(0,w=S.length>>1)+d+t+k+S.slice(w);break;default:t=S+d+t+k}return s(t)}return m=void 0===m?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),k.toString=function(){return t+""},k}return{format:u,formatPrefix:function(t,e){var i=u(((t=tn(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(nn(e)/3))),n=Math.pow(10,-r),o=dn[8+r/3];return function(t){return i(n*t)+o}}}}function pn(t,e,i,r){var n,o=Ar(t,e,i);switch((r=tn(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(n=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(nn(e)/3)))-nn(Math.abs(t)))}(o,a))||(r.precision=n),hn(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(n=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,nn(e)-nn(t))+1}(o,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=n-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(n=function(t){return Math.max(0,-nn(Math.abs(t)))}(o))||(r.precision=n-2*("%"===r.type))}return cn(r)}function gn(t){var e=t.domain;return t.ticks=function(t){var i=e();return function(t,e,i){if(!((i=+i)>0))return[];if((t=+t)==(e=+e))return[t];const r=e<t,[n,o,a]=r?Br(e,t,i):Br(t,e,i);if(!(o>=n))return[];const s=o-n+1,l=new Array(s);if(r)if(a<0)for(let c=0;c<s;++c)l[c]=(o-c)/-a;else for(let c=0;c<s;++c)l[c]=(o-c)*a;else if(a<0)for(let c=0;c<s;++c)l[c]=(n+c)/-a;else for(let c=0;c<s;++c)l[c]=(n+c)*a;return l}(i[0],i[i.length-1],null==t?10:t)},t.tickFormat=function(t,i){var r=e();return pn(r[0],r[r.length-1],null==t?10:t,i)},t.nice=function(i){null==i&&(i=10);var r,n,o=e(),a=0,s=o.length-1,l=o[a],c=o[s],h=10;for(c<l&&(n=l,l=c,c=n,n=a,a=s,s=n);h-- >0;){if((n=Fr(l,c,i))===r)return o[a]=l,o[s]=c,e(o);if(n>0)l=Math.floor(l/n)*n,c=Math.ceil(c/n)*n;else{if(!(n<0))break;l=Math.ceil(l*n)/n,c=Math.floor(c*n)/n}r=n}return t},t}function mn(){var t=Qr();return t.copy=function(){return Gr(t,mn())},gr.apply(t,arguments),gn(t)}ln=fn({thousands:",",grouping:[3],currency:["$",""]}),cn=ln.format,hn=ln.formatPrefix;const yn=1e3,xn=6e4,Cn=36e5,bn=864e5,_n=6048e5,vn=2592e6,kn=31536e6,Tn=new Date,wn=new Date;function Sn(t,e,i,r){function n(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return n.floor=e=>(t(e=new Date(+e)),e),n.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),n.round=t=>{const e=n(t),i=n.ceil(t);return t-e<i-t?e:i},n.offset=(t,i)=>(e(t=new Date(+t),null==i?1:Math.floor(i)),t),n.range=(i,r,o)=>{const a=[];if(i=n.ceil(i),o=null==o?1:Math.floor(o),!(i<r&&o>0))return a;let s;do{a.push(s=new Date(+i)),e(i,o),t(i)}while(s<i&&i<r);return a},n.filter=i=>Sn((e=>{if(e>=e)for(;t(e),!i(e);)e.setTime(e-1)}),((t,r)=>{if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!i(t););else for(;--r>=0;)for(;e(t,1),!i(t););})),i&&(n.count=(e,r)=>(Tn.setTime(+e),wn.setTime(+r),t(Tn),t(wn),Math.floor(i(Tn,wn))),n.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?n.filter(r?e=>r(e)%t==0:e=>n.count(0,e)%t==0):n:null)),n}const Bn=Sn((()=>{}),((t,e)=>{t.setTime(+t+e)}),((t,e)=>e-t));Bn.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Sn((e=>{e.setTime(Math.floor(e/t)*t)}),((e,i)=>{e.setTime(+e+i*t)}),((e,i)=>(i-e)/t)):Bn:null);Bn.range;const Fn=Sn((t=>{t.setTime(t-t.getMilliseconds())}),((t,e)=>{t.setTime(+t+e*yn)}),((t,e)=>(e-t)/yn),(t=>t.getUTCSeconds())),An=(Fn.range,Sn((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*yn)}),((t,e)=>{t.setTime(+t+e*xn)}),((t,e)=>(e-t)/xn),(t=>t.getMinutes()))),Ln=(An.range,Sn((t=>{t.setUTCSeconds(0,0)}),((t,e)=>{t.setTime(+t+e*xn)}),((t,e)=>(e-t)/xn),(t=>t.getUTCMinutes()))),Mn=(Ln.range,Sn((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*yn-t.getMinutes()*xn)}),((t,e)=>{t.setTime(+t+e*Cn)}),((t,e)=>(e-t)/Cn),(t=>t.getHours()))),En=(Mn.range,Sn((t=>{t.setUTCMinutes(0,0,0)}),((t,e)=>{t.setTime(+t+e*Cn)}),((t,e)=>(e-t)/Cn),(t=>t.getUTCHours()))),Zn=(En.range,Sn((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*xn)/bn),(t=>t.getDate()-1))),Nn=(Zn.range,Sn((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/bn),(t=>t.getUTCDate()-1))),On=(Nn.range,Sn((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/bn),(t=>Math.floor(t/bn))));On.range;function In(t){return Sn((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())*xn)/_n))}const jn=In(0),qn=In(1),Dn=In(2),$n=In(3),zn=In(4),Pn=In(5),Rn=In(6);jn.range,qn.range,Dn.range,$n.range,zn.range,Pn.range,Rn.range;function Wn(t){return Sn((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)/_n))}const Hn=Wn(0),Un=Wn(1),Yn=Wn(2),Vn=Wn(3),Gn=Wn(4),Xn=Wn(5),Qn=Wn(6),Jn=(Hn.range,Un.range,Yn.range,Vn.range,Gn.range,Xn.range,Qn.range,Sn((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()))),Kn=(Jn.range,Sn((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()))),to=(Kn.range,Sn((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())));to.every=t=>isFinite(t=Math.floor(t))&&t>0?Sn((e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,i)=>{e.setFullYear(e.getFullYear()+i*t)})):null;to.range;const eo=Sn((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()));eo.every=t=>isFinite(t=Math.floor(t))&&t>0?Sn((e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,i)=>{e.setUTCFullYear(e.getUTCFullYear()+i*t)})):null;eo.range;function io(t,e,i,r,n,o){const a=[[Fn,1,yn],[Fn,5,5e3],[Fn,15,15e3],[Fn,30,3e4],[o,1,xn],[o,5,3e5],[o,15,9e5],[o,30,18e5],[n,1,Cn],[n,3,108e5],[n,6,216e5],[n,12,432e5],[r,1,bn],[r,2,1728e5],[i,1,_n],[e,1,vn],[e,3,7776e6],[t,1,kn]];function s(e,i,r){const n=Math.abs(i-e)/r,o=Er((([,,t])=>t)).right(a,n);if(o===a.length)return t.every(Ar(e/kn,i/kn,r));if(0===o)return Bn.every(Math.max(Ar(e,i,r),1));const[s,l]=a[n/a[o-1][2]<a[o][2]/n?o-1:o];return s.every(l)}return[function(t,e,i){const r=e<t;r&&([t,e]=[e,t]);const n=i&&"function"==typeof i.range?i:s(t,e,i),o=n?n.range(t,+e+1):[];return r?o.reverse():o},s]}const[ro,no]=io(eo,Kn,Hn,On,En,Ln),[oo,ao]=io(to,Jn,jn,Zn,Mn,An);function so(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 lo(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 co(t,e,i){return{y:t,m:e,d:i,H:0,M:0,S:0,L:0}}var ho,uo,fo={"-":"",_:" ",0:"0"},po=/^\s*\d+/,go=/^%/,mo=/[\\^$*+?|[\]().{}]/g;function yo(t,e,i){var r=t<0?"-":"",n=(r?-t:t)+"",o=n.length;return r+(o<i?new Array(i-o+1).join(e)+n:n)}function xo(t){return t.replace(mo,"\\$&")}function Co(t){return new RegExp("^(?:"+t.map(xo).join("|")+")","i")}function bo(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function _o(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.w=+r[0],i+r[0].length):-1}function vo(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.u=+r[0],i+r[0].length):-1}function ko(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.U=+r[0],i+r[0].length):-1}function To(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.V=+r[0],i+r[0].length):-1}function wo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.W=+r[0],i+r[0].length):-1}function So(t,e,i){var r=po.exec(e.slice(i,i+4));return r?(t.y=+r[0],i+r[0].length):-1}function Bo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),i+r[0].length):-1}function Fo(t,e,i){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(i,i+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),i+r[0].length):-1}function Ao(t,e,i){var r=po.exec(e.slice(i,i+1));return r?(t.q=3*r[0]-3,i+r[0].length):-1}function Lo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.m=r[0]-1,i+r[0].length):-1}function Mo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.d=+r[0],i+r[0].length):-1}function Eo(t,e,i){var r=po.exec(e.slice(i,i+3));return r?(t.m=0,t.d=+r[0],i+r[0].length):-1}function Zo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.H=+r[0],i+r[0].length):-1}function No(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.M=+r[0],i+r[0].length):-1}function Oo(t,e,i){var r=po.exec(e.slice(i,i+2));return r?(t.S=+r[0],i+r[0].length):-1}function Io(t,e,i){var r=po.exec(e.slice(i,i+3));return r?(t.L=+r[0],i+r[0].length):-1}function jo(t,e,i){var r=po.exec(e.slice(i,i+6));return r?(t.L=Math.floor(r[0]/1e3),i+r[0].length):-1}function qo(t,e,i){var r=go.exec(e.slice(i,i+1));return r?i+r[0].length:-1}function Do(t,e,i){var r=po.exec(e.slice(i));return r?(t.Q=+r[0],i+r[0].length):-1}function $o(t,e,i){var r=po.exec(e.slice(i));return r?(t.s=+r[0],i+r[0].length):-1}function zo(t,e){return yo(t.getDate(),e,2)}function Po(t,e){return yo(t.getHours(),e,2)}function Ro(t,e){return yo(t.getHours()%12||12,e,2)}function Wo(t,e){return yo(1+Zn.count(to(t),t),e,3)}function Ho(t,e){return yo(t.getMilliseconds(),e,3)}function Uo(t,e){return Ho(t,e)+"000"}function Yo(t,e){return yo(t.getMonth()+1,e,2)}function Vo(t,e){return yo(t.getMinutes(),e,2)}function Go(t,e){return yo(t.getSeconds(),e,2)}function Xo(t){var e=t.getDay();return 0===e?7:e}function Qo(t,e){return yo(jn.count(to(t)-1,t),e,2)}function Jo(t){var e=t.getDay();return e>=4||0===e?zn(t):zn.ceil(t)}function Ko(t,e){return t=Jo(t),yo(zn.count(to(t),t)+(4===to(t).getDay()),e,2)}function ta(t){return t.getDay()}function ea(t,e){return yo(qn.count(to(t)-1,t),e,2)}function ia(t,e){return yo(t.getFullYear()%100,e,2)}function ra(t,e){return yo((t=Jo(t)).getFullYear()%100,e,2)}function na(t,e){return yo(t.getFullYear()%1e4,e,4)}function oa(t,e){var i=t.getDay();return yo((t=i>=4||0===i?zn(t):zn.ceil(t)).getFullYear()%1e4,e,4)}function aa(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+yo(e/60|0,"0",2)+yo(e%60,"0",2)}function sa(t,e){return yo(t.getUTCDate(),e,2)}function la(t,e){return yo(t.getUTCHours(),e,2)}function ca(t,e){return yo(t.getUTCHours()%12||12,e,2)}function ha(t,e){return yo(1+Nn.count(eo(t),t),e,3)}function ua(t,e){return yo(t.getUTCMilliseconds(),e,3)}function da(t,e){return ua(t,e)+"000"}function fa(t,e){return yo(t.getUTCMonth()+1,e,2)}function pa(t,e){return yo(t.getUTCMinutes(),e,2)}function ga(t,e){return yo(t.getUTCSeconds(),e,2)}function ma(t){var e=t.getUTCDay();return 0===e?7:e}function ya(t,e){return yo(Hn.count(eo(t)-1,t),e,2)}function xa(t){var e=t.getUTCDay();return e>=4||0===e?Gn(t):Gn.ceil(t)}function Ca(t,e){return t=xa(t),yo(Gn.count(eo(t),t)+(4===eo(t).getUTCDay()),e,2)}function ba(t){return t.getUTCDay()}function _a(t,e){return yo(Un.count(eo(t)-1,t),e,2)}function va(t,e){return yo(t.getUTCFullYear()%100,e,2)}function ka(t,e){return yo((t=xa(t)).getUTCFullYear()%100,e,2)}function Ta(t,e){return yo(t.getUTCFullYear()%1e4,e,4)}function wa(t,e){var i=t.getUTCDay();return yo((t=i>=4||0===i?Gn(t):Gn.ceil(t)).getUTCFullYear()%1e4,e,4)}function Sa(){return"+0000"}function Ba(){return"%"}function Fa(t){return+t}function Aa(t){return Math.floor(+t/1e3)}function La(t){return new Date(t)}function Ma(t){return t instanceof Date?+t:+new Date(+t)}function Ea(t,e,i,r,n,o,a,s,l,c){var h=Qr(),u=h.invert,d=h.domain,f=c(".%L"),p=c(":%S"),g=c("%I:%M"),m=c("%I %p"),y=c("%a %d"),x=c("%b %d"),C=c("%B"),b=c("%Y");function _(t){return(l(t)<t?f:s(t)<t?p:a(t)<t?g:o(t)<t?m:r(t)<t?n(t)<t?y:x:i(t)<t?C:b)(t)}return h.invert=function(t){return new Date(u(t))},h.domain=function(t){return arguments.length?d(Array.from(t,Ma)):d().map(La)},h.ticks=function(e){var i=d();return t(i[0],i[i.length-1],null==e?10:e)},h.tickFormat=function(t,e){return null==e?_:c(e)},h.nice=function(t){var i=d();return t&&"function"==typeof t.range||(t=e(i[0],i[i.length-1],null==t?10:t)),t?d(function(t,e){var i,r=0,n=(t=t.slice()).length-1,o=t[r],a=t[n];return a<o&&(i=r,r=n,n=i,i=o,o=a,a=i),t[r]=e.floor(o),t[n]=e.ceil(a),t}(i,t)):h},h.copy=function(){return Gr(h,Ea(t,e,i,r,n,o,a,s,l,c))},h}function Za(){return gr.apply(Ea(oo,ao,to,Jn,jn,Zn,Mn,An,Fn,uo).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}!function(t){ho=function(t){var e=t.dateTime,i=t.date,r=t.time,n=t.periods,o=t.days,a=t.shortDays,s=t.months,l=t.shortMonths,c=Co(n),h=bo(n),u=Co(o),d=bo(o),f=Co(a),p=bo(a),g=Co(s),m=bo(s),y=Co(l),x=bo(l),C={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:zo,e:zo,f:Uo,g:ra,G:oa,H:Po,I:Ro,j:Wo,L:Ho,m:Yo,M:Vo,p:function(t){return n[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Fa,s:Aa,S:Go,u:Xo,U:Qo,V:Ko,w:ta,W:ea,x:null,X:null,y:ia,Y:na,Z:aa,"%":Ba},b={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:sa,e:sa,f:da,g:ka,G:wa,H:la,I:ca,j:ha,L:ua,m:fa,M:pa,p:function(t){return n[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Fa,s:Aa,S:ga,u:ma,U:ya,V:Ca,w:ba,W:_a,x:null,X:null,y:va,Y:Ta,Z:Sa,"%":Ba},_={a:function(t,e,i){var r=f.exec(e.slice(i));return r?(t.w=p.get(r[0].toLowerCase()),i+r[0].length):-1},A:function(t,e,i){var r=u.exec(e.slice(i));return r?(t.w=d.get(r[0].toLowerCase()),i+r[0].length):-1},b:function(t,e,i){var r=y.exec(e.slice(i));return r?(t.m=x.get(r[0].toLowerCase()),i+r[0].length):-1},B:function(t,e,i){var r=g.exec(e.slice(i));return r?(t.m=m.get(r[0].toLowerCase()),i+r[0].length):-1},c:function(t,i,r){return T(t,e,i,r)},d:Mo,e:Mo,f:jo,g:Bo,G:So,H:Zo,I:Zo,j:Eo,L:Io,m:Lo,M:No,p:function(t,e,i){var r=c.exec(e.slice(i));return r?(t.p=h.get(r[0].toLowerCase()),i+r[0].length):-1},q:Ao,Q:Do,s:$o,S:Oo,u:vo,U:ko,V:To,w:_o,W:wo,x:function(t,e,r){return T(t,i,e,r)},X:function(t,e,i){return T(t,r,e,i)},y:Bo,Y:So,Z:Fo,"%":qo};function v(t,e){return function(i){var r,n,o,a=[],s=-1,l=0,c=t.length;for(i instanceof Date||(i=new Date(+i));++s<c;)37===t.charCodeAt(s)&&(a.push(t.slice(l,s)),null!=(n=fo[r=t.charAt(++s)])?r=t.charAt(++s):n="e"===r?" ":"0",(o=e[r])&&(r=o(i,n)),a.push(r),l=s+1);return a.push(t.slice(l,s)),a.join("")}}function k(t,e){return function(i){var r,n,o=co(1900,void 0,1);if(T(o,t,i+="",0)!=i.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(e&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(n=(r=lo(co(o.y,0,1))).getUTCDay(),r=n>4||0===n?Un.ceil(r):Un(r),r=Nn.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(n=(r=so(co(o.y,0,1))).getDay(),r=n>4||0===n?qn.ceil(r):qn(r),r=Zn.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),n="Z"in o?lo(co(o.y,0,1)).getUTCDay():so(co(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(n+5)%7:o.w+7*o.U-(n+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,lo(o)):so(o)}}function T(t,e,i,r){for(var n,o,a=0,s=e.length,l=i.length;a<s;){if(r>=l)return-1;if(37===(n=e.charCodeAt(a++))){if(n=e.charAt(a++),!(o=_[n in fo?e.charAt(a++):n])||(r=o(t,i,r))<0)return-1}else if(n!=i.charCodeAt(r++))return-1}return r}return C.x=v(i,C),C.X=v(r,C),C.c=v(e,C),b.x=v(i,b),b.X=v(r,b),b.c=v(e,b),{format:function(t){var e=v(t+="",C);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=v(t+="",b);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}(t),uo=ho.format,ho.parse,ho.utcFormat,ho.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 Na=function(t){for(var e=t.length/6|0,i=new Array(e),r=0;r<e;)i[r]="#"+t.slice(6*r,6*++r);return i}("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");function Oa(t){return"string"==typeof t?new At([[document.querySelector(t)]],[document.documentElement]):new At([[t]],Ft)}function Ia(t){return"string"==typeof t?new At([document.querySelectorAll(t)],[document.documentElement]):new At([_(t)],Ft)}function ja(t){return function(){return t}}const qa=Math.abs,Da=Math.atan2,$a=Math.cos,za=Math.max,Pa=Math.min,Ra=Math.sin,Wa=Math.sqrt,Ha=1e-12,Ua=Math.PI,Ya=Ua/2,Va=2*Ua;function Ga(t){return t>=1?Ya:t<=-1?-Ya:Math.asin(t)}const Xa=Math.PI,Qa=2*Xa,Ja=1e-6,Ka=Qa-Ja;function ts(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=arguments[e]+t[e]}class es{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?ts:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return ts;const i=10**e;return function(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=Math.round(arguments[e]*i)/i+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,i,r){this._append`Q${+t},${+e},${this._x1=+i},${this._y1=+r}`}bezierCurveTo(t,e,i,r,n,o){this._append`C${+t},${+e},${+i},${+r},${this._x1=+n},${this._y1=+o}`}arcTo(t,e,i,r,n){if(t=+t,e=+e,i=+i,r=+r,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=this._x1,a=this._y1,s=i-t,l=r-e,c=o-t,h=a-e,u=c*c+h*h;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(u>Ja)if(Math.abs(h*s-l*c)>Ja&&n){let d=i-o,f=r-a,p=s*s+l*l,g=d*d+f*f,m=Math.sqrt(p),y=Math.sqrt(u),x=n*Math.tan((Xa-Math.acos((p+u-g)/(2*m*y)))/2),C=x/y,b=x/m;Math.abs(C-1)>Ja&&this._append`L${t+C*c},${e+C*h}`,this._append`A${n},${n},0,0,${+(h*d>c*f)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,i,r,n,o){if(t=+t,e=+e,o=!!o,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),s=i*Math.sin(r),l=t+a,c=e+s,h=1^o,u=o?r-n:n-r;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Ja||Math.abs(this._y1-c)>Ja)&&this._append`L${l},${c}`,i&&(u<0&&(u=u%Qa+Qa),u>Ka?this._append`A${i},${i},0,1,${h},${t-a},${e-s}A${i},${i},0,1,${h},${this._x1=l},${this._y1=c}`:u>Ja&&this._append`A${i},${i},0,${+(u>=Xa)},${h},${this._x1=t+i*Math.cos(n)},${this._y1=e+i*Math.sin(n)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function is(t){let e=3;return t.digits=function(i){if(!arguments.length)return e;if(null==i)e=null;else{const t=Math.floor(i);if(!(t>=0))throw new RangeError(`invalid digits: ${i}`);e=t}return t},()=>new es(e)}function rs(t){return t.innerRadius}function ns(t){return t.outerRadius}function os(t){return t.startAngle}function as(t){return t.endAngle}function ss(t){return t&&t.padAngle}function ls(t,e,i,r,n,o,a){var s=t-i,l=e-r,c=(a?o:-o)/Wa(s*s+l*l),h=c*l,u=-c*s,d=t+h,f=e+u,p=i+h,g=r+u,m=(d+p)/2,y=(f+g)/2,x=p-d,C=g-f,b=x*x+C*C,_=n-o,v=d*g-p*f,k=(C<0?-1:1)*Wa(za(0,_*_*b-v*v)),T=(v*C-x*k)/b,w=(-v*x-C*k)/b,S=(v*C+x*k)/b,B=(-v*x+C*k)/b,F=T-m,A=w-y,L=S-m,M=B-y;return F*F+A*A>L*L+M*M&&(T=S,w=B),{cx:T,cy:w,x01:-h,y01:-u,x11:T*(n/_-1),y11:w*(n/_-1)}}function cs(){var t=rs,e=ns,i=ja(0),r=null,n=os,o=as,a=ss,s=null,l=is(c);function c(){var c,h,u,d=+t.apply(this,arguments),f=+e.apply(this,arguments),p=n.apply(this,arguments)-Ya,g=o.apply(this,arguments)-Ya,m=qa(g-p),y=g>p;if(s||(s=c=l()),f<d&&(h=f,f=d,d=h),f>Ha)if(m>Va-Ha)s.moveTo(f*$a(p),f*Ra(p)),s.arc(0,0,f,p,g,!y),d>Ha&&(s.moveTo(d*$a(g),d*Ra(g)),s.arc(0,0,d,g,p,y));else{var x,C,b=p,_=g,v=p,k=g,T=m,w=m,S=a.apply(this,arguments)/2,B=S>Ha&&(r?+r.apply(this,arguments):Wa(d*d+f*f)),F=Pa(qa(f-d)/2,+i.apply(this,arguments)),A=F,L=F;if(B>Ha){var M=Ga(B/d*Ra(S)),E=Ga(B/f*Ra(S));(T-=2*M)>Ha?(v+=M*=y?1:-1,k-=M):(T=0,v=k=(p+g)/2),(w-=2*E)>Ha?(b+=E*=y?1:-1,_-=E):(w=0,b=_=(p+g)/2)}var Z=f*$a(b),N=f*Ra(b),O=d*$a(k),I=d*Ra(k);if(F>Ha){var j,q=f*$a(_),D=f*Ra(_),$=d*$a(v),z=d*Ra(v);if(m<Ua)if(j=function(t,e,i,r,n,o,a,s){var l=i-t,c=r-e,h=a-n,u=s-o,d=u*l-h*c;if(!(d*d<Ha))return[t+(d=(h*(e-o)-u*(t-n))/d)*l,e+d*c]}(Z,N,$,z,q,D,O,I)){var P=Z-j[0],R=N-j[1],W=q-j[0],H=D-j[1],U=1/Ra(((u=(P*W+R*H)/(Wa(P*P+R*R)*Wa(W*W+H*H)))>1?0:u<-1?Ua:Math.acos(u))/2),Y=Wa(j[0]*j[0]+j[1]*j[1]);A=Pa(F,(d-Y)/(U-1)),L=Pa(F,(f-Y)/(U+1))}else A=L=0}w>Ha?L>Ha?(x=ls($,z,Z,N,f,L,y),C=ls(q,D,O,I,f,L,y),s.moveTo(x.cx+x.x01,x.cy+x.y01),L<F?s.arc(x.cx,x.cy,L,Da(x.y01,x.x01),Da(C.y01,C.x01),!y):(s.arc(x.cx,x.cy,L,Da(x.y01,x.x01),Da(x.y11,x.x11),!y),s.arc(0,0,f,Da(x.cy+x.y11,x.cx+x.x11),Da(C.cy+C.y11,C.cx+C.x11),!y),s.arc(C.cx,C.cy,L,Da(C.y11,C.x11),Da(C.y01,C.x01),!y))):(s.moveTo(Z,N),s.arc(0,0,f,b,_,!y)):s.moveTo(Z,N),d>Ha&&T>Ha?A>Ha?(x=ls(O,I,q,D,d,-A,y),C=ls(Z,N,$,z,d,-A,y),s.lineTo(x.cx+x.x01,x.cy+x.y01),A<F?s.arc(x.cx,x.cy,A,Da(x.y01,x.x01),Da(C.y01,C.x01),!y):(s.arc(x.cx,x.cy,A,Da(x.y01,x.x01),Da(x.y11,x.x11),!y),s.arc(0,0,d,Da(x.cy+x.y11,x.cx+x.x11),Da(C.cy+C.y11,C.cx+C.x11),y),s.arc(C.cx,C.cy,A,Da(C.y11,C.x11),Da(C.y01,C.x01),!y))):s.arc(0,0,d,k,v,y):s.lineTo(O,I)}else s.moveTo(0,0);if(s.closePath(),c)return s=null,c+""||null}return c.centroid=function(){var i=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+n.apply(this,arguments)+ +o.apply(this,arguments))/2-Ua/2;return[$a(r)*i,Ra(r)*i]},c.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),c):t},c.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ja(+t),c):e},c.cornerRadius=function(t){return arguments.length?(i="function"==typeof t?t:ja(+t),c):i},c.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ja(+t),c):r},c.startAngle=function(t){return arguments.length?(n="function"==typeof t?t:ja(+t),c):n},c.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:ja(+t),c):o},c.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:ja(+t),c):a},c.context=function(t){return arguments.length?(s=null==t?null:t,c):s},c}es.prototype;Array.prototype.slice;function hs(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function us(t){this._context=t}function ds(t){return new us(t)}function fs(t){return t[0]}function ps(t){return t[1]}function gs(t,e){var i=ja(!0),r=null,n=ds,o=null,a=is(s);function s(s){var l,c,h,u=(s=hs(s)).length,d=!1;for(null==r&&(o=n(h=a())),l=0;l<=u;++l)!(l<u&&i(c=s[l],l,s))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+t(c,l,s),+e(c,l,s));if(h)return o=null,h+""||null}return t="function"==typeof t?t:void 0===t?fs:ja(t),e="function"==typeof e?e:void 0===e?ps:ja(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:ja(+t),s):e},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:ja(!!t),s):i},s.curve=function(t){return arguments.length?(n=t,null!=r&&(o=n(r)),s):n},s.context=function(t){return arguments.length?(null==t?r=o=null:o=n(r=t),s):r},s}function ms(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function ys(t){return t}function xs(){var t=ys,e=ms,i=null,r=ja(0),n=ja(Va),o=ja(0);function a(a){var s,l,c,h,u,d=(a=hs(a)).length,f=0,p=new Array(d),g=new Array(d),m=+r.apply(this,arguments),y=Math.min(Va,Math.max(-Va,n.apply(this,arguments)-m)),x=Math.min(Math.abs(y)/d,o.apply(this,arguments)),C=x*(y<0?-1:1);for(s=0;s<d;++s)(u=g[p[s]=s]=+t(a[s],s,a))>0&&(f+=u);for(null!=e?p.sort((function(t,i){return e(g[t],g[i])})):null!=i&&p.sort((function(t,e){return i(a[t],a[e])})),s=0,c=f?(y-d*C)/f:0;s<d;++s,m=h)l=p[s],h=m+((u=g[l])>0?u*c:0)+C,g[l]={data:a[l],index:s,value:u,startAngle:m,endAngle:h,padAngle:x};return g}return a.value=function(e){return arguments.length?(t="function"==typeof e?e:ja(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,i=null,a):e},a.sort=function(t){return arguments.length?(i=t,e=null,a):i},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:ja(+t),a):r},a.endAngle=function(t){return arguments.length?(n="function"==typeof t?t:ja(+t),a):n},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:ja(+t),a):o},a}function Cs(){}function bs(t,e,i){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+i)/6)}function _s(t){this._context=t}function vs(t){return new _s(t)}function ks(t){this._context=t}function Ts(t){return new ks(t)}function ws(t){this._context=t}function Ss(t){return new ws(t)}us.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)}}},_s.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:bs(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:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ks.prototype={areaStart:Cs,areaEnd:Cs,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:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ws.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 i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:bs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class Bs{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 Fs(t){return new Bs(t,!0)}function As(t){return new Bs(t,!1)}function Ls(t,e){this._basis=new _s(t),this._beta=e}Ls.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r,n=t[0],o=e[0],a=t[i]-n,s=e[i]-o,l=-1;++l<=i;)r=l/i,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+r*a),this._beta*e[l]+(1-this._beta)*(o+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Ms=function t(e){function i(t){return 1===e?new _s(t):new Ls(t,e)}return i.beta=function(e){return t(+e)},i}(.85);function Es(t,e,i){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-i),t._x2,t._y2)}function Zs(t,e){this._context=t,this._k=(1-e)/6}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._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Es(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:Es(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 i(t){return new Zs(t,e)}return i.tension=function(e){return t(+e)},i}(0);function Os(t,e){this._context=t,this._k=(1-e)/6}Os.prototype={areaStart:Cs,areaEnd:Cs,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:Es(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 i(t){return new Os(t,e)}return i.tension=function(e){return t(+e)},i}(0);function js(t,e){this._context=t,this._k=(1-e)/6}js.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:Es(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 qs=function t(e){function i(t){return new js(t,e)}return i.tension=function(e){return t(+e)},i}(0);function Ds(t,e,i){var r=t._x1,n=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Ha){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Ha){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-e*t._l12_2a)/h,a=(a*c+t._y1*t._l23_2a-i*t._l12_2a)/h}t._context.bezierCurveTo(r,n,o,a,t._x2,t._y2)}function $s(t,e){this._context=t,this._alpha=e}$s.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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 zs=function t(e){function i(t){return e?new $s(t,e):new Zs(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Ps(t,e){this._context=t,this._alpha=e}Ps.prototype={areaStart:Cs,areaEnd:Cs,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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 Rs=function t(e){function i(t){return e?new Ps(t,e):new Os(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Ws(t,e){this._context=t,this._alpha=e}Ws.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 i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:Ds(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 i(t){return e?new Ws(t,e):new js(t,0)}return i.alpha=function(e){return t(+e)},i}(.5);function Us(t){this._context=t}function Ys(t){return new Us(t)}function Vs(t){return t<0?-1:1}function Gs(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),a=(i-t._y1)/(n||r<0&&-0),s=(o*n+a*r)/(r+n);return(Vs(o)+Vs(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function Xs(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Qs(t,e,i){var r=t._x0,n=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,n+s*e,o-s,a-s*i,o,a)}function Js(t){this._context=t}function Ks(t){this._context=new tl(t)}function tl(t){this._context=t}function el(t){return new Js(t)}function il(t){return new Ks(t)}function rl(t){this._context=t}function nl(t){var e,i,r=t.length-1,n=new Array(r),o=new Array(r),a=new Array(r);for(n[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)n[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(n[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)i=n[e]/o[e-1],o[e]-=i,a[e]-=i*a[e-1];for(n[r-1]=a[r-1]/o[r-1],e=r-2;e>=0;--e)n[e]=(a[e]-n[e+1])/o[e];for(o[r-1]=(t[r]+n[r-1])/2,e=0;e<r-1;++e)o[e]=2*t[e+1]-n[e+1];return[n,o]}function ol(t){return new rl(t)}function al(t,e){this._context=t,this._t=e}function sl(t){return new al(t,.5)}function ll(t){return new al(t,0)}function cl(t){return new al(t,1)}function hl(t,e,i){this.k=t,this.x=e,this.y=i}Us.prototype={areaStart:Cs,areaEnd:Cs,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))}},Js.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:Qs(this,this._t0,Xs(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=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,Qs(this,Xs(this,i=Gs(this,t,e)),i);break;default:Qs(this,this._t0,i=Gs(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}},(Ks.prototype=Object.create(Js.prototype)).point=function(t,e){Js.prototype.point.call(this,e,t)},tl.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,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}},rl.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,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===i)this._context.lineTo(t[1],e[1]);else for(var r=nl(t),n=nl(e),o=0,a=1;a<i;++o,++a)this._context.bezierCurveTo(r[0][o],n[0][o],r[1][o],n[1][o],t[a],e[a]);(this._line||0!==this._line&&1===i)&&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)}},al.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 i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}}this._x=t,this._y=e}},hl.prototype={constructor:hl,scale:function(t){return 1===t?this:new hl(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new hl(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 hl(1,0,0);hl.prototype},21883:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(61691),n=i(82142);const o=class{constructor(){this.type=n.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=n.w.ALL}is(t){return this.type===t}};const a=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new o}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=n.w.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:i,l:n}=t;void 0===e&&(t.h=r.Z.channel.rgb2hsl(t,"h")),void 0===i&&(t.s=r.Z.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=r.Z.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:i,b:n}=t;void 0===e&&(t.r=r.Z.channel.hsl2rgb(t,"r")),void 0===i&&(t.g=r.Z.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=r.Z.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),r.Z.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),r.Z.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(n.w.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(n.w.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(n.w.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(n.w.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(n.w.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(n.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,i)=>{"use strict";i.d(e,{Z:()=>g});var r=i(21883),n=i(82142);const o={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(o.re);if(!e)return;const i=e[1],n=parseInt(i,16),a=i.length,s=a%4==0,l=a>4,c=l?1:17,h=l?8:4,u=s?0:-1,d=l?255:15;return r.Z.set({r:(n>>h*(u+3)&d)*c,g:(n>>h*(u+2)&d)*c,b:(n>>h*(u+1)&d)*c,a:s?(n&d)*c/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:o}=t;return o<1?`#${n.Q[Math.round(e)]}${n.Q[Math.round(i)]}${n.Q[Math.round(r)]}${n.Q[Math.round(255*o)]}`:`#${n.Q[Math.round(e)]}${n.Q[Math.round(i)]}${n.Q[Math.round(r)]}`}},a=o;var s=i(61691);const l={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(l.hueRe);if(e){const[,t,i]=e;switch(i){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 i=t.match(l.re);if(!i)return;const[,n,o,a,c,h]=i;return r.Z.set({h:l._hue2deg(n),s:s.Z.channel.clamp.s(parseFloat(o)),l:s.Z.channel.clamp.l(parseFloat(a)),a:c?s.Z.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}%, ${s.Z.lang.round(r)}%, ${n})`:`hsl(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}%, ${s.Z.lang.round(r)}%)`}},c=l,h={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=h.colors[t];if(e)return a.parse(e)},stringify:t=>{const e=a.stringify(t);for(const i in h.colors)if(h.colors[i]===e)return i}},u=h,d={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 i=t.match(d.re);if(!i)return;const[,n,o,a,l,c,h,u,f]=i;return r.Z.set({r:s.Z.channel.clamp.r(o?2.55*parseFloat(n):parseFloat(n)),g:s.Z.channel.clamp.g(l?2.55*parseFloat(a):parseFloat(a)),b:s.Z.channel.clamp.b(h?2.55*parseFloat(c):parseFloat(c)),a:u?s.Z.channel.clamp.a(f?parseFloat(u)/100:parseFloat(u)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(r)}, ${s.Z.lang.round(n)})`:`rgb(${s.Z.lang.round(e)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(r)})`}},f=d,p={format:{keyword:h,hex:a,rgb:d,rgba:d,hsl:l,hsla:l},parse:t=>{if("string"!=typeof t)return t;const e=a.parse(t)||f.parse(t)||c.parse(t)||u.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(n.w.HSL)||void 0===t.data.r?c.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?f.stringify(t):a.stringify(t)},g=p},82142:(t,e,i)=>{"use strict";i.d(e,{Q:()=>n,w:()=>o});var r=i(61691);const n={};for(let a=0;a<=255;a++)n[a]=r.Z.unit.dec2hex(a);const o={ALL:0,RGB:1,HSL:2}},26174:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(61691),n=i(71610);const o=(t,e,i)=>{const o=n.Z.parse(t),a=o[e],s=r.Z.channel.clamp[e](a+i);return a!==s&&(o[e]=s),n.Z.stringify(o)}},49807:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(61691),n=i(71610);const o=(t,e)=>{const i=n.Z.parse(t);for(const n in e)i[n]=r.Z.channel.clamp[n](e[n]);return n.Z.stringify(i)}},7201:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(26174);const n=(t,e)=>(0,r.Z)(t,"l",-e)},91619:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(61691),n=i(71610);const o=t=>{const{r:e,g:i,b:o}=n.Z.parse(t),a=.2126*r.Z.channel.toLinear(e)+.7152*r.Z.channel.toLinear(i)+.0722*r.Z.channel.toLinear(o);return r.Z.lang.round(a)},a=t=>o(t)>=.5,s=t=>!a(t)},12281:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(26174);const n=(t,e)=>(0,r.Z)(t,"l",e)},51117:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(61691),n=i(21883),o=i(71610),a=i(49807);const s=(t,e,i=0,s=1)=>{if("number"!=typeof t)return(0,a.Z)(t,{a:e});const l=n.Z.set({r:r.Z.channel.clamp.r(t),g:r.Z.channel.clamp.g(e),b:r.Z.channel.clamp.b(i),a:r.Z.channel.clamp.a(s)});return o.Z.stringify(l)}},61691:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});const r={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,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},n)=>{if(!e)return 2.55*i;t/=360,e/=100;const o=(i/=100)<.5?i*(1+e):i+e-i*e,a=2*i-o;switch(n){case"r":return 255*r.hue2rgb(a,o,t+1/3);case"g":return 255*r.hue2rgb(a,o,t);case"b":return 255*r.hue2rgb(a,o,t-1/3)}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),o=Math.min(t,e,i),a=(n+o)/2;if("l"===r)return 100*a;if(n===o)return 0;const s=n-o;if("s"===r)return 100*(a>.5?s/(2-n-o):s/(n+o));switch(n){case t:return 60*((e-i)/s+(e<i?6:0));case e:return 60*((i-t)/s+2);case i:return 60*((t-e)/s+4);default:return-1}}},n={channel:r,lang:{clamp:(t,e,i)=>e>i?Math.min(e,Math.max(i,t)):Math.min(i,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,i)=>{"use strict";i.d(e,{Z:()=>d});const r=function(){this.__data__=[],this.size=0};var n=i(79651);const o=function(t,e){for(var i=t.length;i--;)if((0,n.Z)(t[i][0],e))return i;return-1};var a=Array.prototype.splice;const s=function(t){var e=this.__data__,i=o(e,t);return!(i<0)&&(i==e.length-1?e.pop():a.call(e,i,1),--this.size,!0)};const l=function(t){var e=this.__data__,i=o(e,t);return i<0?void 0:e[i][1]};const c=function(t){return o(this.__data__,t)>-1};const h=function(t,e){var i=this.__data__,r=o(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this};function u(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=s,u.prototype.get=l,u.prototype.has=c,u.prototype.set=h;const d=u},86183:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(62508),n=i(66092);const o=(0,r.Z)(n.Z,"Map")},37834:(t,e,i)=>{"use strict";i.d(e,{Z:()=>k});const r=(0,i(62508).Z)(Object,"create");const n=function(){this.__data__=r?r(null):{},this.size=0};const o=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var a=Object.prototype.hasOwnProperty;const s=function(t){var e=this.__data__;if(r){var i=e[t];return"__lodash_hash_undefined__"===i?void 0:i}return a.call(e,t)?e[t]:void 0};var l=Object.prototype.hasOwnProperty;const c=function(t){var e=this.__data__;return r?void 0!==e[t]:l.call(e,t)};const h=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=r&&void 0===e?"__lodash_hash_undefined__":e,this};function u(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}u.prototype.clear=n,u.prototype.delete=o,u.prototype.get=s,u.prototype.has=c,u.prototype.set=h;const d=u;var f=i(67308),p=i(86183);const g=function(){this.size=0,this.__data__={hash:new d,map:new(p.Z||f.Z),string:new d}};const m=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const y=function(t,e){var i=t.__data__;return m(e)?i["string"==typeof e?"string":"hash"]:i.map};const x=function(t){var e=y(this,t).delete(t);return this.size-=e?1:0,e};const C=function(t){return y(this,t).get(t)};const b=function(t){return y(this,t).has(t)};const _=function(t,e){var i=y(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this};function v(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}v.prototype.clear=g,v.prototype.delete=x,v.prototype.get=C,v.prototype.has=b,v.prototype.set=_;const k=v},93203:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(62508),n=i(66092);const o=(0,r.Z)(n.Z,"Set")},31667:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(67308);const n=function(){this.__data__=new r.Z,this.size=0};const o=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i};const a=function(t){return this.__data__.get(t)};const s=function(t){return this.__data__.has(t)};var l=i(86183),c=i(37834);const h=function(t,e){var i=this.__data__;if(i instanceof r.Z){var n=i.__data__;if(!l.Z||n.length<199)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new c.Z(n)}return i.set(t,e),this.size=i.size,this};function u(t){var e=this.__data__=new r.Z(t);this.size=e.size}u.prototype.clear=n,u.prototype.delete=o,u.prototype.get=a,u.prototype.has=s,u.prototype.set=h;const d=u},17685:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=i(66092).Z.Symbol},84073:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=i(66092).Z.Uint8Array},87668:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});const r=function(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r};var n=i(29169),o=i(27771),a=i(77008),s=i(56009),l=i(18843),c=Object.prototype.hasOwnProperty;const h=function(t,e){var i=(0,o.Z)(t),h=!i&&(0,n.Z)(t),u=!i&&!h&&(0,a.Z)(t),d=!i&&!h&&!u&&(0,l.Z)(t),f=i||h||u||d,p=f?r(t.length,String):[],g=p.length;for(var m in t)!e&&!c.call(t,m)||f&&("length"==m||u&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||(0,s.Z)(m,g))||p.push(m);return p}},72954:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(74752),n=i(79651),o=Object.prototype.hasOwnProperty;const a=function(t,e,i){var a=t[e];o.call(t,e)&&(0,n.Z)(a,i)&&(void 0!==i||e in t)||(0,r.Z)(t,e,i)}},74752:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(77904);const n=function(t,e,i){"__proto__"==e&&r.Z?(0,r.Z)(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}},61395:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(e,i,r){for(var n=-1,o=Object(e),a=r(e),s=a.length;s--;){var l=a[t?s:++n];if(!1===i(o[l],l,o))break}return e}}()},93589:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(17685),n=Object.prototype,o=n.hasOwnProperty,a=n.toString,s=r.Z?r.Z.toStringTag:void 0;const l=function(t){var e=o.call(t,s),i=t[s];try{t[s]=void 0;var r=!0}catch(l){}var n=a.call(t);return r&&(e?t[s]=i:delete t[s]),n};var c=Object.prototype.toString;const h=function(t){return c.call(t)};var u=r.Z?r.Z.toStringTag:void 0;const d=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?l(t):h(t)}},39473:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(72764);const n=(0,i(1851).Z)(Object.keys,Object);var o=Object.prototype.hasOwnProperty;const a=function(t){if(!(0,r.Z)(t))return n(t);var e=[];for(var i in Object(t))o.call(t,i)&&"constructor"!=i&&e.push(i);return e}},69581:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var r=i(69203),n=i(81211),o=i(27227);const a=function(t,e){return(0,o.Z)((0,n.Z)(t,e,r.Z),t+"")}},21162:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(e){return t(e)}}},41884:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(84073);const n=function(t){var e=new t.constructor(t.byteLength);return new r.Z(e).set(new r.Z(t)),e}},91050:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(66092),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n?r.Z.Buffer:void 0,s=a?a.allocUnsafe:void 0;const l=function(t,e){if(e)return t.slice();var i=t.length,r=s?s(i):new t.constructor(i);return t.copy(r),r}},12701:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(41884);const n=function(t,e){var i=e?(0,r.Z)(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}},87215:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}},31899:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(72954),n=i(74752);const o=function(t,e,i,o){var a=!i;i||(i={});for(var s=-1,l=e.length;++s<l;){var c=e[s],h=o?o(i[c],t[c],c,i,t):void 0;void 0===h&&(h=t[c]),a?(0,n.Z)(i,c,h):(0,r.Z)(i,c,h)}return i}},77904:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=i(62508);const n=function(){try{var t=(0,r.Z)(Object,"defineProperty");return t({},"",{}),t}catch(e){}}()},13413:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r="object"==typeof global&&global&&global.Object===Object&&global},62508:(t,e,i)=>{"use strict";i.d(e,{Z:()=>x});var r=i(73234);const n=i(66092).Z["__core-js_shared__"];var o,a=(o=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";const s=function(t){return!!a&&a in t};var l=i(77226),c=i(90019),h=/^\[object .+?Constructor\]$/,u=Function.prototype,d=Object.prototype,f=u.toString,p=d.hasOwnProperty,g=RegExp("^"+f.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const m=function(t){return!(!(0,l.Z)(t)||s(t))&&((0,r.Z)(t)?g:h).test((0,c.Z)(t))};const y=function(t,e){return null==t?void 0:t[e]};const x=function(t,e){var i=y(t,e);return m(i)?i:void 0}},12513:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=(0,i(1851).Z)(Object.getPrototypeOf,Object)},83970:(t,e,i)=>{"use strict";i.d(e,{Z:()=>k});var r=i(62508),n=i(66092);const o=(0,r.Z)(n.Z,"DataView");var a=i(86183);const s=(0,r.Z)(n.Z,"Promise");var l=i(93203);const c=(0,r.Z)(n.Z,"WeakMap");var h=i(93589),u=i(90019),d="[object Map]",f="[object Promise]",p="[object Set]",g="[object WeakMap]",m="[object DataView]",y=(0,u.Z)(o),x=(0,u.Z)(a.Z),C=(0,u.Z)(s),b=(0,u.Z)(l.Z),_=(0,u.Z)(c),v=h.Z;(o&&v(new o(new ArrayBuffer(1)))!=m||a.Z&&v(new a.Z)!=d||s&&v(s.resolve())!=f||l.Z&&v(new l.Z)!=p||c&&v(new c)!=g)&&(v=function(t){var e=(0,h.Z)(t),i="[object Object]"==e?t.constructor:void 0,r=i?(0,u.Z)(i):"";if(r)switch(r){case y:return m;case x:return d;case C:return f;case b:return p;case _:return g}return e});const k=v},73658:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(77226),n=Object.create;const o=function(){function t(){}return function(e){if(!(0,r.Z)(e))return{};if(n)return n(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();var a=i(12513),s=i(72764);const l=function(t){return"function"!=typeof t.constructor||(0,s.Z)(t)?{}:o((0,a.Z)(t))}},56009:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=/^(?:0|[1-9]\d*)$/;const n=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t<e}},50439:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(79651),n=i(50585),o=i(56009),a=i(77226);const s=function(t,e,i){if(!(0,a.Z)(i))return!1;var s=typeof e;return!!("number"==s?(0,n.Z)(i)&&(0,o.Z)(e,i.length):"string"==s&&e in i)&&(0,r.Z)(i[e],t)}},72764:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=Object.prototype;const n=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}},98351:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var r=i(13413),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===n&&r.Z.process;const s=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(e){}}()},1851:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){return function(i){return t(e(i))}}},81211:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});const r=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)};var n=Math.max;const o=function(t,e,i){return e=n(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,s=n(o.length-e,0),l=Array(s);++a<s;)l[a]=o[e+a];a=-1;for(var c=Array(e+1);++a<e;)c[a]=o[a];return c[e]=i(l),r(t,this,c)}}},66092:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(13413),n="object"==typeof self&&self&&self.Object===Object&&self;const o=r.Z||n||Function("return this")()},27227:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(62002),n=i(77904),o=i(69203);const a=n.Z?function(t,e){return(0,n.Z)(t,"toString",{configurable:!0,enumerable:!1,value:(0,r.Z)(e),writable:!0})}:o.Z;var s=Date.now;const l=function(t){var e=0,i=0;return function(){var r=s(),n=16-(r-i);if(i=r,n>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(a)},90019:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});var r=Function.prototype.toString;const n=function(t){if(null!=t){try{return r.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},62002:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return function(){return t}}},79651:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t,e){return t===e||t!=t&&e!=e}},69203:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return t}},29169:(t,e,i)=>{"use strict";i.d(e,{Z:()=>c});var r=i(93589),n=i(18533);const o=function(t){return(0,n.Z)(t)&&"[object Arguments]"==(0,r.Z)(t)};var a=Object.prototype,s=a.hasOwnProperty,l=a.propertyIsEnumerable;const c=o(function(){return arguments}())?o:function(t){return(0,n.Z)(t)&&s.call(t,"callee")&&!l.call(t,"callee")}},27771:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=Array.isArray},50585:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(73234),n=i(1656);const o=function(t){return null!=t&&(0,n.Z)(t.length)&&!(0,r.Z)(t)}},836:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(50585),n=i(18533);const o=function(t){return(0,n.Z)(t)&&(0,r.Z)(t)}},77008:(t,e,i)=>{"use strict";i.d(e,{Z:()=>l});var r=i(66092);const n=function(){return!1};var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&"object"==typeof module&&module&&!module.nodeType&&module,s=a&&a.exports===o?r.Z.Buffer:void 0;const l=(s?s.isBuffer:void 0)||n},79697:(t,e,i)=>{"use strict";i.d(e,{Z:()=>d});var r=i(39473),n=i(83970),o=i(29169),a=i(27771),s=i(50585),l=i(77008),c=i(72764),h=i(18843),u=Object.prototype.hasOwnProperty;const d=function(t){if(null==t)return!0;if((0,s.Z)(t)&&((0,a.Z)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.Z)(t)||(0,h.Z)(t)||(0,o.Z)(t)))return!t.length;var e=(0,n.Z)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,c.Z)(t))return!(0,r.Z)(t).length;for(var i in t)if(u.call(t,i))return!1;return!0}},73234:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(93589),n=i(77226);const o=function(t){if(!(0,n.Z)(t))return!1;var e=(0,r.Z)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1656:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},77226:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},18533:(t,e,i)=>{"use strict";i.d(e,{Z:()=>r});const r=function(t){return null!=t&&"object"==typeof t}},37514:(t,e,i)=>{"use strict";i.d(e,{Z:()=>u});var r=i(93589),n=i(12513),o=i(18533),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,h=l.call(Object);const u=function(t){if(!(0,o.Z)(t)||"[object Object]"!=(0,r.Z)(t))return!1;var e=(0,n.Z)(t);if(null===e)return!0;var i=c.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&l.call(i)==h}},18843:(t,e,i)=>{"use strict";i.d(e,{Z:()=>u});var r=i(93589),n=i(1656),o=i(18533),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1;const s=function(t){return(0,o.Z)(t)&&(0,n.Z)(t.length)&&!!a[(0,r.Z)(t)]};var l=i(21162),c=i(98351),h=c.Z&&c.Z.isTypedArray;const u=h?(0,l.Z)(h):s},32957:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var r=i(87668),n=i(77226),o=i(72764);const a=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e};var s=Object.prototype.hasOwnProperty;const l=function(t){if(!(0,n.Z)(t))return a(t);var e=(0,o.Z)(t),i=[];for(var r in t)("constructor"!=r||!e&&s.call(t,r))&&i.push(r);return i};var c=i(50585);const h=function(t){return(0,c.Z)(t)?(0,r.Z)(t,!0):l(t)}},42454:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var r=i(37834);function n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var r=arguments,n=e?e.apply(this,r):r[0],o=i.cache;if(o.has(n))return o.get(n);var a=t.apply(this,r);return i.cache=o.set(n,a)||o,a};return i.cache=new(n.Cache||r.Z),i}n.Cache=r.Z;const o=n},59236:(t,e,i)=>{"use strict";i.d(e,{Z:()=>F});var r=i(31667),n=i(74752),o=i(79651);const a=function(t,e,i){(void 0!==i&&!(0,o.Z)(t[e],i)||void 0===i&&!(e in t))&&(0,n.Z)(t,e,i)};var s=i(61395),l=i(91050),c=i(12701),h=i(87215),u=i(73658),d=i(29169),f=i(27771),p=i(836),g=i(77008),m=i(73234),y=i(77226),x=i(37514),C=i(18843);const b=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var _=i(31899),v=i(32957);const k=function(t){return(0,_.Z)(t,(0,v.Z)(t))};const T=function(t,e,i,r,n,o,s){var _=b(t,i),v=b(e,i),T=s.get(v);if(T)a(t,i,T);else{var w=o?o(_,v,i+"",t,e,s):void 0,S=void 0===w;if(S){var B=(0,f.Z)(v),F=!B&&(0,g.Z)(v),A=!B&&!F&&(0,C.Z)(v);w=v,B||F||A?(0,f.Z)(_)?w=_:(0,p.Z)(_)?w=(0,h.Z)(_):F?(S=!1,w=(0,l.Z)(v,!0)):A?(S=!1,w=(0,c.Z)(v,!0)):w=[]:(0,x.Z)(v)||(0,d.Z)(v)?(w=_,(0,d.Z)(_)?w=k(_):(0,y.Z)(_)&&!(0,m.Z)(_)||(w=(0,u.Z)(v))):S=!1}S&&(s.set(v,w),n(w,v,r,o,s),s.delete(v)),a(t,i,w)}};const w=function t(e,i,n,o,l){e!==i&&(0,s.Z)(i,(function(s,c){if(l||(l=new r.Z),(0,y.Z)(s))T(e,i,c,n,t,o,l);else{var h=o?o(b(e,c),s,c+"",e,i,l):void 0;void 0===h&&(h=s),a(e,c,h)}}),v.Z)};var S=i(69581),B=i(50439);const F=function(t){return(0,S.Z)((function(e,i){var r=-1,n=i.length,o=n>1?i[n-1]:void 0,a=n>2?i[2]:void 0;for(o=t.length>3&&"function"==typeof o?(n--,o):void 0,a&&(0,B.Z)(i[0],i[1],a)&&(o=n<3?void 0:o,n=1),e=Object(e);++r<n;){var s=i[r];s&&t(e,s,r,o)}return e}))}((function(t,e,i){w(t,e,i)}))},85322:(t,e,i)=>{"use strict";i.d(e,{A:()=>It,B:()=>me,C:()=>ge,D:()=>Ft,E:()=>Be,F:()=>er,G:()=>oe,H:()=>ht,I:()=>Mi,J:()=>Dn,K:()=>Si,L:()=>to,Z:()=>Gt,a:()=>ki,b:()=>vi,c:()=>Ai,d:()=>ft,e:()=>_t,f:()=>Vt,g:()=>_i,h:()=>ue,i:()=>ui,j:()=>he,k:()=>re,l:()=>st,m:()=>mt,n:()=>Kt,o:()=>di,p:()=>Li,q:()=>Ti,r:()=>wi,s:()=>bi,t:()=>Ci,u:()=>ye,v:()=>yt,w:()=>le,x:()=>ae,y:()=>Zi,z:()=>qi});var r=i(18464),n=i(27484),o=i(17967),a=i(64218),s=i(27856),l=i(71610),c=i(49807);const h=(t,e)=>{const i=l.Z.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return(0,c.Z)(t,r)};var u=i(51117);const d=(t,e,i=50)=>{const{r:r,g:n,b:o,a:a}=l.Z.parse(t),{r:s,g:c,b:h,a:d}=l.Z.parse(e),f=i/100,p=2*f-1,g=a-d,m=((p*g==-1?p:(p+g)/(1+p*g))+1)/2,y=1-m,x=r*m+s*y,C=n*m+c*y,b=o*m+h*y,_=a*f+d*(1-f);return(0,u.Z)(x,C,b,_)},f=(t,e=100)=>{const i=l.Z.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,d(i,t,e)};var p=i(7201),g=i(12281),m=i(91619),y=i(42454),x=i(59236),C="comm",b="rule",_="decl",v=Math.abs,k=String.fromCharCode;Object.assign;function T(t){return t.trim()}function w(t,e,i){return t.replace(e,i)}function S(t,e){return t.indexOf(e)}function B(t,e){return 0|t.charCodeAt(e)}function F(t,e,i){return t.slice(e,i)}function A(t){return t.length}function L(t,e){return e.push(t),t}function M(t,e){for(var i="",r=0;r<t.length;r++)i+=e(t[r],r,t,e)||"";return i}function E(t,e,i,r){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case _:return t.return=t.return||t.value;case C:return"";case"@keyframes":return t.return=t.value+"{"+M(t.children,r)+"}";case b:if(!A(t.value=t.props.join(",")))return""}return A(i=M(t.children,r))?t.return=t.value+"{"+i+"}":""}var Z=1,N=1,O=0,I=0,j=0,q="";function D(t,e,i,r,n,o,a,s){return{value:t,root:e,parent:i,type:r,props:n,children:o,line:Z,column:N,length:a,return:"",siblings:s}}function $(){return j=I>0?B(q,--I):0,N--,10===j&&(N=1,Z--),j}function z(){return j=I<O?B(q,I++):0,N++,10===j&&(N=1,Z++),j}function P(){return B(q,I)}function R(){return I}function W(t,e){return F(q,t,e)}function H(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 U(t){return Z=N=1,O=A(q=t),I=0,[]}function Y(t){return q="",t}function V(t){return T(W(I-1,Q(91===t?t+2:40===t?t+1:t)))}function G(t){for(;(j=P())&&j<33;)z();return H(t)>2||H(j)>3?"":" "}function X(t,e){for(;--e&&z()&&!(j<48||j>102||j>57&&j<65||j>70&&j<97););return W(t,R()+(e<6&&32==P()&&32==z()))}function Q(t){for(;z();)switch(j){case t:return I;case 34:case 39:34!==t&&39!==t&&Q(j);break;case 40:41===t&&Q(t);break;case 92:z()}return I}function J(t,e){for(;z()&&t+j!==57&&(t+j!==84||47!==P()););return"/*"+W(e,I-1)+"*"+k(47===t?t:z())}function K(t){for(;!H(P());)z();return W(t,I)}function tt(t){return Y(et("",null,null,null,[""],t=U(t),0,[0],t))}function et(t,e,i,r,n,o,a,s,l){for(var c=0,h=0,u=a,d=0,f=0,p=0,g=1,m=1,y=1,x=0,C="",b=n,_=o,v=r,T=C;m;)switch(p=x,x=z()){case 40:if(108!=p&&58==B(T,u-1)){-1!=S(T+=w(V(x),"&","&\f"),"&\f")&&(y=-1);break}case 34:case 39:case 91:T+=V(x);break;case 9:case 10:case 13:case 32:T+=G(p);break;case 92:T+=X(R()-1,7);continue;case 47:switch(P()){case 42:case 47:L(rt(J(z(),R()),e,i,l),l);break;default:T+="/"}break;case 123*g:s[c++]=A(T)*y;case 125*g:case 59:case 0:switch(x){case 0:case 125:m=0;case 59+h:-1==y&&(T=w(T,/\f/g,"")),f>0&&A(T)-u&&L(f>32?nt(T+";",r,i,u-1,l):nt(w(T," ","")+";",r,i,u-2,l),l);break;case 59:T+=";";default:if(L(v=it(T,e,i,c,h,n,s,C,b=[],_=[],u,o),o),123===x)if(0===h)et(T,e,v,v,b,o,u,s,_);else switch(99===d&&110===B(T,3)?100:d){case 100:case 108:case 109:case 115:et(t,v,v,r&&L(it(t,v,v,0,0,n,s,C,n,b=[],u,_),_),n,_,u,s,r?b:_);break;default:et(T,v,v,v,[""],_,0,s,_)}}c=h=f=0,g=y=1,C=T="",u=a;break;case 58:u=1+A(T),f=p;default:if(g<1)if(123==x)--g;else if(125==x&&0==g++&&125==$())continue;switch(T+=k(x),x*g){case 38:y=h>0?1:(T+="\f",-1);break;case 44:s[c++]=(A(T)-1)*y,y=1;break;case 64:45===P()&&(T+=V(z())),d=P(),h=u=A(C=T+=K(R())),x++;break;case 45:45===p&&2==A(T)&&(g=0)}}return o}function it(t,e,i,r,n,o,a,s,l,c,h,u){for(var d=n-1,f=0===n?o:[""],p=function(t){return t.length}(f),g=0,m=0,y=0;g<r;++g)for(var x=0,C=F(t,d+1,d=v(m=a[g])),_=t;x<p;++x)(_=T(m>0?f[x]+" "+C:w(C,/&\f/g,f[x])))&&(l[y++]=_);return D(t,e,i,0===n?b:s,l,c,h,u)}function rt(t,e,i,r){return D(t,e,i,C,k(j),F(t,2,-2),0,r)}function nt(t,e,i,r,n){return D(t,e,i,_,F(t,0,r),F(t,r+1,-1),r,n)}var ot=i(79697);const at={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},st={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},lt=function(t="fatal"){let e=at.fatal;"string"==typeof t?(t=t.toLowerCase())in at&&(e=at[t]):"number"==typeof t&&(e=t),st.trace=()=>{},st.debug=()=>{},st.info=()=>{},st.warn=()=>{},st.error=()=>{},st.fatal=()=>{},e<=at.fatal&&(st.fatal=console.error?console.error.bind(console,ct("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",ct("FATAL"))),e<=at.error&&(st.error=console.error?console.error.bind(console,ct("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",ct("ERROR"))),e<=at.warn&&(st.warn=console.warn?console.warn.bind(console,ct("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",ct("WARN"))),e<=at.info&&(st.info=console.info?console.info.bind(console,ct("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",ct("INFO"))),e<=at.debug&&(st.debug=console.debug?console.debug.bind(console,ct("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",ct("DEBUG"))),e<=at.trace&&(st.trace=console.debug?console.debug.bind(console,ct("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",ct("TRACE")))},ct=t=>`%c${n().format("ss.SSS")} : ${t} : `,ht=/<br\s*\/?>/gi,ut=t=>s.sanitize(t),dt=(t,e)=>{var i;if(!1!==(null==(i=e.flowchart)?void 0:i.htmlLabels)){const i=e.securityLevel;"antiscript"===i||"strict"===i?t=ut(t):"loose"!==i&&(t=(t=(t=gt(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=pt(t))}return t},ft=(t,e)=>t?t=e.dompurifyConfig?s.sanitize(dt(t,e),e.dompurifyConfig).toString():s.sanitize(dt(t,e),{FORBID_TAGS:["style"]}).toString():t,pt=t=>t.replace(/#br#/g,"<br/>"),gt=t=>t.replace(ht,"#br#"),mt=t=>!1!==t&&!["false","null","0"].includes(String(t).trim().toLowerCase()),yt=function(t){const e=t.split(/(,)/),i=[];for(let r=0;r<e.length;r++){let t=e[r];if(","===t&&r>0&&r+1<e.length){const n=e[r-1],o=e[r+1];Ct(n,o)&&(t=n+","+o,r++,i.pop())}i.push(bt(t))}return i.join("")},xt=(t,e)=>Math.max(0,t.split(e).length-1),Ct=(t,e)=>{const i=xt(t,"~"),r=xt(e,"~");return 1===i&&1===r},bt=t=>{const e=xt(t,"~");let i=!1;if(e<=1)return t;e%2!=0&&t.startsWith("~")&&(t=t.substring(1),i=!0);const r=[...t];let n=r.indexOf("~"),o=r.lastIndexOf("~");for(;-1!==n&&-1!==o&&n!==o;)r[n]="<",r[o]=">",n=r.indexOf("~"),o=r.lastIndexOf("~");return i&&r.unshift("~"),r.join("")},_t={getRows:t=>{if(!t)return[""];return gt(t).replace(/\\n/g,"#br#").split("#br#")},sanitizeText:ft,sanitizeTextOrArray:(t,e)=>"string"==typeof t?ft(t,e):t.flat().map((t=>ft(t,e))),hasBreaks:t=>ht.test(t),splitBreaks:t=>t.split(ht),lineBreakRegex:ht,removeScript:ut,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:mt,getMax:function(...t){const e=t.filter((t=>!isNaN(t)));return Math.max(...e)},getMin:function(...t){const e=t.filter((t=>!isNaN(t)));return Math.min(...e)}},vt=(t,e)=>h(t,e?{s:-40,l:10}:{s:-40,l:-10}),kt="#ffffff",Tt="#f2f2f2";let wt=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(){var t,e,i,r,n,o,a,s,l,c,u;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||h(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||h(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||vt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||vt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||f(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||f(this.tertiaryColor),this.lineColor=this.lineColor||f(this.background),this.arrowheadColor=this.arrowheadColor||f(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,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,p.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,p.Z)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||f(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,g.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||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.darkMode)for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],75);else for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],25);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this.darkMode?this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10):this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;const d=this.darkMode?-4:-1;for(let f=0;f<5;f++)this["surface"+f]=this["surface"+f]||h(this.mainBkg,{h:180,s:-15,l:d*(5+3*f)}),this["surfacePeer"+f]=this["surfacePeer"+f]||h(this.mainBkg,{h:180,s:-15,l:d*(8+3*f)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||h(this.primaryColor,{h:64}),this.fillType3=this.fillType3||h(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||h(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||h(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||h(this.primaryColor,{h:128}),this.fillType7=this.fillType7||h(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||h(this.primaryColor,{l:-10}),this.pie5=this.pie5||h(this.secondaryColor,{l:-10}),this.pie6=this.pie6||h(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||h(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,p.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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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]}))}};let St=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,g.Z)(this.primaryColor,16),this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=f(this.background),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,g.Z)(f("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=(0,u.Z)(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,p.Z)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,p.Z)(this.sectionBkgColor,10),this.taskBorderColor=(0,u.Z)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,u.Z)(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.secondBkg=(0,g.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,g.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,g.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(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||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330});for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10);for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,s:-30,l:-(4*d-10)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,s:-30,l:-(4*d-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["pie"+h]=this["cScale"+h];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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"},this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,p.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,g.Z)(this.secondaryColor,20),this.git1=(0,g.Z)(this.pie2||this.secondaryColor,20),this.git2=(0,g.Z)(this.pie3||this.tertiaryColor,20),this.git3=(0,g.Z)(this.pie4||h(this.primaryColor,{h:-30}),20),this.git4=(0,g.Z)(this.pie5||h(this.primaryColor,{h:-60}),20),this.git5=(0,g.Z)(this.pie6||h(this.primaryColor,{h:-90}),10),this.git6=(0,g.Z)(this.pie7||h(this.primaryColor,{h:60}),10),this.git7=(0,g.Z)(this.pie8||h(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||(0,g.Z)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,g.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]}))}};let Bt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=h(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(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=(0,u.Z)(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,p.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,p.Z)(this.tertiaryColor,40);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],10),this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||h(this["cScale"+d],{h:180});for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,l:-(7+5*d)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||f(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||f(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,g.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||h(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||h(this.primaryColor,{l:-10}),this.pie5=this.pie5||h(this.secondaryColor,{l:-30}),this.pie6=this.pie6||h(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||h(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||(0,p.Z)(f(this.git0),25),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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 Ft=t=>{const e=new Bt;return e.calculate(t),e};let At=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,g.Z)("#cde498",10),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.primaryColor),this.lineColor=f(this.background),this.textColor=f(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.actorBorder=(0,p.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.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||h(this.primaryColor,{h:30}),this.cScale4=this.cScale4||h(this.primaryColor,{h:60}),this.cScale5=this.cScale5||h(this.primaryColor,{h:90}),this.cScale6=this.cScale6||h(this.primaryColor,{h:120}),this.cScale7=this.cScale7||h(this.primaryColor,{h:150}),this.cScale8=this.cScale8||h(this.primaryColor,{h:210}),this.cScale9=this.cScale9||h(this.primaryColor,{h:270}),this.cScale10=this.cScale10||h(this.primaryColor,{h:300}),this.cScale11=this.cScale11||h(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,p.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,p.Z)(this.tertiaryColor,40);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScale"+h]=(0,p.Z)(this["cScale"+h],10),this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],25);for(let d=0;d<this.THEME_COLOR_LIMIT;d++)this["cScaleInv"+d]=this["cScaleInv"+d]||h(this["cScale"+d],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{h:30,s:-30,l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{h:30,s:-30,l:-(8+5*d)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(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||h(this.primaryColor,{l:-30}),this.pie5=this.pie5||h(this.secondaryColor,{l:-30}),this.pie6=this.pie6||h(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||h(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||h(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||h(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||h(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||h(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||h(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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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||h(this.primaryColor,{h:-30}),this.git4=this.git4||h(this.primaryColor,{h:-60}),this.git5=this.git5||h(this.primaryColor,{h:-90}),this.git6=this.git6||h(this.primaryColor,{h:60}),this.git7=this.git7||h(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,g.Z)(this.git0,25),this.git1=(0,g.Z)(this.git1,25),this.git2=(0,g.Z)(this.git2,25),this.git3=(0,g.Z)(this.git3,25),this.git4=(0,g.Z)(this.git4,25),this.git5=(0,g.Z)(this.git5,25),this.git6=(0,g.Z)(this.git6,25),this.git7=(0,g.Z)(this.git7,25)):(this.git0=(0,p.Z)(this.git0,25),this.git1=(0,p.Z)(this.git1,25),this.git2=(0,p.Z)(this.git2,25),this.git3=(0,p.Z)(this.git3,25),this.git4=(0,p.Z)(this.git4,25),this.git5=(0,p.Z)(this.git5,25),this.git6=(0,p.Z)(this.git6,25),this.git7=(0,p.Z)(this.git7,25)),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||f(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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]}))}};class Lt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,g.Z)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=h(this.primaryColor,{h:-160}),this.primaryBorderColor=vt(this.primaryColor,this.darkMode),this.secondaryBorderColor=vt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=vt(this.tertiaryColor,this.darkMode),this.primaryTextColor=f(this.primaryColor),this.secondaryTextColor=f(this.secondaryColor),this.tertiaryTextColor=f(this.tertiaryColor),this.lineColor=f(this.background),this.textColor=f(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=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,e,i,r,n,o,a,s,l,c,u;this.secondBkg=(0,g.Z)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,g.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.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 h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleInv"+h]=this["cScaleInv"+h]||f(this["cScale"+h]);for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this.darkMode?this["cScalePeer"+h]=this["cScalePeer"+h]||(0,g.Z)(this["cScale"+h],10):this["cScalePeer"+h]=this["cScalePeer"+h]||(0,p.Z)(this["cScale"+h],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["cScaleLabel"+h]=this["cScaleLabel"+h]||this.scaleLabelColor;for(let d=0;d<5;d++)this["surface"+d]=this["surface"+d]||h(this.mainBkg,{l:-(5+5*d)}),this["surfacePeer"+d]=this["surfacePeer"+d]||h(this.mainBkg,{l:-(8+5*d)});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.sectionBkgColor=(0,g.Z)(this.contrast,30),this.sectionBkgColor2=(0,g.Z)(this.contrast,30),this.taskBorderColor=(0,p.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,g.Z)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,p.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=h(this.primaryColor,{h:64}),this.fillType3=h(this.secondaryColor,{h:64}),this.fillType4=h(this.primaryColor,{h:-64}),this.fillType5=h(this.secondaryColor,{h:-64}),this.fillType6=h(this.primaryColor,{h:128}),this.fillType7=h(this.secondaryColor,{h:128});for(let h=0;h<this.THEME_COLOR_LIMIT;h++)this["pie"+h]=this["cScale"+h];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.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||h(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||h(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||h(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||h(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||h(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||h(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||(0,m.Z)(this.quadrant1Fill)?(0,g.Z)(this.quadrant1Fill):(0,p.Z)(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:(null==(t=this.xyChart)?void 0:t.backgroundColor)||this.background,titleColor:(null==(e=this.xyChart)?void 0:e.titleColor)||this.primaryTextColor,xAxisTitleColor:(null==(i=this.xyChart)?void 0:i.xAxisTitleColor)||this.primaryTextColor,xAxisLabelColor:(null==(r=this.xyChart)?void 0:r.xAxisLabelColor)||this.primaryTextColor,xAxisTickColor:(null==(n=this.xyChart)?void 0:n.xAxisTickColor)||this.primaryTextColor,xAxisLineColor:(null==(o=this.xyChart)?void 0:o.xAxisLineColor)||this.primaryTextColor,yAxisTitleColor:(null==(a=this.xyChart)?void 0:a.yAxisTitleColor)||this.primaryTextColor,yAxisLabelColor:(null==(s=this.xyChart)?void 0:s.yAxisLabelColor)||this.primaryTextColor,yAxisTickColor:(null==(l=this.xyChart)?void 0:l.yAxisTickColor)||this.primaryTextColor,yAxisLineColor:(null==(c=this.xyChart)?void 0:c.yAxisLineColor)||this.primaryTextColor,plotColorPalette:(null==(u=this.xyChart)?void 0:u.plotColorPalette)||"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",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,p.Z)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||h(this.primaryColor,{h:-30}),this.git4=this.pie5||h(this.primaryColor,{h:-60}),this.git5=this.pie6||h(this.primaryColor,{h:-90}),this.git6=this.pie7||h(this.primaryColor,{h:60}),this.git7=this.pie8||h(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||f(this.git0),this.gitInv1=this.gitInv1||f(this.git1),this.gitInv2=this.gitInv2||f(this.git2),this.gitInv3=this.gitInv3||f(this.git3),this.gitInv4=this.gitInv4||f(this.git4),this.gitInv5=this.gitInv5||f(this.git5),this.gitInv6=this.gitInv6||f(this.git6),this.gitInv7=this.gitInv7||f(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||kt,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Tt}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 Mt={base:{getThemeVariables:t=>{const e=new wt;return e.calculate(t),e}},dark:{getThemeVariables:t=>{const e=new St;return e.calculate(t),e}},default:{getThemeVariables:Ft},forest:{getThemeVariables:t=>{const e=new At;return e.calculate(t),e}},neutral:{getThemeVariables:t=>{const e=new Lt;return e.calculate(t),e}}},Et={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,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,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},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,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"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,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,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{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},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,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},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,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,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"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",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,fontSize:16},Zt={...Et,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Mt.default.getThemeVariables(),sequence:{...Et.sequence,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:{...Et.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Et.c4,useWidth:void 0,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}}},pie:{...Et.pie,useWidth:984},xyChart:{...Et.xyChart,useWidth:void 0},requirement:{...Et.requirement,useWidth:void 0},gitGraph:{...Et.gitGraph,useMaxWidth:!1},sankey:{...Et.sankey,useMaxWidth:!1}},Nt=(t,e="")=>Object.keys(t).reduce(((i,r)=>Array.isArray(t[r])?i:"object"==typeof t[r]&&null!==t[r]?[...i,e+r,...Nt(t[r],"")]:[...i,e+r]),[]),Ot=new Set(Nt(Zt,"")),It=Zt,jt=t=>{if(st.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t)if(Array.isArray(t))t.forEach((t=>jt(t)));else{for(const e of Object.keys(t)){if(st.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Ot.has(e)||null==t[e]){st.debug("sanitize deleting key: ",e),delete t[e];continue}if("object"==typeof t[e]){st.debug("sanitizing object",e),jt(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(st.debug("sanitizing css option",e),t[e]=qt(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];(null==i?void 0:i.match)&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}st.debug("After sanitization",t)}},qt=t=>{let e=0,i=0;for(const r of t){if(e<i)return"{ /* ERROR: Unbalanced CSS */ }";"{"===r?e++:"}"===r&&i++}return e!==i?"{ /* ERROR: Unbalanced CSS */ }":t},Dt=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,$t=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,zt=/\s*%%.*\n/gm;class Pt extends Error{constructor(t){super(t),this.name="UnknownDiagramError"}}const Rt={},Wt=function(t,e){t=t.replace(Dt,"").replace($t,"").replace(zt,"\n");for(const[i,{detector:r}]of Object.entries(Rt)){if(r(t,e))return i}throw new Pt(`No diagram type detected matching given configuration for text: ${t}`)},Ht=(...t)=>{for(const{id:e,detector:i,loader:r}of t)Ut(e,i,r)},Ut=(t,e,i)=>{Rt[t]?st.error(`Detector with key ${t} already exists`):Rt[t]={detector:e,loader:i},st.debug(`Detector with key ${t} added${i?" with loader":""}`)},Yt=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>Yt(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]?(r||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Yt(t[n],e[n],{depth:i-1,clobber:r}))})),t)},Vt=Yt,Gt="\u200b",Xt={curveBasis:a.$0Z,curveBasisClosed:a.Dts,curveBasisOpen:a.WQY,curveBumpX:a.qpX,curveBumpY:a.u93,curveBundle:a.tFB,curveCardinalClosed:a.OvA,curveCardinalOpen:a.dCK,curveCardinal:a.YY7,curveCatmullRomClosed:a.fGX,curveCatmullRomOpen:a.$m7,curveCatmullRom:a.zgE,curveLinear:a.c_6,curveLinearClosed:a.fxm,curveMonotoneX:a.FdL,curveMonotoneY:a.ak_,curveNatural:a.SxZ,curveStep:a.eA_,curveStepAfter:a.jsv,curveStepBefore:a.iJ},Qt=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Jt=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${Qt.source})(?=[}][%]{2}).*\n`,"ig");let r;t=t.trim().replace(i,"").replace(/'/gm,'"'),st.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const n=[];for(;null!==(r=$t.exec(t));)if(r.index===$t.lastIndex&&$t.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:t,args:e})}return 0===n.length?{type:t,args:null}:1===n.length?n[0]:n}catch(i){return st.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}};function Kt(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Xt[i]??e}function te(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}const ee=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},ie=(t,e)=>{let i,r=e;for(const n of t){if(i){const t=te(n,i);if(t<r)r-=t;else{const e=r/t;if(e<=0)return i;if(e>=1)return{x:n.x,y:n.y};if(e>0&&e<1)return{x:ee((1-e)*i.x+e*n.x,5),y:ee((1-e)*i.y+e*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")};function re(t){let e="",i="";for(const r of t)void 0!==r&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let ne=0;const oe=()=>(ne++,"id-"+Math.random().toString(36).substr(2,12)+"-"+ne);const ae=t=>function(t){let e="";const i="0123456789abcdef";for(let r=0;r<t;r++)e+=i.charAt(Math.floor(16*Math.random()));return e}(t.length),se=function(t,e){const i=e.text.replace(_t.lineBreakRegex," "),[,r]=ge(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),void 0!==e.class&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+2*e.textMargin),o.attr("fill",e.fill),o.text(i),n},le=(0,y.Z)(((t,e,i)=>{if(!t)return t;if(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},i),_t.lineBreakRegex.test(t))return t;const r=t.split(" "),n=[];let o="";return r.forEach(((t,a)=>{const s=ue(`${t} `,i),l=ue(o,i);if(s>e){const{hyphenatedStrings:r,remainingWord:a}=ce(t,e,"-",i);n.push(o,...r),o=a}else l+s>=e?(n.push(o),o=t):o=[o,t].filter(Boolean).join(" ");a+1===r.length&&n.push(o)})),n.filter((t=>""!==t)).join(i.joinWith)}),((t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`)),ce=(0,y.Z)(((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let a="";return n.forEach(((t,s)=>{const l=`${a}${t}`;if(ue(l,r)>=e){const t=s+1,e=n.length===t,r=`${l}${i}`;o.push(e?l:r),a=""}else a=l})),{hyphenatedStrings:o,remainingWord:a}}),((t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`));function he(t,e){return de(t,e).height}function ue(t,e){return de(t,e).width}const de=(0,y.Z)(((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=ge(i),s=["sans-serif",r],l=t.split(_t.lineBreakRegex),c=[],h=(0,a.Ys)("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const a of s){let t=0;const e={width:0,height:0,lineHeight:0};for(const i of l){const r={x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""};r.text=i||Gt;const s=se(u,r).style("font-size",o).style("font-weight",n).style("font-family",a),l=(s._groups||s)[0][0].getBBox();if(0===l.width&&0===l.height)throw new Error("svg element not in render tree");e.width=Math.round(Math.max(e.width,l.width)),t=Math.round(l.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}c.push(e)}u.remove();return 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 fe;function pe(t){return"str"in t}const ge=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]};function me(t,e){return(0,x.Z)({},t,e)}const ye={assignWithDepth:Vt,wrapLabel:le,calculateTextHeight:he,calculateTextWidth:ue,calculateTextDimensions:de,cleanAndMerge:me,detectInit:function(t,e){const i=Jt(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const t=i.map((t=>t.args));jt(t),r=Vt(r,[...t])}else r=i.args;if(!r)return;let n=Wt(t,e);const o="config";return void 0!==r[o]&&("flowchart-v2"===n&&(n="flowchart"),r[n]=r[o],delete r[o]),r},detectDirective:Jt,isSubstringInArray:function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1},interpolateToCurve:Kt,calcLabelPosition:function(t){return 1===t.length?t[0]:function(t){let e,i=0;return t.forEach((t=>{i+=te(t,e),e=t})),ie(t,i/2)}(t)},calcCardinalityPosition:(t,e,i)=>{st.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const r=ie(e,25),n=t?10:5,o=Math.atan2(e[0].y-r.y,e[0].x-r.x),a={x:0,y:0};return a.x=Math.sin(o)*n+(e[0].x+r.x)/2,a.y=-Math.cos(o)*n+(e[0].y+r.y)/2,a},calcTerminalLabelPosition:function(t,e,i){const r=structuredClone(i);st.info("our points",r),"start_left"!==e&&"start_right"!==e&&r.reverse();const n=ie(r,25+t),o=10+.5*t,a=Math.atan2(r[0].y-n.y,r[0].x-n.x),s={x:0,y:0};return"start_left"===e?(s.x=Math.sin(a+Math.PI)*o+(r[0].x+n.x)/2,s.y=-Math.cos(a+Math.PI)*o+(r[0].y+n.y)/2):"end_right"===e?(s.x=Math.sin(a-Math.PI)*o+(r[0].x+n.x)/2-5,s.y=-Math.cos(a-Math.PI)*o+(r[0].y+n.y)/2-5):"end_left"===e?(s.x=Math.sin(a)*o+(r[0].x+n.x)/2-5,s.y=-Math.cos(a)*o+(r[0].y+n.y)/2-5):(s.x=Math.sin(a)*o+(r[0].x+n.x)/2,s.y=-Math.cos(a)*o+(r[0].y+n.y)/2),s},formatUrl:function(t,e){const i=t.trim();if(i)return"loose"!==e.securityLevel?(0,o.Nm)(i):i},getStylesFromArray:re,generateId:oe,random:ae,runFunc:(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let a=0;a<r;a++)if(o=o[i[a]],!o)return void st.error(`Function name: ${t} not found in window`);o[n](...e)},entityDecode:function(t){return fe=fe||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),fe.innerHTML=t,unescape(fe.textContent)},insertTitle:(t,e,i,r)=>{var n;if(!r)return;const o=null==(n=t.node())?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},parseFontSize:ge,InitIDGenerator:class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}}},xe="10.6.1",Ce=Object.freeze(It);let be,_e=Vt({},Ce),ve=[],ke=Vt({},Ce);const Te=(t,e)=>{let i=Vt({},t),r={};for(const n of e)Fe(n),r=Vt(r,n);if(i=Vt(i,r),r.theme&&r.theme in Mt){const t=Vt({},be),e=Vt(t.themeVariables||{},r.themeVariables);i.theme&&i.theme in Mt&&(i.themeVariables=Mt[i.theme].getThemeVariables(e))}return ke=i,Ze(ke),ke},we=()=>Vt({},_e),Se=t=>(Ze(t),Vt(ke,t),Be()),Be=()=>Vt({},ke),Fe=t=>{t&&(["secure",..._e.secure??[]].forEach((e=>{Object.hasOwn(t,e)&&(st.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{e.startsWith("__")&&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]&&Fe(t[e])})))},Ae=t=>{jt(t),!t.fontFamily||t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily}),ve.push(t),Te(_e,ve)},Le=(t=_e)=>{ve=[],Te(t,ve)},Me={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Ee={},Ze=t=>{var e;t&&((t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&(Ee[e="LAZY_LOAD_DEPRECATED"]||(st.warn(Me[e]),Ee[e]=!0)))},Ne={id:"c4",detector:t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),loader:async()=>{const{diagram:t}=await i.e(132).then(i.bind(i,70132));return{id:"c4",diagram:t}}},Oe="flowchart",Ie={id:Oe,detector:(t,e)=>{var i,r;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&"elk"!==(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)&&/^\s*graph/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(8955),i.e(1763)]).then(i.bind(i,1763));return{id:Oe,diagram:t}}},je="flowchart-v2",qe={id:je,detector:(t,e)=>{var i,r,n;return"dagre-d3"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&"elk"!==(null==(r=null==e?void 0:e.flowchart)?void 0:r.defaultRenderer)&&(!(!/^\s*graph/.test(t)||"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))||/^\s*flowchart/.test(t))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(8955),i.e(9893)]).then(i.bind(i,19893));return{id:je,diagram:t}}},De={id:"er",detector:t=>/^\s*erDiagram/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3343)]).then(i.bind(i,13343));return{id:"er",diagram:t}}},$e="gitGraph",ze={id:$e,detector:t=>/^\s*gitGraph/.test(t),loader:async()=>{const{diagram:t}=await i.e(3619).then(i.bind(i,13619));return{id:$e,diagram:t}}},Pe="gantt",Re={id:Pe,detector:t=>/^\s*gantt/.test(t),loader:async()=>{const{diagram:t}=await i.e(8016).then(i.bind(i,88016));return{id:Pe,diagram:t}}},We="info",He={id:We,detector:t=>/^\s*info/.test(t),loader:async()=>{const{diagram:t}=await i.e(5326).then(i.bind(i,45326));return{id:We,diagram:t}}},Ue={id:"pie",detector:t=>/^\s*pie/.test(t),loader:async()=>{const{diagram:t}=await i.e(2661).then(i.bind(i,12661));return{id:"pie",diagram:t}}},Ye="quadrantChart",Ve={id:Ye,detector:t=>/^\s*quadrantChart/.test(t),loader:async()=>{const{diagram:t}=await i.e(6648).then(i.bind(i,46648));return{id:Ye,diagram:t}}},Ge="xychart",Xe={id:Ge,detector:t=>/^\s*xychart-beta/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(2693)]).then(i.bind(i,32693));return{id:Ge,diagram:t}}},Qe="requirement",Je={id:Qe,detector:t=>/^\s*requirement(Diagram)?/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(6985)]).then(i.bind(i,66985));return{id:Qe,diagram:t}}},Ke="sequence",ti={id:Ke,detector:t=>/^\s*sequenceDiagram/.test(t),loader:async()=>{const{diagram:t}=await i.e(5790).then(i.bind(i,25790));return{id:Ke,diagram:t}}},ei="class",ii={id:ei,detector:(t,e)=>{var i;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer)&&/^\s*classDiagram/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(4706),i.e(109)]).then(i.bind(i,109));return{id:ei,diagram:t}}},ri="classDiagram",ni={id:ri,detector:(t,e)=>{var i;return!(!/^\s*classDiagram/.test(t)||"dagre-wrapper"!==(null==(i=null==e?void 0:e.class)?void 0:i.defaultRenderer))||/^\s*classDiagram-v2/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(4706),i.e(6255)]).then(i.bind(i,56255));return{id:ri,diagram:t}}},oi="state",ai={id:oi,detector:(t,e)=>{var i;return"dagre-wrapper"!==(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer)&&/^\s*stateDiagram/.test(t)},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(1504),i.e(2696)]).then(i.bind(i,72696));return{id:oi,diagram:t}}},si="stateDiagram",li={id:si,detector:(t,e)=>{var i;return!!/^\s*stateDiagram-v2/.test(t)||!(!/^\s*stateDiagram/.test(t)||"dagre-wrapper"!==(null==(i=null==e?void 0:e.state)?void 0:i.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(1644),i.e(3076),i.e(5269),i.e(7936),i.e(1504),i.e(5943)]).then(i.bind(i,45943));return{id:si,diagram:t}}},ci="journey",hi={id:ci,detector:t=>/^\s*journey/.test(t),loader:async()=>{const{diagram:t}=await i.e(2183).then(i.bind(i,52183));return{id:ci,diagram:t}}},ui=function(t,e,i,r){const n=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r}(e,i,r);!function(t,e){for(let i of e)t.attr(i[0],i[1])}(t,n)},di=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,a=n.height;st.info(`SVG bounds: ${o}x${a}`,n);let s=0,l=0;st.info(`Graph bounds: ${s}x${l}`,t),s=o+2*i,l=a+2*i,st.info(`Calculated bounds: ${s}x${l}`),ui(e,l,s,r);const c=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",c)},fi={},pi=(t,e,i)=>{let r="";return t in fi&&fi[t]?r=fi[t](i):st.warn(`No theme found for ${t}`),` & {\n font-family: ${i.fontFamily};\n font-size: ${i.fontSize};\n fill: ${i.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${i.errorBkgColor};\n }\n & .error-text {\n fill: ${i.errorTextColor};\n stroke: ${i.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: ${i.lineColor};\n stroke: ${i.lineColor};\n }\n & .marker.cross {\n stroke: ${i.lineColor};\n }\n\n & svg {\n font-family: ${i.fontFamily};\n font-size: ${i.fontSize};\n }\n\n ${r}\n\n ${e}\n`};let gi="",mi="",yi="";const xi=t=>ft(t,Be()),Ci=()=>{gi="",yi="",mi=""},bi=t=>{gi=xi(t).replace(/^\s+/g,"")},_i=()=>gi,vi=t=>{yi=xi(t).replace(/\n\s+/g,"\n")},ki=()=>yi,Ti=t=>{mi=xi(t)},wi=()=>mi,Si=Object.freeze(Object.defineProperty({__proto__:null,clear:Ci,getAccDescription:ki,getAccTitle:_i,getDiagramTitle:wi,setAccDescription:vi,setAccTitle:bi,setDiagramTitle:Ti},Symbol.toStringTag,{value:"Module"})),Bi=st,Fi=lt,Ai=Be,Li=Se,Mi=Ce,Ei=t=>ft(t,Ai()),Zi=di,Ni={},Oi=(t,e,i)=>{var r,n,o;if(Ni[t])throw new Error(`Diagram ${t} already registered.`);Ni[t]=e,i&&Ut(t,i),n=t,void 0!==(o=e.styles)&&(fi[n]=o),null==(r=e.injectUtils)||r.call(e,Bi,Fi,Ai,Ei,Zi,Si,(()=>{}))},Ii=t=>{if(t in Ni)return Ni[t];throw new ji(t)};class ji extends Error{constructor(t){super(`Diagram ${t} not found.`)}}const qi=t=>{var e;const{securityLevel:i}=Ai();let r=(0,a.Ys)("body");if("sandbox"===i){const i=(null==(e=(0,a.Ys)(`#i${t}`).node())?void 0:e.contentDocument)??document;r=(0,a.Ys)(i.body)}return r.select(`#${t}`)},Di={draw:(t,e,i)=>{st.debug("renering svg for syntax error\n");const r=qi(e);r.attr("viewBox","0 0 2412 512"),ui(r,100,512,!0);const n=r.append("g");n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)}},$i=Di,zi={db:{},renderer:Di,parser:{parser:{yy:{}},parse:()=>{}}},Pi="flowchart-elk",Ri={id:Pi,detector:(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&"elk"===(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(5269),i.e(8955),i.e(4238)]).then(i.bind(i,4238));return{id:Pi,diagram:t}}},Wi="timeline",Hi={id:Wi,detector:t=>/^\s*timeline/.test(t),loader:async()=>{const{diagram:t}=await i.e(2700).then(i.bind(i,12700));return{id:Wi,diagram:t}}},Ui="mindmap",Yi={id:Ui,detector:t=>/^\s*mindmap/.test(t),loader:async()=>{const{diagram:t}=await Promise.all([i.e(3076),i.e(9138)]).then(i.bind(i,69138));return{id:Ui,diagram:t}}},Vi="sankey",Gi={id:Vi,detector:t=>/^\s*sankey-beta/.test(t),loader:async()=>{const{diagram:t}=await i.e(240).then(i.bind(i,10240));return{id:Vi,diagram:t}}};let Xi=!1;const Qi=()=>{Xi||(Xi=!0,Oi("error",zi,(t=>"error"===t.toLowerCase().trim())),Oi("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},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 un-indented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),Ht(Ne,ni,ii,De,Re,He,Ue,Je,ti,Ri,qe,Ie,Yi,Hi,ze,li,ai,hi,Ve,Gi,Xe))};class Ji{constructor(t,e={}){this.text=t,this.metadata=e,this.type="graph",this.text+="\n";const i=Be();try{this.type=Wt(t,i)}catch(n){this.type="error",this.detectError=n}const r=Ii(this.type);st.debug("Type "+this.type),this.db=r.db,this.renderer=r.renderer,this.parser=r.parser,this.parser.parser.yy=this.db,this.init=r.init,this.parse()}parse(){var t,e,i,r,n;if(this.detectError)throw this.detectError;null==(e=(t=this.db).clear)||e.call(t);const o=Be();null==(i=this.init)||i.call(this,o),this.metadata.title&&(null==(n=(r=this.db).setDiagramTitle)||n.call(r,this.metadata.title)),this.parser.parse(this.text)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}}const Ki=async(t,e={})=>{const i=Wt(t,Be());try{Ii(i)}catch(r){const t=Rt[i].loader;if(!t)throw new Pt(`Diagram ${i} not found.`);const{id:e,diagram:n}=await t();Oi(e,n)}return new Ji(t,e)};let tr=[];const er=t=>{tr.push(t)},ir="graphics-document document";const rr=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();function nr(t){return null==t}var or={isNothing:nr,isObject:function(t){return"object"==typeof t&&null!==t},toArray:function(t){return Array.isArray(t)?t:nr(t)?[]:[t]},repeat:function(t,e){var i,r="";for(i=0;i<e;i+=1)r+=t;return r},isNegativeZero:function(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t},extend:function(t,e){var i,r,n,o;if(e)for(i=0,r=(o=Object.keys(e)).length;i<r;i+=1)t[n=o[i]]=e[n];return t}};function ar(t,e){var i="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(i+='in "'+t.mark.name+'" '),i+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(i+="\n\n"+t.mark.snippet),r+" "+i):r}function sr(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=ar(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}sr.prototype=Object.create(Error.prototype),sr.prototype.constructor=sr,sr.prototype.toString=function(t){return this.name+": "+ar(this,t)};var lr=sr;function cr(t,e,i,r,n){var o="",a="",s=Math.floor(n/2)-1;return r-e>s&&(e=r-s+(o=" ... ").length),i-r>s&&(i=r+s-(a=" ...").length),{str:o+t.slice(e,i).replace(/\t/g,"\u2192")+a,pos:r-e+o.length}}function hr(t,e){return or.repeat(" ",e-t.length)+t}var ur=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 i,r=/\r?\n|\r|\0/g,n=[0],o=[],a=-1;i=r.exec(t.buffer);)o.push(i.index),n.push(i.index+i[0].length),t.position<=i.index&&a<0&&(a=n.length-2);a<0&&(a=n.length-1);var s,l,c="",h=Math.min(t.line+e.linesAfter,o.length).toString().length,u=e.maxLength-(e.indent+h+3);for(s=1;s<=e.linesBefore&&!(a-s<0);s++)l=cr(t.buffer,n[a-s],o[a-s],t.position-(n[a]-n[a-s]),u),c=or.repeat(" ",e.indent)+hr((t.line-s+1).toString(),h)+" | "+l.str+"\n"+c;for(l=cr(t.buffer,n[a],o[a],t.position,u),c+=or.repeat(" ",e.indent)+hr((t.line+1).toString(),h)+" | "+l.str+"\n",c+=or.repeat("-",e.indent+h+3+l.pos)+"^\n",s=1;s<=e.linesAfter&&!(a+s>=o.length);s++)l=cr(t.buffer,n[a+s],o[a+s],t.position-(n[a]-n[a+s]),u),c+=or.repeat(" ",e.indent)+hr((t.line+s+1).toString(),h)+" | "+l.str+"\n";return c.replace(/\n$/,"")},dr=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],fr=["scalar","sequence","mapping"];var pr=function(t,e){var i,r;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===dr.indexOf(e))throw new lr('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=(i=e.styleAliases||null,r={},null!==i&&Object.keys(i).forEach((function(t){i[t].forEach((function(e){r[String(e)]=t}))})),r),-1===fr.indexOf(this.kind))throw new lr('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')};function gr(t,e){var i=[];return t[e].forEach((function(t){var e=i.length;i.forEach((function(i,r){i.tag===t.tag&&i.kind===t.kind&&i.multi===t.multi&&(e=r)})),i[e]=t})),i}function mr(t){return this.extend(t)}mr.prototype.extend=function(t){var e=[],i=[];if(t instanceof pr)i.push(t);else if(Array.isArray(t))i=i.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new lr("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof pr))throw new lr("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new lr("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 lr("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),i.forEach((function(t){if(!(t instanceof pr))throw new lr("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var r=Object.create(mr.prototype);return r.implicit=(this.implicit||[]).concat(e),r.explicit=(this.explicit||[]).concat(i),r.compiledImplicit=gr(r,"implicit"),r.compiledExplicit=gr(r,"explicit"),r.compiledTypeMap=function(){var t,e,i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function r(t){t.multi?(i.multi[t.kind].push(t),i.multi.fallback.push(t)):i[t.kind][t.tag]=i.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(r);return i}(r.compiledImplicit,r.compiledExplicit),r};var yr=new mr({explicit:[new pr("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),new pr("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),new pr("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})]});var xr=new pr("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 Cr=new pr("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 br(t){return 48<=t&&t<=55}function _r(t){return 48<=t&&t<=57}var vr=new pr("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r=t.length,n=0,o=!1;if(!r)return!1;if("-"!==(e=t[n])&&"+"!==e||(e=t[++n]),"0"===e){if(n+1===r)return!0;if("b"===(e=t[++n])){for(n++;n<r;n++)if("_"!==(e=t[n])){if("0"!==e&&"1"!==e)return!1;o=!0}return o&&"_"!==e}if("x"===e){for(n++;n<r;n++)if("_"!==(e=t[n])){if(!(48<=(i=t.charCodeAt(n))&&i<=57||65<=i&&i<=70||97<=i&&i<=102))return!1;o=!0}return o&&"_"!==e}if("o"===e){for(n++;n<r;n++)if("_"!==(e=t[n])){if(!br(t.charCodeAt(n)))return!1;o=!0}return o&&"_"!==e}}if("_"===e)return!1;for(;n<r;n++)if("_"!==(e=t[n])){if(!_r(t.charCodeAt(n)))return!1;o=!0}return!(!o||"_"===e)},construct:function(t){var e,i=t,r=1;if(-1!==i.indexOf("_")&&(i=i.replace(/_/g,"")),"-"!==(e=i[0])&&"+"!==e||("-"===e&&(r=-1),e=(i=i.slice(1))[0]),"0"===i)return 0;if("0"===e){if("b"===i[1])return r*parseInt(i.slice(2),2);if("x"===i[1])return r*parseInt(i.slice(2),16);if("o"===i[1])return r*parseInt(i.slice(2),8)}return r*parseInt(i,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!or.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"]}}),kr=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var Tr=/^[-+]?[0-9]+e/;var wr=new pr("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!kr.test(t)||"_"===t[t.length-1])},construct:function(t){var e,i;return i="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:i*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||or.isNegativeZero(t))},represent:function(t,e){var i;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(or.isNegativeZero(t))return"-0.0";return i=t.toString(10),Tr.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),Sr=yr.extend({implicit:[xr,Cr,vr,wr]}),Br=Sr,Fr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Ar=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 Lr=new pr("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==Fr.exec(t)||null!==Ar.exec(t))},construct:function(t){var e,i,r,n,o,a,s,l,c=0,h=null;if(null===(e=Fr.exec(t))&&(e=Ar.exec(t)),null===e)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],a=+e[5],s=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(h=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(h=-h)),l=new Date(Date.UTC(i,r,n,o,a,s,c)),h&&l.setTime(l.getTime()-h),l},instanceOf:Date,represent:function(t){return t.toISOString()}});var Mr=new pr("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Zr=new pr("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,r=0,n=t.length,o=Er;for(i=0;i<n;i++)if(!((e=o.indexOf(t.charAt(i)))>64)){if(e<0)return!1;r+=6}return r%8==0},construct:function(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=Er,a=0,s=[];for(e=0;e<n;e++)e%4==0&&e&&(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(r.charAt(e));return 0===(i=n%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===i?(s.push(a>>10&255),s.push(a>>2&255)):12===i&&s.push(a>>4&255),new Uint8Array(s)},predicate:function(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)},represent:function(t){var e,i,r="",n=0,o=t.length,a=Er;for(e=0;e<o;e++)e%3==0&&e&&(r+=a[n>>18&63],r+=a[n>>12&63],r+=a[n>>6&63],r+=a[63&n]),n=(n<<8)+t[e];return 0===(i=o%3)?(r+=a[n>>18&63],r+=a[n>>12&63],r+=a[n>>6&63],r+=a[63&n]):2===i?(r+=a[n>>10&63],r+=a[n>>4&63],r+=a[n<<2&63],r+=a[64]):1===i&&(r+=a[n>>2&63],r+=a[n<<4&63],r+=a[64],r+=a[64]),r}}),Nr=Object.prototype.hasOwnProperty,Or=Object.prototype.toString;var Ir=new pr("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,r,n,o,a=[],s=t;for(e=0,i=s.length;e<i;e+=1){if(r=s[e],o=!1,"[object Object]"!==Or.call(r))return!1;for(n in r)if(Nr.call(r,n)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(n))return!1;a.push(n)}return!0},construct:function(t){return null!==t?t:[]}}),jr=Object.prototype.toString;var qr=new pr("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,r,n,o,a=t;for(o=new Array(a.length),e=0,i=a.length;e<i;e+=1){if(r=a[e],"[object Object]"!==jr.call(r))return!1;if(1!==(n=Object.keys(r)).length)return!1;o[e]=[n[0],r[n[0]]]}return!0},construct:function(t){if(null===t)return[];var e,i,r,n,o,a=t;for(o=new Array(a.length),e=0,i=a.length;e<i;e+=1)r=a[e],n=Object.keys(r),o[e]=[n[0],r[n[0]]];return o}}),Dr=Object.prototype.hasOwnProperty;var $r=new pr("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){if(null===t)return!0;var e,i=t;for(e in i)if(Dr.call(i,e)&&null!==i[e])return!1;return!0},construct:function(t){return null!==t?t:{}}}),zr=Br.extend({implicit:[Lr,Mr],explicit:[Zr,Ir,qr,$r]}),Pr=Object.prototype.hasOwnProperty,Rr=1,Wr=2,Hr=3,Ur=4,Yr=1,Vr=2,Gr=3,Xr=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Qr=/[\x85\u2028\u2029]/,Jr=/[,\[\]\{\}]/,Kr=/^(?:!|!!|![a-z\-]+!)$/i,tn=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function en(t){return Object.prototype.toString.call(t)}function rn(t){return 10===t||13===t}function nn(t){return 9===t||32===t}function on(t){return 9===t||32===t||10===t||13===t}function an(t){return 44===t||91===t||93===t||123===t||125===t}function sn(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function ln(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 cn(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var hn=new Array(256),un=new Array(256),dn=0;dn<256;dn++)hn[dn]=ln(dn)?1:0,un[dn]=ln(dn);function fn(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||zr,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 pn(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=ur(i),new lr(e,i)}function gn(t,e){throw pn(t,e)}function mn(t,e){t.onWarning&&t.onWarning.call(null,pn(t,e))}var yn={YAML:function(t,e,i){var r,n,o;null!==t.version&&gn(t,"duplication of %YAML directive"),1!==i.length&&gn(t,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&gn(t,"ill-formed argument of the YAML directive"),n=parseInt(r[1],10),o=parseInt(r[2],10),1!==n&&gn(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=o<2,1!==o&&2!==o&&mn(t,"unsupported YAML version of the document")},TAG:function(t,e,i){var r,n;2!==i.length&&gn(t,"TAG directive accepts exactly two arguments"),r=i[0],n=i[1],Kr.test(r)||gn(t,"ill-formed tag handle (first argument) of the TAG directive"),Pr.call(t.tagMap,r)&&gn(t,'there is a previously declared suffix for "'+r+'" tag handle'),tn.test(n)||gn(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(o){gn(t,"tag prefix is malformed: "+n)}t.tagMap[r]=n}};function xn(t,e,i,r){var n,o,a,s;if(e<i){if(s=t.input.slice(e,i),r)for(n=0,o=s.length;n<o;n+=1)9===(a=s.charCodeAt(n))||32<=a&&a<=1114111||gn(t,"expected valid JSON character");else Xr.test(s)&&gn(t,"the stream contains non-printable characters");t.result+=s}}function Cn(t,e,i,r){var n,o,a,s;for(or.isObject(i)||gn(t,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(n=Object.keys(i)).length;a<s;a+=1)o=n[a],Pr.call(e,o)||(e[o]=i[o],r[o]=!0)}function bn(t,e,i,r,n,o,a,s,l){var c,h;if(Array.isArray(n))for(c=0,h=(n=Array.prototype.slice.call(n)).length;c<h;c+=1)Array.isArray(n[c])&&gn(t,"nested arrays are not supported inside keys"),"object"==typeof n&&"[object Object]"===en(n[c])&&(n[c]="[object Object]");if("object"==typeof n&&"[object Object]"===en(n)&&(n="[object Object]"),n=String(n),null===e&&(e={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(o))for(c=0,h=o.length;c<h;c+=1)Cn(t,e,o[c],i);else Cn(t,e,o,i);else t.json||Pr.call(i,n)||!Pr.call(e,n)||(t.line=a||t.line,t.lineStart=s||t.lineStart,t.position=l||t.position,gn(t,"duplicated mapping key")),"__proto__"===n?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:o}):e[n]=o,delete i[n];return e}function _n(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):gn(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function vn(t,e,i){for(var r=0,n=t.input.charCodeAt(t.position);0!==n;){for(;nn(n);)9===n&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&35===n)do{n=t.input.charCodeAt(++t.position)}while(10!==n&&13!==n&&0!==n);if(!rn(n))break;for(_n(t),n=t.input.charCodeAt(t.position),r++,t.lineIndent=0;32===n;)t.lineIndent++,n=t.input.charCodeAt(++t.position)}return-1!==i&&0!==r&&t.lineIndent<i&&mn(t,"deficient indentation"),r}function kn(t){var e,i=t.position;return!(45!==(e=t.input.charCodeAt(i))&&46!==e||e!==t.input.charCodeAt(i+1)||e!==t.input.charCodeAt(i+2)||(i+=3,0!==(e=t.input.charCodeAt(i))&&!on(e)))}function Tn(t,e){1===e?t.result+=" ":e>1&&(t.result+=or.repeat("\n",e-1))}function wn(t,e){var i,r,n=t.tag,o=t.anchor,a=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),r=t.input.charCodeAt(t.position);0!==r&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,gn(t,"tab characters must not be used in indentation")),45===r)&&on(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,vn(t,!0,-1)&&t.lineIndent<=e)a.push(null),r=t.input.charCodeAt(t.position);else if(i=t.line,Fn(t,e,Hr,!1,!0),a.push(t.result),vn(t,!0,-1),r=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&0!==r)gn(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=n,t.anchor=o,t.kind="sequence",t.result=a,!0)}function Sn(t){var e,i,r,n,o=!1,a=!1;if(33!==(n=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&gn(t,"duplication of a tag property"),60===(n=t.input.charCodeAt(++t.position))?(o=!0,n=t.input.charCodeAt(++t.position)):33===n?(a=!0,i="!!",n=t.input.charCodeAt(++t.position)):i="!",e=t.position,o){do{n=t.input.charCodeAt(++t.position)}while(0!==n&&62!==n);t.position<t.length?(r=t.input.slice(e,t.position),n=t.input.charCodeAt(++t.position)):gn(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==n&&!on(n);)33===n&&(a?gn(t,"tag suffix cannot contain exclamation marks"):(i=t.input.slice(e-1,t.position+1),Kr.test(i)||gn(t,"named tag handle cannot contain such characters"),a=!0,e=t.position+1)),n=t.input.charCodeAt(++t.position);r=t.input.slice(e,t.position),Jr.test(r)&&gn(t,"tag suffix cannot contain flow indicator characters")}r&&!tn.test(r)&&gn(t,"tag name cannot contain such characters: "+r);try{r=decodeURIComponent(r)}catch(s){gn(t,"tag name is malformed: "+r)}return o?t.tag=r:Pr.call(t.tagMap,i)?t.tag=t.tagMap[i]+r:"!"===i?t.tag="!"+r:"!!"===i?t.tag="tag:yaml.org,2002:"+r:gn(t,'undeclared tag handle "'+i+'"'),!0}function Bn(t){var e,i;if(38!==(i=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&gn(t,"duplication of an anchor property"),i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!on(i)&&!an(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&gn(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,i,r,n){var o,a,s,l,c,h,u,d,f,p=1,g=!1,m=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,o=a=s=Ur===i||Hr===i,r&&vn(t,!0,-1)&&(g=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),1===p)for(;Sn(t)||Bn(t);)vn(t,!0,-1)?(g=!0,s=o,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):s=!1;if(s&&(s=g||n),1!==p&&Ur!==i||(d=Rr===i||Wr===i?e:e+1,f=t.position-t.lineStart,1===p?s&&(wn(t,f)||function(t,e,i){var r,n,o,a,s,l,c,h=t.tag,u=t.anchor,d={},f=Object.create(null),p=null,g=null,m=null,y=!1,x=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=d),c=t.input.charCodeAt(t.position);0!==c;){if(y||-1===t.firstTabInLine||(t.position=t.firstTabInLine,gn(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),o=t.line,63!==c&&58!==c||!on(r)){if(a=t.line,s=t.lineStart,l=t.position,!Fn(t,i,Wr,!1,!0))break;if(t.line===o){for(c=t.input.charCodeAt(t.position);nn(c);)c=t.input.charCodeAt(++t.position);if(58===c)on(c=t.input.charCodeAt(++t.position))||gn(t,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(bn(t,d,f,p,g,null,a,s,l),p=g=m=null),x=!0,y=!1,n=!1,p=t.tag,g=t.result;else{if(!x)return t.tag=h,t.anchor=u,!0;gn(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!x)return t.tag=h,t.anchor=u,!0;gn(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(y&&(bn(t,d,f,p,g,null,a,s,l),p=g=m=null),x=!0,y=!0,n=!0):y?(y=!1,n=!0):gn(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,c=r;if((t.line===o||t.lineIndent>e)&&(y&&(a=t.line,s=t.lineStart,l=t.position),Fn(t,e,Ur,!0,n)&&(y?g=t.result:m=t.result),y||(bn(t,d,f,p,g,m,a,s,l),p=g=m=null),vn(t,!0,-1),c=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&0!==c)gn(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return y&&bn(t,d,f,p,g,null,a,s,l),x&&(t.tag=h,t.anchor=u,t.kind="mapping",t.result=d),x}(t,f,d))||function(t,e){var i,r,n,o,a,s,l,c,h,u,d,f,p=!0,g=t.tag,m=t.anchor,y=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))a=93,c=!1,o=[];else{if(123!==f)return!1;a=125,c=!0,o={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),f=t.input.charCodeAt(++t.position);0!==f;){if(vn(t,!0,e),(f=t.input.charCodeAt(t.position))===a)return t.position++,t.tag=g,t.anchor=m,t.kind=c?"mapping":"sequence",t.result=o,!0;p?44===f&&gn(t,"expected the node content, but found ','"):gn(t,"missed comma between flow collection entries"),d=null,s=l=!1,63===f&&on(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,vn(t,!0,e)),i=t.line,r=t.lineStart,n=t.position,Fn(t,e,Rr,!1,!0),u=t.tag,h=t.result,vn(t,!0,e),f=t.input.charCodeAt(t.position),!l&&t.line!==i||58!==f||(s=!0,f=t.input.charCodeAt(++t.position),vn(t,!0,e),Fn(t,e,Rr,!1,!0),d=t.result),c?bn(t,o,y,u,h,d,i,r,n):s?o.push(bn(t,null,y,u,h,d,i,r,n)):o.push(h),vn(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(p=!0,f=t.input.charCodeAt(++t.position)):p=!1}gn(t,"unexpected end of the stream within a flow collection")}(t,d)?m=!0:(a&&function(t,e){var i,r,n,o,a,s=Yr,l=!1,c=!1,h=e,u=0,d=!1;if(124===(o=t.input.charCodeAt(t.position)))r=!1;else{if(62!==o)return!1;r=!0}for(t.kind="scalar",t.result="";0!==o;)if(43===(o=t.input.charCodeAt(++t.position))||45===o)Yr===s?s=43===o?Gr:Vr:gn(t,"repeat of a chomping mode identifier");else{if(!((n=48<=(a=o)&&a<=57?a-48:-1)>=0))break;0===n?gn(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?gn(t,"repeat of an indentation width identifier"):(h=e+n-1,c=!0)}if(nn(o)){do{o=t.input.charCodeAt(++t.position)}while(nn(o));if(35===o)do{o=t.input.charCodeAt(++t.position)}while(!rn(o)&&0!==o)}for(;0!==o;){for(_n(t),t.lineIndent=0,o=t.input.charCodeAt(t.position);(!c||t.lineIndent<h)&&32===o;)t.lineIndent++,o=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>h&&(h=t.lineIndent),rn(o))u++;else{if(t.lineIndent<h){s===Gr?t.result+=or.repeat("\n",l?1+u:u):s===Yr&&l&&(t.result+="\n");break}for(r?nn(o)?(d=!0,t.result+=or.repeat("\n",l?1+u:u)):d?(d=!1,t.result+=or.repeat("\n",u+1)):0===u?l&&(t.result+=" "):t.result+=or.repeat("\n",u):t.result+=or.repeat("\n",l?1+u:u),l=!0,c=!0,u=0,i=t.position;!rn(o)&&0!==o;)o=t.input.charCodeAt(++t.position);xn(t,i,t.position,!1)}}return!0}(t,d)||function(t,e){var i,r,n;if(39!==(i=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;0!==(i=t.input.charCodeAt(t.position));)if(39===i){if(xn(t,r,t.position,!0),39!==(i=t.input.charCodeAt(++t.position)))return!0;r=t.position,t.position++,n=t.position}else rn(i)?(xn(t,r,n,!0),Tn(t,vn(t,!1,e)),r=n=t.position):t.position===t.lineStart&&kn(t)?gn(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);gn(t,"unexpected end of the stream within a single quoted scalar")}(t,d)||function(t,e){var i,r,n,o,a,s,l;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return xn(t,i,t.position,!0),t.position++,!0;if(92===s){if(xn(t,i,t.position,!0),rn(s=t.input.charCodeAt(++t.position)))vn(t,!1,e);else if(s<256&&hn[s])t.result+=un[s],t.position++;else if((a=120===(l=s)?2:117===l?4:85===l?8:0)>0){for(n=a,o=0;n>0;n--)(a=sn(s=t.input.charCodeAt(++t.position)))>=0?o=(o<<4)+a:gn(t,"expected hexadecimal character");t.result+=cn(o),t.position++}else gn(t,"unknown escape sequence");i=r=t.position}else rn(s)?(xn(t,i,r,!0),Tn(t,vn(t,!1,e)),i=r=t.position):t.position===t.lineStart&&kn(t)?gn(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}gn(t,"unexpected end of the stream within a double quoted scalar")}(t,d)?m=!0:!function(t){var e,i,r;if(42!==(r=t.input.charCodeAt(t.position)))return!1;for(r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!on(r)&&!an(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&gn(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),Pr.call(t.anchorMap,i)||gn(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],vn(t,!0,-1),!0}(t)?function(t,e,i){var r,n,o,a,s,l,c,h,u=t.kind,d=t.result;if(on(h=t.input.charCodeAt(t.position))||an(h)||35===h||38===h||42===h||33===h||124===h||62===h||39===h||34===h||37===h||64===h||96===h)return!1;if((63===h||45===h)&&(on(r=t.input.charCodeAt(t.position+1))||i&&an(r)))return!1;for(t.kind="scalar",t.result="",n=o=t.position,a=!1;0!==h;){if(58===h){if(on(r=t.input.charCodeAt(t.position+1))||i&&an(r))break}else if(35===h){if(on(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&kn(t)||i&&an(h))break;if(rn(h)){if(s=t.line,l=t.lineStart,c=t.lineIndent,vn(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}t.position=o,t.line=s,t.lineStart=l,t.lineIndent=c;break}}a&&(xn(t,n,o,!1),Tn(t,t.line-s),n=o=t.position,a=!1),nn(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return xn(t,n,o,!1),!!t.result||(t.kind=u,t.result=d,!1)}(t,d,Rr===i)&&(m=!0,null===t.tag&&(t.tag="?")):(m=!0,null===t.tag&&null===t.anchor||gn(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===p&&(m=s&&wn(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&&gn(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),l=0,c=t.implicitTypes.length;l<c;l+=1)if((u=t.implicitTypes[l]).resolve(t.result)){t.result=u.construct(t.result),t.tag=u.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(Pr.call(t.typeMap[t.kind||"fallback"],t.tag))u=t.typeMap[t.kind||"fallback"][t.tag];else for(u=null,l=0,c=(h=t.typeMap.multi[t.kind||"fallback"]).length;l<c;l+=1)if(t.tag.slice(0,h[l].tag.length)===h[l].tag){u=h[l];break}u||gn(t,"unknown tag !<"+t.tag+">"),null!==t.result&&u.kind!==t.kind&&gn(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):gn(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||m}function An(t){var e,i,r,n,o=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(n=t.input.charCodeAt(t.position))&&(vn(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==n));){for(a=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!on(n);)n=t.input.charCodeAt(++t.position);for(r=[],(i=t.input.slice(e,t.position)).length<1&&gn(t,"directive name must not be less than one character in length");0!==n;){for(;nn(n);)n=t.input.charCodeAt(++t.position);if(35===n){do{n=t.input.charCodeAt(++t.position)}while(0!==n&&!rn(n));break}if(rn(n))break;for(e=t.position;0!==n&&!on(n);)n=t.input.charCodeAt(++t.position);r.push(t.input.slice(e,t.position))}0!==n&&_n(t),Pr.call(yn,i)?yn[i](t,i,r):mn(t,'unknown document directive "'+i+'"')}vn(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,vn(t,!0,-1)):a&&gn(t,"directives end mark is expected"),Fn(t,t.lineIndent-1,Ur,!1,!0),vn(t,!0,-1),t.checkLineBreaks&&Qr.test(t.input.slice(o,t.position))&&mn(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&kn(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,vn(t,!0,-1)):t.position<t.length-1&&gn(t,"end of the stream or a document separator is expected")}function Ln(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 i=new fn(t,e),r=t.indexOf("\0");for(-1!==r&&(i.position=r,gn(i,"null byte is not allowed in input")),i.input+="\0";32===i.input.charCodeAt(i.position);)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)An(i);return i.documents}var Mn=Sr,En={loadAll:function(t,e,i){null!==e&&"object"==typeof e&&void 0===i&&(i=e,e=null);var r=Ln(t,i);if("function"!=typeof e)return r;for(var n=0,o=r.length;n<o;n+=1)e(r[n])},load:function(t,e){var i=Ln(t,e);if(0!==i.length){if(1===i.length)return i[0];throw new lr("expected a single document in the stream, but found more")}}}.load;const Zn=t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,((t,e,i)=>"<"+e+i.replace(/="([^"]*)"/g,"='$1'")+">")),Nn=t=>{const{text:e,metadata:i}=function(t){const e=t.match(Dt);if(!e)return{text:t,metadata:{}};let i=En(e[1],{schema:Mn})??{};i="object"!=typeof i||Array.isArray(i)?{}:i;const r={};return i.displayMode&&(r.displayMode=i.displayMode.toString()),i.title&&(r.title=i.title.toString()),i.config&&(r.config=i.config),{text:t.slice(e[0].length),metadata:r}}(t),{displayMode:r,title:n,config:o={}}=i;return r&&(o.gantt||(o.gantt={}),o.gantt.displayMode=r),{title:n,config:o,text:e}},On=t=>{const e=ye.detectInit(t)??{},i=ye.detectDirective(t,"wrap");return Array.isArray(i)?e.wrap=i.some((({type:t})=>{})):"wrap"===(null==i?void 0:i.type)&&(e.wrap=!0),{text:(r=t,r.replace($t,"")),directive:e};var r};const In=["foreignobject"],jn=["dominant-baseline"];function qn(t){const e=function(t){const e=Zn(t),i=Nn(e),r=On(i.text),n=me(i.config,r.directive);return{code:t=rr(r.text),title:i.title,config:n}}(t);return Le(),Ae(e.config??{}),e}const Dn=function(t){return t.replace(/\ufb02\xb0\xb0/g,"&#").replace(/\ufb02\xb0/g,"&").replace(/\xb6\xdf/g,";")},$n=(t,e,i=[])=>`\n.${t} ${e} { ${i.join(" !important; ")} !important; }`,zn=(t,e,i,r)=>{const n=((t,e={})=>{var i;let r="";if(void 0!==t.themeCSS&&(r+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(r+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(r+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!(0,ot.Z)(e)){const n=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const t in e){const i=e[t];(0,ot.Z)(i.styles)||n.forEach((t=>{r+=$n(i.id,t,i.styles)})),(0,ot.Z)(i.textStyles)||(r+=$n(i.id,"tspan",i.textStyles))}}return r})(t,i);return M(tt(`${r}{${pi(e,n,t.themeVariables)}}`),E)},Pn=(t,e,i,r,n)=>{const o=t.append("div");o.attr("id",i),r&&o.attr("style",r);const a=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return n&&a.attr("xmlns:xlink",n),a.append("g"),t};function Rn(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const Wn=Object.freeze({render:async function(t,e,i){var r,n,o,l,c,h;Qi();const u=qn(e);e=u.code;const d=Be();st.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");const f="#"+t,p="i"+t,g="#"+p,m="d"+t,y="#"+m;let x=(0,a.Ys)("body");const C="sandbox"===d.securityLevel,b="loose"===d.securityLevel,_=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),C){const t=Rn((0,a.Ys)(i),p);x=(0,a.Ys)(t.nodes()[0].contentDocument.body),x.node().style.margin=0}else x=(0,a.Ys)(i);Pn(x,t,m,`font-family: ${_}`,"http://www.w3.org/1999/xlink")}else{if(((t,e,i,r)=>{var n,o,a;null==(n=t.getElementById(e))||n.remove(),null==(o=t.getElementById(i))||o.remove(),null==(a=t.getElementById(r))||a.remove()})(document,t,m,p),C){const t=Rn((0,a.Ys)("body"),p);x=(0,a.Ys)(t.nodes()[0].contentDocument.body),x.node().style.margin=0}else x=(0,a.Ys)("body");Pn(x,t,m)}let v,k;e=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}(e);try{v=await Ki(e,{title:u.title})}catch(N){v=new Ji("error"),k=N}const T=x.select(y).node(),w=v.type,S=T.firstChild,B=S.firstChild,F=null==(n=(r=v.renderer).getClasses)?void 0:n.call(r,e,v),A=zn(d,w,F,f),L=document.createElement("style");L.innerHTML=A,S.insertBefore(L,B);try{await v.renderer.draw(e,t,xe,v)}catch(O){throw $i.draw(e,t,xe),O}!function(t,e,i,r){(function(t,e){t.attr("role",ir),""!==e&&t.attr("aria-roledescription",e)})(e,t),function(t,e,i,r){if(void 0!==t.insert){if(i){const e=`chart-desc-${r}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(i)}if(e){const i=`chart-title-${r}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}(e,i,r,e.attr("id"))}(w,x.select(`${y} svg`),null==(l=(o=v.db).getAccTitle)?void 0:l.call(o),null==(h=(c=v.db).getAccDescription)?void 0:h.call(c)),x.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let M=x.select(y).node().innerHTML;if(st.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),M=((t="",e,i)=>{let r=t;return i||e||(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=Dn(r),r=r.replace(/<br>/g,"<br/>"),r})(M,C,mt(d.arrowMarkerAbsolute)),C){M=((t="",e)=>{var i,r;return`<iframe style="width:100%;height:${(null==(r=null==(i=null==e?void 0:e.viewBox)?void 0:i.baseVal)?void 0:r.height)?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>`})(M,x.select(y+" svg").node())}else b||(M=s.sanitize(M,{ADD_TAGS:In,ADD_ATTR:jn}));if(tr.forEach((t=>{t()})),tr=[],k)throw k;const E=C?g:y,Z=(0,a.Ys)(E).node();return Z&&"remove"in Z&&Z.remove(),{svg:M,bindFunctions:v.db.bindFunctions}},parse:async function(t,e){Qi(),t=qn(t).code;try{await Ki(t)}catch(i){if(null==e?void 0:e.suppressErrors)return!1;throw i}return!0},getDiagramFromText:Ki,initialize:function(t={}){var e;(null==t?void 0:t.fontFamily)&&!(null==(e=t.themeVariables)?void 0:e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),be=Vt({},t),(null==t?void 0:t.theme)&&t.theme in Mt?t.themeVariables=Mt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Mt.default.getThemeVariables(t.themeVariables));const i="object"==typeof t?(t=>(_e=Vt({},Ce),_e=Vt(_e,t),t.theme&&Mt[t.theme]&&(_e.themeVariables=Mt[t.theme].getThemeVariables(t.themeVariables)),Te(_e,ve),_e))(t):we();lt(i.logLevel),Qi()},getConfig:Be,setConfig:Se,getSiteConfig:we,updateSiteConfig:t=>(_e=Vt(_e,t),Te(_e,ve),_e),reset:()=>{Le()},globalReset:()=>{Le(Ce)},defaultConfig:Ce});lt(Be().logLevel),Le(Be());const Hn=(t,e,i)=>{st.warn(t),pe(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},Un=async function(t={querySelector:".mermaid"}){try{await Yn(t)}catch(e){if(pe(e)&&st.error(e.str),to.parseError&&to.parseError(e),!t.suppressErrors)throw st.error("Use the suppressErrors option to suppress these errors"),e}},Yn=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const n=Wn.getConfig();let o;if(st.debug((t?"":"No ")+"Callback function found"),i)o=i;else{if(!e)throw new Error("Nodes and querySelector are both undefined");o=document.querySelectorAll(e)}st.debug(`Found ${o.length} diagrams`),void 0!==(null==n?void 0:n.startOnLoad)&&(st.debug("Start On Load: "+(null==n?void 0:n.startOnLoad)),Wn.updateSiteConfig({startOnLoad:null==n?void 0:n.startOnLoad}));const a=new ye.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed);let s;const l=[];for(const h of Array.from(o)){if(st.info("Rendering diagram: "+h.id),h.getAttribute("data-processed"))continue;h.setAttribute("data-processed","true");const e=`mermaid-${a.next()}`;s=h.innerHTML,s=(0,r.Z)(ye.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const i=ye.detectInit(s);i&&st.debug("Detected early reinit: ",i);try{const{svg:i,bindFunctions:r}=await Kn(e,s,h);h.innerHTML=i,t&&await t(e),r&&r(h)}catch(c){Hn(c,l,to.parseError)}}if(l.length>0)throw l[0]},Vn=function(t){Wn.initialize(t)},Gn=function(){if(to.startOnLoad){const{startOnLoad:t}=Wn.getConfig();t&&to.run().catch((t=>st.error("Mermaid failed to initialize",t)))}};"undefined"!=typeof document&&window.addEventListener("load",Gn,!1);const Xn=[];let Qn=!1;const Jn=async()=>{if(!Qn){for(Qn=!0;Xn.length>0;){const e=Xn.shift();if(e)try{await e()}catch(t){st.error("Error executing queue",t)}}Qn=!1}},Kn=(t,e,i)=>new Promise(((r,n)=>{Xn.push((()=>new Promise(((o,a)=>{Wn.render(t,e,i).then((t=>{o(t),r(t)}),(t=>{var e;st.error("Error parsing",t),null==(e=to.parseError)||e.call(to,t),a(t),n(t)}))})))),Jn().catch(n)})),to={startOnLoad:!0,mermaidAPI:Wn,parse:async(t,e)=>new Promise(((i,r)=>{Xn.push((()=>new Promise(((n,o)=>{Wn.parse(t,e).then((t=>{n(t),i(t)}),(t=>{var e;st.error("Error parsing",t),null==(e=to.parseError)||e.call(to,t),o(t),r(t)}))})))),Jn().catch(r)})),render:Kn,init:async function(t,e,i){st.warn("mermaid.init is deprecated. Please use run instead."),t&&Vn(t);const r={postRenderCallback:i,querySelector:".mermaid"};"string"==typeof e?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await Un(r)},run:Un,registerExternalDiagrams:async(t,{lazyLoad:e=!0}={})=>{Ht(...t),!1===e&&await(async()=>{st.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Rt).map((async([t,{detector:e,loader:i}])=>{if(i)try{Ii(t)}catch(r){try{const{diagram:t,id:r}=await i();Oi(r,t,e)}catch(n){throw st.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete Rt[t],n}}})))).filter((t=>"rejected"===t.status));if(t.length>0){st.error(`Failed to load ${t.length} external diagrams`);for(const e of t)st.error(e);throw new Error(`Failed to load ${t.length} external diagrams`)}})()},initialize:Vn,parseError:void 0,contentLoaded:Gn,setParseErrorHandler:function(t){to.parseError=t},detectType:Wt}}}]); \ No newline at end of file diff --git a/assets/js/1325.126c841a.js.LICENSE.txt b/assets/js/1325.fc0073e5.js.LICENSE.txt similarity index 100% rename from assets/js/1325.126c841a.js.LICENSE.txt rename to assets/js/1325.fc0073e5.js.LICENSE.txt diff --git a/assets/js/1426.5a43a299.js b/assets/js/1426.5a43a299.js new file mode 100644 index 0000000..4eb6e4b --- /dev/null +++ b/assets/js/1426.5a43a299.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1426],{61426:(e,t,r)=>{function n(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];r&&clearTimeout(r),r=setTimeout((function(){return e.apply(void 0,o)}),t)}}function o(e){return e!==Object(e)}function i(e,t){if(e===t)return!0;if(o(e)||o(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r=0,n=Object.keys(e);r<n.length;r++){var a=n[r];if(!(a in t))return!1;if(!i(e[a],t[a]))return!1}return!0}r.r(t),r.d(t,{DocSearchModal:()=>pn});var a=function(){};function c(e){var t=e.item,r=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function l(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){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(s){u=!0,o=s}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(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 u(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 u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var s=["items"],f=["items"];function m(e){return m="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},m(e)}function p(e){return function(e){if(Array.isArray(e))return v(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 v(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 v(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 v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(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 h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==m(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===m(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e){return e.map((function(e){var t=e.items,r=d(e,s);return h(h({},r),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||r.objectIDs})}))}function O(e){var t,r,n,o=(t=l((e.version||"").split(".").map(Number),2),r=t[0],n=t[1],r>=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(p(r),[{headers:a}]))}else e.apply(void 0,[t].concat(p(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDsAfterSearch",g(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDs",g(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDsAfterSearch",g(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDs",g(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&t.reduce((function(e,t){var r=t.items,n=d(t,f);return[].concat(p(e),p(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n<e.objectIDs.length;n+=t)r.push(h(h({},e),{},{objectIDs:e.objectIDs.slice(n,n+t)}));return r}(h(h({},n),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||n.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function S(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function w(e){return w="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},w(e)}function E(e){return function(e){if(Array.isArray(e))return P(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 P(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 P(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 P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function I(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){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?I(Object(r),!0).forEach((function(t){A(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function A(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==w(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===w(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var k="2.6.0",x="https://cdn.jsdelivr.net/npm/search-insights@".concat(k,"/dist/search-insights.min.js"),C=n((function(e){var t=e.onItemsChange,r=e.items,n=e.insights,o=e.state;t({insights:n,insightsEvents:S({items:r}).map((function(e){return D({eventName:"Items Viewed"},e)})),state:o})}),400);function N(e){var t=function(e){return D({onItemsChange:function(e){var t=e.insights,r=e.insightsEvents;t.viewedObjectIDs.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,r=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:a},e)}(e),r=t.insightsClient,o=t.onItemsChange,l=t.onSelect,u=t.onActive,s=r;r||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,r=t.AlgoliaAnalyticsObject||"aa";"string"==typeof r&&(s=t[r]),s||(t.AlgoliaAnalyticsObject=r,t[r]||(t[r]=function(){t[r].queue||(t[r].queue=[]);for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];t[r].queue.push(n)}),t[r].version=k,s=t[r],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var r=e.document.createElement("script");r.async=!0,r.src=x,r.onerror=function(){console.error(t)},document.body.appendChild(r)}catch(n){console.error(t)}}(t))}));var f=O(s),m={current:[]},p=n((function(e){var t=e.state;if(t.isOpen){var r=t.collections.reduce((function(e,t){return[].concat(E(e),E(t.items))}),[]).filter(j);i(m.current.map((function(e){return e.objectID})),r.map((function(e){return e.objectID})))||(m.current=r,r.length>0&&C({onItemsChange:o,items:r,insights:f,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;s("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:f}}),r((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&l({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Selected"},c({item:t,items:m.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&u({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Active"},c({item:t,items:m.current}))]})}))},onStateChange:function(e){var t=e.state;p({state:t})},__autocomplete_pluginOptions:e}}function _(e){return _="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)}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 q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==_(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t,r){var n,o=t.initialState;return{getState:function(){return o},dispatch:function(n,i){var a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){q(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},o);o=e(o,{type:n,props:t,payload:i}),r({state:o,prevState:a})},pendingRequests:(n=[],{add:function(e){return n.push(e),e.finally((function(){n=n.filter((function(t){return t!==e}))}))},cancelAll:function(){n.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===n.length}})}}function L(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function M(e){return M="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},M(e)}function H(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 F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?H(Object(r),!0).forEach((function(t){U(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):H(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function U(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==M(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==M(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===M(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var V=0;function K(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 $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?K(Object(r),!0).forEach((function(t){J(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function J(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==z(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===z(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z(e){return z="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},z(e)}function W(e){return W="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},W(e)}function Q(e){return function(e){if(Array.isArray(e))return Z(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 Z(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 Z(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 Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function G(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 X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){Y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==W(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==W(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===W(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){var r,n="undefined"!=typeof window?window:{},o=e.plugins||[];return X(X({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:n,shouldPanelOpen:function(e){return B(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(V++),plugins:o,initialState:X({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(Q(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(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={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:a,onResolve:a};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=$($({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return X(X({},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)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:X({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)})}function te(e){return te="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},te(e)}function re(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 ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach((function(t){oe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function oe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==te(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===te(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ie(e){return ie="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},ie(e)}function ae(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 ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ae(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function le(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ie(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ie(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ue(e){return function(e){if(Array.isArray(e))return se(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 se(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 se(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 se(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(e){return Boolean(e.execute)}function me(e,t,r){if(o=e,Boolean(null==o?void 0:o.execute)){var n="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(ue(Object.keys(r.context).map((function(e){var t;return null===(t=r.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return ce(ce({},e),{},{requests:e.queries.map((function(r){return{query:"algolia"===e.requesterId?ce(ce({},r),{},{params:ce(ce({},n),r.params)}):r,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function pe(e){var t=e.reduce((function(e,t){if(!fe(t))return e.push(t),e;var r=t.searchClient,n=t.execute,o=t.requesterId,i=t.requests,a=e.find((function(e){return fe(t)&&fe(e)&&e.searchClient===r&&Boolean(o)&&e.requesterId===o}));if(a){var c;(c=a.items).push.apply(c,ue(i))}else{var l={execute:n,requesterId:o,items:i,searchClient:r};e.push(l)}return e}),[]).map((function(e){if(!fe(e))return Promise.resolve(e);var t=e,r=t.execute,n=t.items;return r({searchClient:t.searchClient,requests:n})}));return Promise.all(t).then((function(e){return L(e)}))}function ve(e,t,r){return t.map((function(t){var n,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,c=a?a({results:n=i,hits:n.map((function(e){return e.hits})).filter(Boolean),facetHits:n.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:c,state:r.getState()}),Array.isArray(c),c.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:c}}))}function de(e,t){var r=t;return{then:function(t,n){return de(e.then(be(t,r,e),be(n,r,e)),r)},catch:function(t){return de(e.catch(be(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),de(e.finally(be(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ye(e){return de(new Promise((function(t,r){return e(t,r)})),{isCanceled:!1,onCancelList:[]})}function he(e){return de(e,{isCanceled:!1,onCancelList:[]})}function be(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function ge(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,r){var n=(e[r-1]||0)+t;return e.push(n),e}),[]).reduce((function(t,r){return r<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var r=t.items[function(e){for(var t=e.state,r=e.collection,n=!1,o=0,i=0;!1===n;){var a=t.collections[o];if(a===r){n=!0;break}i+=a.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],n=t.source;return{item:r,itemInputValue:n.getItemInputValue({item:r,state:e}),itemUrl:n.getItemUrl({item:r,state:e}),source:n}}function Oe(e){return Oe="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},Oe(e)}ye.resolve=function(e){return he(Promise.resolve(e))},ye.reject=function(e){return he(Promise.reject(e))};var Se=["event","nextState","props","query","refresh","store"];function je(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 we(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?je(Object(r),!0).forEach((function(t){Ee(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ee(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Oe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Oe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie,De,Ae,ke=null,xe=(Ie=-1,De=-1,Ae=void 0,function(e){var t=++Ie;return Promise.resolve(e).then((function(e){return Ae&&t<De?Ae:(De=t,Ae=e,e)}))});function Ce(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,i=e.query,a=e.refresh,c=e.store,l=Pe(e,Se);ke&&o.environment.clearTimeout(ke);var u=l.setCollections,s=l.setIsOpen,f=l.setQuery,m=l.setActiveItemId,p=l.setStatus;if(f(i),m(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var v,d=c.getState().collections.map((function(e){return we(we({},e),{},{items:[]})}));p("idle"),u(d),s(null!==(v=n.isOpen)&&void 0!==v?v:o.shouldPanelOpen({state:c.getState()}));var y=he(xe(d).then((function(){return Promise.resolve()})));return c.pendingRequests.add(y)}p("loading"),ke=o.environment.setTimeout((function(){p("stalled")}),o.stallThreshold);var h=he(xe(o.getSources(we({query:i,refresh:a,state:c.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(we({query:i,refresh:a,state:c.getState()},l))).then((function(t){return me(t,e.sourceId,c.getState())}))}))).then(pe).then((function(t){return ve(t,e,c)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return ne(ne({},e),{},oe({},t.source.sourceId,ne(ne({},t.source),{},{getItems:function(){return L(t.items)}})))}),{}),i=r.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:n}).sourcesBySourceId;return L(r.reshape({sourcesBySourceId:i,sources:Object.values(i),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:c.getState()})}))})))).then((function(e){var r;p("idle"),u(e);var f=o.shouldPanelOpen({state:c.getState()});s(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!i&&f||f);var m=ge(c.getState());if(null!==c.getState().activeItemId&&m){var v=m.item,d=m.itemInputValue,y=m.itemUrl,h=m.source;h.onActive(we({event:t,item:v,itemInputValue:d,itemUrl:y,refresh:a,source:h,state:c.getState()},l))}})).finally((function(){p("idle"),ke&&o.environment.clearTimeout(ke)}));return c.pendingRequests.add(h)}function Ne(e){return Ne="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},Ne(e)}var _e=["event","props","refresh","store"];function Te(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<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(r),!0).forEach((function(t){Re(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Te(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Re(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Ne(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ne(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ne(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Le(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function He(e){return He="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},He(e)}var Fe=["props","refresh","store"],Ue=["inputElement","formElement","panelElement"],Be=["inputElement"],Ve=["inputElement","maxLength"],Ke=["sourceIndex"],$e=["sourceIndex"],Je=["item","source","sourceIndex"];function ze(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 We(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ze(Object(r),!0).forEach((function(t){Qe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Qe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==He(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==He(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===He(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ze(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e){var t=e.props,r=e.refresh,n=e.store,o=Ze(e,Fe),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].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 We({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},Ze(e,Ue))},getRootProps:function(e){return We({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 We({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Ze(e,Be))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,Ke);return We({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Ce(We({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var l=e||{},u=(l.inputElement,l.maxLength),s=void 0===u?512:u,f=Ze(l,Ve),m=ge(n.getState()),p=function(e){return Boolean(e&&e.match(Me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),v=null!=m&&m.itemUrl&&!p?"go":"search";return We({"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:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Ce(We({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=Le(e,_e);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ge(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(qe({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Ce(qe({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}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=ge(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});Ce(qe({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(We({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:a,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},f)},getPanelProps:function(e){return We({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,$e);return We({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=Ze(e,Je);return We({id:"".concat(i(t.id,l),"-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=ge(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(We({event:e,item:i,itemInputValue:c,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():Ce(We({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(We({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}var Xe=[{segment:"autocomplete-core",version:"1.9.3"}];function Ye(e){return Ye="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},Ye(e)}function et(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 tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach((function(t){rt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function rt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nt(e){var t,r,n,o,i=e.plugins,a=e.options,c=null===(t=((null===(r=a.__autocomplete_metadata)||void 0===r?void 0:r.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=c?rt({},c,Object.keys((null===(n=a.__autocomplete_metadata)||void 0===n?void 0:n.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:tt({"autocomplete-core":Object.keys(a)},l),ua:Xe.concat((null===(o=a.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function ot(e){var t,r=e.state;return!1===r.isOpen||null===r.activeItemId?null:(null===(t=ge(r))||void 0===t?void 0:t.itemInputValue)||null}function it(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function at(e){return at="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},at(e)}function ct(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 lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ct(Object(r),!0).forEach((function(t){ut(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ct(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ut(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==at(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==at(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===at(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var st=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return lt(lt({},e),{},{activeItemId:t.payload});case"setQuery":return lt(lt({},e),{},{query:t.payload,completion:null});case"setCollections":return lt(lt({},e),{},{collections:t.payload});case"setIsOpen":return lt(lt({},e),{},{isOpen:t.payload});case"setStatus":return lt(lt({},e),{},{status:t.payload});case"setContext":return lt(lt({},e),{},{context:lt(lt({},e.context),t.payload)});case"ArrowDown":var r=lt(lt({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:it(1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},r),{},{completion:ot({state:r})});case"ArrowUp":var n=lt(lt({},e),{},{activeItemId:it(-1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},n),{},{completion:ot({state:n})});case"Escape":return e.isOpen?lt(lt({},e),{},{activeItemId:null,isOpen:!1,completion:null}):lt(lt({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return lt(lt({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return lt(lt({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:lt(lt({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function ft(e){return ft="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},ft(e)}function mt(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 pt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach((function(t){vt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function vt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ft(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ft(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ft(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dt(e){var t=[],r=ee(e,t),n=R(st,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(pt({prevState:t,state:n,refresh:a,navigator:r.navigator},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 F(F({},e),{},{items:L(e.items).map((function(e){return F(F({},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=Ge(pt({props:r,refresh:a,store:n,navigator:r.navigator},o));function a(){return Ce(pt({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,navigator:r.navigator,query:n.getState().query,refresh:a,store:n},o))}if(e.insights&&!r.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))){var c="boolean"==typeof e.insights?{}:e.insights;r.plugins.push(N(c))}return r.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,pt(pt({},o),{},{navigator:r.navigator,refresh:a,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve: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 i=o.document.createElement("meta"),a=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(n),a.appendChild(i)}),0)}}({metadata:nt({plugins:r.plugins,options:e}),environment:r.environment}),pt(pt({refresh:a,navigator:r.navigator},i),o)}var yt=r(67294),ht=64;function bt(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return yt.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"},yt.createElement("span",{className:"DocSearch-Label"},n),yt.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},yt.createElement("defs",null,yt.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),yt.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),yt.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),yt.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),yt.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),yt.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function gt(e){return yt.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},yt.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ot(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,i=r.selectKeyAriaLabel,a=void 0===i?"Enter key":i,c=r.navigateText,l=void 0===c?"to navigate":c,u=r.navigateUpKeyAriaLabel,s=void 0===u?"Arrow up":u,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,v=void 0===p?"to close":p,d=r.closeKeyAriaLabel,y=void 0===d?"Escape key":d,h=r.searchByText,b=void 0===h?"Search by":h;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Logo"},yt.createElement(bt,{translations:{searchByText:b}})),yt.createElement("ul",{className:"DocSearch-Commands"},yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:a},yt.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),yt.createElement("span",{className:"DocSearch-Label"},o)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:m},yt.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:s},yt.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),yt.createElement("span",{className:"DocSearch-Label"},l)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:y},yt.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"}))),yt.createElement("span",{className:"DocSearch-Label"},v))))}function St(e){var t=e.hit,r=e.children;return yt.createElement("a",{href:t.url},r)}function jt(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.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 wt(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,i=r.helpText,a=void 0===i?"You might want to check your network connection.":i;return yt.createElement("div",{className:"DocSearch-ErrorScreen"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(jt,null)),yt.createElement("p",{className:"DocSearch-Title"},o),yt.createElement("p",{className:"DocSearch-Help"},a))}function Et(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.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 Pt=["translations"];function It(e){return function(e){if(Array.isArray(e))return Dt(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 Dt(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 Dt(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 Dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function At(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){var t=e.translations,r=void 0===t?{}:t,n=At(e,Pt),o=r.noResultsText,i=void 0===o?"No results for":o,a=r.suggestedQueryText,c=void 0===a?"Try searching for":a,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 yt.createElement("div",{className:"DocSearch-NoResults"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(Et,null)),yt.createElement("p",{className:"DocSearch-Title"},i,' "',yt.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&yt.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},yt.createElement("p",{className:"DocSearch-Help"},c,":"),yt.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(It(e),[yt.createElement("li",{key:t},yt.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&yt.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),yt.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var xt=function(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.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 Ct(e){switch(e.type){case"lvl1":return yt.createElement(xt,null);case"content":return yt.createElement(_t,null);default:return yt.createElement(Nt,null)}}function Nt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function _t(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Tt(){return yt.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),yt.createElement("path",{d:"M8 17l-6-6 6-6"})))}var qt=["hit","attribute","tagName"];function Rt(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 Lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(r),!0).forEach((function(t){Mt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Mt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ht(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ft(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ut(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,i=Ht(e,qt);return(0,yt.createElement)(o,Lt(Lt({},i),{},{dangerouslySetInnerHTML:{__html:Ft(t,"_snippetResult.".concat(r,".value"))||Ft(t,r)}}))}function Bt(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,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Vt(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 Vt(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 Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Kt(){return Kt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Kt.apply(this,arguments)}function $t(e){return e.collection&&0!==e.collection.items.length?yt.createElement("section",{className:"DocSearch-Hits"},yt.createElement("div",{className:"DocSearch-Hit-source"},e.title),yt.createElement("ul",e.getListProps(),e.collection.items.map((function(t,r){return yt.createElement(Jt,Kt({key:[e.title,t.objectID].join(":"),item:t,index:r},e))})))):null}function Jt(e){var t=e.item,r=e.index,n=e.renderIcon,o=e.renderAction,i=e.getItemProps,a=e.onItemClick,c=e.collection,l=e.hitComponent,u=Bt(yt.useState(!1),2),s=u[0],f=u[1],m=Bt(yt.useState(!1),2),p=m[0],v=m[1],d=yt.useRef(null),y=l;return yt.createElement("li",Kt({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",s&&"DocSearch-Hit--deleting",p&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){d.current&&d.current()}},i({item:t,source:c.source,onClick:function(e){a(t,e)}})),yt.createElement(y,{hit:t},yt.createElement("div",{className:"DocSearch-Hit-Container"},n({item:t,index:r}),t.hierarchy[t.type]&&"lvl1"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),d.current=e},runFavoriteTransition:function(e){v(!0),d.current=e}}))))}var zt=/(<mark>|<\/mark>)/g,Wt=RegExp(zt.source);function Qt(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0)||{}).value;return o&&Wt.test(o)?o.replace(zt,""):o}function Zt(){return Zt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zt.apply(this,arguments)}function Gt(e){return yt.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var r=Qt(t.items[0]);return yt.createElement($t,Zt({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(e){var r,n=e.item,o=e.index;return yt.createElement(yt.Fragment,null,n.__docsearch_parent&&yt.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},n.__docsearch_parent!==(null===(r=t.items[o+1])||void 0===r?void 0:r.__docsearch_parent)?yt.createElement("path",{d:"M8 6v21M20 27H8.3"}):yt.createElement("path",{d:"M8 6v42M20 27H8.3"}))),yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Ct,{type:n.type})))},renderAction:function(){return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement(Tt,null))}}))})),e.resultsFooterComponent&&yt.createElement("section",{className:"DocSearch-HitsFooter"},yt.createElement(e.resultsFooterComponent,{state:e.state})))}function Xt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),yt.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function Yt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function er(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var tr=["translations"];function rr(){return rr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rr.apply(this,arguments)}function nr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function or(e){var t=e.translations,r=void 0===t?{}:t,n=nr(e,tr),o=r.recentSearchesTitle,i=void 0===o?"Recent":o,a=r.noRecentSearchesText,c=void 0===a?"No recent searches":a,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,v=r.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:yt.createElement("div",{className:"DocSearch-StartScreen"},yt.createElement("p",{className:"DocSearch-Help"},c)):!1===n.hasCollections?null:yt.createElement("div",{className:"DocSearch-Dropdown-Container"},yt.createElement($t,rr({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Xt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Hit-action"},yt.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()}))}},yt.createElement(Yt,null))),yt.createElement("div",{className:"DocSearch-Hit-action"},yt.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()}))}},yt.createElement(er,null))))}})),yt.createElement($t,rr({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Yt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},yt.createElement(er,null)))}})))}var ir=["translations"];function ar(){return ar=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ar.apply(this,arguments)}function cr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lr=yt.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=cr(e,ir);if("error"===n.state.status)return yt.createElement(wt,{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?yt.createElement(kt,ar({},n,{translations:null==r?void 0:r.noResultsScreen})):yt.createElement(Gt,n):yt.createElement(or,ar({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function ur(){return yt.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},yt.createElement("g",{fill:"none",fillRule:"evenodd"},yt.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},yt.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),yt.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},yt.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var sr=r(20830),fr=["translations"];function mr(){return mr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mr.apply(this,arguments)}function pr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vr(e){var t=e.translations,r=void 0===t?{}:t,n=pr(e,fr),o=r.resetButtonTitle,i=void 0===o?"Clear the query":o,a=r.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,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 yt.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),yt.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),yt.createElement(yt.Fragment,null,yt.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},yt.createElement("label",mr({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),yt.createElement(sr.W,null)),yt.createElement("div",{className:"DocSearch-LoadingIndicator"},yt.createElement(ur,null)),yt.createElement("input",mr({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:ht}))),yt.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},yt.createElement(er,null))),yt.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var dr=["_highlightResult","_snippetResult"];function yr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function hr(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 br(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=hr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,yr(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function gr(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)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)})));i(a)})();const r=JSON.stringify(t);return o()[r]})).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),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 Or(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((()=>Or({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Or({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Or({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Or({caches:t}).clear()))}}function Sr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},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 jr(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 wr(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Pr="4.20.0",Ir={WithinQueryParameters:0,WithinHeaders:1};function Dr(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 Ar={Read:1,Write:2,Any:3},kr={Up:1,Down:2,Timeouted:3},xr=12e4;function Cr(e,t=kr.Up){return{...e,status:t,lastUpdate:Date.now()}}function Nr(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ar.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ar.Any}}const _r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function Tr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Cr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===kr.Up||Date.now()-e.lastUpdate>xr}(e))),n=e.filter((e=>function(e){return e.status===kr.Timeouted&&Date.now()-e.lastUpdate<=xr}(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=>Nr(e))):t}}))}const qr=(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);function Rr(e,t,r,n){const o=[],i=function(e,t){if(e.method===_r.Get||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),a=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),c=r.method,l=r.method!==_r.Get?{}:{...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:Fr(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},v=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},d={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=v(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Ur(n)),e.hostsCache.set(m,Cr(m,r.isTimedOut?kr.Timeouted:kr.Down))]).then((()=>f(t,l)))},onFail(e){throw v(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,Fr(o))}};return e.requester.send(p).then((e=>qr(e,d)))};return Tr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(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 Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%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 Fr(e){return e.map((e=>Ur(e)))}function Ur(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 Br=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===Ir.WithinHeaders?n:{},queryParameters:()=>e===Ir.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Ir.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>Nr(e))),read(e,t){const r=Dr(t,f.timeouts.read),n=()=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.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)=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Write))),e,Dr(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ar.Read},{url:`${t}.algolia.net`,accept:Ar.Write}].concat(jr([{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 wr(o,e.methods)},Vr=e=>(t,r)=>t.method===_r.Get?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>wr({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),$r=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:_r.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Jr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Qr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Wr=e=>(t,r)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Qr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr={Debug:1,Info:2,Error:3};function Gr(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 i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Zr.Error,{debug:(e,t)=>(Zr.Debug>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Zr.Info>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Sr(),requestsCache:Sr({serializable:!1}),hostsCache:Or({caches:[gr({key:`${Pr}-${e}`}),Sr()]}),userAgent:Lr(Pr).add({segment:"Browser",version:"lite"}),authMode:Ir.WithinQueryParameters};var o;return Br({...n,...r,methods:{search:$r,searchForFacetValues:Jr,multipleQueries:$r,multipleSearchForFacetValues:Jr,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Wr,searchForFacetValues:Qr,findAnswers:zr}})}})}Gr.version=Pr;const Xr=Gr;var Yr="3.5.2";function en(){}function tn(e){return e}function rn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nn(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}var on=["footer","searchBox"];function an(){return an=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},an.apply(this,arguments)}function cn(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 ln(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?cn(Object(r),!0).forEach((function(t){un(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function un(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sn(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,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return fn(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 fn(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 fn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mn(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pn(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?en:l,s=e.transformItems,f=void 0===s?tn:s,m=e.hitComponent,p=void 0===m?St:m,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,y=e.navigator,h=e.initialScrollY,b=void 0===h?0:h,g=e.transformSearchClient,O=void 0===g?tn:g,S=e.disableUserPersonalization,j=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,P=e.translations,I=void 0===P?{}:P,D=e.getMissingResultsUrl,A=e.insights,k=void 0!==A&&A,x=I.footer,C=I.searchBox,N=mn(I,on),_=sn(yt.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=_[0],q=_[1],R=yt.useRef(null),L=yt.useRef(null),M=yt.useRef(null),H=yt.useRef(null),F=yt.useRef(null),U=yt.useRef(10),B=yt.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,ht):"").current,V=yt.useRef(E||B).current,K=function(e,t,r){return yt.useMemo((function(){var n=Xr(e,t);return n.addAlgoliaAgent("docsearch",Yr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",Yr),r(n)}),[e,t,r])}(t,r,O),$=yt.useRef(br({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,J=yt.useRef(br({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===$.getAll().length?7:4})).current,z=yt.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===$.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&J.add(t)}}),[$,J,j]),W=yt.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[T.context.algoliaInsightsPlugin]),Q=yt.useMemo((function(){return dt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:y,onStateChange:function(e){q(e.state)},getSources:function(e){var o=e.query,i=e.state,l=e.setContext,s=e.setStatus;if(!o)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return J.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return $.getAll()}}];var m=Boolean(k);return K.search([{query:o,indexName:n,params:ln({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(U.current),"hierarchy.lvl2:".concat(U.current),"hierarchy.lvl3:".concat(U.current),"hierarchy.lvl4:".concat(U.current),"hierarchy.lvl5:".concat(U.current),"hierarchy.lvl6:".concat(U.current),"content:".concat(U.current)],snippetEllipsisText:"\u2026",highlightPreTag:"<mark>",highlightPostTag:"</mark>",hitsPerPage:20,clickAnalytics:m},a)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],a=o.hits,s=o.nbHits,p=nn(a,(function(e){return Qt(e)}),c);i.context.searchSuggestions.length<Object.keys(p).length&&l({searchSuggestions:Object.keys(p)}),l({nbHits:s});var v={};return m&&(v={__autocomplete_indexName:n,__autocomplete_queryID:o.queryID,__autocomplete_algoliaCredentials:{appId:t,apiKey:r}}),Object.values(p).map((function(e,t){return{sourceId:"hits".concat(t),onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Object.values(nn(e,(function(e){return e.hierarchy.lvl1}),c)).map(f).map((function(e){return e.map((function(t){var r=null,n=e.find((function(e){return"lvl1"===e.type&&e.hierarchy.lvl1===t.hierarchy.lvl1}));return"lvl1"!==t.type&&n&&(r=n),ln(ln({},t),{},{__docsearch_parent:r},v)}))})).flat()}}}))}))}})}),[n,a,c,K,u,J,$,z,V,i,y,f,j,k,t,r]),Z=Q.getEnvironmentProps,G=Q.getRootProps,X=Q.refresh;return function(e){var t=e.getEnvironmentProps,r=e.panelElement,n=e.formElement,o=e.inputElement;yt.useEffect((function(){if(r&&n&&o){var e=t({panelElement:r,formElement:n,inputElement:o}),i=e.onTouchStart,a=e.onTouchMove;return window.addEventListener("touchstart",i),window.addEventListener("touchmove",a),function(){window.removeEventListener("touchstart",i),window.removeEventListener("touchmove",a)}}}),[t,r,n,o])}({getEnvironmentProps:Z,panelElement:H.current,formElement:M.current,inputElement:F.current}),function(e){var t=e.container;yt.useEffect((function(){if(t){var e=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),r=e[0],n=e[e.length-1];return t.addEventListener("keydown",o),function(){t.removeEventListener("keydown",o)}}function o(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===r&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),r.focus()))}}),[t])}({container:R.current}),yt.useEffect((function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,b)}}),[]),yt.useEffect((function(){window.matchMedia("(max-width: 768px)").matches&&(U.current=5)}),[]),yt.useEffect((function(){H.current&&(H.current.scrollTop=0)}),[T.query]),yt.useEffect((function(){V.length>0&&(X(),F.current&&F.current.focus())}),[V,X]),yt.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),yt.createElement("div",an({ref:R},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),yt.createElement("div",{className:"DocSearch-Modal",ref:L},yt.createElement("header",{className:"DocSearch-SearchBar",ref:M},yt.createElement(vr,an({},Q,{state:T,autoFocus:0===V.length,inputRef:F,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:u}))),yt.createElement("div",{className:"DocSearch-Dropdown",ref:H},yt.createElement(lr,an({},Q,{indexName:n,state:T,hitComponent:p,resultsFooterComponent:d,disableUserPersonalization:j,recentSearches:J,favoriteSearches:$,inputRef:F,translations:N,getMissingResultsUrl:D,onItemClick:function(e,t){W(e),z(e),rn(t)||u()}}))),yt.createElement("footer",{className:"DocSearch-Footer"},yt.createElement(Ot,{translations:x}))))}}}]); \ No newline at end of file diff --git a/assets/js/1426.e847ca7b.js b/assets/js/1426.e847ca7b.js deleted file mode 100644 index 608a83b..0000000 --- a/assets/js/1426.e847ca7b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1426],{1426:(e,t,r)=>{function n(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];r&&clearTimeout(r),r=setTimeout((function(){return e.apply(void 0,o)}),t)}}function o(e){return e!==Object(e)}function i(e,t){if(e===t)return!0;if(o(e)||o(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r=0,n=Object.keys(e);r<n.length;r++){var a=n[r];if(!(a in t))return!1;if(!i(e[a],t[a]))return!1}return!0}r.r(t),r.d(t,{DocSearchModal:()=>pn});var a=function(){};function c(e){var t=e.item,r=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function l(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){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(s){u=!0,o=s}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(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 u(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 u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var s=["items"],f=["items"];function m(e){return m="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},m(e)}function p(e){return function(e){if(Array.isArray(e))return v(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 v(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 v(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 v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(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 h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==m(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===m(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e){return e.map((function(e){var t=e.items,r=d(e,s);return h(h({},r),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||r.objectIDs})}))}function O(e){var t,r,n,o=(t=l((e.version||"").split(".").map(Number),2),r=t[0],n=t[1],r>=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(p(r),[{headers:a}]))}else e.apply(void 0,[t].concat(p(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDsAfterSearch",g(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("clickedObjectIDs",g(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDsAfterSearch",g(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&i("convertedObjectIDs",g(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t.length>0&&t.reduce((function(e,t){var r=t.items,n=d(t,f);return[].concat(p(e),p(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n<e.objectIDs.length;n+=t)r.push(h(h({},e),{},{objectIDs:e.objectIDs.slice(n,n+t)}));return r}(h(h({},n),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||n.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.length>0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function S(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function w(e){return w="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},w(e)}function E(e){return function(e){if(Array.isArray(e))return P(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 P(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 P(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 P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function I(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){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?I(Object(r),!0).forEach((function(t){A(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function A(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==w(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===w(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var k="2.6.0",x="https://cdn.jsdelivr.net/npm/search-insights@".concat(k,"/dist/search-insights.min.js"),C=n((function(e){var t=e.onItemsChange,r=e.items,n=e.insights,o=e.state;t({insights:n,insightsEvents:S({items:r}).map((function(e){return D({eventName:"Items Viewed"},e)})),state:o})}),400);function N(e){var t=function(e){return D({onItemsChange:function(e){var t=e.insights,r=e.insightsEvents;t.viewedObjectIDs.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,r=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,E(r.map((function(e){return D(D({},e),{},{algoliaSource:[].concat(E(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:a},e)}(e),r=t.insightsClient,o=t.onItemsChange,l=t.onSelect,u=t.onActive,s=r;r||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,r=t.AlgoliaAnalyticsObject||"aa";"string"==typeof r&&(s=t[r]),s||(t.AlgoliaAnalyticsObject=r,t[r]||(t[r]=function(){t[r].queue||(t[r].queue=[]);for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];t[r].queue.push(n)}),t[r].version=k,s=t[r],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var r=e.document.createElement("script");r.async=!0,r.src=x,r.onerror=function(){console.error(t)},document.body.appendChild(r)}catch(n){console.error(t)}}(t))}));var f=O(s),m={current:[]},p=n((function(e){var t=e.state;if(t.isOpen){var r=t.collections.reduce((function(e,t){return[].concat(E(e),E(t.items))}),[]).filter(j);i(m.current.map((function(e){return e.objectID})),r.map((function(e){return e.objectID})))||(m.current=r,r.length>0&&C({onItemsChange:o,items:r,insights:f,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;s("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:f}}),r((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&l({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Selected"},c({item:t,items:m.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&u({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Active"},c({item:t,items:m.current}))]})}))},onStateChange:function(e){var t=e.state;p({state:t})},__autocomplete_pluginOptions:e}}function _(e){return _="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)}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 q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==_(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t,r){var n,o=t.initialState;return{getState:function(){return o},dispatch:function(n,i){var a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){q(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},o);o=e(o,{type:n,props:t,payload:i}),r({state:o,prevState:a})},pendingRequests:(n=[],{add:function(e){return n.push(e),e.finally((function(){n=n.filter((function(t){return t!==e}))}))},cancelAll:function(){n.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===n.length}})}}function L(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function M(e){return M="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},M(e)}function H(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 F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?H(Object(r),!0).forEach((function(t){U(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):H(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function U(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==M(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==M(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===M(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var V=0;function K(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 $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?K(Object(r),!0).forEach((function(t){J(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function J(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==z(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===z(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z(e){return z="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},z(e)}function W(e){return W="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},W(e)}function Q(e){return function(e){if(Array.isArray(e))return Z(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 Z(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 Z(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 Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function G(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 X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach((function(t){Y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==W(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==W(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===W(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){var r,n="undefined"!=typeof window?window:{},o=e.plugins||[];return X(X({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:n,shouldPanelOpen:function(e){return B(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(V++),plugins:o,initialState:X({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(Q(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(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={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:a,onResolve:a};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=$($({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return X(X({},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)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:X({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)})}function te(e){return te="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},te(e)}function re(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 ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach((function(t){oe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function oe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==te(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===te(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ie(e){return ie="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},ie(e)}function ae(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 ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(r),!0).forEach((function(t){le(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ae(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function le(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ie(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ie(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ue(e){return function(e){if(Array.isArray(e))return se(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 se(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 se(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 se(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(e){return Boolean(e.execute)}function me(e,t,r){if(o=e,Boolean(null==o?void 0:o.execute)){var n="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(ue(Object.keys(r.context).map((function(e){var t;return null===(t=r.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return ce(ce({},e),{},{requests:e.queries.map((function(r){return{query:"algolia"===e.requesterId?ce(ce({},r),{},{params:ce(ce({},n),r.params)}):r,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function pe(e){var t=e.reduce((function(e,t){if(!fe(t))return e.push(t),e;var r=t.searchClient,n=t.execute,o=t.requesterId,i=t.requests,a=e.find((function(e){return fe(t)&&fe(e)&&e.searchClient===r&&Boolean(o)&&e.requesterId===o}));if(a){var c;(c=a.items).push.apply(c,ue(i))}else{var l={execute:n,requesterId:o,items:i,searchClient:r};e.push(l)}return e}),[]).map((function(e){if(!fe(e))return Promise.resolve(e);var t=e,r=t.execute,n=t.items;return r({searchClient:t.searchClient,requests:n})}));return Promise.all(t).then((function(e){return L(e)}))}function ve(e,t,r){return t.map((function(t){var n,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,c=a?a({results:n=i,hits:n.map((function(e){return e.hits})).filter(Boolean),facetHits:n.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:c,state:r.getState()}),Array.isArray(c),c.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:c}}))}function de(e,t){var r=t;return{then:function(t,n){return de(e.then(be(t,r,e),be(n,r,e)),r)},catch:function(t){return de(e.catch(be(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),de(e.finally(be(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ye(e){return de(new Promise((function(t,r){return e(t,r)})),{isCanceled:!1,onCancelList:[]})}function he(e){return de(e,{isCanceled:!1,onCancelList:[]})}function be(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function ge(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,r){var n=(e[r-1]||0)+t;return e.push(n),e}),[]).reduce((function(t,r){return r<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var r=t.items[function(e){for(var t=e.state,r=e.collection,n=!1,o=0,i=0;!1===n;){var a=t.collections[o];if(a===r){n=!0;break}i+=a.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],n=t.source;return{item:r,itemInputValue:n.getItemInputValue({item:r,state:e}),itemUrl:n.getItemUrl({item:r,state:e}),source:n}}function Oe(e){return Oe="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},Oe(e)}ye.resolve=function(e){return he(Promise.resolve(e))},ye.reject=function(e){return he(Promise.reject(e))};var Se=["event","nextState","props","query","refresh","store"];function je(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 we(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?je(Object(r),!0).forEach((function(t){Ee(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ee(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Oe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Oe(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie,De,Ae,ke=null,xe=(Ie=-1,De=-1,Ae=void 0,function(e){var t=++Ie;return Promise.resolve(e).then((function(e){return Ae&&t<De?Ae:(De=t,Ae=e,e)}))});function Ce(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,i=e.query,a=e.refresh,c=e.store,l=Pe(e,Se);ke&&o.environment.clearTimeout(ke);var u=l.setCollections,s=l.setIsOpen,f=l.setQuery,m=l.setActiveItemId,p=l.setStatus;if(f(i),m(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var v,d=c.getState().collections.map((function(e){return we(we({},e),{},{items:[]})}));p("idle"),u(d),s(null!==(v=n.isOpen)&&void 0!==v?v:o.shouldPanelOpen({state:c.getState()}));var y=he(xe(d).then((function(){return Promise.resolve()})));return c.pendingRequests.add(y)}p("loading"),ke=o.environment.setTimeout((function(){p("stalled")}),o.stallThreshold);var h=he(xe(o.getSources(we({query:i,refresh:a,state:c.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(we({query:i,refresh:a,state:c.getState()},l))).then((function(t){return me(t,e.sourceId,c.getState())}))}))).then(pe).then((function(t){return ve(t,e,c)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return ne(ne({},e),{},oe({},t.source.sourceId,ne(ne({},t.source),{},{getItems:function(){return L(t.items)}})))}),{}),i=r.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:n}).sourcesBySourceId;return L(r.reshape({sourcesBySourceId:i,sources:Object.values(i),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:c.getState()})}))})))).then((function(e){var r;p("idle"),u(e);var f=o.shouldPanelOpen({state:c.getState()});s(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!i&&f||f);var m=ge(c.getState());if(null!==c.getState().activeItemId&&m){var v=m.item,d=m.itemInputValue,y=m.itemUrl,h=m.source;h.onActive(we({event:t,item:v,itemInputValue:d,itemUrl:y,refresh:a,source:h,state:c.getState()},l))}})).finally((function(){p("idle"),ke&&o.environment.clearTimeout(ke)}));return c.pendingRequests.add(h)}function Ne(e){return Ne="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},Ne(e)}var _e=["event","props","refresh","store"];function Te(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<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(r),!0).forEach((function(t){Re(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Te(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Re(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Ne(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ne(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ne(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Le(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function He(e){return He="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},He(e)}var Fe=["props","refresh","store"],Ue=["inputElement","formElement","panelElement"],Be=["inputElement"],Ve=["inputElement","maxLength"],Ke=["sourceIndex"],$e=["sourceIndex"],Je=["item","source","sourceIndex"];function ze(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 We(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ze(Object(r),!0).forEach((function(t){Qe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Qe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==He(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==He(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===He(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ze(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e){var t=e.props,r=e.refresh,n=e.store,o=Ze(e,Fe),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].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 We({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},Ze(e,Ue))},getRootProps:function(e){return We({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 We({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Ze(e,Be))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,Ke);return We({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Ce(We({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var l=e||{},u=(l.inputElement,l.maxLength),s=void 0===u?512:u,f=Ze(l,Ve),m=ge(n.getState()),p=function(e){return Boolean(e&&e.match(Me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),v=null!=m&&m.itemUrl&&!p?"go":"search";return We({"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:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Ce(We({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=Le(e,_e);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ge(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(qe({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Ce(qe({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}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=ge(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});Ce(qe({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(We({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:a,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},f)},getPanelProps:function(e){return We({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,$e);return We({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=Ze(e,Je);return We({id:"".concat(i(t.id,l),"-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=ge(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(We({event:e,item:i,itemInputValue:c,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():Ce(We({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(We({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}var Xe=[{segment:"autocomplete-core",version:"1.9.3"}];function Ye(e){return Ye="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},Ye(e)}function et(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 tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach((function(t){rt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function rt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nt(e){var t,r,n,o,i=e.plugins,a=e.options,c=null===(t=((null===(r=a.__autocomplete_metadata)||void 0===r?void 0:r.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=c?rt({},c,Object.keys((null===(n=a.__autocomplete_metadata)||void 0===n?void 0:n.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:tt({"autocomplete-core":Object.keys(a)},l),ua:Xe.concat((null===(o=a.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function ot(e){var t,r=e.state;return!1===r.isOpen||null===r.activeItemId?null:(null===(t=ge(r))||void 0===t?void 0:t.itemInputValue)||null}function it(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function at(e){return at="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},at(e)}function ct(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 lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ct(Object(r),!0).forEach((function(t){ut(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ct(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ut(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==at(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==at(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===at(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var st=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return lt(lt({},e),{},{activeItemId:t.payload});case"setQuery":return lt(lt({},e),{},{query:t.payload,completion:null});case"setCollections":return lt(lt({},e),{},{collections:t.payload});case"setIsOpen":return lt(lt({},e),{},{isOpen:t.payload});case"setStatus":return lt(lt({},e),{},{status:t.payload});case"setContext":return lt(lt({},e),{},{context:lt(lt({},e.context),t.payload)});case"ArrowDown":var r=lt(lt({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:it(1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},r),{},{completion:ot({state:r})});case"ArrowUp":var n=lt(lt({},e),{},{activeItemId:it(-1,e.activeItemId,B(e),t.props.defaultActiveItemId)});return lt(lt({},n),{},{completion:ot({state:n})});case"Escape":return e.isOpen?lt(lt({},e),{},{activeItemId:null,isOpen:!1,completion:null}):lt(lt({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return lt(lt({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return lt(lt({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:lt(lt({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return lt(lt({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function ft(e){return ft="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},ft(e)}function mt(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 pt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach((function(t){vt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function vt(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==ft(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ft(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ft(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dt(e){var t=[],r=ee(e,t),n=R(st,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(pt({prevState:t,state:n,refresh:a,navigator:r.navigator},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 F(F({},e),{},{items:L(e.items).map((function(e){return F(F({},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=Ge(pt({props:r,refresh:a,store:n,navigator:r.navigator},o));function a(){return Ce(pt({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,navigator:r.navigator,query:n.getState().query,refresh:a,store:n},o))}if(e.insights&&!r.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))){var c="boolean"==typeof e.insights?{}:e.insights;r.plugins.push(N(c))}return r.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,pt(pt({},o),{},{navigator:r.navigator,refresh:a,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve: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 i=o.document.createElement("meta"),a=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(n),a.appendChild(i)}),0)}}({metadata:nt({plugins:r.plugins,options:e}),environment:r.environment}),pt(pt({refresh:a,navigator:r.navigator},i),o)}var yt=r(7294),ht=64;function bt(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return yt.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"},yt.createElement("span",{className:"DocSearch-Label"},n),yt.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},yt.createElement("defs",null,yt.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),yt.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),yt.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),yt.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),yt.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),yt.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),yt.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),yt.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function gt(e){return yt.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},yt.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ot(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,i=r.selectKeyAriaLabel,a=void 0===i?"Enter key":i,c=r.navigateText,l=void 0===c?"to navigate":c,u=r.navigateUpKeyAriaLabel,s=void 0===u?"Arrow up":u,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,v=void 0===p?"to close":p,d=r.closeKeyAriaLabel,y=void 0===d?"Escape key":d,h=r.searchByText,b=void 0===h?"Search by":h;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Logo"},yt.createElement(bt,{translations:{searchByText:b}})),yt.createElement("ul",{className:"DocSearch-Commands"},yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:a},yt.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),yt.createElement("span",{className:"DocSearch-Label"},o)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:m},yt.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:s},yt.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),yt.createElement("span",{className:"DocSearch-Label"},l)),yt.createElement("li",null,yt.createElement("kbd",{className:"DocSearch-Commands-Key"},yt.createElement(gt,{ariaLabel:y},yt.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"}))),yt.createElement("span",{className:"DocSearch-Label"},v))))}function St(e){var t=e.hit,r=e.children;return yt.createElement("a",{href:t.url},r)}function jt(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.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 wt(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,i=r.helpText,a=void 0===i?"You might want to check your network connection.":i;return yt.createElement("div",{className:"DocSearch-ErrorScreen"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(jt,null)),yt.createElement("p",{className:"DocSearch-Title"},o),yt.createElement("p",{className:"DocSearch-Help"},a))}function Et(){return yt.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yt.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 Pt=["translations"];function It(e){return function(e){if(Array.isArray(e))return Dt(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 Dt(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 Dt(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 Dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function At(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){var t=e.translations,r=void 0===t?{}:t,n=At(e,Pt),o=r.noResultsText,i=void 0===o?"No results for":o,a=r.suggestedQueryText,c=void 0===a?"Try searching for":a,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 yt.createElement("div",{className:"DocSearch-NoResults"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(Et,null)),yt.createElement("p",{className:"DocSearch-Title"},i,' "',yt.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&yt.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},yt.createElement("p",{className:"DocSearch-Help"},c,":"),yt.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(It(e),[yt.createElement("li",{key:t},yt.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&yt.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),yt.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var xt=function(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.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 Ct(e){switch(e.type){case"lvl1":return yt.createElement(xt,null);case"content":return yt.createElement(_t,null);default:return yt.createElement(Nt,null)}}function Nt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function _t(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Tt(){return yt.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),yt.createElement("path",{d:"M8 17l-6-6 6-6"})))}var qt=["hit","attribute","tagName"];function Rt(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 Lt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(r),!0).forEach((function(t){Mt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Mt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ht(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ft(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ut(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,i=Ht(e,qt);return(0,yt.createElement)(o,Lt(Lt({},i),{},{dangerouslySetInnerHTML:{__html:Ft(t,"_snippetResult.".concat(r,".value"))||Ft(t,r)}}))}function Bt(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,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Vt(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 Vt(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 Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Kt(){return Kt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Kt.apply(this,arguments)}function $t(e){return e.collection&&0!==e.collection.items.length?yt.createElement("section",{className:"DocSearch-Hits"},yt.createElement("div",{className:"DocSearch-Hit-source"},e.title),yt.createElement("ul",e.getListProps(),e.collection.items.map((function(t,r){return yt.createElement(Jt,Kt({key:[e.title,t.objectID].join(":"),item:t,index:r},e))})))):null}function Jt(e){var t=e.item,r=e.index,n=e.renderIcon,o=e.renderAction,i=e.getItemProps,a=e.onItemClick,c=e.collection,l=e.hitComponent,u=Bt(yt.useState(!1),2),s=u[0],f=u[1],m=Bt(yt.useState(!1),2),p=m[0],v=m[1],d=yt.useRef(null),y=l;return yt.createElement("li",Kt({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",s&&"DocSearch-Hit--deleting",p&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){d.current&&d.current()}},i({item:t,source:c.source,onClick:function(e){a(t,e)}})),yt.createElement(y,{hit:t},yt.createElement("div",{className:"DocSearch-Hit-Container"},n({item:t,index:r}),t.hierarchy[t.type]&&"lvl1"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&yt.createElement("div",{className:"DocSearch-Hit-content-wrapper"},yt.createElement(Ut,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),yt.createElement(Ut,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),d.current=e},runFavoriteTransition:function(e){v(!0),d.current=e}}))))}var zt=/(<mark>|<\/mark>)/g,Wt=RegExp(zt.source);function Qt(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0)||{}).value;return o&&Wt.test(o)?o.replace(zt,""):o}function Zt(){return Zt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zt.apply(this,arguments)}function Gt(e){return yt.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var r=Qt(t.items[0]);return yt.createElement($t,Zt({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(e){var r,n=e.item,o=e.index;return yt.createElement(yt.Fragment,null,n.__docsearch_parent&&yt.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},n.__docsearch_parent!==(null===(r=t.items[o+1])||void 0===r?void 0:r.__docsearch_parent)?yt.createElement("path",{d:"M8 6v21M20 27H8.3"}):yt.createElement("path",{d:"M8 6v42M20 27H8.3"}))),yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Ct,{type:n.type})))},renderAction:function(){return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement(Tt,null))}}))})),e.resultsFooterComponent&&yt.createElement("section",{className:"DocSearch-HitsFooter"},yt.createElement(e.resultsFooterComponent,{state:e.state})))}function Xt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),yt.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function Yt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function er(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var tr=["translations"];function rr(){return rr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rr.apply(this,arguments)}function nr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function or(e){var t=e.translations,r=void 0===t?{}:t,n=nr(e,tr),o=r.recentSearchesTitle,i=void 0===o?"Recent":o,a=r.noRecentSearchesText,c=void 0===a?"No recent searches":a,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,v=r.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:yt.createElement("div",{className:"DocSearch-StartScreen"},yt.createElement("p",{className:"DocSearch-Help"},c)):!1===n.hasCollections?null:yt.createElement("div",{className:"DocSearch-Dropdown-Container"},yt.createElement($t,rr({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Xt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Hit-action"},yt.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()}))}},yt.createElement(Yt,null))),yt.createElement("div",{className:"DocSearch-Hit-action"},yt.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()}))}},yt.createElement(er,null))))}})),yt.createElement($t,rr({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Yt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},yt.createElement(er,null)))}})))}var ir=["translations"];function ar(){return ar=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ar.apply(this,arguments)}function cr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lr=yt.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=cr(e,ir);if("error"===n.state.status)return yt.createElement(wt,{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?yt.createElement(kt,ar({},n,{translations:null==r?void 0:r.noResultsScreen})):yt.createElement(Gt,n):yt.createElement(or,ar({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function ur(){return yt.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},yt.createElement("g",{fill:"none",fillRule:"evenodd"},yt.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},yt.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),yt.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},yt.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var sr=r(830),fr=["translations"];function mr(){return mr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mr.apply(this,arguments)}function pr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vr(e){var t=e.translations,r=void 0===t?{}:t,n=pr(e,fr),o=r.resetButtonTitle,i=void 0===o?"Clear the query":o,a=r.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,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 yt.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),yt.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),yt.createElement(yt.Fragment,null,yt.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},yt.createElement("label",mr({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),yt.createElement(sr.W,null)),yt.createElement("div",{className:"DocSearch-LoadingIndicator"},yt.createElement(ur,null)),yt.createElement("input",mr({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:ht}))),yt.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},yt.createElement(er,null))),yt.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var dr=["_highlightResult","_snippetResult"];function yr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function hr(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 br(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=hr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,yr(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function gr(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)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)})));i(a)})();const r=JSON.stringify(t);return o()[r]})).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),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 Or(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((()=>Or({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Or({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Or({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Or({caches:t}).clear()))}}function Sr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},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 jr(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 wr(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Pr="4.20.0",Ir={WithinQueryParameters:0,WithinHeaders:1};function Dr(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 Ar={Read:1,Write:2,Any:3},kr={Up:1,Down:2,Timeouted:3},xr=12e4;function Cr(e,t=kr.Up){return{...e,status:t,lastUpdate:Date.now()}}function Nr(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ar.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ar.Any}}const _r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function Tr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Cr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===kr.Up||Date.now()-e.lastUpdate>xr}(e))),n=e.filter((e=>function(e){return e.status===kr.Timeouted&&Date.now()-e.lastUpdate<=xr}(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=>Nr(e))):t}}))}const qr=(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);function Rr(e,t,r,n){const o=[],i=function(e,t){if(e.method===_r.Get||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),a=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),c=r.method,l=r.method!==_r.Get?{}:{...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:Fr(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},v=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},d={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=v(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Ur(n)),e.hostsCache.set(m,Cr(m,r.isTimedOut?kr.Timeouted:kr.Down))]).then((()=>f(t,l)))},onFail(e){throw v(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,Fr(o))}};return e.requester.send(p).then((e=>qr(e,d)))};return Tr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(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 Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%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 Fr(e){return e.map((e=>Ur(e)))}function Ur(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 Br=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===Ir.WithinHeaders?n:{},queryParameters:()=>e===Ir.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Ir.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>Nr(e))),read(e,t){const r=Dr(t,f.timeouts.read),n=()=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.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)=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Write))),e,Dr(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ar.Read},{url:`${t}.algolia.net`,accept:Ar.Write}].concat(jr([{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 wr(o,e.methods)},Vr=e=>(t,r)=>t.method===_r.Get?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>wr({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),$r=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:_r.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Jr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Qr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Wr=e=>(t,r)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Qr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr={Debug:1,Info:2,Error:3};function Gr(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 i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Zr.Error,{debug:(e,t)=>(Zr.Debug>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Zr.Info>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Sr(),requestsCache:Sr({serializable:!1}),hostsCache:Or({caches:[gr({key:`${Pr}-${e}`}),Sr()]}),userAgent:Lr(Pr).add({segment:"Browser",version:"lite"}),authMode:Ir.WithinQueryParameters};var o;return Br({...n,...r,methods:{search:$r,searchForFacetValues:Jr,multipleQueries:$r,multipleSearchForFacetValues:Jr,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Wr,searchForFacetValues:Qr,findAnswers:zr}})}})}Gr.version=Pr;const Xr=Gr;var Yr="3.5.2";function en(){}function tn(e){return e}function rn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nn(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}var on=["footer","searchBox"];function an(){return an=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},an.apply(this,arguments)}function cn(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 ln(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?cn(Object(r),!0).forEach((function(t){un(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function un(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sn(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,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return fn(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 fn(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 fn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mn(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pn(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?en:l,s=e.transformItems,f=void 0===s?tn:s,m=e.hitComponent,p=void 0===m?St:m,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,y=e.navigator,h=e.initialScrollY,b=void 0===h?0:h,g=e.transformSearchClient,O=void 0===g?tn:g,S=e.disableUserPersonalization,j=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,P=e.translations,I=void 0===P?{}:P,D=e.getMissingResultsUrl,A=e.insights,k=void 0!==A&&A,x=I.footer,C=I.searchBox,N=mn(I,on),_=sn(yt.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=_[0],q=_[1],R=yt.useRef(null),L=yt.useRef(null),M=yt.useRef(null),H=yt.useRef(null),F=yt.useRef(null),U=yt.useRef(10),B=yt.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,ht):"").current,V=yt.useRef(E||B).current,K=function(e,t,r){return yt.useMemo((function(){var n=Xr(e,t);return n.addAlgoliaAgent("docsearch",Yr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",Yr),r(n)}),[e,t,r])}(t,r,O),$=yt.useRef(br({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,J=yt.useRef(br({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===$.getAll().length?7:4})).current,z=yt.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===$.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&J.add(t)}}),[$,J,j]),W=yt.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[T.context.algoliaInsightsPlugin]),Q=yt.useMemo((function(){return dt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:y,onStateChange:function(e){q(e.state)},getSources:function(e){var o=e.query,i=e.state,l=e.setContext,s=e.setStatus;if(!o)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return J.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return $.getAll()}}];var m=Boolean(k);return K.search([{query:o,indexName:n,params:ln({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(U.current),"hierarchy.lvl2:".concat(U.current),"hierarchy.lvl3:".concat(U.current),"hierarchy.lvl4:".concat(U.current),"hierarchy.lvl5:".concat(U.current),"hierarchy.lvl6:".concat(U.current),"content:".concat(U.current)],snippetEllipsisText:"\u2026",highlightPreTag:"<mark>",highlightPostTag:"</mark>",hitsPerPage:20,clickAnalytics:m},a)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],a=o.hits,s=o.nbHits,p=nn(a,(function(e){return Qt(e)}),c);i.context.searchSuggestions.length<Object.keys(p).length&&l({searchSuggestions:Object.keys(p)}),l({nbHits:s});var v={};return m&&(v={__autocomplete_indexName:n,__autocomplete_queryID:o.queryID,__autocomplete_algoliaCredentials:{appId:t,apiKey:r}}),Object.values(p).map((function(e,t){return{sourceId:"hits".concat(t),onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Object.values(nn(e,(function(e){return e.hierarchy.lvl1}),c)).map(f).map((function(e){return e.map((function(t){var r=null,n=e.find((function(e){return"lvl1"===e.type&&e.hierarchy.lvl1===t.hierarchy.lvl1}));return"lvl1"!==t.type&&n&&(r=n),ln(ln({},t),{},{__docsearch_parent:r},v)}))})).flat()}}}))}))}})}),[n,a,c,K,u,J,$,z,V,i,y,f,j,k,t,r]),Z=Q.getEnvironmentProps,G=Q.getRootProps,X=Q.refresh;return function(e){var t=e.getEnvironmentProps,r=e.panelElement,n=e.formElement,o=e.inputElement;yt.useEffect((function(){if(r&&n&&o){var e=t({panelElement:r,formElement:n,inputElement:o}),i=e.onTouchStart,a=e.onTouchMove;return window.addEventListener("touchstart",i),window.addEventListener("touchmove",a),function(){window.removeEventListener("touchstart",i),window.removeEventListener("touchmove",a)}}}),[t,r,n,o])}({getEnvironmentProps:Z,panelElement:H.current,formElement:M.current,inputElement:F.current}),function(e){var t=e.container;yt.useEffect((function(){if(t){var e=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),r=e[0],n=e[e.length-1];return t.addEventListener("keydown",o),function(){t.removeEventListener("keydown",o)}}function o(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===r&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),r.focus()))}}),[t])}({container:R.current}),yt.useEffect((function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,b)}}),[]),yt.useEffect((function(){window.matchMedia("(max-width: 768px)").matches&&(U.current=5)}),[]),yt.useEffect((function(){H.current&&(H.current.scrollTop=0)}),[T.query]),yt.useEffect((function(){V.length>0&&(X(),F.current&&F.current.focus())}),[V,X]),yt.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),yt.createElement("div",an({ref:R},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),yt.createElement("div",{className:"DocSearch-Modal",ref:L},yt.createElement("header",{className:"DocSearch-SearchBar",ref:M},yt.createElement(vr,an({},Q,{state:T,autoFocus:0===V.length,inputRef:F,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:u}))),yt.createElement("div",{className:"DocSearch-Dropdown",ref:H},yt.createElement(lr,an({},Q,{indexName:n,state:T,hitComponent:p,resultsFooterComponent:d,disableUserPersonalization:j,recentSearches:J,favoriteSearches:$,inputRef:F,translations:N,getMissingResultsUrl:D,onItemClick:function(e,t){W(e),z(e),rn(t)||u()}}))),yt.createElement("footer",{className:"DocSearch-Footer"},yt.createElement(Ot,{translations:x}))))}}}]); \ No newline at end of file diff --git a/assets/js/146d9b84.996dfbcb.js b/assets/js/146d9b84.996dfbcb.js deleted file mode 100644 index bc4ba46..0000000 --- a/assets/js/146d9b84.996dfbcb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9300],{6671:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/admin","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/146d9b84.bdf83d64.js b/assets/js/146d9b84.bdf83d64.js new file mode 100644 index 0000000..053d154 --- /dev/null +++ b/assets/js/146d9b84.bdf83d64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9300],{96671:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/admin","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.4a9ef768.js b/assets/js/14eb3368.4a9ef768.js deleted file mode 100644 index d3c47d8..0000000 --- a/assets/js/14eb3368.4a9ef768.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9817],{1310:(e,t,s)=>{s.d(t,{Z:()=>p});s(7294);var n=s(6010),i=s(5281),a=s(3438),r=s(8596),c=s(9960),l=s(5999),o=s(4996),d=s(5893);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const u={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,o.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.Z,{"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(m,{className:u.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function x(e){let{children:t,href:s,isLast:n}=e;const i="breadcrumbs__link";return n?(0,d.jsx)("span",{className:i,itemProp:"name",children:t}):s?(0,d.jsx)(c.Z,{className:i,href:s,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:i,children:t})}function v(e){let{children:t,active:s,index:i,addMicrodata:a}=e;return(0,d.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,n.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(i+1)})]})}function p(){const e=(0,a.s1)(),t=(0,r.Ns)();return e?(0,d.jsx)("nav",{className:(0,n.Z)(i.k.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,s)=>{const n=s===e.length-1,i="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(v,{active:n,index:s,addMicrodata:!!i,children:(0,d.jsx)(x,{href:i,isLast:n,children:t.label})},s)}))]})}):null}},4228:(e,t,s)=>{s.r(t),s.d(t,{default:()=>I});s(7294);var n=s(833),i=s(3438),a=s(4996),r=s(6010),c=s(9960),l=s(3919),o=s(5999),d=s(7955);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var u=s(5893);function h(e){let{href:t,children:s}=e;return(0,u.jsx)(c.Z,{href:t,className:(0,r.Z)("card padding--lg",m.cardContainer),children:s})}function b(e){let{href:t,icon:s,title:n,description:i}=e;return(0,u.jsxs)(h,{href:t,children:[(0,u.jsxs)(d.Z,{as:"h2",className:(0,r.Z)("text--truncate",m.cardTitle),title:n,children:[s," ",n]}),i&&(0,u.jsx)("p",{className:(0,r.Z)("text--truncate",m.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e;const s=(0,i.LM)(t);return s?(0,u.jsx)(b,{href:s,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,o.I)({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:t.items.length})}):null}function v(e){let{item:t}=e;const s=(0,l.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,i.xz)(t.docId??void 0);return(0,u.jsx)(b,{href:t.href,icon:s,title:t.label,description:t.description??n?.description})}function p(e){let{item:t}=e;switch(t.type){case"link":return(0,u.jsx)(v,{item:t});case"category":return(0,u.jsx)(x,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e;const s=(0,i.jA)();return(0,u.jsx)(j,{items:s.items,className:t})}function j(e){const{items:t,className:s}=e;if(!t)return(0,u.jsx)(g,{...e});const n=(0,i.MN)(t);return(0,u.jsx)("section",{className:(0,r.Z)("row",s),children:n.map(((e,t)=>(0,u.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,u.jsx)(p,{item:e})},t)))})}var f=s(49),N=s(3120),Z=s(4364),L=s(1310);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function k(e){let{categoryGeneratedIndex:t}=e;return(0,u.jsx)(n.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.Z)(t.image)})}function T(e){let{categoryGeneratedIndex:t}=e;const s=(0,i.jA)();return(0,u.jsxs)("div",{className:_.generatedIndexPage,children:[(0,u.jsx)(N.Z,{}),(0,u.jsx)(L.Z,{}),(0,u.jsx)(Z.Z,{}),(0,u.jsxs)("header",{children:[(0,u.jsx)(d.Z,{as:"h1",className:_.title,children:t.title}),t.description&&(0,u.jsx)("p",{children:t.description})]}),(0,u.jsx)("article",{className:"margin-top--lg",children:(0,u.jsx)(j,{items:s.items,className:_.list})}),(0,u.jsx)("footer",{className:"margin-top--lg",children:(0,u.jsx)(f.Z,{previous:t.navigation.previous,next:t.navigation.next})})]})}function I(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k,{...e}),(0,u.jsx)(T,{...e})]})}},49:(e,t,s)=>{s.d(t,{Z:()=>r});s(7294);var n=s(5999),i=s(2244),a=s(5893);function r(e){const{previous:t,next:s}=e;return(0,a.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,n.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,a.jsx)(i.Z,{...t,subLabel:(0,a.jsx)(n.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,a.jsx)(i.Z,{...s,subLabel:(0,a.jsx)(n.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,s)=>{s.d(t,{Z:()=>l});s(7294);var n=s(6010),i=s(5999),a=s(5281),r=s(4477),c=s(5893);function l(e){let{className:t}=e;const s=(0,r.E)();return s.badge?(0,c.jsx)("span",{className:(0,n.Z)(t,a.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,s)=>{s.d(t,{Z:()=>v});s(7294);var n=s(6010),i=s(2263),a=s(9960),r=s(5999),c=s(143),l=s(5281),o=s(373),d=s(4477),m=s(5893);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=u[e.versionMetadata.banner];return(0,m.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:s,onClick:n}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,m.jsx)("b",{children:(0,m.jsx)(a.Z,{to:s,onClick:n,children:(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,i.Z)(),{pluginId:r}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,o.J)(r),{latestDocSuggestion:u,latestVersionSuggestion:x}=(0,c.Jo)(r),v=u??(p=x).docs.find((e=>e.id===p.mainDocId));var p;return(0,m.jsxs)("div",{className:(0,n.Z)(t,l.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,m.jsx)("div",{children:(0,m.jsx)(h,{siteTitle:a,versionMetadata:s})}),(0,m.jsx)("div",{className:"margin-top--md",children:(0,m.jsx)(b,{versionLabel:x.label,to:v.path,onClick:()=>d(x.name)})})]})}function v(e){let{className:t}=e;const s=(0,d.E)();return s.banner?(0,m.jsx)(x,{className:t,versionMetadata:s}):null}},2244:(e,t,s)=>{s.d(t,{Z:()=>r});s(7294);var n=s(6010),i=s(9960),a=s(5893);function r(e){const{permalink:t,title:s,subLabel:r,isNext:c}=e;return(0,a.jsxs)(i.Z,{className:(0,n.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,a.jsx)("div",{className:"pagination-nav__label",children:s})]})}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.8ed8ad48.js b/assets/js/14eb3368.8ed8ad48.js new file mode 100644 index 0000000..7d09958 --- /dev/null +++ b/assets/js/14eb3368.8ed8ad48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9817],{1310:(e,t,s)=>{s.d(t,{Z:()=>p});s(67294);var n=s(86010),i=s(35281),a=s(53438),r=s(48596),c=s(39960),l=s(95999),o=s(44996),d=s(85893);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const u={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,o.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.Z,{"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(m,{className:u.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function x(e){let{children:t,href:s,isLast:n}=e;const i="breadcrumbs__link";return n?(0,d.jsx)("span",{className:i,itemProp:"name",children:t}):s?(0,d.jsx)(c.Z,{className:i,href:s,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:i,children:t})}function v(e){let{children:t,active:s,index:i,addMicrodata:a}=e;return(0,d.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,n.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(i+1)})]})}function p(){const e=(0,a.s1)(),t=(0,r.Ns)();return e?(0,d.jsx)("nav",{className:(0,n.Z)(i.k.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,s)=>{const n=s===e.length-1,i="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(v,{active:n,index:s,addMicrodata:!!i,children:(0,d.jsx)(x,{href:i,isLast:n,children:t.label})},s)}))]})}):null}},34228:(e,t,s)=>{s.r(t),s.d(t,{default:()=>I});s(67294);var n=s(10833),i=s(53438),a=s(44996),r=s(86010),c=s(39960),l=s(13919),o=s(95999),d=s(92503);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var u=s(85893);function h(e){let{href:t,children:s}=e;return(0,u.jsx)(c.Z,{href:t,className:(0,r.Z)("card padding--lg",m.cardContainer),children:s})}function b(e){let{href:t,icon:s,title:n,description:i}=e;return(0,u.jsxs)(h,{href:t,children:[(0,u.jsxs)(d.Z,{as:"h2",className:(0,r.Z)("text--truncate",m.cardTitle),title:n,children:[s," ",n]}),i&&(0,u.jsx)("p",{className:(0,r.Z)("text--truncate",m.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e;const s=(0,i.LM)(t);return s?(0,u.jsx)(b,{href:s,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,o.I)({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:t.items.length})}):null}function v(e){let{item:t}=e;const s=(0,l.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,i.xz)(t.docId??void 0);return(0,u.jsx)(b,{href:t.href,icon:s,title:t.label,description:t.description??n?.description})}function p(e){let{item:t}=e;switch(t.type){case"link":return(0,u.jsx)(v,{item:t});case"category":return(0,u.jsx)(x,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e;const s=(0,i.jA)();return(0,u.jsx)(j,{items:s.items,className:t})}function j(e){const{items:t,className:s}=e;if(!t)return(0,u.jsx)(g,{...e});const n=(0,i.MN)(t);return(0,u.jsx)("section",{className:(0,r.Z)("row",s),children:n.map(((e,t)=>(0,u.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,u.jsx)(p,{item:e})},t)))})}var f=s(80049),N=s(23120),Z=s(44364),L=s(1310);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function k(e){let{categoryGeneratedIndex:t}=e;return(0,u.jsx)(n.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.Z)(t.image)})}function T(e){let{categoryGeneratedIndex:t}=e;const s=(0,i.jA)();return(0,u.jsxs)("div",{className:_.generatedIndexPage,children:[(0,u.jsx)(N.Z,{}),(0,u.jsx)(L.Z,{}),(0,u.jsx)(Z.Z,{}),(0,u.jsxs)("header",{children:[(0,u.jsx)(d.Z,{as:"h1",className:_.title,children:t.title}),t.description&&(0,u.jsx)("p",{children:t.description})]}),(0,u.jsx)("article",{className:"margin-top--lg",children:(0,u.jsx)(j,{items:s.items,className:_.list})}),(0,u.jsx)("footer",{className:"margin-top--lg",children:(0,u.jsx)(f.Z,{previous:t.navigation.previous,next:t.navigation.next})})]})}function I(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k,{...e}),(0,u.jsx)(T,{...e})]})}},80049:(e,t,s)=>{s.d(t,{Z:()=>r});s(67294);var n=s(95999),i=s(32244),a=s(85893);function r(e){const{previous:t,next:s}=e;return(0,a.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,n.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,a.jsx)(i.Z,{...t,subLabel:(0,a.jsx)(n.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,a.jsx)(i.Z,{...s,subLabel:(0,a.jsx)(n.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},44364:(e,t,s)=>{s.d(t,{Z:()=>l});s(67294);var n=s(86010),i=s(95999),a=s(35281),r=s(74477),c=s(85893);function l(e){let{className:t}=e;const s=(0,r.E)();return s.badge?(0,c.jsx)("span",{className:(0,n.Z)(t,a.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},23120:(e,t,s)=>{s.d(t,{Z:()=>v});s(67294);var n=s(86010),i=s(52263),a=s(39960),r=s(95999),c=s(80143),l=s(35281),o=s(60373),d=s(74477),m=s(85893);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=u[e.versionMetadata.banner];return(0,m.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:s,onClick:n}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,m.jsx)("b",{children:(0,m.jsx)(a.Z,{to:s,onClick:n,children:(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,i.Z)(),{pluginId:r}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,o.J)(r),{latestDocSuggestion:u,latestVersionSuggestion:x}=(0,c.Jo)(r),v=u??(p=x).docs.find((e=>e.id===p.mainDocId));var p;return(0,m.jsxs)("div",{className:(0,n.Z)(t,l.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,m.jsx)("div",{children:(0,m.jsx)(h,{siteTitle:a,versionMetadata:s})}),(0,m.jsx)("div",{className:"margin-top--md",children:(0,m.jsx)(b,{versionLabel:x.label,to:v.path,onClick:()=>d(x.name)})})]})}function v(e){let{className:t}=e;const s=(0,d.E)();return s.banner?(0,m.jsx)(x,{className:t,versionMetadata:s}):null}},32244:(e,t,s)=>{s.d(t,{Z:()=>r});s(67294);var n=s(86010),i=s(39960),a=s(85893);function r(e){const{permalink:t,title:s,subLabel:r,isNext:c}=e;return(0,a.jsxs)(i.Z,{className:(0,n.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,a.jsx)("div",{className:"pagination-nav__label",children:s})]})}}}]); \ No newline at end of file diff --git a/assets/js/1504.972c6306.js b/assets/js/1504.972c6306.js new file mode 100644 index 0000000..d00c3ef --- /dev/null +++ b/assets/js/1504.972c6306.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1504],{41504:(t,e,s)=>{s.d(e,{D:()=>l,S:()=>c,a:()=>h,b:()=>a,c:()=>o,d:()=>B,p:()=>r,s:()=>P});var i=s(85322),n=function(){var t=function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},e=[1,2],s=[1,3],i=[1,4],n=[2,4],r=[1,9],o=[1,11],a=[1,15],c=[1,16],l=[1,17],h=[1,18],u=[1,30],d=[1,19],p=[1,20],y=[1,21],f=[1,22],m=[1,23],g=[1,25],S=[1,26],_=[1,27],k=[1,28],T=[1,29],b=[1,32],E=[1,33],x=[1,34],C=[1,35],$=[1,31],v=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],D=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],A=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],L={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"--\x3e":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",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",30:"NOTE_TEXT",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:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(t,e,s,i,n,r,o){var a=r.length-1;switch(n){case 3:return i.setRootDoc(r[a]),r[a];case 4:this.$=[];break;case 5:"nl"!=r[a]&&(r[a-1].push(r[a]),this.$=r[a-1]);break;case 6:case 7:case 11:this.$=r[a];break;case 8:this.$="nl";break;case 12:const t=r[a-1];t.description=i.trimColon(r[a]),this.$=t;break;case 13:this.$={stmt:"relation",state1:r[a-2],state2:r[a]};break;case 14:const e=i.trimColon(r[a]);this.$={stmt:"relation",state1:r[a-3],state2:r[a-1],description:e};break;case 18:this.$={stmt:"state",id:r[a-3],type:"default",description:"",doc:r[a-1]};break;case 19:var c=r[a],l=r[a-2].trim();if(r[a].match(":")){var h=r[a].split(":");c=h[0],l=[l,h[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 20:this.$={stmt:"state",id:r[a-3],type:"default",description:r[a-5],doc:r[a-1]};break;case 21:this.$={stmt:"state",id:r[a],type:"fork"};break;case 22:this.$={stmt:"state",id:r[a],type:"join"};break;case 23:this.$={stmt:"state",id:r[a],type:"choice"};break;case 24:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:r[a-1].trim(),note:{position:r[a-2].trim(),text:r[a].trim()}};break;case 28:this.$=r[a].trim(),i.setAccTitle(this.$);break;case 29:case 30:this.$=r[a].trim(),i.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:r[a-1].trim(),classes:r[a].trim()};break;case 33:this.$={stmt:"applyClass",id:r[a-1].trim(),styleClass:r[a].trim()};break;case 34:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:r[a].trim(),type:"default",description:""};break;case 42:case 43:this.$={stmt:"state",id:r[a-2].trim(),classes:[r[a].trim()],type:"default",description:""}}},table:[{3:1,4:e,5:s,6:i},{1:[3]},{3:5,4:e,5:s,6:i},{3:6,4:e,5:s,6:i},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],n,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,5]),{9:36,10:12,11:13,12:14,15:a,16:c,18:l,21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,7]),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(v,[2,11],{13:[1,37],14:[1,38]}),t(v,[2,15]),{17:[1,39]},t(v,[2,17],{19:[1,40]}),{22:[1,41]},t(v,[2,21]),t(v,[2,22]),t(v,[2,23]),t(v,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(v,[2,27]),{33:[1,46]},{35:[1,47]},t(v,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(D,[2,40],{51:[1,51]}),t(D,[2,41],{51:[1,52]}),t(v,[2,34]),t(v,[2,35]),t(v,[2,36]),t(v,[2,37]),t(v,[2,6]),t(v,[2,12]),{12:53,23:u,50:$},t(v,[2,16]),t(A,n,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(v,[2,28]),t(v,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(v,[2,13],{13:[1,63]}),{4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,20:[1,64],21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(v,[2,31]),t(v,[2,32]),t(v,[2,33]),t(D,[2,42]),t(D,[2,43]),t(v,[2,14]),t(v,[2,18]),t(A,n,{7:68}),t(v,[2,25]),t(v,[2,26]),{4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,20:[1,69],21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},parse:function(t){var e=this,s=[0],i=[],n=[null],r=[],o=this.table,a="",c=0,l=0,h=r.slice.call(arguments,1),u=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);u.setInput(t,d.yy),d.yy.lexer=u,d.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;r.push(y);var f=u.options&&u.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var m,g,S,_,k,T,b,E,x,C={};;){if(g=s[s.length-1],this.defaultActions[g]?S=this.defaultActions[g]:(null==m&&(x=void 0,"number"!=typeof(x=i.pop()||u.lex()||1)&&(x instanceof Array&&(x=(i=x).pop()),x=e.symbols_[x]||x),m=x),S=o[g]&&o[g][m]),void 0===S||!S.length||!S[0]){var $="";for(k in E=[],o[g])this.terminals_[k]&&k>2&&E.push("'"+this.terminals_[k]+"'");$=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError($,{text:u.match,token:this.terminals_[m]||m,line:u.yylineno,loc:y,expected:E})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+m);switch(S[0]){case 1:s.push(m),n.push(u.yytext),r.push(u.yylloc),s.push(S[1]),m=null,l=u.yyleng,a=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(T=this.productions_[S[1]][1],C.$=n[n.length-T],C._$={first_line:r[r.length-(T||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(T||1)].first_column,last_column:r[r.length-1].last_column},f&&(C._$.range=[r[r.length-(T||1)].range[0],r[r.length-1].range[1]]),void 0!==(_=this.performAction.apply(C,[a,l,c,d.yy,S[1],n,r].concat(h))))return _;T&&(s=s.slice(0,-1*T*2),n=n.slice(0,-1*T),r=r.slice(0,-1*T)),s.push(this.productions_[S[1]][0]),n.push(C.$),r.push(C._$),b=o[s[s.length-2]][s[s.length-1]],s.push(b);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,s=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),s.length-1&&(this.yylineno-=s.length-1);var n=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:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[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 s,i,n;if(this.options.backtrack_lexer&&(n={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&&(n.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],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,s,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if((s=this._input.match(this.rules[n[r]]))&&(!e||s[0].length>e[0].length)){if(e=s,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,n[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[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,s,i){switch(s){case 0:return 40;case 1:case 39:return 44;case 2:case 40:return 45;case 3:case 41:return 46;case 4:case 42:return 47;case 5:case 6:case 8:case 9:case 10:case 11:case 51:case 53:case 59:break;case 7:case 74:return 5;case 12:case 29:return this.pushState("SCALE"),16;case 13:case 30:return 17;case 14:case 20:case 31:case 46:case 49:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 32:this.pushState("STATE");break;case 33:case 36:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 34:case 37:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 35:case 38:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),26;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:case 61:return this.popState(),"ID";case 47:return"STATE_DESCR";case 48:return 18;case 50:return this.popState(),this.pushState("struct"),19;case 52:return this.popState(),20;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 60:return"NOTE_TEXT";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),e.yytext=e.yytext.substr(2).trim(),30;case 64:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),30;case 65:case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return e.yytext=e.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 75: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,/^(?:%%(?!\{)[^\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:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};function O(){this.yy={}}return L.lexer=I,O.prototype=L,L.Parser=O,new O}();n.parser=n;const r=n,o="TB",a="state",c="relation",l="default",h="divider",u="[*]",d="start",p=u,y="color",f="fill";let m="LR",g=[],S={};let _={root:{relations:[],states:{},documents:{}}},k=_.root,T=0,b=0;const E=t=>JSON.parse(JSON.stringify(t)),x=(t,e,s)=>{if(e.stmt===c)x(t,e.state1,!0),x(t,e.state2,!1);else if(e.stmt===a&&("[*]"===e.id?(e.id=s?t.id+"_start":t.id+"_end",e.start=s):e.id=e.id.trim()),e.doc){const t=[];let s,n=[];for(s=0;s<e.doc.length;s++)if(e.doc[s].type===h){const i=E(e.doc[s]);i.doc=E(n),t.push(i),n=[]}else n.push(e.doc[s]);if(t.length>0&&n.length>0){const s={stmt:a,id:(0,i.G)(),type:"divider",doc:E(n)};t.push(E(s)),e.doc=t}e.doc.forEach((t=>x(e,t,!0)))}},C=function(t,e=l,s=null,n=null,r=null,o=null,a=null,c=null){const h=null==t?void 0:t.trim();if(void 0===k.states[h]?(i.l.info("Adding state ",h,n),k.states[h]={id:h,descriptions:[],type:e,doc:s,note:r,classes:[],styles:[],textStyles:[]}):(k.states[h].doc||(k.states[h].doc=s),k.states[h].type||(k.states[h].type=e)),n&&(i.l.info("Setting state description",h,n),"string"==typeof n&&I(h,n.trim()),"object"==typeof n&&n.forEach((t=>I(h,t.trim())))),r&&(k.states[h].note=r,k.states[h].note.text=i.e.sanitizeText(k.states[h].note.text,(0,i.c)())),o){i.l.info("Setting state classes",h,o);("string"==typeof o?[o]:o).forEach((t=>N(h,t.trim())))}if(a){i.l.info("Setting state styles",h,a);("string"==typeof a?[a]:a).forEach((t=>R(h,t.trim())))}if(c){i.l.info("Setting state styles",h,a);("string"==typeof c?[c]:c).forEach((t=>w(h,t.trim())))}},$=function(t){_={root:{relations:[],states:{},documents:{}}},k=_.root,T=0,S={},t||(0,i.t)()},v=function(t){return k.states[t]};function D(t=""){let e=t;return t===u&&(T++,e=`${d}${T}`),e}function A(t="",e=l){return t===u?d:e}const L=function(t,e,s){if("object"==typeof t)!function(t,e,s){let n=D(t.id.trim()),r=A(t.id.trim(),t.type),o=D(e.id.trim()),a=A(e.id.trim(),e.type);C(n,r,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),C(o,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),k.relations.push({id1:n,id2:o,relationTitle:i.e.sanitizeText(s,(0,i.c)())})}(t,e,s);else{const n=D(t.trim()),r=A(t),o=function(t=""){let e=t;return t===p&&(T++,e=`end${T}`),e}(e.trim()),a=function(t="",e=l){return t===p?"end":e}(e);C(n,r),C(o,a),k.relations.push({id1:n,id2:o,title:i.e.sanitizeText(s,(0,i.c)())})}},I=function(t,e){const s=k.states[t],n=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(i.e.sanitizeText(n,(0,i.c)()))},O=function(t,e=""){void 0===S[t]&&(S[t]={id:t,styles:[],textStyles:[]});const s=S[t];null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(y)){const t=e.replace(f,"bgFill").replace(y,f);s.textStyles.push(t)}s.styles.push(e)}))},N=function(t,e){t.split(",").forEach((function(t){let s=v(t);if(void 0===s){const e=t.trim();C(e),s=v(e)}s.classes.push(e)}))},R=function(t,e){const s=v(t);void 0!==s&&s.textStyles.push(e)},w=function(t,e){const s=v(t);void 0!==s&&s.textStyles.push(e)},B={getConfig:()=>(0,i.c)().state,addState:C,clear:$,getState:v,getStates:function(){return k.states},getRelations:function(){return k.relations},getClasses:function(){return S},getDirection:()=>m,addRelation:L,getDividerId:()=>(b++,"divider-id-"+b),setDirection:t=>{m=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(){i.l.info("Documents = ",_)},getRootDoc:()=>g,setRootDoc:t=>{i.l.info("Setting root doc",t),g=t},getRootDocV2:()=>(x({id:"root"},{id:"root",doc:g},!0),{id:"root",doc:g}),extract:t=>{let e;e=t.doc?t.doc:t,i.l.info(e),$(!0),i.l.info("Extract",e),e.forEach((t=>{switch(t.stmt){case a:C(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case c:L(t.state1,t.state2,t.description);break;case"classDef":O(t.id.trim(),t.classes);break;case"applyClass":N(t.id.trim(),t.styleClass)}}))},trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:i.g,setAccTitle:i.s,getAccDescription:i.a,setAccDescription:i.b,addStyleClass:O,setCssClass:N,addDescription:I,setDiagramTitle:i.q,getDiagramTitle:i.r},P=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`}}]); \ No newline at end of file diff --git a/assets/js/1504.c626eacd.js b/assets/js/1504.c626eacd.js deleted file mode 100644 index 637e19a..0000000 --- a/assets/js/1504.c626eacd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1504],{1504:(t,e,s)=>{s.d(e,{D:()=>l,S:()=>c,a:()=>h,b:()=>a,c:()=>o,d:()=>B,p:()=>r,s:()=>P});var i=s(5322),n=function(){var t=function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},e=[1,2],s=[1,3],i=[1,4],n=[2,4],r=[1,9],o=[1,11],a=[1,15],c=[1,16],l=[1,17],h=[1,18],u=[1,30],d=[1,19],p=[1,20],y=[1,21],f=[1,22],m=[1,23],g=[1,25],S=[1,26],_=[1,27],k=[1,28],T=[1,29],b=[1,32],E=[1,33],x=[1,34],C=[1,35],$=[1,31],v=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],D=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],A=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],L={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"--\x3e":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",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",30:"NOTE_TEXT",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:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(t,e,s,i,n,r,o){var a=r.length-1;switch(n){case 3:return i.setRootDoc(r[a]),r[a];case 4:this.$=[];break;case 5:"nl"!=r[a]&&(r[a-1].push(r[a]),this.$=r[a-1]);break;case 6:case 7:case 11:this.$=r[a];break;case 8:this.$="nl";break;case 12:const t=r[a-1];t.description=i.trimColon(r[a]),this.$=t;break;case 13:this.$={stmt:"relation",state1:r[a-2],state2:r[a]};break;case 14:const e=i.trimColon(r[a]);this.$={stmt:"relation",state1:r[a-3],state2:r[a-1],description:e};break;case 18:this.$={stmt:"state",id:r[a-3],type:"default",description:"",doc:r[a-1]};break;case 19:var c=r[a],l=r[a-2].trim();if(r[a].match(":")){var h=r[a].split(":");c=h[0],l=[l,h[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 20:this.$={stmt:"state",id:r[a-3],type:"default",description:r[a-5],doc:r[a-1]};break;case 21:this.$={stmt:"state",id:r[a],type:"fork"};break;case 22:this.$={stmt:"state",id:r[a],type:"join"};break;case 23:this.$={stmt:"state",id:r[a],type:"choice"};break;case 24:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:r[a-1].trim(),note:{position:r[a-2].trim(),text:r[a].trim()}};break;case 28:this.$=r[a].trim(),i.setAccTitle(this.$);break;case 29:case 30:this.$=r[a].trim(),i.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:r[a-1].trim(),classes:r[a].trim()};break;case 33:this.$={stmt:"applyClass",id:r[a-1].trim(),styleClass:r[a].trim()};break;case 34:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:r[a].trim(),type:"default",description:""};break;case 42:case 43:this.$={stmt:"state",id:r[a-2].trim(),classes:[r[a].trim()],type:"default",description:""}}},table:[{3:1,4:e,5:s,6:i},{1:[3]},{3:5,4:e,5:s,6:i},{3:6,4:e,5:s,6:i},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],n,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,5]),{9:36,10:12,11:13,12:14,15:a,16:c,18:l,21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,7]),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(v,[2,11],{13:[1,37],14:[1,38]}),t(v,[2,15]),{17:[1,39]},t(v,[2,17],{19:[1,40]}),{22:[1,41]},t(v,[2,21]),t(v,[2,22]),t(v,[2,23]),t(v,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(v,[2,27]),{33:[1,46]},{35:[1,47]},t(v,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(D,[2,40],{51:[1,51]}),t(D,[2,41],{51:[1,52]}),t(v,[2,34]),t(v,[2,35]),t(v,[2,36]),t(v,[2,37]),t(v,[2,6]),t(v,[2,12]),{12:53,23:u,50:$},t(v,[2,16]),t(A,n,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(v,[2,28]),t(v,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(v,[2,13],{13:[1,63]}),{4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,20:[1,64],21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(v,[2,31]),t(v,[2,32]),t(v,[2,33]),t(D,[2,42]),t(D,[2,43]),t(v,[2,14]),t(v,[2,18]),t(A,n,{7:68}),t(v,[2,25]),t(v,[2,26]),{4:r,5:o,8:8,9:10,10:12,11:13,12:14,15:a,16:c,18:l,20:[1,69],21:h,23:u,24:d,25:p,26:y,27:f,28:m,31:24,32:g,34:S,36:_,37:k,41:T,44:b,45:E,46:x,47:C,50:$},t(v,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},parse:function(t){var e=this,s=[0],i=[],n=[null],r=[],o=this.table,a="",c=0,l=0,h=r.slice.call(arguments,1),u=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);u.setInput(t,d.yy),d.yy.lexer=u,d.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;r.push(y);var f=u.options&&u.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var m,g,S,_,k,T,b,E,x,C={};;){if(g=s[s.length-1],this.defaultActions[g]?S=this.defaultActions[g]:(null==m&&(x=void 0,"number"!=typeof(x=i.pop()||u.lex()||1)&&(x instanceof Array&&(x=(i=x).pop()),x=e.symbols_[x]||x),m=x),S=o[g]&&o[g][m]),void 0===S||!S.length||!S[0]){var $="";for(k in E=[],o[g])this.terminals_[k]&&k>2&&E.push("'"+this.terminals_[k]+"'");$=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError($,{text:u.match,token:this.terminals_[m]||m,line:u.yylineno,loc:y,expected:E})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+m);switch(S[0]){case 1:s.push(m),n.push(u.yytext),r.push(u.yylloc),s.push(S[1]),m=null,l=u.yyleng,a=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(T=this.productions_[S[1]][1],C.$=n[n.length-T],C._$={first_line:r[r.length-(T||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(T||1)].first_column,last_column:r[r.length-1].last_column},f&&(C._$.range=[r[r.length-(T||1)].range[0],r[r.length-1].range[1]]),void 0!==(_=this.performAction.apply(C,[a,l,c,d.yy,S[1],n,r].concat(h))))return _;T&&(s=s.slice(0,-1*T*2),n=n.slice(0,-1*T),r=r.slice(0,-1*T)),s.push(this.productions_[S[1]][0]),n.push(C.$),r.push(C._$),b=o[s[s.length-2]][s[s.length-1]],s.push(b);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,s=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),s.length-1&&(this.yylineno-=s.length-1);var n=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:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[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 s,i,n;if(this.options.backtrack_lexer&&(n={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&&(n.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],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,s,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if((s=this._input.match(this.rules[n[r]]))&&(!e||s[0].length>e[0].length)){if(e=s,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,n[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[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,s,i){switch(s){case 0:return 40;case 1:case 39:return 44;case 2:case 40:return 45;case 3:case 41:return 46;case 4:case 42:return 47;case 5:case 6:case 8:case 9:case 10:case 11:case 51:case 53:case 59:break;case 7:case 74:return 5;case 12:case 29:return this.pushState("SCALE"),16;case 13:case 30:return 17;case 14:case 20:case 31:case 46:case 49:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 32:this.pushState("STATE");break;case 33:case 36:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 34:case 37:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 35:case 38:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),26;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:case 61:return this.popState(),"ID";case 47:return"STATE_DESCR";case 48:return 18;case 50:return this.popState(),this.pushState("struct"),19;case 52:return this.popState(),20;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 60:return"NOTE_TEXT";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),e.yytext=e.yytext.substr(2).trim(),30;case 64:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),30;case 65:case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return e.yytext=e.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 75: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,/^(?:%%(?!\{)[^\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:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};function O(){this.yy={}}return L.lexer=I,O.prototype=L,L.Parser=O,new O}();n.parser=n;const r=n,o="TB",a="state",c="relation",l="default",h="divider",u="[*]",d="start",p=u,y="color",f="fill";let m="LR",g=[],S={};let _={root:{relations:[],states:{},documents:{}}},k=_.root,T=0,b=0;const E=t=>JSON.parse(JSON.stringify(t)),x=(t,e,s)=>{if(e.stmt===c)x(t,e.state1,!0),x(t,e.state2,!1);else if(e.stmt===a&&("[*]"===e.id?(e.id=s?t.id+"_start":t.id+"_end",e.start=s):e.id=e.id.trim()),e.doc){const t=[];let s,n=[];for(s=0;s<e.doc.length;s++)if(e.doc[s].type===h){const i=E(e.doc[s]);i.doc=E(n),t.push(i),n=[]}else n.push(e.doc[s]);if(t.length>0&&n.length>0){const s={stmt:a,id:(0,i.G)(),type:"divider",doc:E(n)};t.push(E(s)),e.doc=t}e.doc.forEach((t=>x(e,t,!0)))}},C=function(t,e=l,s=null,n=null,r=null,o=null,a=null,c=null){const h=null==t?void 0:t.trim();if(void 0===k.states[h]?(i.l.info("Adding state ",h,n),k.states[h]={id:h,descriptions:[],type:e,doc:s,note:r,classes:[],styles:[],textStyles:[]}):(k.states[h].doc||(k.states[h].doc=s),k.states[h].type||(k.states[h].type=e)),n&&(i.l.info("Setting state description",h,n),"string"==typeof n&&I(h,n.trim()),"object"==typeof n&&n.forEach((t=>I(h,t.trim())))),r&&(k.states[h].note=r,k.states[h].note.text=i.e.sanitizeText(k.states[h].note.text,(0,i.c)())),o){i.l.info("Setting state classes",h,o);("string"==typeof o?[o]:o).forEach((t=>N(h,t.trim())))}if(a){i.l.info("Setting state styles",h,a);("string"==typeof a?[a]:a).forEach((t=>R(h,t.trim())))}if(c){i.l.info("Setting state styles",h,a);("string"==typeof c?[c]:c).forEach((t=>w(h,t.trim())))}},$=function(t){_={root:{relations:[],states:{},documents:{}}},k=_.root,T=0,S={},t||(0,i.t)()},v=function(t){return k.states[t]};function D(t=""){let e=t;return t===u&&(T++,e=`${d}${T}`),e}function A(t="",e=l){return t===u?d:e}const L=function(t,e,s){if("object"==typeof t)!function(t,e,s){let n=D(t.id.trim()),r=A(t.id.trim(),t.type),o=D(e.id.trim()),a=A(e.id.trim(),e.type);C(n,r,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),C(o,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),k.relations.push({id1:n,id2:o,relationTitle:i.e.sanitizeText(s,(0,i.c)())})}(t,e,s);else{const n=D(t.trim()),r=A(t),o=function(t=""){let e=t;return t===p&&(T++,e=`end${T}`),e}(e.trim()),a=function(t="",e=l){return t===p?"end":e}(e);C(n,r),C(o,a),k.relations.push({id1:n,id2:o,title:i.e.sanitizeText(s,(0,i.c)())})}},I=function(t,e){const s=k.states[t],n=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(i.e.sanitizeText(n,(0,i.c)()))},O=function(t,e=""){void 0===S[t]&&(S[t]={id:t,styles:[],textStyles:[]});const s=S[t];null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(y)){const t=e.replace(f,"bgFill").replace(y,f);s.textStyles.push(t)}s.styles.push(e)}))},N=function(t,e){t.split(",").forEach((function(t){let s=v(t);if(void 0===s){const e=t.trim();C(e),s=v(e)}s.classes.push(e)}))},R=function(t,e){const s=v(t);void 0!==s&&s.textStyles.push(e)},w=function(t,e){const s=v(t);void 0!==s&&s.textStyles.push(e)},B={getConfig:()=>(0,i.c)().state,addState:C,clear:$,getState:v,getStates:function(){return k.states},getRelations:function(){return k.relations},getClasses:function(){return S},getDirection:()=>m,addRelation:L,getDividerId:()=>(b++,"divider-id-"+b),setDirection:t=>{m=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(){i.l.info("Documents = ",_)},getRootDoc:()=>g,setRootDoc:t=>{i.l.info("Setting root doc",t),g=t},getRootDocV2:()=>(x({id:"root"},{id:"root",doc:g},!0),{id:"root",doc:g}),extract:t=>{let e;e=t.doc?t.doc:t,i.l.info(e),$(!0),i.l.info("Extract",e),e.forEach((t=>{switch(t.stmt){case a:C(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case c:L(t.state1,t.state2,t.description);break;case"classDef":O(t.id.trim(),t.classes);break;case"applyClass":N(t.id.trim(),t.styleClass)}}))},trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:i.g,setAccTitle:i.s,getAccDescription:i.a,setAccDescription:i.b,addStyleClass:O,setCssClass:N,addDescription:I,setDiagramTitle:i.q,getDiagramTitle:i.r},P=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`}}]); \ No newline at end of file diff --git a/assets/js/1535ede8.0df680e5.js b/assets/js/1535ede8.0df680e5.js deleted file mode 100644 index e613571..0000000 --- a/assets/js/1535ede8.0df680e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5376],{4969:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var s=t(5893),i=t(1151);const r={id:"seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n"},o=void 0,a={id:"bonuses/seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n",source:"@site/c/bonuses/10.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-10",permalink:"/c/bonuses/seminar-10",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/10.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",frontMatter:{id:"seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n"},sidebar:"autogeneratedBar",previous:{title:"8th seminar",permalink:"/c/bonuses/seminar-08"},next:{title:"Practice Exams",permalink:"/c/category/practice-exams"}},c={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Project",id:"project",level:2},{value:"Summary of the gameplay",id:"summary-of-the-gameplay",level:3},{value:"Suggested workflow",id:"suggested-workflow",level:2},{value:"Tasks",id:"tasks",level:2},{value:"Dictionary",id:"dictionary",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/10.tar.gz",children:"Source"})}),"\n",(0,s.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(n.p,{children:"For this bonus you are given almost finished project - The Hangman Game. Your\ntask is to try the game, in case you find any bugs point them out and cover as\nmuch of the game as possible with tests."}),"\n",(0,s.jsx)(n.p,{children:"For this bonus you can get at maximum 2 K\u20a1."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Bonus"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Fixing bugs from failing tests"}),(0,s.jsx)(n.td,{children:"0.25"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"word_guessed"})}),(0,s.jsx)(n.td,{children:"0.50"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Hidden bug"}),(0,s.jsx)(n.td,{children:"0.50"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Extending tests, undetectable bugs or evil bug"}),(0,s.jsx)(n.td,{children:"0.37"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Refactor"}),(0,s.jsx)(n.td,{children:"0.38"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"project",children:"Project"}),"\n",(0,s.jsxs)(n.p,{children:["Project consists of 2 source files - ",(0,s.jsx)(n.code,{children:"hangman.c"})," and ",(0,s.jsx)(n.code,{children:"main.c"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"main.c"})," is quite short and concise, there is nothing for you to do."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"hangman.c"})," contains implementation of the game. In case you feel lost, consult\nthe documentation in ",(0,s.jsx)(n.code,{children:"hangman.h"})," that represents an interface that can be used\nfor implementing the game."]}),"\n",(0,s.jsxs)(n.p,{children:["Apart from those sources this project is a bit more complicated. ",(0,s.jsx)(n.em,{children:"Game loop"})," is\nrealised via single encapsulated function that complicates the testing. Because\nof that, there are 2 kinds of tests:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Unit tests"})," - that are present in ",(0,s.jsx)(n.code,{children:"test_hangman.c"})," and can be run via:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check-unit\n"})}),"\n",(0,s.jsx)(n.p,{children:"They cover majorly functions that can be tested easily via testing framework."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Functional tests"})," - same as in ",(0,s.jsx)(n.code,{children:"seminar-08"})," and are focused on testing the\nprogram as whole. Basic smoke test is already included in ",(0,s.jsx)(n.code,{children:"usage"})," test case."]}),"\n",(0,s.jsx)(n.p,{children:"They can be run via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check-functional\n"})}),"\n",(0,s.jsxs)(n.p,{children:["When testing ",(0,s.jsx)(n.code,{children:"hangman"})," function (the game loop), it is suggested to create\nfunctional tests."]}),"\n",(0,s.jsx)(n.p,{children:"When submitting the files for review, please leave out functional tests that\nwere given as a part of the assignment, so that it is easier to navigate, I\nwill drag the common files myself. :)"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Whole test suite can be run via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check\n"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"summary-of-the-gameplay",children:"Summary of the gameplay"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Secret word gets chosen from the file that's path is given as an argument."}),"\n",(0,s.jsx)(n.li,{children:"You get 8 guesses."}),"\n",(0,s.jsx)(n.li,{children:"Invalid characters don't count."}),"\n",(0,s.jsx)(n.li,{children:"Already guessed characters don't count, even if not included in the secret."}),"\n",(0,s.jsxs)(n.li,{children:["You can guess the whole word at once","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If you get it right, you won, game ends."}),"\n",(0,s.jsx)(n.li,{children:"If you don't get it right, you get to see the secret, game ends."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"In case of end of input, game finishes via force."}),"\n",(0,s.jsx)(n.li,{children:"In case of invalid input, no guesses are subtracted, game carries on."}),"\n",(0,s.jsx)(n.li,{children:"Letters and words are not case sensitive."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"suggested-workflow",children:"Suggested workflow"}),"\n",(0,s.jsxs)(n.p,{children:["As we have talked about on the seminar, I suggest you to follow\n",(0,s.jsx)(n.em,{children:"Test-Driven Development"}),"\nin this case."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"TDD workflow",src:t(7420).Z+"",width:"2814",height:"1652"})}),"\n",(0,s.jsx)(n.p,{children:"In our current scenario we are already in the stage of refactoring and fixing the\nbugs. Therefore try to follow this succession of steps:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Try to reproduce the bug."}),"\n",(0,s.jsx)(n.li,{children:"Create a test that proves the presence of the bug."}),"\n",(0,s.jsx)(n.li,{children:"Fix the bug."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["In case you are submitting the bonus via GitLab, it is helpful to commit tests\nbefore commiting the fixes, so that it is apparent that the bug is manifested.\nExample of ",(0,s.jsx)(n.code,{children:"git log"})," (notice that the first line represents latest commit):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"feat: Implement fizz_buzzer\ntest: Add tests for fizz_buzzer\nfix: Fix NULL-check in print_name\ntest: Add test for NULL in print_name\n"})}),"\n",(0,s.jsx)(n.h2,{id:"tasks",children:"Tasks"}),"\n",(0,s.jsx)(n.p,{children:"As to your tasks, there are multiple things wrong in this project."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:'There are 2 "bugs" that cannot be detected via tests, i.e. they are not bugs\nthat affect functionality of the game.'}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["There is one evil bug in ",(0,s.jsx)(n.code,{children:"get_word"}),". It is not required to be fixed ;) Assign\nit the lowest priority."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"There are some tests failing. Please try to figure it out, so you have green\ntests for the rest :)"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["We have gotten a bug report for ",(0,s.jsx)(n.code,{children:"word_guessed"}),", all we got is"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["doesn't work when there are too many ",(0,s.jsx)(n.code,{children:"a"}),"s"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Please try to replicate the bug and create a tests, so we don't get any\nregression later on."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"One hidden bug :) Closely non-specified, we cannot reproduce it and we were\ndrunk while playing the game, so we don't remember a thing. :/"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Try to cover as much code via the tests as possible. We are not going to look\nat the metrics, but DRY is violated a lot, so as a last task try to remove as\nmuch of the duplicit code as possible."}),"\n",(0,s.jsx)(n.p,{children:"Tests should help you a lot in case there are some regressions."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:["In case you wonder why there are always 3 same words in the file with words, it\nis because of the ",(0,s.jsx)(n.code,{children:"get_word"})," bug. It is not a bug that can be easily fixed, so\nit is a not requirement at all and you can still get all points for the bonus ;)"]}),"\n",(0,s.jsx)(n.h2,{id:"dictionary",children:"Dictionary"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Functional_testing",children:"Functional tests"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Smoke_testing_%28software%29",children:"Smoke test"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Don%27t_repeat_yourself",children:"DRY"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,s.jsx)(n.hr,{})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},7420:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/tdd_lifecycle-327ad9ee0ed8318ed11e19a28e02b2cc.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var s=t(7294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1535ede8.550c1ca8.js b/assets/js/1535ede8.550c1ca8.js new file mode 100644 index 0000000..f483cf2 --- /dev/null +++ b/assets/js/1535ede8.550c1ca8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5376],{44969:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var s=t(85893),i=t(11151);const r={id:"seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n"},o=void 0,a={id:"bonuses/seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n",source:"@site/c/bonuses/10.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-10",permalink:"/c/bonuses/seminar-10",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/10.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{id:"seminar-10",title:"10th seminar",description:"Finding bugs in a hangman.\n"},sidebar:"autogeneratedBar",previous:{title:"8th seminar",permalink:"/c/bonuses/seminar-08"},next:{title:"Practice Exams",permalink:"/c/category/practice-exams"}},c={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Project",id:"project",level:2},{value:"Summary of the gameplay",id:"summary-of-the-gameplay",level:3},{value:"Suggested workflow",id:"suggested-workflow",level:2},{value:"Tasks",id:"tasks",level:2},{value:"Dictionary",id:"dictionary",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/10.tar.gz",children:"Source"})}),"\n",(0,s.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(n.p,{children:"For this bonus you are given almost finished project - The Hangman Game. Your\ntask is to try the game, in case you find any bugs point them out and cover as\nmuch of the game as possible with tests."}),"\n",(0,s.jsx)(n.p,{children:"For this bonus you can get at maximum 2 K\u20a1."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Bonus"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Fixing bugs from failing tests"}),(0,s.jsx)(n.td,{children:"0.25"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"word_guessed"})}),(0,s.jsx)(n.td,{children:"0.50"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Hidden bug"}),(0,s.jsx)(n.td,{children:"0.50"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Extending tests, undetectable bugs or evil bug"}),(0,s.jsx)(n.td,{children:"0.37"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Refactor"}),(0,s.jsx)(n.td,{children:"0.38"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"project",children:"Project"}),"\n",(0,s.jsxs)(n.p,{children:["Project consists of 2 source files - ",(0,s.jsx)(n.code,{children:"hangman.c"})," and ",(0,s.jsx)(n.code,{children:"main.c"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"main.c"})," is quite short and concise, there is nothing for you to do."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"hangman.c"})," contains implementation of the game. In case you feel lost, consult\nthe documentation in ",(0,s.jsx)(n.code,{children:"hangman.h"})," that represents an interface that can be used\nfor implementing the game."]}),"\n",(0,s.jsxs)(n.p,{children:["Apart from those sources this project is a bit more complicated. ",(0,s.jsx)(n.em,{children:"Game loop"})," is\nrealised via single encapsulated function that complicates the testing. Because\nof that, there are 2 kinds of tests:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Unit tests"})," - that are present in ",(0,s.jsx)(n.code,{children:"test_hangman.c"})," and can be run via:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check-unit\n"})}),"\n",(0,s.jsx)(n.p,{children:"They cover majorly functions that can be tested easily via testing framework."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Functional tests"})," - same as in ",(0,s.jsx)(n.code,{children:"seminar-08"})," and are focused on testing the\nprogram as whole. Basic smoke test is already included in ",(0,s.jsx)(n.code,{children:"usage"})," test case."]}),"\n",(0,s.jsx)(n.p,{children:"They can be run via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check-functional\n"})}),"\n",(0,s.jsxs)(n.p,{children:["When testing ",(0,s.jsx)(n.code,{children:"hangman"})," function (the game loop), it is suggested to create\nfunctional tests."]}),"\n",(0,s.jsx)(n.p,{children:"When submitting the files for review, please leave out functional tests that\nwere given as a part of the assignment, so that it is easier to navigate, I\nwill drag the common files myself. :)"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Whole test suite can be run via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"$ make check\n"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"summary-of-the-gameplay",children:"Summary of the gameplay"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Secret word gets chosen from the file that's path is given as an argument."}),"\n",(0,s.jsx)(n.li,{children:"You get 8 guesses."}),"\n",(0,s.jsx)(n.li,{children:"Invalid characters don't count."}),"\n",(0,s.jsx)(n.li,{children:"Already guessed characters don't count, even if not included in the secret."}),"\n",(0,s.jsxs)(n.li,{children:["You can guess the whole word at once","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If you get it right, you won, game ends."}),"\n",(0,s.jsx)(n.li,{children:"If you don't get it right, you get to see the secret, game ends."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"In case of end of input, game finishes via force."}),"\n",(0,s.jsx)(n.li,{children:"In case of invalid input, no guesses are subtracted, game carries on."}),"\n",(0,s.jsx)(n.li,{children:"Letters and words are not case sensitive."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"suggested-workflow",children:"Suggested workflow"}),"\n",(0,s.jsxs)(n.p,{children:["As we have talked about on the seminar, I suggest you to follow\n",(0,s.jsx)(n.em,{children:"Test-Driven Development"}),"\nin this case."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"TDD workflow",src:t(27420).Z+"",width:"2814",height:"1652"})}),"\n",(0,s.jsx)(n.p,{children:"In our current scenario we are already in the stage of refactoring and fixing the\nbugs. Therefore try to follow this succession of steps:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Try to reproduce the bug."}),"\n",(0,s.jsx)(n.li,{children:"Create a test that proves the presence of the bug."}),"\n",(0,s.jsx)(n.li,{children:"Fix the bug."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["In case you are submitting the bonus via GitLab, it is helpful to commit tests\nbefore commiting the fixes, so that it is apparent that the bug is manifested.\nExample of ",(0,s.jsx)(n.code,{children:"git log"})," (notice that the first line represents latest commit):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"feat: Implement fizz_buzzer\ntest: Add tests for fizz_buzzer\nfix: Fix NULL-check in print_name\ntest: Add test for NULL in print_name\n"})}),"\n",(0,s.jsx)(n.h2,{id:"tasks",children:"Tasks"}),"\n",(0,s.jsx)(n.p,{children:"As to your tasks, there are multiple things wrong in this project."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:'There are 2 "bugs" that cannot be detected via tests, i.e. they are not bugs\nthat affect functionality of the game.'}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["There is one evil bug in ",(0,s.jsx)(n.code,{children:"get_word"}),". It is not required to be fixed ;) Assign\nit the lowest priority."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"There are some tests failing. Please try to figure it out, so you have green\ntests for the rest :)"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["We have gotten a bug report for ",(0,s.jsx)(n.code,{children:"word_guessed"}),", all we got is"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["doesn't work when there are too many ",(0,s.jsx)(n.code,{children:"a"}),"s"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Please try to replicate the bug and create a tests, so we don't get any\nregression later on."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"One hidden bug :) Closely non-specified, we cannot reproduce it and we were\ndrunk while playing the game, so we don't remember a thing. :/"}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Try to cover as much code via the tests as possible. We are not going to look\nat the metrics, but DRY is violated a lot, so as a last task try to remove as\nmuch of the duplicit code as possible."}),"\n",(0,s.jsx)(n.p,{children:"Tests should help you a lot in case there are some regressions."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.p,{children:["In case you wonder why there are always 3 same words in the file with words, it\nis because of the ",(0,s.jsx)(n.code,{children:"get_word"})," bug. It is not a bug that can be easily fixed, so\nit is a not requirement at all and you can still get all points for the bonus ;)"]}),"\n",(0,s.jsx)(n.h2,{id:"dictionary",children:"Dictionary"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Functional_testing",children:"Functional tests"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Smoke_testing_%28software%29",children:"Smoke test"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Don%27t_repeat_yourself",children:"DRY"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,s.jsx)(n.hr,{})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},27420:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/tdd_lifecycle-327ad9ee0ed8318ed11e19a28e02b2cc.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/15966941.58ddb6d9.js b/assets/js/15966941.58ddb6d9.js new file mode 100644 index 0000000..6497f40 --- /dev/null +++ b/assets/js/15966941.58ddb6d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8326],{16721:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>h,toc:()=>l});var s=n(85893),i=n(11151);const a={id:"mitigations",slug:"/hash-tables/breaking/mitigations",title:"Possible Mitigations",description:"Talking about the ways how to prevent the attacks on the hash table.\n",tags:["cpp","python","hash-tables"],last_update:{date:new Date("2023-11-28T00:00:00.000Z")}},o=void 0,h={id:"hash-tables/2023-11-28-breaking/mitigations",title:"Possible Mitigations",description:"Talking about the ways how to prevent the attacks on the hash table.\n",source:"@site/algorithms/12-hash-tables/2023-11-28-breaking/02-mitigations.md",sourceDirName:"12-hash-tables/2023-11-28-breaking",slug:"/hash-tables/breaking/mitigations",permalink:"/algorithms/hash-tables/breaking/mitigations",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/12-hash-tables/2023-11-28-breaking/02-mitigations.md",tags:[{label:"cpp",permalink:"/algorithms/tags/cpp"},{label:"python",permalink:"/algorithms/tags/python"},{label:"hash-tables",permalink:"/algorithms/tags/hash-tables"}],version:"current",lastUpdatedAt:1701129600,formattedLastUpdatedAt:"Nov 28, 2023",sidebarPosition:2,frontMatter:{id:"mitigations",slug:"/hash-tables/breaking/mitigations",title:"Possible Mitigations",description:"Talking about the ways how to prevent the attacks on the hash table.\n",tags:["cpp","python","hash-tables"],last_update:{date:"2023-11-28T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Breaking Python",permalink:"/algorithms/hash-tables/breaking/python"}},r={},l=[{value:"Random seed",id:"random-seed",level:2},{value:"Better random seed",id:"better-random-seed",level:2},{value:"Adjusting the hash function",id:"adjusting-the-hash-function",level:2},{value:"Combining both",id:"combining-both",level:2},{value:"Fallback for extreme cases",id:"fallback-for-extreme-cases",level:2},{value:"References",id:"references",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"There are multiple ways the issues created above can be mitigated. Still we can\nonly make it better, we cannot guarantee the ideal time complexity\u2026"}),"\n",(0,s.jsxs)(t.p,{children:["For the sake of simplicity (and referencing an article by ",(0,s.jsx)(t.em,{children:"Neal Wu"})," on the same\ntopic; in references below) I will use the C++ to describe the mitigations."]}),"\n",(0,s.jsx)(t.h2,{id:"random-seed",children:"Random seed"}),"\n",(0,s.jsxs)(t.p,{children:["One of the options how to avoid this kind of an attack is to introduce a random\nseed to the hash. That way it is not that easy to choose the ",(0,s.jsx)(t.em,{children:"nasty"})," numbers."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"struct custom_hash {\n size_t operator()(uint64_t x) const {\n return x + 7529;\n }\n};\n"})}),"\n",(0,s.jsx)(t.p,{children:"As you may have noticed, this is not very helpful, since it just shifts the\nissue by some number. Better option is to use a shift from random number\ngenerator:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"struct custom_hash {\n size_t operator()(uint64_t x) const {\n static const uint64_t FIXED_RANDOM =\n chrono::steady_clock::now().time_since_epoch().count();\n return x + FIXED_RANDOM;\n }\n};\n"})}),"\n",(0,s.jsx)(t.p,{children:"In this case the hash is using a high-precision clock to shift the number, which\nis much harder to break."}),"\n",(0,s.jsx)(t.h2,{id:"better-random-seed",children:"Better random seed"}),"\n",(0,s.jsxs)(t.p,{children:["Building on the previous solution, we can do some ",(0,s.jsx)(t.em,{children:"bit magic"})," instead of the\nshifting:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"struct custom_hash {\n size_t operator()(uint64_t x) const {\n static const uint64_t FIXED_RANDOM =\n chrono::steady_clock::now().time_since_epoch().count();\n x ^= FIXED_RANDOM;\n return x ^ (x >> 16);\n }\n};\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This not only shifts the number, it also manipulates the underlying bits of the\nhash. In this case we're also applying the ",(0,s.jsx)(t.code,{children:"XOR"})," operation."]}),"\n",(0,s.jsx)(t.h2,{id:"adjusting-the-hash-function",children:"Adjusting the hash function"}),"\n",(0,s.jsx)(t.p,{children:"Another option is to switch up the hash function."}),"\n",(0,s.jsxs)(t.p,{children:["For example Rust uses ",(0,s.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/SipHash",children:(0,s.jsx)(t.em,{children:"SipHash"})})," by\ndefault."]}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand, you can usually specify your own hash function, here we will\nfollow the article by ",(0,s.jsx)(t.em,{children:"Neal"})," that uses so-called ",(0,s.jsx)(t.em,{children:(0,s.jsx)(t.code,{children:"splitmix64"})}),"."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"static uint64_t splitmix64(uint64_t x) {\n // http://xorshift.di.unimi.it/splitmix64.c\n x += 0x9e3779b97f4a7c15;\n x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;\n x = (x ^ (x >> 27)) * 0x94d049bb133111eb;\n return x ^ (x >> 31);\n}\n"})}),"\n",(0,s.jsxs)(t.p,{children:["As you can see, this definitely doesn't do identity on the integers ","\ud83d\ude04"]}),"\n",(0,s.jsxs)(t.p,{children:["Another example would be\n",(0,s.jsx)(t.a,{href:"https://github.com/openjdk/jdk/blob/dc256fbc6490f8163adb286dbb7380c10e5e1e06/src/java.base/share/classes/java/util/HashMap.java#L320-L339",children:(0,s.jsx)(t.code,{children:"HashMap::hash()"})}),"\nfunction in Java:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",children:"/**\n * Computes key.hashCode() and spreads (XORs) higher bits of hash\n * to lower. Because the table uses power-of-two masking, sets of\n * hashes that vary only in bits above the current mask will\n * always collide. (Among known examples are sets of Float keys\n * holding consecutive whole numbers in small tables.) So we\n * apply a transform that spreads the impact of higher bits\n * downward. There is a tradeoff between speed, utility, and\n * quality of bit-spreading. Because many common sets of hashes\n * are already reasonably distributed (so don't benefit from\n * spreading), and because we use trees to handle large sets of\n * collisions in bins, we just XOR some shifted bits in the\n * cheapest possible way to reduce systematic lossage, as well as\n * to incorporate impact of the highest bits that would otherwise\n * never be used in index calculations because of table bounds.\n */\nstatic final int hash(Object key) {\n int h;\n return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);\n}\n"})}),"\n",(0,s.jsxs)(t.p,{children:["You can notice that they try to include the upper bits of the hash by using\n",(0,s.jsx)(t.code,{children:"XOR"}),", this would render our attack in the previous part helpless."]}),"\n",(0,s.jsx)(t.h2,{id:"combining-both",children:"Combining both"}),"\n",(0,s.jsxs)(t.p,{children:["Can we make it better? Of course! Use multiple mitigations at the same time. In\nour case, we will both inject the random value ",(0,s.jsx)(t.strong,{children:"and"})," use the ",(0,s.jsx)(t.em,{children:(0,s.jsx)(t.code,{children:"splitmix64"})}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-cpp",children:"struct custom_hash {\n static uint64_t splitmix64(uint64_t x) {\n // http://xorshift.di.unimi.it/splitmix64.c\n x += 0x9e3779b97f4a7c15;\n x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;\n x = (x ^ (x >> 27)) * 0x94d049bb133111eb;\n return x ^ (x >> 31);\n }\n\n size_t operator()(uint64_t x) const {\n static const uint64_t FIXED_RANDOM =\n chrono::steady_clock::now().time_since_epoch().count();\n return splitmix64(x + FIXED_RANDOM);\n }\n};\n"})}),"\n",(0,s.jsx)(t.h2,{id:"fallback-for-extreme-cases",children:"Fallback for extreme cases"}),"\n",(0,s.jsxs)(t.p,{children:["As we have mentioned above, Python resolves the conflicts by probing (it looks\nfor empty space somewhere else in the table, but it's deterministic about it, so\nit's not \u201c",(0,s.jsx)(t.em,{children:"oops, this is full, let's go one-by-one and find some spot"}),"\u201d). In the\ncase of C++ and Java, they resolve the conflicts by linked lists, as is the\nusual text-book depiction of the hash table."]}),"\n",(0,s.jsx)(t.p,{children:"However Java does something more intelligent. Once you go over the threshold of\nconflicts in one spot, it converts the linked list to an RB-tree that is sorted\nby the hash and key respectively."}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsx)(t.p,{children:"You may wonder what sense does it make to define an ordering on the tree by the\nhash, if we're dealing with conflicts. Well, there are less buckets than the\nrange of the hash, so if we take lower bits, we can have a conflict even though\nthe hashes are not the same."})}),"\n",(0,s.jsxs)(t.p,{children:["You might have noticed that if we get a ",(0,s.jsx)(t.strong,{children:"really bad"})," hashing function, this is\nnot very helpful. It is not, ",(0,s.jsx)(t.strong,{children:"but"})," it can help in other cases."]}),"\n",(0,s.jsx)(t.admonition,{type:"danger",children:(0,s.jsx)(t.p,{children:"As the ordering on the keys of the hash table is not required and may not be\nimplemented, the tree may be ordered by just the hash."})}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"references",children:"References"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Neal Wu.\n",(0,s.jsxs)(t.a,{href:"https://codeforces.com/blog/entry/62393",children:["Blowing up ",(0,s.jsx)(t.code,{children:"unordered_map"}),", and how to stop getting hacked on it"]}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>h,a:()=>o});var s=n(67294);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1644.15e1f8ff.js b/assets/js/1644.15e1f8ff.js deleted file mode 100644 index c762a1a..0000000 --- a/assets/js/1644.15e1f8ff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1644],{1644:(n,e,t)=>{t.d(e,{bK:()=>Me});var r=t(870),o=t(6749),i=t(7452),u=t(2002),a=t(7961),c=t(3836),s=t(4379),f=t(5625);class d{constructor(){var n={};n._next=n._prev=n,this._sentinel=n}dequeue(){var n=this._sentinel,e=n._prev;if(e!==n)return h(e),e}enqueue(n){var e=this._sentinel;n._prev&&n._next&&h(n),n._next=e._next,e._next._prev=n,e._next=n,n._prev=e}toString(){for(var n=[],e=this._sentinel,t=e._prev;t!==e;)n.push(JSON.stringify(t,v)),t=t._prev;return"["+n.join(", ")+"]"}}function h(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function v(n,e){if("_next"!==n&&"_prev"!==n)return e}var l=u.Z(1);function Z(n,e){if(n.nodeCount()<=1)return[];var t=function(n,e){var t=new f.k,o=0,i=0;r.Z(n.nodes(),(function(n){t.setNode(n,{v:n,in:0,out:0})})),r.Z(n.edges(),(function(n){var r=t.edge(n.v,n.w)||0,u=e(n),a=r+u;t.setEdge(n.v,n.w,a),i=Math.max(i,t.node(n.v).out+=u),o=Math.max(o,t.node(n.w).in+=u)}));var u=s.Z(i+o+3).map((function(){return new d})),a=o+1;return r.Z(t.nodes(),(function(n){p(u,a,t.node(n))})),{graph:t,buckets:u,zeroIdx:a}}(n,e||l),o=function(n,e,t){var r,o=[],i=e[e.length-1],u=e[0];for(;n.nodeCount();){for(;r=u.dequeue();)g(n,e,t,r);for(;r=i.dequeue();)g(n,e,t,r);if(n.nodeCount())for(var a=e.length-2;a>0;--a)if(r=e[a].dequeue()){o=o.concat(g(n,e,t,r,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return a.Z(c.Z(o,(function(e){return n.outEdges(e.v,e.w)})))}function g(n,e,t,o,i){var u=i?[]:void 0;return r.Z(n.inEdges(o.v),(function(r){var o=n.edge(r),a=n.node(r.v);i&&u.push({v:r.v,w:r.w}),a.out-=o,p(e,t,a)})),r.Z(n.outEdges(o.v),(function(r){var o=n.edge(r),i=r.w,u=n.node(i);u.in-=o,p(e,t,u)})),n.removeNode(o.v),u}function p(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}function b(n){var e="greedy"===n.graph().acyclicer?Z(n,function(n){return function(e){return n.edge(e).weight}}(n)):function(n){var e=[],t={},o={};function u(a){i.Z(o,a)||(o[a]=!0,t[a]=!0,r.Z(n.outEdges(a),(function(n){i.Z(t,n.w)?e.push(n):u(n.w)})),delete t[a])}return r.Z(n.nodes(),u),e}(n);r.Z(e,(function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,o.Z("rev"))}))}var w=t(9236),m=t(1666),y=t(3688),_=t(2714);const E=function(n,e,t){for(var r=-1,o=n.length;++r<o;){var i=n[r],u=e(i);if(null!=u&&(void 0===a?u==u&&!(0,_.Z)(u):t(u,a)))var a=u,c=i}return c};const j=function(n,e){return n>e};var k=t(9203);const x=function(n){return n&&n.length?E(n,k.Z,j):void 0};const N=function(n){var e=null==n?0:n.length;return e?n[e-1]:void 0};var I=t(4752),C=t(2693),O=t(4765);const L=function(n,e){var t={};return e=(0,O.Z)(e,3),(0,C.Z)(n,(function(n,r,o){(0,I.Z)(t,r,e(n,r,o))})),t};var M=t(9360);const A=function(n,e){return n<e};const R=function(n){return n&&n.length?E(n,k.Z,A):void 0};var S=t(6092);const P=function(){return S.Z.Date.now()};function T(n,e,t,r){var i;do{i=o.Z(r)}while(n.hasNode(i));return t.dummy=e,n.setNode(i,t),i}function F(n){var e=new f.k({multigraph:n.isMultigraph()}).setGraph(n.graph());return r.Z(n.nodes(),(function(t){n.children(t).length||e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){e.setEdge(t,n.edge(t))})),e}function D(n,e){var t,r,o=n.x,i=n.y,u=e.x-o,a=e.y-i,c=n.width/2,s=n.height/2;if(!u&&!a)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(a)*c>Math.abs(u)*s?(a<0&&(s=-s),t=s*u/a,r=s):(u<0&&(c=-c),t=c,r=c*a/u),{x:o+t,y:i+r}}function B(n){var e=c.Z(s.Z(V(n)+1),(function(){return[]}));return r.Z(n.nodes(),(function(t){var r=n.node(t),o=r.rank;M.Z(o)||(e[o][r.order]=t)})),e}function G(n,e,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),T(n,"border",o,e)}function V(n){return x(c.Z(n.nodes(),(function(e){var t=n.node(e).rank;if(!M.Z(t))return t})))}function z(n,e){var t=P();try{return e()}finally{console.log(n+" time: "+(P()-t)+"ms")}}function q(n,e){return e()}function U(n,e,t,r,o,i){var u={width:0,height:0,rank:i,borderType:e},a=o[e][i-1],c=T(n,"border",u,t);o[e][i]=c,n.setParent(c,r),a&&n.setEdge(a,c,{weight:1})}function Y(n){var e=n.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(n){r.Z(n.nodes(),(function(e){K(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,K),i.Z(t,"y")&&K(t)}))}(n),"lr"!==e&&"rl"!==e||(!function(n){r.Z(n.nodes(),(function(e){W(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,W),i.Z(t,"x")&&W(t)}))}(n),$(n))}function $(n){r.Z(n.nodes(),(function(e){J(n.node(e))})),r.Z(n.edges(),(function(e){J(n.edge(e))}))}function J(n){var e=n.width;n.width=n.height,n.height=e}function K(n){n.y=-n.y}function W(n){var e=n.x;n.x=n.y,n.y=e}function H(n){n.graph().dummyChains=[],r.Z(n.edges(),(function(e){!function(n,e){var t,r,o,i=e.v,u=n.node(i).rank,a=e.w,c=n.node(a).rank,s=e.name,f=n.edge(e),d=f.labelRank;if(c===u+1)return;for(n.removeEdge(e),o=0,++u;u<c;++o,++u)f.points=[],t=T(n,"edge",r={width:0,height:0,edgeLabel:f,edgeObj:e,rank:u},"_d"),u===d&&(r.width=f.width,r.height=f.height,r.dummy="edge-label",r.labelpos=f.labelpos),n.setEdge(i,t,{weight:f.weight},s),0===o&&n.graph().dummyChains.push(t),i=t;n.setEdge(i,a,{weight:f.weight},s)}(n,e)}))}const Q=function(n,e){return n&&n.length?E(n,(0,O.Z)(e,2),A):void 0};function X(n){var e={};r.Z(n.sources(),(function t(r){var o=n.node(r);if(i.Z(e,r))return o.rank;e[r]=!0;var u=R(c.Z(n.outEdges(r),(function(e){return t(e.w)-n.edge(e).minlen})));return u!==Number.POSITIVE_INFINITY&&null!=u||(u=0),o.rank=u}))}function nn(n,e){return n.node(e.w).rank-n.node(e.v).rank-n.edge(e).minlen}function en(n){var e,t,r=new f.k({directed:!1}),o=n.nodes()[0],i=n.nodeCount();for(r.setNode(o,{});tn(r,n)<i;)e=rn(r,n),t=r.hasNode(e.v)?nn(n,e):-nn(n,e),on(r,n,t);return r}function tn(n,e){return r.Z(n.nodes(),(function t(o){r.Z(e.nodeEdges(o),(function(r){var i=r.v,u=o===i?r.w:i;n.hasNode(u)||nn(e,r)||(n.setNode(u,{}),n.setEdge(o,u,{}),t(u))}))})),n.nodeCount()}function rn(n,e){return Q(e.edges(),(function(t){if(n.hasNode(t.v)!==n.hasNode(t.w))return nn(e,t)}))}function on(n,e,t){r.Z(n.nodes(),(function(n){e.node(n).rank+=t}))}var un=t(585),an=t(7179);const cn=function(n){return function(e,t,r){var o=Object(e);if(!(0,un.Z)(e)){var i=(0,O.Z)(t,3);e=(0,an.Z)(e),t=function(n){return i(o[n],n,o)}}var u=n(e,t,r);return u>-1?o[i?e[u]:u]:void 0}};var sn=t(1692),fn=t(4099);const dn=function(n){var e=(0,fn.Z)(n),t=e%1;return e==e?t?e-t:e:0};var hn=Math.max;const vn=cn((function(n,e,t){var r=null==n?0:n.length;if(!r)return-1;var o=null==t?0:dn(t);return o<0&&(o=hn(r+o,0)),(0,sn.Z)(n,(0,O.Z)(e,3),o)}));var ln=t(3445);u.Z(1);u.Z(1);t(9473),t(3970),t(3589);var Zn=t(7771);t(8533);(0,t(4193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var gn="\\ud800-\\udfff",pn="["+gn+"]",bn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wn="\\ud83c[\\udffb-\\udfff]",mn="[^"+gn+"]",yn="(?:\\ud83c[\\udde6-\\uddff]){2}",_n="[\\ud800-\\udbff][\\udc00-\\udfff]",En="(?:"+bn+"|"+wn+")"+"?",jn="[\\ufe0e\\ufe0f]?",kn=jn+En+("(?:\\u200d(?:"+[mn,yn,_n].join("|")+")"+jn+En+")*"),xn="(?:"+[mn+bn+"?",bn,yn,_n,pn].join("|")+")";RegExp(wn+"(?="+wn+")|"+xn+kn,"g");function Nn(){}function In(n,e,t){Zn.Z(e)||(e=[e]);var o=(n.isDirected()?n.successors:n.neighbors).bind(n),i=[],u={};return r.Z(e,(function(e){if(!n.hasNode(e))throw new Error("Graph does not have node: "+e);Cn(n,e,"post"===t,u,o,i)})),i}function Cn(n,e,t,o,u,a){i.Z(o,e)||(o[e]=!0,t||a.push(e),r.Z(u(e),(function(e){Cn(n,e,t,o,u,a)})),t&&a.push(e))}Nn.prototype=new Error;t(2544);function On(n){n=function(n){var e=(new f.k).setGraph(n.graph());return r.Z(n.nodes(),(function(t){e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){var r=e.edge(t.v,t.w)||{weight:0,minlen:1},o=n.edge(t);e.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),e}(n),X(n);var e,t=en(n);for(An(t),Ln(t,n);e=Sn(t);)Tn(t,n,e,Pn(t,n,e))}function Ln(n,e){var t=function(n,e){return In(n,e,"post")}(n,n.nodes());t=t.slice(0,t.length-1),r.Z(t,(function(t){!function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=Mn(n,e,t)}(n,e,t)}))}function Mn(n,e,t){var o=n.node(t).parent,i=!0,u=e.edge(t,o),a=0;return u||(i=!1,u=e.edge(o,t)),a=u.weight,r.Z(e.nodeEdges(t),(function(r){var u,c,s=r.v===t,f=s?r.w:r.v;if(f!==o){var d=s===i,h=e.edge(r).weight;if(a+=d?h:-h,u=t,c=f,n.hasEdge(u,c)){var v=n.edge(t,f).cutvalue;a+=d?-v:v}}})),a}function An(n,e){arguments.length<2&&(e=n.nodes()[0]),Rn(n,{},1,e)}function Rn(n,e,t,o,u){var a=t,c=n.node(o);return e[o]=!0,r.Z(n.neighbors(o),(function(r){i.Z(e,r)||(t=Rn(n,e,t,r,o))})),c.low=a,c.lim=t++,u?c.parent=u:delete c.parent,t}function Sn(n){return vn(n.edges(),(function(e){return n.edge(e).cutvalue<0}))}function Pn(n,e,t){var r=t.v,o=t.w;e.hasEdge(r,o)||(r=t.w,o=t.v);var i=n.node(r),u=n.node(o),a=i,c=!1;i.lim>u.lim&&(a=u,c=!0);var s=ln.Z(e.edges(),(function(e){return c===Fn(n,n.node(e.v),a)&&c!==Fn(n,n.node(e.w),a)}));return Q(s,(function(n){return nn(e,n)}))}function Tn(n,e,t,o){var i=t.v,u=t.w;n.removeEdge(i,u),n.setEdge(o.v,o.w,{}),An(n),Ln(n,e),function(n,e){var t=vn(n.nodes(),(function(n){return!e.node(n).parent})),o=function(n,e){return In(n,e,"pre")}(n,t);o=o.slice(1),r.Z(o,(function(t){var r=n.node(t).parent,o=e.edge(t,r),i=!1;o||(o=e.edge(r,t),i=!0),e.node(t).rank=e.node(r).rank+(i?o.minlen:-o.minlen)}))}(n,e)}function Fn(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Dn(n){switch(n.graph().ranker){case"network-simplex":default:Gn(n);break;case"tight-tree":!function(n){X(n),en(n)}(n);break;case"longest-path":Bn(n)}}On.initLowLimValues=An,On.initCutValues=Ln,On.calcCutValue=Mn,On.leaveEdge=Sn,On.enterEdge=Pn,On.exchangeEdges=Tn;var Bn=X;function Gn(n){On(n)}var Vn=t(4148),zn=t(7570);function qn(n){var e=T(n,"root",{},"_root"),t=function(n){var e={};function t(o,i){var u=n.children(o);u&&u.length&&r.Z(u,(function(n){t(n,i+1)})),e[o]=i}return r.Z(n.children(),(function(n){t(n,1)})),e}(n),o=x(Vn.Z(t))-1,i=2*o+1;n.graph().nestingRoot=e,r.Z(n.edges(),(function(e){n.edge(e).minlen*=i}));var u=function(n){return zn.Z(n.edges(),(function(e,t){return e+n.edge(t).weight}),0)}(n)+1;r.Z(n.children(),(function(r){Un(n,e,i,u,o,t,r)})),n.graph().nodeRankFactor=i}function Un(n,e,t,o,i,u,a){var c=n.children(a);if(c.length){var s=G(n,"_bt"),f=G(n,"_bb"),d=n.node(a);n.setParent(s,a),d.borderTop=s,n.setParent(f,a),d.borderBottom=f,r.Z(c,(function(r){Un(n,e,t,o,i,u,r);var c=n.node(r),d=c.borderTop?c.borderTop:r,h=c.borderBottom?c.borderBottom:r,v=c.borderTop?o:2*o,l=d!==h?1:i-u[a]+1;n.setEdge(s,d,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(h,f,{weight:v,minlen:l,nestingEdge:!0})})),n.parent(a)||n.setEdge(e,s,{weight:0,minlen:i+u[a]})}else a!==e&&n.setEdge(e,a,{weight:0,minlen:t})}var Yn=t(8451);const $n=function(n){return(0,Yn.Z)(n,5)};function Jn(n,e,t){var u=function(n){var e;for(;n.hasNode(e=o.Z("_root")););return e}(n),a=new f.k({compound:!0}).setGraph({root:u}).setDefaultNodeLabel((function(e){return n.node(e)}));return r.Z(n.nodes(),(function(o){var c=n.node(o),s=n.parent(o);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(a.setNode(o),a.setParent(o,s||u),r.Z(n[t](o),(function(e){var t=e.v===o?e.w:e.v,r=a.edge(t,o),i=M.Z(r)?0:r.weight;a.setEdge(t,o,{weight:n.edge(e).weight+i})})),i.Z(c,"minRank")&&a.setNode(o,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),a}var Kn=t(2954);const Wn=function(n,e,t){for(var r=-1,o=n.length,i=e.length,u={};++r<o;){var a=r<i?e[r]:void 0;t(u,n[r],a)}return u};const Hn=function(n,e){return Wn(n||[],e||[],Kn.Z)};var Qn=t(626),Xn=t(7679),ne=t(8033),ee=t(1018);const te=function(n,e){var t=n.length;for(n.sort(e);t--;)n[t]=n[t].value;return n};var re=t(1162);const oe=function(n,e){if(n!==e){var t=void 0!==n,r=null===n,o=n==n,i=(0,_.Z)(n),u=void 0!==e,a=null===e,c=e==e,s=(0,_.Z)(e);if(!a&&!s&&!i&&n>e||i&&u&&c&&!a&&!s||r&&u&&c||!t&&c||!o)return 1;if(!r&&!i&&!s&&n<e||s&&t&&o&&!r&&!i||a&&t&&o||!u&&o||!c)return-1}return 0};const ie=function(n,e,t){for(var r=-1,o=n.criteria,i=e.criteria,u=o.length,a=t.length;++r<u;){var c=oe(o[r],i[r]);if(c)return r>=a?c:c*("desc"==t[r]?-1:1)}return n.index-e.index};const ue=function(n,e,t){e=e.length?(0,Xn.Z)(e,(function(n){return(0,Zn.Z)(n)?function(e){return(0,ne.Z)(e,1===n.length?n[0]:n)}:n})):[k.Z];var r=-1;e=(0,Xn.Z)(e,(0,re.Z)(O.Z));var o=(0,ee.Z)(n,(function(n,t,o){return{criteria:(0,Xn.Z)(e,(function(e){return e(n)})),index:++r,value:n}}));return te(o,(function(n,e){return ie(n,e,t)}))};var ae=t(9581),ce=t(439);const se=(0,ae.Z)((function(n,e){if(null==n)return[];var t=e.length;return t>1&&(0,ce.Z)(n,e[0],e[1])?e=[]:t>2&&(0,ce.Z)(e[0],e[1],e[2])&&(e=[e[0]]),ue(n,(0,Qn.Z)(e,1),[])}));function fe(n,e){for(var t=0,r=1;r<e.length;++r)t+=de(n,e[r-1],e[r]);return t}function de(n,e,t){for(var o=Hn(t,c.Z(t,(function(n,e){return e}))),i=a.Z(c.Z(e,(function(e){return se(c.Z(n.outEdges(e),(function(e){return{pos:o[e.w],weight:n.edge(e).weight}})),"pos")}))),u=1;u<t.length;)u<<=1;var s=2*u-1;u-=1;var f=c.Z(new Array(s),(function(){return 0})),d=0;return r.Z(i.forEach((function(n){var e=n.pos+u;f[e]+=n.weight;for(var t=0;e>0;)e%2&&(t+=f[e+1]),f[e=e-1>>1]+=n.weight;d+=n.weight*t}))),d}function he(n,e){var t={};return r.Z(n,(function(n,e){var r=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};M.Z(n.barycenter)||(r.barycenter=n.barycenter,r.weight=n.weight)})),r.Z(e.edges(),(function(n){var e=t[n.v],r=t[n.w];M.Z(e)||M.Z(r)||(r.indegree++,e.out.push(t[n.w]))})),function(n){var e=[];function t(n){return function(e){e.merged||(M.Z(e.barycenter)||M.Z(n.barycenter)||e.barycenter>=n.barycenter)&&function(n,e){var t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var i=n.pop();e.push(i),r.Z(i.in.reverse(),t(i)),r.Z(i.out,o(i))}return c.Z(ln.Z(e,(function(n){return!n.merged})),(function(n){return m.Z(n,["vs","i","barycenter","weight"])}))}(ln.Z(t,(function(n){return!n.indegree})))}function ve(n,e){var t,o=function(n,e){var t={lhs:[],rhs:[]};return r.Z(n,(function(n){e(n)?t.lhs.push(n):t.rhs.push(n)})),t}(n,(function(n){return i.Z(n,"barycenter")})),u=o.lhs,c=se(o.rhs,(function(n){return-n.i})),s=[],f=0,d=0,h=0;u.sort((t=!!e,function(n,e){return n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:t?e.i-n.i:n.i-e.i})),h=le(s,c,h),r.Z(u,(function(n){h+=n.vs.length,s.push(n.vs),f+=n.barycenter*n.weight,d+=n.weight,h=le(s,c,h)}));var v={vs:a.Z(s)};return d&&(v.barycenter=f/d,v.weight=d),v}function le(n,e,t){for(var r;e.length&&(r=N(e)).i<=t;)e.pop(),n.push(r.vs),t++;return t}function Ze(n,e,t,o){var u=n.children(e),s=n.node(e),f=s?s.borderLeft:void 0,d=s?s.borderRight:void 0,h={};f&&(u=ln.Z(u,(function(n){return n!==f&&n!==d})));var v=function(n,e){return c.Z(e,(function(e){var t=n.inEdges(e);if(t.length){var r=zn.Z(t,(function(e,t){var r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}(n,u);r.Z(v,(function(e){if(n.children(e.v).length){var r=Ze(n,e.v,t,o);h[e.v]=r,i.Z(r,"barycenter")&&(u=e,a=r,M.Z(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var l=he(v,t);!function(n,e){r.Z(n,(function(n){n.vs=a.Z(n.vs.map((function(n){return e[n]?e[n].vs:n})))}))}(l,h);var Z=ve(l,o);if(f&&(Z.vs=a.Z([f,Z.vs,d]),n.predecessors(f).length)){var g=n.node(n.predecessors(f)[0]),p=n.node(n.predecessors(d)[0]);i.Z(Z,"barycenter")||(Z.barycenter=0,Z.weight=0),Z.barycenter=(Z.barycenter*Z.weight+g.order+p.order)/(Z.weight+2),Z.weight+=2}return Z}function ge(n){var e=V(n),t=pe(n,s.Z(1,e+1),"inEdges"),o=pe(n,s.Z(e-1,-1,-1),"outEdges"),u=function(n){var e={},t=ln.Z(n.nodes(),(function(e){return!n.children(e).length})),o=x(c.Z(t,(function(e){return n.node(e).rank}))),u=c.Z(s.Z(o+1),(function(){return[]})),a=se(t,(function(e){return n.node(e).rank}));return r.Z(a,(function t(o){if(!i.Z(e,o)){e[o]=!0;var a=n.node(o);u[a.rank].push(o),r.Z(n.successors(o),t)}})),u}(n);we(n,u);for(var a,f=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){be(d%2?t:o,d%4>=2);var v=fe(n,u=B(n));v<f&&(h=0,a=$n(u),f=v)}we(n,a)}function pe(n,e,t){return c.Z(e,(function(e){return Jn(n,e,t)}))}function be(n,e){var t=new f.k;r.Z(n,(function(n){var o=n.graph().root,i=Ze(n,o,t,e);r.Z(i.vs,(function(e,t){n.node(e).order=t})),function(n,e,t){var o,i={};r.Z(t,(function(t){for(var r,u,a=n.parent(t);a;){if((r=n.parent(a))?(u=i[r],i[r]=a):(u=o,o=a),u&&u!==a)return void e.setEdge(u,a);a=r}}))}(n,t,i.vs)}))}function we(n,e){r.Z(e,(function(e){r.Z(e,(function(e,t){n.node(e).order=t}))}))}function me(n){var e=function(n){var e={},t=0;function o(i){var u=t;r.Z(n.children(i),o),e[i]={low:u,lim:t++}}return r.Z(n.children(),o),e}(n);r.Z(n.graph().dummyChains,(function(t){for(var r=n.node(t),o=r.edgeObj,i=function(n,e,t,r){var o,i,u=[],a=[],c=Math.min(e[t].low,e[r].low),s=Math.max(e[t].lim,e[r].lim);o=t;do{o=n.parent(o),u.push(o)}while(o&&(e[o].low>c||s>e[o].lim));i=o,o=r;for(;(o=n.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,e,o.v,o.w),u=i.path,a=i.lca,c=0,s=u[c],f=!0;t!==o.w;){if(r=n.node(t),f){for(;(s=u[c])!==a&&n.node(s).maxRank<r.rank;)c++;s===a&&(f=!1)}if(!f){for(;c<u.length-1&&n.node(s=u[c+1]).minRank<=r.rank;)c++;s=u[c]}n.setParent(t,s),t=n.successors(t)[0]}}))}var ye=t(8882);const _e=function(n,e){return n&&(0,C.Z)(n,(0,ye.Z)(e))};var Ee=t(1395),je=t(2957);const ke=function(n,e){return null==n?n:(0,Ee.Z)(n,(0,ye.Z)(e),je.Z)};function xe(n,e){var t={};return zn.Z(e,(function(e,o){var i=0,u=0,a=e.length,c=N(o);return r.Z(o,(function(e,s){var f=function(n,e){if(n.node(e).dummy)return vn(n.predecessors(e),(function(e){return n.node(e).dummy}))}(n,e),d=f?n.node(f).order:a;(f||e===c)&&(r.Z(o.slice(u,s+1),(function(e){r.Z(n.predecessors(e),(function(r){var o=n.node(r),u=o.order;!(u<i||d<u)||o.dummy&&n.node(e).dummy||Ne(t,r,e)}))})),u=s+1,i=d)})),o})),t}function Ne(n,e,t){if(e>t){var r=e;e=t,t=r}var o=n[e];o||(n[e]=o={}),o[t]=!0}function Ie(n,e,t){if(e>t){var r=e;e=t,t=r}return i.Z(n[e],t)}function Ce(n,e,t,o,u){var a={},c=function(n,e,t,o){var u=new f.k,a=n.graph(),c=function(n,e,t){return function(r,o,u){var a,c=r.node(o),s=r.node(u),f=0;if(f+=c.width/2,i.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=-c.width/2;break;case"r":a=c.width/2}if(a&&(f+=t?a:-a),a=0,f+=(c.dummy?e:n)/2,f+=(s.dummy?e:n)/2,f+=s.width/2,i.Z(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=s.width/2;break;case"r":a=-s.width/2}return a&&(f+=t?a:-a),a=0,f}}(a.nodesep,a.edgesep,o);return r.Z(e,(function(e){var o;r.Z(e,(function(e){var r=t[e];if(u.setNode(r),o){var i=t[o],a=u.edge(i,r);u.setEdge(i,r,Math.max(c(n,e,o),a||0))}o=e}))})),u}(n,e,t,u),s=u?"borderLeft":"borderRight";function d(n,e){for(var t=c.nodes(),r=t.pop(),o={};r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d((function(n){a[n]=c.inEdges(n).reduce((function(n,e){return Math.max(n,a[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var t=c.outEdges(e).reduce((function(n,e){return Math.min(n,a[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),r=n.node(e);t!==Number.POSITIVE_INFINITY&&r.borderType!==s&&(a[e]=Math.max(a[e],t))}),c.successors.bind(c)),r.Z(o,(function(n){a[n]=a[t[n]]})),a}function Oe(n){var e,t=B(n),o=w.Z(xe(n,t),function(n,e){var t={};function o(e,o,i,u,a){var c;r.Z(s.Z(o,i),(function(o){c=e[o],n.node(c).dummy&&r.Z(n.predecessors(c),(function(e){var r=n.node(e);r.dummy&&(r.order<u||r.order>a)&&Ne(t,e,c)}))}))}return zn.Z(e,(function(e,t){var i,u=-1,a=0;return r.Z(t,(function(r,c){if("border"===n.node(r).dummy){var s=n.predecessors(r);s.length&&(i=n.node(s[0]).order,o(t,a,c,u,i),a=c,u=i)}o(t,a,t.length,i,e.length)})),t})),t}(n,t)),i={};r.Z(["u","d"],(function(u){e="u"===u?t:Vn.Z(t).reverse(),r.Z(["l","r"],(function(t){"r"===t&&(e=c.Z(e,(function(n){return Vn.Z(n).reverse()})));var a=("u"===u?n.predecessors:n.successors).bind(n),s=function(n,e,t,o){var i={},u={},a={};return r.Z(e,(function(n){r.Z(n,(function(n,e){i[n]=n,u[n]=n,a[n]=e}))})),r.Z(e,(function(n){var e=-1;r.Z(n,(function(n){var r=o(n);if(r.length){r=se(r,(function(n){return a[n]}));for(var c=(r.length-1)/2,s=Math.floor(c),f=Math.ceil(c);s<=f;++s){var d=r[s];u[n]===n&&e<a[d]&&!Ie(t,n,d)&&(u[d]=n,u[n]=i[n]=i[d],e=a[d])}}}))})),{root:i,align:u}}(0,e,o,a),f=Ce(n,e,s.root,s.align,"r"===t);"r"===t&&(f=L(f,(function(n){return-n}))),i[u+t]=f}))}));var u=function(n,e){return Q(Vn.Z(e),(function(e){var t=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY;return ke(e,(function(e,o){var i=function(n,e){return n.node(e).width}(n,o)/2;t=Math.max(e+i,t),r=Math.min(e-i,r)})),t-r}))}(n,i);return function(n,e){var t=Vn.Z(e),o=R(t),i=x(t);r.Z(["u","d"],(function(t){r.Z(["l","r"],(function(r){var u,a=t+r,c=n[a];if(c!==e){var s=Vn.Z(c);(u="l"===r?o-R(s):i-x(s))&&(n[a]=L(c,(function(n){return n+u})))}}))}))}(i,u),function(n,e){return L(n.ul,(function(t,r){if(e)return n[e.toLowerCase()][r];var o=se(c.Z(n,r));return(o[1]+o[2])/2}))}(i,n.graph().align)}function Le(n){(function(n){var e=B(n),t=n.graph().ranksep,o=0;r.Z(e,(function(e){var i=x(c.Z(e,(function(e){return n.node(e).height})));r.Z(e,(function(e){n.node(e).y=o+i/2})),o+=i+t}))})(n=F(n)),_e(Oe(n),(function(e,t){n.node(t).x=e}))}function Me(n,e){var t=e&&e.debugTiming?z:q;t("layout",(function(){var e=t(" buildLayoutGraph",(function(){return function(n){var e=new f.k({multigraph:!0,compound:!0}),t=Ve(n.graph());return e.setGraph(w.Z({},Re,Ge(t,Ae),m.Z(t,Se))),r.Z(n.nodes(),(function(t){var r=Ve(n.node(t));e.setNode(t,y.Z(Ge(r,Pe),Te)),e.setParent(t,n.parent(t))})),r.Z(n.edges(),(function(t){var r=Ve(n.edge(t));e.setEdge(t,w.Z({},De,Ge(r,Fe),m.Z(r,Be)))})),e}(n)}));t(" runLayout",(function(){!function(n,e){e(" makeSpaceForEdgeLabels",(function(){!function(n){var e=n.graph();e.ranksep/=2,r.Z(n.edges(),(function(t){var r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(n)})),e(" removeSelfEdges",(function(){!function(n){r.Z(n.edges(),(function(e){if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}}))}(n)})),e(" acyclic",(function(){b(n)})),e(" nestingGraph.run",(function(){qn(n)})),e(" rank",(function(){Dn(F(n))})),e(" injectEdgeLabelProxies",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(t.width&&t.height){var r=n.node(e.v),o={rank:(n.node(e.w).rank-r.rank)/2+r.rank,e:e};T(n,"edge-proxy",o,"_ep")}}))}(n)})),e(" removeEmptyRanks",(function(){!function(n){var e=R(c.Z(n.nodes(),(function(e){return n.node(e).rank}))),t=[];r.Z(n.nodes(),(function(r){var o=n.node(r).rank-e;t[o]||(t[o]=[]),t[o].push(r)}));var o=0,i=n.graph().nodeRankFactor;r.Z(t,(function(e,t){M.Z(e)&&t%i!=0?--o:o&&r.Z(e,(function(e){n.node(e).rank+=o}))}))}(n)})),e(" nestingGraph.cleanup",(function(){!function(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,r.Z(n.edges(),(function(e){n.edge(e).nestingEdge&&n.removeEdge(e)}))}(n)})),e(" normalizeRanks",(function(){!function(n){var e=R(c.Z(n.nodes(),(function(e){return n.node(e).rank})));r.Z(n.nodes(),(function(t){var r=n.node(t);i.Z(r,"rank")&&(r.rank-=e)}))}(n)})),e(" assignRankMinMax",(function(){!function(n){var e=0;r.Z(n.nodes(),(function(t){var r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=x(e,r.maxRank))})),n.graph().maxRank=e}(n)})),e(" removeEdgeLabelProxies",(function(){!function(n){r.Z(n.nodes(),(function(e){var t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))}))}(n)})),e(" normalize.run",(function(){H(n)})),e(" parentDummyChains",(function(){me(n)})),e(" addBorderSegments",(function(){!function(n){r.Z(n.children(),(function e(t){var o=n.children(t),u=n.node(t);if(o.length&&r.Z(o,e),i.Z(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(var a=u.minRank,c=u.maxRank+1;a<c;++a)U(n,"borderLeft","_bl",t,u,a),U(n,"borderRight","_br",t,u,a)}}))}(n)})),e(" order",(function(){ge(n)})),e(" insertSelfEdges",(function(){!function(n){var e=B(n);r.Z(e,(function(e){var t=0;r.Z(e,(function(e,o){var i=n.node(e);i.order=o+t,r.Z(i.selfEdges,(function(e){T(n,"selfedge",{width:e.label.width,height:e.label.height,rank:i.rank,order:o+ ++t,e:e.e,label:e.label},"_se")})),delete i.selfEdges}))}))}(n)})),e(" adjustCoordinateSystem",(function(){!function(n){var e=n.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||$(n)}(n)})),e(" position",(function(){Le(n)})),e(" positionSelfEdges",(function(){!function(n){r.Z(n.nodes(),(function(e){var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),o=r.x+r.width/2,i=r.y,u=t.x-o,a=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],t.label.x=t.x,t.label.y=t.y}}))}(n)})),e(" removeBorderNodes",(function(){!function(n){r.Z(n.nodes(),(function(e){if(n.children(e).length){var t=n.node(e),r=n.node(t.borderTop),o=n.node(t.borderBottom),i=n.node(N(t.borderLeft)),u=n.node(N(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}})),r.Z(n.nodes(),(function(e){"border"===n.node(e).dummy&&n.removeNode(e)}))}(n)})),e(" normalize.undo",(function(){!function(n){r.Z(n.graph().dummyChains,(function(e){var t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)}))}(n)})),e(" fixupEdgeLabelCoords",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(i.Z(t,"x"))switch("l"!==t.labelpos&&"r"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}}))}(n)})),e(" undoCoordinateSystem",(function(){Y(n)})),e(" translateGraph",(function(){!function(n){var e=Number.POSITIVE_INFINITY,t=0,o=Number.POSITIVE_INFINITY,u=0,a=n.graph(),c=a.marginx||0,s=a.marginy||0;function f(n){var r=n.x,i=n.y,a=n.width,c=n.height;e=Math.min(e,r-a/2),t=Math.max(t,r+a/2),o=Math.min(o,i-c/2),u=Math.max(u,i+c/2)}r.Z(n.nodes(),(function(e){f(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);i.Z(t,"x")&&f(t)})),e-=c,o-=s,r.Z(n.nodes(),(function(t){var r=n.node(t);r.x-=e,r.y-=o})),r.Z(n.edges(),(function(t){var u=n.edge(t);r.Z(u.points,(function(n){n.x-=e,n.y-=o})),i.Z(u,"x")&&(u.x-=e),i.Z(u,"y")&&(u.y-=o)})),a.width=t-e+c,a.height=u-o+s}(n)})),e(" assignNodeIntersects",(function(){!function(n){r.Z(n.edges(),(function(e){var t,r,o=n.edge(e),i=n.node(e.v),u=n.node(e.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=u,r=i),o.points.unshift(D(i,t)),o.points.push(D(u,r))}))}(n)})),e(" reversePoints",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);t.reversed&&t.points.reverse()}))}(n)})),e(" acyclic.undo",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(t.reversed){n.removeEdge(e);var r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}}))}(n)}))}(e,t)})),t(" updateInputGraph",(function(){!function(n,e){r.Z(n.nodes(),(function(t){var r=n.node(t),o=e.node(t);r&&(r.x=o.x,r.y=o.y,e.children(t).length&&(r.width=o.width,r.height=o.height))})),r.Z(n.edges(),(function(t){var r=n.edge(t),o=e.edge(t);r.points=o.points,i.Z(o,"x")&&(r.x=o.x,r.y=o.y)})),n.graph().width=e.graph().width,n.graph().height=e.graph().height}(n,e)}))}))}var Ae=["nodesep","edgesep","ranksep","marginx","marginy"],Re={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Se=["acyclicer","ranker","rankdir","align"],Pe=["width","height"],Te={width:0,height:0},Fe=["minlen","weight","width","height","labeloffset"],De={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Be=["labelpos"];function Ge(n,e){return L(m.Z(n,e),Number)}function Ve(n){var e={};return r.Z(n,(function(n,t){e[t.toLowerCase()]=n})),e}},2544:(n,e,t)=>{t.d(e,{k:()=>R});var r=t(7452),o=t(2002),i=t(3234),u=t(7179),a=t(3445),c=t(9697),s=t(870),f=t(9360),d=t(626),h=t(9581),v=t(3001),l=t(1692);const Z=function(n){return n!=n};const g=function(n,e,t){for(var r=t-1,o=n.length;++r<o;)if(n[r]===e)return r;return-1};const p=function(n,e,t){return e==e?g(n,e,t):(0,l.Z)(n,Z,t)};const b=function(n,e){return!!(null==n?0:n.length)&&p(n,e,0)>-1};const w=function(n,e,t){for(var r=-1,o=null==n?0:n.length;++r<o;)if(t(e,n[r]))return!0;return!1};var m=t(9548),y=t(3203);const _=function(){};var E=t(6545),j=y.Z&&1/(0,E.Z)(new y.Z([,-0]))[1]==1/0?function(n){return new y.Z(n)}:_;const k=j;const x=function(n,e,t){var r=-1,o=b,i=n.length,u=!0,a=[],c=a;if(t)u=!1,o=w;else if(i>=200){var s=e?null:k(n);if(s)return(0,E.Z)(s);u=!1,o=m.Z,c=new v.Z}else c=e?[]:a;n:for(;++r<i;){var f=n[r],d=e?e(f):f;if(f=t||0!==f?f:0,u&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue n;e&&c.push(d),a.push(f)}else o(c,d,t)||(c!==a&&c.push(d),a.push(f))}return a};var N=t(836);const I=(0,h.Z)((function(n){return x((0,d.Z)(n,1,N.Z,!0))}));var C=t(4148),O=t(7570),L="\0",M="\0",A="\x01";class R{constructor(n={}){this._isDirected=!r.Z(n,"directed")||n.directed,this._isMultigraph=!!r.Z(n,"multigraph")&&n.multigraph,this._isCompound=!!r.Z(n,"compound")&&n.compound,this._label=void 0,this._defaultNodeLabelFn=o.Z(void 0),this._defaultEdgeLabelFn=o.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[M]={}),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(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultNodeLabelFn=n,this}nodeCount(){return this._nodeCount}nodes(){return u.Z(this._nodes)}sources(){var n=this;return a.Z(this.nodes(),(function(e){return c.Z(n._in[e])}))}sinks(){var n=this;return a.Z(this.nodes(),(function(e){return c.Z(n._out[e])}))}setNodes(n,e){var t=arguments,r=this;return s.Z(n,(function(n){t.length>1?r.setNode(n,e):r.setNode(n)})),this}setNode(n,e){return r.Z(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=e),this):(this._nodes[n]=arguments.length>1?e:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=M,this._children[n]={},this._children[M][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return r.Z(this._nodes,n)}removeNode(n){var e=this;if(r.Z(this._nodes,n)){var t=function(n){e.removeEdge(e._edgeObjs[n])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],s.Z(this.children(n),(function(n){e.setParent(n)})),delete this._children[n]),s.Z(u.Z(this._in[n]),t),delete this._in[n],delete this._preds[n],s.Z(u.Z(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f.Z(e))e=M;else{for(var t=e+="";!f.Z(t);t=this.parent(t))if(t===n)throw new Error("Setting "+e+" as parent of "+n+" would create a cycle");this.setNode(e)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=e,this._children[e][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var e=this._parent[n];if(e!==M)return e}}children(n){if(f.Z(n)&&(n=M),this._isCompound){var e=this._children[n];if(e)return u.Z(e)}else{if(n===M)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var e=this._preds[n];if(e)return u.Z(e)}successors(n){var e=this._sucs[n];if(e)return u.Z(e)}neighbors(n){var e=this.predecessors(n);if(e)return I(e,this.successors(n))}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;s.Z(this._nodes,(function(t,r){n(r)&&e.setNode(r,t)})),s.Z(this._edgeObjs,(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))}));var r={};function o(n){var i=t.parent(n);return void 0===i||e.hasNode(i)?(r[n]=i,i):i in r?r[i]:o(i)}return this._isCompound&&s.Z(e.nodes(),(function(n){e.setParent(n,o(n))})),e}setDefaultEdgeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return C.Z(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return O.Z(n,(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o})),this}setEdge(){var n,e,t,o,i=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(n=u.v,e=u.w,t=u.name,2===arguments.length&&(o=arguments[1],i=!0)):(n=u,e=arguments[1],t=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),n=""+n,e=""+e,f.Z(t)||(t=""+t);var a=T(this._isDirected,n,e,t);if(r.Z(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(!f.Z(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(e),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(n,e,t);var c=function(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};r&&(a.name=r);return a}(this._isDirected,n,e,t);return n=c.v,e=c.w,Object.freeze(c),this._edgeObjs[a]=c,S(this._preds[e],n),S(this._sucs[n],e),this._in[e][a]=c,this._out[n][a]=c,this._edgeCount++,this}edge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return this._edgeLabels[r]}hasEdge(n,e,t){var o=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return r.Z(this._edgeLabels,o)}removeEdge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t),o=this._edgeObjs[r];return o&&(n=o.v,e=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],P(this._preds[e],n),P(this._sucs[n],e),delete this._in[e][r],delete this._out[n][r],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.v===e})):r}}outEdges(n,e){var t=this._out[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.w===e})):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}}function S(n,e){n[e]?n[e]++:n[e]=1}function P(n,e){--n[e]||delete n[e]}function T(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}return o+A+i+A+(f.Z(r)?L:r)}function F(n,e){return T(n,e.v,e.w,e.name)}R.prototype._nodeCount=0,R.prototype._edgeCount=0},5625:(n,e,t)=>{t.d(e,{k:()=>r.k});var r=t(2544)},3001:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7834);const o=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this};const i=function(n){return this.__data__.has(n)};function u(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new r.Z;++e<t;)this.add(n[e])}u.prototype.add=u.prototype.push=o,u.prototype.has=i;const a=u},6579:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length;++t<r&&!1!==e(n[t],t,n););return n}},8774:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=0,i=[];++t<r;){var u=n[t];e(u,t,n)&&(i[o++]=u)}return i}},7679:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=Array(r);++t<r;)o[t]=e(n[t],t,n);return o}},8694:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=e.length,o=n.length;++t<r;)n[o+t]=e[t];return n}},8451:(n,e,t)=>{t.d(e,{Z:()=>X});var r=t(1667),o=t(6579),i=t(2954),u=t(1899),a=t(7179);const c=function(n,e){return n&&(0,u.Z)(e,(0,a.Z)(e),n)};var s=t(2957);const f=function(n,e){return n&&(0,u.Z)(e,(0,s.Z)(e),n)};var d=t(1050),h=t(7215),v=t(5695);const l=function(n,e){return(0,u.Z)(n,(0,v.Z)(n),e)};var Z=t(8694),g=t(2513),p=t(532);const b=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)(0,Z.Z)(e,(0,v.Z)(n)),n=(0,g.Z)(n);return e}:p.Z;const w=function(n,e){return(0,u.Z)(n,b(n),e)};var m=t(1808),y=t(3327);const _=function(n){return(0,y.Z)(n,s.Z,b)};var E=t(3970),j=Object.prototype.hasOwnProperty;const k=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&j.call(n,"index")&&(t.index=n.index,t.input=n.input),t};var x=t(1884);const N=function(n,e){var t=e?(0,x.Z)(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)};var I=/\w*$/;const C=function(n){var e=new n.constructor(n.source,I.exec(n));return e.lastIndex=n.lastIndex,e};var O=t(7685),L=O.Z?O.Z.prototype:void 0,M=L?L.valueOf:void 0;const A=function(n){return M?Object(M.call(n)):{}};var R=t(2701);const S=function(n,e,t){var r=n.constructor;switch(e){case"[object ArrayBuffer]":return(0,x.Z)(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return N(n,t);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,R.Z)(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return C(n);case"[object Symbol]":return A(n)}};var P=t(3658),T=t(7771),F=t(7008),D=t(8533);const B=function(n){return(0,D.Z)(n)&&"[object Map]"==(0,E.Z)(n)};var G=t(1162),V=t(8351),z=V.Z&&V.Z.isMap;const q=z?(0,G.Z)(z):B;var U=t(7226);const Y=function(n){return(0,D.Z)(n)&&"[object Set]"==(0,E.Z)(n)};var $=V.Z&&V.Z.isSet;const J=$?(0,G.Z)($):Y;var K="[object Arguments]",W="[object Function]",H="[object Object]",Q={};Q[K]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q[H]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q[W]=Q["[object WeakMap]"]=!1;const X=function n(e,t,u,v,Z,g){var p,b=1&t,y=2&t,j=4&t;if(u&&(p=Z?u(e,v,Z,g):u(e)),void 0!==p)return p;if(!(0,U.Z)(e))return e;var x=(0,T.Z)(e);if(x){if(p=k(e),!b)return(0,h.Z)(e,p)}else{var N=(0,E.Z)(e),I=N==W||"[object GeneratorFunction]"==N;if((0,F.Z)(e))return(0,d.Z)(e,b);if(N==H||N==K||I&&!Z){if(p=y||I?{}:(0,P.Z)(e),!b)return y?w(e,f(p,e)):l(e,c(p,e))}else{if(!Q[N])return Z?e:{};p=S(e,N,b)}}g||(g=new r.Z);var C=g.get(e);if(C)return C;g.set(e,p),J(e)?e.forEach((function(r){p.add(n(r,t,u,r,e,g))})):q(e)&&e.forEach((function(r,o){p.set(o,n(r,t,u,o,e,g))}));var O=j?y?_:m.Z:y?s.Z:a.Z,L=x?void 0:O(e);return(0,o.Z)(L||e,(function(r,o){L&&(r=e[o=r]),(0,i.Z)(p,o,n(r,t,u,o,e,g))})),p}},9811:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2693),o=t(585);const i=function(n,e){return function(t,r){if(null==t)return t;if(!(0,o.Z)(t))return n(t,r);for(var i=t.length,u=e?i:-1,a=Object(t);(e?u--:++u<i)&&!1!==r(a[u],u,a););return t}}(r.Z)},1692:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e,t,r){for(var o=n.length,i=t+(r?1:-1);r?i--:++i<o;)if(e(n[i],i,n))return i;return-1}},626:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(8694),o=t(7685),i=t(9169),u=t(7771),a=o.Z?o.Z.isConcatSpreadable:void 0;const c=function(n){return(0,u.Z)(n)||(0,i.Z)(n)||!!(a&&n&&n[a])};const s=function n(e,t,o,i,u){var a=-1,s=e.length;for(o||(o=c),u||(u=[]);++a<s;){var f=e[a];t>0&&o(f)?t>1?n(f,t-1,o,i,u):(0,r.Z)(u,f):i||(u[u.length]=f)}return u}},2693:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(1395),o=t(7179);const i=function(n,e){return n&&(0,r.Z)(n,e,o.Z)}},8033:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2823),o=t(2656);const i=function(n,e){for(var t=0,i=(e=(0,r.Z)(e,n)).length;null!=n&&t<i;)n=n[(0,o.Z)(e[t++])];return t&&t==i?n:void 0}},3327:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(8694),o=t(7771);const i=function(n,e,t){var i=e(n);return(0,o.Z)(n)?i:(0,r.Z)(i,t(n))}},4765:(n,e,t)=>{t.d(e,{Z:()=>$});var r=t(1667),o=t(3001);const i=function(n,e){for(var t=-1,r=null==n?0:n.length;++t<r;)if(e(n[t],t,n))return!0;return!1};var u=t(9548);const a=function(n,e,t,r,a,c){var s=1&t,f=n.length,d=e.length;if(f!=d&&!(s&&d>f))return!1;var h=c.get(n),v=c.get(e);if(h&&v)return h==e&&v==n;var l=-1,Z=!0,g=2&t?new o.Z:void 0;for(c.set(n,e),c.set(e,n);++l<f;){var p=n[l],b=e[l];if(r)var w=s?r(b,p,l,e,n,c):r(p,b,l,n,e,c);if(void 0!==w){if(w)continue;Z=!1;break}if(g){if(!i(e,(function(n,e){if(!(0,u.Z)(g,e)&&(p===n||a(p,n,t,r,c)))return g.push(e)}))){Z=!1;break}}else if(p!==b&&!a(p,b,t,r,c)){Z=!1;break}}return c.delete(n),c.delete(e),Z};var c=t(7685),s=t(4073),f=t(9651);const d=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n,r){t[++e]=[r,n]})),t};var h=t(6545),v=c.Z?c.Z.prototype:void 0,l=v?v.valueOf:void 0;const Z=function(n,e,t,r,o,i,u){switch(t){case"[object DataView]":if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(n.byteLength!=e.byteLength||!i(new s.Z(n),new s.Z(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,f.Z)(+n,+e);case"[object Error]":return n.name==e.name&&n.message==e.message;case"[object RegExp]":case"[object String]":return n==e+"";case"[object Map]":var c=d;case"[object Set]":var v=1&r;if(c||(c=h.Z),n.size!=e.size&&!v)return!1;var Z=u.get(n);if(Z)return Z==e;r|=2,u.set(n,e);var g=a(c(n),c(e),r,o,i,u);return u.delete(n),g;case"[object Symbol]":if(l)return l.call(n)==l.call(e)}return!1};var g=t(1808),p=Object.prototype.hasOwnProperty;const b=function(n,e,t,r,o,i){var u=1&t,a=(0,g.Z)(n),c=a.length;if(c!=(0,g.Z)(e).length&&!u)return!1;for(var s=c;s--;){var f=a[s];if(!(u?f in e:p.call(e,f)))return!1}var d=i.get(n),h=i.get(e);if(d&&h)return d==e&&h==n;var v=!0;i.set(n,e),i.set(e,n);for(var l=u;++s<c;){var Z=n[f=a[s]],b=e[f];if(r)var w=u?r(b,Z,f,e,n,i):r(Z,b,f,n,e,i);if(!(void 0===w?Z===b||o(Z,b,t,r,i):w)){v=!1;break}l||(l="constructor"==f)}if(v&&!l){var m=n.constructor,y=e.constructor;m==y||!("constructor"in n)||!("constructor"in e)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(v=!1)}return i.delete(n),i.delete(e),v};var w=t(3970),m=t(7771),y=t(7008),_=t(8843),E="[object Arguments]",j="[object Array]",k="[object Object]",x=Object.prototype.hasOwnProperty;const N=function(n,e,t,o,i,u){var c=(0,m.Z)(n),s=(0,m.Z)(e),f=c?j:(0,w.Z)(n),d=s?j:(0,w.Z)(e),h=(f=f==E?k:f)==k,v=(d=d==E?k:d)==k,l=f==d;if(l&&(0,y.Z)(n)){if(!(0,y.Z)(e))return!1;c=!0,h=!1}if(l&&!h)return u||(u=new r.Z),c||(0,_.Z)(n)?a(n,e,t,o,i,u):Z(n,e,f,t,o,i,u);if(!(1&t)){var g=h&&x.call(n,"__wrapped__"),p=v&&x.call(e,"__wrapped__");if(g||p){var N=g?n.value():n,I=p?e.value():e;return u||(u=new r.Z),i(N,I,t,o,u)}}return!!l&&(u||(u=new r.Z),b(n,e,t,o,i,u))};var I=t(8533);const C=function n(e,t,r,o,i){return e===t||(null==e||null==t||!(0,I.Z)(e)&&!(0,I.Z)(t)?e!=e&&t!=t:N(e,t,r,o,n,i))};const O=function(n,e,t,o){var i=t.length,u=i,a=!o;if(null==n)return!u;for(n=Object(n);i--;){var c=t[i];if(a&&c[2]?c[1]!==n[c[0]]:!(c[0]in n))return!1}for(;++i<u;){var s=(c=t[i])[0],f=n[s],d=c[1];if(a&&c[2]){if(void 0===f&&!(s in n))return!1}else{var h=new r.Z;if(o)var v=o(f,d,s,n,e,h);if(!(void 0===v?C(d,f,3,o,h):v))return!1}}return!0};var L=t(7226);const M=function(n){return n==n&&!(0,L.Z)(n)};var A=t(7179);const R=function(n){for(var e=(0,A.Z)(n),t=e.length;t--;){var r=e[t],o=n[r];e[t]=[r,o,M(o)]}return e};const S=function(n,e){return function(t){return null!=t&&(t[n]===e&&(void 0!==e||n in Object(t)))}};const P=function(n){var e=R(n);return 1==e.length&&e[0][2]?S(e[0][0],e[0][1]):function(t){return t===n||O(t,n,e)}};var T=t(8033);const F=function(n,e,t){var r=null==n?void 0:(0,T.Z)(n,e);return void 0===r?t:r};var D=t(5487),B=t(9365),G=t(2656);const V=function(n,e){return(0,B.Z)(n)&&M(e)?S((0,G.Z)(n),e):function(t){var r=F(t,n);return void 0===r&&r===e?(0,D.Z)(t,n):C(e,r,3)}};var z=t(9203),q=t(4193);const U=function(n){return function(e){return(0,T.Z)(e,n)}};const Y=function(n){return(0,B.Z)(n)?(0,q.Z)((0,G.Z)(n)):U(n)};const $=function(n){return"function"==typeof n?n:null==n?z.Z:"object"==typeof n?(0,m.Z)(n)?V(n[0],n[1]):P(n):Y(n)}},1018:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(9811),o=t(585);const i=function(n,e){var t=-1,i=(0,o.Z)(n)?Array(n.length):[];return(0,r.Z)(n,(function(n,r,o){i[++t]=e(n,r,o)})),i}},4193:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return function(e){return null==e?void 0:e[n]}}},9548:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){return n.has(e)}},8882:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(9203);const o=function(n){return"function"==typeof n?n:r.Z}},2823:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7771),o=t(9365),i=t(2454);var u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;const c=function(n){var e=(0,i.Z)(n,(function(n){return 500===t.size&&t.clear(),n})),t=e.cache;return e}((function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(u,(function(n,t,r,o){e.push(r?o.replace(a,"$1"):t||n)})),e}));var s=t(751);const f=function(n,e){return(0,r.Z)(n)?n:(0,o.Z)(n,e)?[n]:c((0,s.Z)(n))}},1808:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(3327),o=t(5695),i=t(7179);const u=function(n){return(0,r.Z)(n,i.Z,o.Z)}},5695:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(8774),o=t(532),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols;const a=u?function(n){return null==n?[]:(n=Object(n),(0,r.Z)(u(n),(function(e){return i.call(n,e)})))}:o.Z},5196:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(2823),o=t(9169),i=t(7771),u=t(6009),a=t(1656),c=t(2656);const s=function(n,e,t){for(var s=-1,f=(e=(0,r.Z)(e,n)).length,d=!1;++s<f;){var h=(0,c.Z)(e[s]);if(!(d=null!=n&&t(n,h)))break;n=n[h]}return d||++s!=f?d:!!(f=null==n?0:n.length)&&(0,a.Z)(f)&&(0,u.Z)(h,f)&&((0,i.Z)(n)||(0,o.Z)(n))}},9365:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7771),o=t(2714),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;const a=function(n,e){if((0,r.Z)(n))return!1;var t=typeof n;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=n&&!(0,o.Z)(n))||(u.test(n)||!i.test(n)||null!=e&&n in Object(e))}},6545:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n){t[++e]=n})),t}},2656:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(2714);const o=function(n){if("string"==typeof n||(0,r.Z)(n))return n;var e=n+"";return"0"==e&&1/n==-Infinity?"-0":e}},3688:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(9581),o=t(9651),i=t(439),u=t(2957),a=Object.prototype,c=a.hasOwnProperty;const s=(0,r.Z)((function(n,e){n=Object(n);var t=-1,r=e.length,s=r>2?e[2]:void 0;for(s&&(0,i.Z)(e[0],e[1],s)&&(r=1);++t<r;)for(var f=e[t],d=(0,u.Z)(f),h=-1,v=d.length;++h<v;){var l=d[h],Z=n[l];(void 0===Z||(0,o.Z)(Z,a[l])&&!c.call(n,l))&&(n[l]=f[l])}return n}))},3445:(n,e,t)=>{t.d(e,{Z:()=>c});var r=t(8774),o=t(9811);const i=function(n,e){var t=[];return(0,o.Z)(n,(function(n,r,o){e(n,r,o)&&t.push(n)})),t};var u=t(4765),a=t(7771);const c=function(n,e){return((0,a.Z)(n)?r.Z:i)(n,(0,u.Z)(e,3))}},7961:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(626);const o=function(n){return(null==n?0:n.length)?(0,r.Z)(n,1):[]}},870:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(6579),o=t(9811),i=t(8882),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:o.Z)(n,(0,i.Z)(e))}},7452:(n,e,t)=>{t.d(e,{Z:()=>u});var r=Object.prototype.hasOwnProperty;const o=function(n,e){return null!=n&&r.call(n,e)};var i=t(5196);const u=function(n,e){return null!=n&&(0,i.Z)(n,e,o)}},5487:(n,e,t)=>{t.d(e,{Z:()=>i});const r=function(n,e){return null!=n&&e in Object(n)};var o=t(5196);const i=function(n,e){return null!=n&&(0,o.Z)(n,e,r)}},2714:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(3589),o=t(8533);const i=function(n){return"symbol"==typeof n||(0,o.Z)(n)&&"[object Symbol]"==(0,r.Z)(n)}},9360:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return void 0===n}},7179:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7668),o=t(9473),i=t(585);const u=function(n){return(0,i.Z)(n)?(0,r.Z)(n):(0,o.Z)(n)}},3836:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7679),o=t(4765),i=t(1018),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:i.Z)(n,(0,o.Z)(e,3))}},1666:(n,e,t)=>{t.d(e,{Z:()=>g});var r=t(8033),o=t(2954),i=t(2823),u=t(6009),a=t(7226),c=t(2656);const s=function(n,e,t,r){if(!(0,a.Z)(n))return n;for(var s=-1,f=(e=(0,i.Z)(e,n)).length,d=f-1,h=n;null!=h&&++s<f;){var v=(0,c.Z)(e[s]),l=t;if("__proto__"===v||"constructor"===v||"prototype"===v)return n;if(s!=d){var Z=h[v];void 0===(l=r?r(Z,v,h):void 0)&&(l=(0,a.Z)(Z)?Z:(0,u.Z)(e[s+1])?[]:{})}(0,o.Z)(h,v,l),h=h[v]}return n};const f=function(n,e,t){for(var o=-1,u=e.length,a={};++o<u;){var c=e[o],f=(0,r.Z)(n,c);t(f,c)&&s(a,(0,i.Z)(c,n),f)}return a};var d=t(5487);const h=function(n,e){return f(n,e,(function(e,t){return(0,d.Z)(n,t)}))};var v=t(7961),l=t(1211),Z=t(7227);const g=function(n){return(0,Z.Z)((0,l.Z)(n,void 0,v.Z),n+"")}((function(n,e){return null==n?{}:h(n,e)}))},4379:(n,e,t)=>{t.d(e,{Z:()=>c});var r=Math.ceil,o=Math.max;const i=function(n,e,t,i){for(var u=-1,a=o(r((e-n)/(t||1)),0),c=Array(a);a--;)c[i?a:++u]=n,n+=t;return c};var u=t(439),a=t(4099);const c=function(n){return function(e,t,r){return r&&"number"!=typeof r&&(0,u.Z)(e,t,r)&&(t=r=void 0),e=(0,a.Z)(e),void 0===t?(t=e,e=0):t=(0,a.Z)(t),r=void 0===r?e<t?1:-1:(0,a.Z)(r),i(e,t,r,n)}}()},7570:(n,e,t)=>{t.d(e,{Z:()=>c});const r=function(n,e,t,r){var o=-1,i=null==n?0:n.length;for(r&&i&&(t=n[++o]);++o<i;)t=e(t,n[o],o,n);return t};var o=t(9811),i=t(4765);const u=function(n,e,t,r,o){return o(n,(function(n,o,i){t=r?(r=!1,n):e(t,n,o,i)})),t};var a=t(7771);const c=function(n,e,t){var c=(0,a.Z)(n)?r:u,s=arguments.length<3;return c(n,(0,i.Z)(e,4),t,s,o.Z)}},532:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(){return[]}},4099:(n,e,t)=>{t.d(e,{Z:()=>Z});var r=/\s/;const o=function(n){for(var e=n.length;e--&&r.test(n.charAt(e)););return e};var i=/^\s+/;const u=function(n){return n?n.slice(0,o(n)+1).replace(i,""):n};var a=t(7226),c=t(2714),s=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const v=function(n){if("number"==typeof n)return n;if((0,c.Z)(n))return NaN;if((0,a.Z)(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=(0,a.Z)(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=u(n);var t=f.test(n);return t||d.test(n)?h(n.slice(2),t?2:8):s.test(n)?NaN:+n};var l=1/0;const Z=function(n){return n?(n=v(n))===l||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}},751:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7685),o=t(7679),i=t(7771),u=t(2714),a=r.Z?r.Z.prototype:void 0,c=a?a.toString:void 0;const s=function n(e){if("string"==typeof e)return e;if((0,i.Z)(e))return(0,o.Z)(e,n)+"";if((0,u.Z)(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t};const f=function(n){return null==n?"":s(n)}},6749:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(751),o=0;const i=function(n){var e=++o;return(0,r.Z)(n)+e}},4148:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7679);const o=function(n,e){return(0,r.Z)(e,(function(e){return n[e]}))};var i=t(7179);const u=function(n){return null==n?[]:o(n,(0,i.Z)(n))}}}]); \ No newline at end of file diff --git a/assets/js/1644.e1df3952.js b/assets/js/1644.e1df3952.js new file mode 100644 index 0000000..c1cf965 --- /dev/null +++ b/assets/js/1644.e1df3952.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1644],{41644:(n,e,t)=>{t.d(e,{bK:()=>Me});var r=t(70870),o=t(66749),i=t(17452),u=t(62002),a=t(27961),c=t(43836),s=t(74379),f=t(45625);class d{constructor(){var n={};n._next=n._prev=n,this._sentinel=n}dequeue(){var n=this._sentinel,e=n._prev;if(e!==n)return h(e),e}enqueue(n){var e=this._sentinel;n._prev&&n._next&&h(n),n._next=e._next,e._next._prev=n,e._next=n,n._prev=e}toString(){for(var n=[],e=this._sentinel,t=e._prev;t!==e;)n.push(JSON.stringify(t,v)),t=t._prev;return"["+n.join(", ")+"]"}}function h(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function v(n,e){if("_next"!==n&&"_prev"!==n)return e}var l=u.Z(1);function Z(n,e){if(n.nodeCount()<=1)return[];var t=function(n,e){var t=new f.k,o=0,i=0;r.Z(n.nodes(),(function(n){t.setNode(n,{v:n,in:0,out:0})})),r.Z(n.edges(),(function(n){var r=t.edge(n.v,n.w)||0,u=e(n),a=r+u;t.setEdge(n.v,n.w,a),i=Math.max(i,t.node(n.v).out+=u),o=Math.max(o,t.node(n.w).in+=u)}));var u=s.Z(i+o+3).map((function(){return new d})),a=o+1;return r.Z(t.nodes(),(function(n){p(u,a,t.node(n))})),{graph:t,buckets:u,zeroIdx:a}}(n,e||l),o=function(n,e,t){var r,o=[],i=e[e.length-1],u=e[0];for(;n.nodeCount();){for(;r=u.dequeue();)g(n,e,t,r);for(;r=i.dequeue();)g(n,e,t,r);if(n.nodeCount())for(var a=e.length-2;a>0;--a)if(r=e[a].dequeue()){o=o.concat(g(n,e,t,r,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return a.Z(c.Z(o,(function(e){return n.outEdges(e.v,e.w)})))}function g(n,e,t,o,i){var u=i?[]:void 0;return r.Z(n.inEdges(o.v),(function(r){var o=n.edge(r),a=n.node(r.v);i&&u.push({v:r.v,w:r.w}),a.out-=o,p(e,t,a)})),r.Z(n.outEdges(o.v),(function(r){var o=n.edge(r),i=r.w,u=n.node(i);u.in-=o,p(e,t,u)})),n.removeNode(o.v),u}function p(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}function b(n){var e="greedy"===n.graph().acyclicer?Z(n,function(n){return function(e){return n.edge(e).weight}}(n)):function(n){var e=[],t={},o={};function u(a){i.Z(o,a)||(o[a]=!0,t[a]=!0,r.Z(n.outEdges(a),(function(n){i.Z(t,n.w)?e.push(n):u(n.w)})),delete t[a])}return r.Z(n.nodes(),u),e}(n);r.Z(e,(function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,o.Z("rev"))}))}var w=t(59236),m=t(61666),y=t(3688),_=t(72714);const E=function(n,e,t){for(var r=-1,o=n.length;++r<o;){var i=n[r],u=e(i);if(null!=u&&(void 0===a?u==u&&!(0,_.Z)(u):t(u,a)))var a=u,c=i}return c};const j=function(n,e){return n>e};var k=t(69203);const x=function(n){return n&&n.length?E(n,k.Z,j):void 0};const N=function(n){var e=null==n?0:n.length;return e?n[e-1]:void 0};var I=t(74752),C=t(2693),O=t(74765);const L=function(n,e){var t={};return e=(0,O.Z)(e,3),(0,C.Z)(n,(function(n,r,o){(0,I.Z)(t,r,e(n,r,o))})),t};var M=t(49360);const A=function(n,e){return n<e};const R=function(n){return n&&n.length?E(n,k.Z,A):void 0};var S=t(66092);const P=function(){return S.Z.Date.now()};function T(n,e,t,r){var i;do{i=o.Z(r)}while(n.hasNode(i));return t.dummy=e,n.setNode(i,t),i}function F(n){var e=new f.k({multigraph:n.isMultigraph()}).setGraph(n.graph());return r.Z(n.nodes(),(function(t){n.children(t).length||e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){e.setEdge(t,n.edge(t))})),e}function D(n,e){var t,r,o=n.x,i=n.y,u=e.x-o,a=e.y-i,c=n.width/2,s=n.height/2;if(!u&&!a)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(a)*c>Math.abs(u)*s?(a<0&&(s=-s),t=s*u/a,r=s):(u<0&&(c=-c),t=c,r=c*a/u),{x:o+t,y:i+r}}function B(n){var e=c.Z(s.Z(V(n)+1),(function(){return[]}));return r.Z(n.nodes(),(function(t){var r=n.node(t),o=r.rank;M.Z(o)||(e[o][r.order]=t)})),e}function G(n,e,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),T(n,"border",o,e)}function V(n){return x(c.Z(n.nodes(),(function(e){var t=n.node(e).rank;if(!M.Z(t))return t})))}function z(n,e){var t=P();try{return e()}finally{console.log(n+" time: "+(P()-t)+"ms")}}function q(n,e){return e()}function U(n,e,t,r,o,i){var u={width:0,height:0,rank:i,borderType:e},a=o[e][i-1],c=T(n,"border",u,t);o[e][i]=c,n.setParent(c,r),a&&n.setEdge(a,c,{weight:1})}function Y(n){var e=n.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(n){r.Z(n.nodes(),(function(e){K(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,K),i.Z(t,"y")&&K(t)}))}(n),"lr"!==e&&"rl"!==e||(!function(n){r.Z(n.nodes(),(function(e){W(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,W),i.Z(t,"x")&&W(t)}))}(n),$(n))}function $(n){r.Z(n.nodes(),(function(e){J(n.node(e))})),r.Z(n.edges(),(function(e){J(n.edge(e))}))}function J(n){var e=n.width;n.width=n.height,n.height=e}function K(n){n.y=-n.y}function W(n){var e=n.x;n.x=n.y,n.y=e}function H(n){n.graph().dummyChains=[],r.Z(n.edges(),(function(e){!function(n,e){var t,r,o,i=e.v,u=n.node(i).rank,a=e.w,c=n.node(a).rank,s=e.name,f=n.edge(e),d=f.labelRank;if(c===u+1)return;for(n.removeEdge(e),o=0,++u;u<c;++o,++u)f.points=[],t=T(n,"edge",r={width:0,height:0,edgeLabel:f,edgeObj:e,rank:u},"_d"),u===d&&(r.width=f.width,r.height=f.height,r.dummy="edge-label",r.labelpos=f.labelpos),n.setEdge(i,t,{weight:f.weight},s),0===o&&n.graph().dummyChains.push(t),i=t;n.setEdge(i,a,{weight:f.weight},s)}(n,e)}))}const Q=function(n,e){return n&&n.length?E(n,(0,O.Z)(e,2),A):void 0};function X(n){var e={};r.Z(n.sources(),(function t(r){var o=n.node(r);if(i.Z(e,r))return o.rank;e[r]=!0;var u=R(c.Z(n.outEdges(r),(function(e){return t(e.w)-n.edge(e).minlen})));return u!==Number.POSITIVE_INFINITY&&null!=u||(u=0),o.rank=u}))}function nn(n,e){return n.node(e.w).rank-n.node(e.v).rank-n.edge(e).minlen}function en(n){var e,t,r=new f.k({directed:!1}),o=n.nodes()[0],i=n.nodeCount();for(r.setNode(o,{});tn(r,n)<i;)e=rn(r,n),t=r.hasNode(e.v)?nn(n,e):-nn(n,e),on(r,n,t);return r}function tn(n,e){return r.Z(n.nodes(),(function t(o){r.Z(e.nodeEdges(o),(function(r){var i=r.v,u=o===i?r.w:i;n.hasNode(u)||nn(e,r)||(n.setNode(u,{}),n.setEdge(o,u,{}),t(u))}))})),n.nodeCount()}function rn(n,e){return Q(e.edges(),(function(t){if(n.hasNode(t.v)!==n.hasNode(t.w))return nn(e,t)}))}function on(n,e,t){r.Z(n.nodes(),(function(n){e.node(n).rank+=t}))}var un=t(50585),an=t(17179);const cn=function(n){return function(e,t,r){var o=Object(e);if(!(0,un.Z)(e)){var i=(0,O.Z)(t,3);e=(0,an.Z)(e),t=function(n){return i(o[n],n,o)}}var u=n(e,t,r);return u>-1?o[i?e[u]:u]:void 0}};var sn=t(21692),fn=t(94099);const dn=function(n){var e=(0,fn.Z)(n),t=e%1;return e==e?t?e-t:e:0};var hn=Math.max;const vn=cn((function(n,e,t){var r=null==n?0:n.length;if(!r)return-1;var o=null==t?0:dn(t);return o<0&&(o=hn(r+o,0)),(0,sn.Z)(n,(0,O.Z)(e,3),o)}));var ln=t(13445);u.Z(1);u.Z(1);t(39473),t(83970),t(93589);var Zn=t(27771);t(18533);(0,t(54193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var gn="\\ud800-\\udfff",pn="["+gn+"]",bn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wn="\\ud83c[\\udffb-\\udfff]",mn="[^"+gn+"]",yn="(?:\\ud83c[\\udde6-\\uddff]){2}",_n="[\\ud800-\\udbff][\\udc00-\\udfff]",En="(?:"+bn+"|"+wn+")"+"?",jn="[\\ufe0e\\ufe0f]?",kn=jn+En+("(?:\\u200d(?:"+[mn,yn,_n].join("|")+")"+jn+En+")*"),xn="(?:"+[mn+bn+"?",bn,yn,_n,pn].join("|")+")";RegExp(wn+"(?="+wn+")|"+xn+kn,"g");function Nn(){}function In(n,e,t){Zn.Z(e)||(e=[e]);var o=(n.isDirected()?n.successors:n.neighbors).bind(n),i=[],u={};return r.Z(e,(function(e){if(!n.hasNode(e))throw new Error("Graph does not have node: "+e);Cn(n,e,"post"===t,u,o,i)})),i}function Cn(n,e,t,o,u,a){i.Z(o,e)||(o[e]=!0,t||a.push(e),r.Z(u(e),(function(e){Cn(n,e,t,o,u,a)})),t&&a.push(e))}Nn.prototype=new Error;t(52544);function On(n){n=function(n){var e=(new f.k).setGraph(n.graph());return r.Z(n.nodes(),(function(t){e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){var r=e.edge(t.v,t.w)||{weight:0,minlen:1},o=n.edge(t);e.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),e}(n),X(n);var e,t=en(n);for(An(t),Ln(t,n);e=Sn(t);)Tn(t,n,e,Pn(t,n,e))}function Ln(n,e){var t=function(n,e){return In(n,e,"post")}(n,n.nodes());t=t.slice(0,t.length-1),r.Z(t,(function(t){!function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=Mn(n,e,t)}(n,e,t)}))}function Mn(n,e,t){var o=n.node(t).parent,i=!0,u=e.edge(t,o),a=0;return u||(i=!1,u=e.edge(o,t)),a=u.weight,r.Z(e.nodeEdges(t),(function(r){var u,c,s=r.v===t,f=s?r.w:r.v;if(f!==o){var d=s===i,h=e.edge(r).weight;if(a+=d?h:-h,u=t,c=f,n.hasEdge(u,c)){var v=n.edge(t,f).cutvalue;a+=d?-v:v}}})),a}function An(n,e){arguments.length<2&&(e=n.nodes()[0]),Rn(n,{},1,e)}function Rn(n,e,t,o,u){var a=t,c=n.node(o);return e[o]=!0,r.Z(n.neighbors(o),(function(r){i.Z(e,r)||(t=Rn(n,e,t,r,o))})),c.low=a,c.lim=t++,u?c.parent=u:delete c.parent,t}function Sn(n){return vn(n.edges(),(function(e){return n.edge(e).cutvalue<0}))}function Pn(n,e,t){var r=t.v,o=t.w;e.hasEdge(r,o)||(r=t.w,o=t.v);var i=n.node(r),u=n.node(o),a=i,c=!1;i.lim>u.lim&&(a=u,c=!0);var s=ln.Z(e.edges(),(function(e){return c===Fn(n,n.node(e.v),a)&&c!==Fn(n,n.node(e.w),a)}));return Q(s,(function(n){return nn(e,n)}))}function Tn(n,e,t,o){var i=t.v,u=t.w;n.removeEdge(i,u),n.setEdge(o.v,o.w,{}),An(n),Ln(n,e),function(n,e){var t=vn(n.nodes(),(function(n){return!e.node(n).parent})),o=function(n,e){return In(n,e,"pre")}(n,t);o=o.slice(1),r.Z(o,(function(t){var r=n.node(t).parent,o=e.edge(t,r),i=!1;o||(o=e.edge(r,t),i=!0),e.node(t).rank=e.node(r).rank+(i?o.minlen:-o.minlen)}))}(n,e)}function Fn(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Dn(n){switch(n.graph().ranker){case"network-simplex":default:Gn(n);break;case"tight-tree":!function(n){X(n),en(n)}(n);break;case"longest-path":Bn(n)}}On.initLowLimValues=An,On.initCutValues=Ln,On.calcCutValue=Mn,On.leaveEdge=Sn,On.enterEdge=Pn,On.exchangeEdges=Tn;var Bn=X;function Gn(n){On(n)}var Vn=t(34148),zn=t(92344);function qn(n){var e=T(n,"root",{},"_root"),t=function(n){var e={};function t(o,i){var u=n.children(o);u&&u.length&&r.Z(u,(function(n){t(n,i+1)})),e[o]=i}return r.Z(n.children(),(function(n){t(n,1)})),e}(n),o=x(Vn.Z(t))-1,i=2*o+1;n.graph().nestingRoot=e,r.Z(n.edges(),(function(e){n.edge(e).minlen*=i}));var u=function(n){return zn.Z(n.edges(),(function(e,t){return e+n.edge(t).weight}),0)}(n)+1;r.Z(n.children(),(function(r){Un(n,e,i,u,o,t,r)})),n.graph().nodeRankFactor=i}function Un(n,e,t,o,i,u,a){var c=n.children(a);if(c.length){var s=G(n,"_bt"),f=G(n,"_bb"),d=n.node(a);n.setParent(s,a),d.borderTop=s,n.setParent(f,a),d.borderBottom=f,r.Z(c,(function(r){Un(n,e,t,o,i,u,r);var c=n.node(r),d=c.borderTop?c.borderTop:r,h=c.borderBottom?c.borderBottom:r,v=c.borderTop?o:2*o,l=d!==h?1:i-u[a]+1;n.setEdge(s,d,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(h,f,{weight:v,minlen:l,nestingEdge:!0})})),n.parent(a)||n.setEdge(e,s,{weight:0,minlen:i+u[a]})}else a!==e&&n.setEdge(e,a,{weight:0,minlen:t})}var Yn=t(48451);const $n=function(n){return(0,Yn.Z)(n,5)};function Jn(n,e,t){var u=function(n){var e;for(;n.hasNode(e=o.Z("_root")););return e}(n),a=new f.k({compound:!0}).setGraph({root:u}).setDefaultNodeLabel((function(e){return n.node(e)}));return r.Z(n.nodes(),(function(o){var c=n.node(o),s=n.parent(o);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(a.setNode(o),a.setParent(o,s||u),r.Z(n[t](o),(function(e){var t=e.v===o?e.w:e.v,r=a.edge(t,o),i=M.Z(r)?0:r.weight;a.setEdge(t,o,{weight:n.edge(e).weight+i})})),i.Z(c,"minRank")&&a.setNode(o,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),a}var Kn=t(72954);const Wn=function(n,e,t){for(var r=-1,o=n.length,i=e.length,u={};++r<o;){var a=r<i?e[r]:void 0;t(u,n[r],a)}return u};const Hn=function(n,e){return Wn(n||[],e||[],Kn.Z)};var Qn=t(10626),Xn=t(74073),ne=t(13317),ee=t(21018);const te=function(n,e){var t=n.length;for(n.sort(e);t--;)n[t]=n[t].value;return n};var re=t(21162);const oe=function(n,e){if(n!==e){var t=void 0!==n,r=null===n,o=n==n,i=(0,_.Z)(n),u=void 0!==e,a=null===e,c=e==e,s=(0,_.Z)(e);if(!a&&!s&&!i&&n>e||i&&u&&c&&!a&&!s||r&&u&&c||!t&&c||!o)return 1;if(!r&&!i&&!s&&n<e||s&&t&&o&&!r&&!i||a&&t&&o||!u&&o||!c)return-1}return 0};const ie=function(n,e,t){for(var r=-1,o=n.criteria,i=e.criteria,u=o.length,a=t.length;++r<u;){var c=oe(o[r],i[r]);if(c)return r>=a?c:c*("desc"==t[r]?-1:1)}return n.index-e.index};const ue=function(n,e,t){e=e.length?(0,Xn.Z)(e,(function(n){return(0,Zn.Z)(n)?function(e){return(0,ne.Z)(e,1===n.length?n[0]:n)}:n})):[k.Z];var r=-1;e=(0,Xn.Z)(e,(0,re.Z)(O.Z));var o=(0,ee.Z)(n,(function(n,t,o){return{criteria:(0,Xn.Z)(e,(function(e){return e(n)})),index:++r,value:n}}));return te(o,(function(n,e){return ie(n,e,t)}))};var ae=t(69581),ce=t(50439);const se=(0,ae.Z)((function(n,e){if(null==n)return[];var t=e.length;return t>1&&(0,ce.Z)(n,e[0],e[1])?e=[]:t>2&&(0,ce.Z)(e[0],e[1],e[2])&&(e=[e[0]]),ue(n,(0,Qn.Z)(e,1),[])}));function fe(n,e){for(var t=0,r=1;r<e.length;++r)t+=de(n,e[r-1],e[r]);return t}function de(n,e,t){for(var o=Hn(t,c.Z(t,(function(n,e){return e}))),i=a.Z(c.Z(e,(function(e){return se(c.Z(n.outEdges(e),(function(e){return{pos:o[e.w],weight:n.edge(e).weight}})),"pos")}))),u=1;u<t.length;)u<<=1;var s=2*u-1;u-=1;var f=c.Z(new Array(s),(function(){return 0})),d=0;return r.Z(i.forEach((function(n){var e=n.pos+u;f[e]+=n.weight;for(var t=0;e>0;)e%2&&(t+=f[e+1]),f[e=e-1>>1]+=n.weight;d+=n.weight*t}))),d}function he(n,e){var t={};return r.Z(n,(function(n,e){var r=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};M.Z(n.barycenter)||(r.barycenter=n.barycenter,r.weight=n.weight)})),r.Z(e.edges(),(function(n){var e=t[n.v],r=t[n.w];M.Z(e)||M.Z(r)||(r.indegree++,e.out.push(t[n.w]))})),function(n){var e=[];function t(n){return function(e){e.merged||(M.Z(e.barycenter)||M.Z(n.barycenter)||e.barycenter>=n.barycenter)&&function(n,e){var t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var i=n.pop();e.push(i),r.Z(i.in.reverse(),t(i)),r.Z(i.out,o(i))}return c.Z(ln.Z(e,(function(n){return!n.merged})),(function(n){return m.Z(n,["vs","i","barycenter","weight"])}))}(ln.Z(t,(function(n){return!n.indegree})))}function ve(n,e){var t,o=function(n,e){var t={lhs:[],rhs:[]};return r.Z(n,(function(n){e(n)?t.lhs.push(n):t.rhs.push(n)})),t}(n,(function(n){return i.Z(n,"barycenter")})),u=o.lhs,c=se(o.rhs,(function(n){return-n.i})),s=[],f=0,d=0,h=0;u.sort((t=!!e,function(n,e){return n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:t?e.i-n.i:n.i-e.i})),h=le(s,c,h),r.Z(u,(function(n){h+=n.vs.length,s.push(n.vs),f+=n.barycenter*n.weight,d+=n.weight,h=le(s,c,h)}));var v={vs:a.Z(s)};return d&&(v.barycenter=f/d,v.weight=d),v}function le(n,e,t){for(var r;e.length&&(r=N(e)).i<=t;)e.pop(),n.push(r.vs),t++;return t}function Ze(n,e,t,o){var u=n.children(e),s=n.node(e),f=s?s.borderLeft:void 0,d=s?s.borderRight:void 0,h={};f&&(u=ln.Z(u,(function(n){return n!==f&&n!==d})));var v=function(n,e){return c.Z(e,(function(e){var t=n.inEdges(e);if(t.length){var r=zn.Z(t,(function(e,t){var r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}(n,u);r.Z(v,(function(e){if(n.children(e.v).length){var r=Ze(n,e.v,t,o);h[e.v]=r,i.Z(r,"barycenter")&&(u=e,a=r,M.Z(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var l=he(v,t);!function(n,e){r.Z(n,(function(n){n.vs=a.Z(n.vs.map((function(n){return e[n]?e[n].vs:n})))}))}(l,h);var Z=ve(l,o);if(f&&(Z.vs=a.Z([f,Z.vs,d]),n.predecessors(f).length)){var g=n.node(n.predecessors(f)[0]),p=n.node(n.predecessors(d)[0]);i.Z(Z,"barycenter")||(Z.barycenter=0,Z.weight=0),Z.barycenter=(Z.barycenter*Z.weight+g.order+p.order)/(Z.weight+2),Z.weight+=2}return Z}function ge(n){var e=V(n),t=pe(n,s.Z(1,e+1),"inEdges"),o=pe(n,s.Z(e-1,-1,-1),"outEdges"),u=function(n){var e={},t=ln.Z(n.nodes(),(function(e){return!n.children(e).length})),o=x(c.Z(t,(function(e){return n.node(e).rank}))),u=c.Z(s.Z(o+1),(function(){return[]})),a=se(t,(function(e){return n.node(e).rank}));return r.Z(a,(function t(o){if(!i.Z(e,o)){e[o]=!0;var a=n.node(o);u[a.rank].push(o),r.Z(n.successors(o),t)}})),u}(n);we(n,u);for(var a,f=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){be(d%2?t:o,d%4>=2);var v=fe(n,u=B(n));v<f&&(h=0,a=$n(u),f=v)}we(n,a)}function pe(n,e,t){return c.Z(e,(function(e){return Jn(n,e,t)}))}function be(n,e){var t=new f.k;r.Z(n,(function(n){var o=n.graph().root,i=Ze(n,o,t,e);r.Z(i.vs,(function(e,t){n.node(e).order=t})),function(n,e,t){var o,i={};r.Z(t,(function(t){for(var r,u,a=n.parent(t);a;){if((r=n.parent(a))?(u=i[r],i[r]=a):(u=o,o=a),u&&u!==a)return void e.setEdge(u,a);a=r}}))}(n,t,i.vs)}))}function we(n,e){r.Z(e,(function(e){r.Z(e,(function(e,t){n.node(e).order=t}))}))}function me(n){var e=function(n){var e={},t=0;function o(i){var u=t;r.Z(n.children(i),o),e[i]={low:u,lim:t++}}return r.Z(n.children(),o),e}(n);r.Z(n.graph().dummyChains,(function(t){for(var r=n.node(t),o=r.edgeObj,i=function(n,e,t,r){var o,i,u=[],a=[],c=Math.min(e[t].low,e[r].low),s=Math.max(e[t].lim,e[r].lim);o=t;do{o=n.parent(o),u.push(o)}while(o&&(e[o].low>c||s>e[o].lim));i=o,o=r;for(;(o=n.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,e,o.v,o.w),u=i.path,a=i.lca,c=0,s=u[c],f=!0;t!==o.w;){if(r=n.node(t),f){for(;(s=u[c])!==a&&n.node(s).maxRank<r.rank;)c++;s===a&&(f=!1)}if(!f){for(;c<u.length-1&&n.node(s=u[c+1]).minRank<=r.rank;)c++;s=u[c]}n.setParent(t,s),t=n.successors(t)[0]}}))}var ye=t(68882);const _e=function(n,e){return n&&(0,C.Z)(n,(0,ye.Z)(e))};var Ee=t(61395),je=t(32957);const ke=function(n,e){return null==n?n:(0,Ee.Z)(n,(0,ye.Z)(e),je.Z)};function xe(n,e){var t={};return zn.Z(e,(function(e,o){var i=0,u=0,a=e.length,c=N(o);return r.Z(o,(function(e,s){var f=function(n,e){if(n.node(e).dummy)return vn(n.predecessors(e),(function(e){return n.node(e).dummy}))}(n,e),d=f?n.node(f).order:a;(f||e===c)&&(r.Z(o.slice(u,s+1),(function(e){r.Z(n.predecessors(e),(function(r){var o=n.node(r),u=o.order;!(u<i||d<u)||o.dummy&&n.node(e).dummy||Ne(t,r,e)}))})),u=s+1,i=d)})),o})),t}function Ne(n,e,t){if(e>t){var r=e;e=t,t=r}var o=n[e];o||(n[e]=o={}),o[t]=!0}function Ie(n,e,t){if(e>t){var r=e;e=t,t=r}return i.Z(n[e],t)}function Ce(n,e,t,o,u){var a={},c=function(n,e,t,o){var u=new f.k,a=n.graph(),c=function(n,e,t){return function(r,o,u){var a,c=r.node(o),s=r.node(u),f=0;if(f+=c.width/2,i.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=-c.width/2;break;case"r":a=c.width/2}if(a&&(f+=t?a:-a),a=0,f+=(c.dummy?e:n)/2,f+=(s.dummy?e:n)/2,f+=s.width/2,i.Z(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=s.width/2;break;case"r":a=-s.width/2}return a&&(f+=t?a:-a),a=0,f}}(a.nodesep,a.edgesep,o);return r.Z(e,(function(e){var o;r.Z(e,(function(e){var r=t[e];if(u.setNode(r),o){var i=t[o],a=u.edge(i,r);u.setEdge(i,r,Math.max(c(n,e,o),a||0))}o=e}))})),u}(n,e,t,u),s=u?"borderLeft":"borderRight";function d(n,e){for(var t=c.nodes(),r=t.pop(),o={};r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d((function(n){a[n]=c.inEdges(n).reduce((function(n,e){return Math.max(n,a[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var t=c.outEdges(e).reduce((function(n,e){return Math.min(n,a[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),r=n.node(e);t!==Number.POSITIVE_INFINITY&&r.borderType!==s&&(a[e]=Math.max(a[e],t))}),c.successors.bind(c)),r.Z(o,(function(n){a[n]=a[t[n]]})),a}function Oe(n){var e,t=B(n),o=w.Z(xe(n,t),function(n,e){var t={};function o(e,o,i,u,a){var c;r.Z(s.Z(o,i),(function(o){c=e[o],n.node(c).dummy&&r.Z(n.predecessors(c),(function(e){var r=n.node(e);r.dummy&&(r.order<u||r.order>a)&&Ne(t,e,c)}))}))}return zn.Z(e,(function(e,t){var i,u=-1,a=0;return r.Z(t,(function(r,c){if("border"===n.node(r).dummy){var s=n.predecessors(r);s.length&&(i=n.node(s[0]).order,o(t,a,c,u,i),a=c,u=i)}o(t,a,t.length,i,e.length)})),t})),t}(n,t)),i={};r.Z(["u","d"],(function(u){e="u"===u?t:Vn.Z(t).reverse(),r.Z(["l","r"],(function(t){"r"===t&&(e=c.Z(e,(function(n){return Vn.Z(n).reverse()})));var a=("u"===u?n.predecessors:n.successors).bind(n),s=function(n,e,t,o){var i={},u={},a={};return r.Z(e,(function(n){r.Z(n,(function(n,e){i[n]=n,u[n]=n,a[n]=e}))})),r.Z(e,(function(n){var e=-1;r.Z(n,(function(n){var r=o(n);if(r.length){r=se(r,(function(n){return a[n]}));for(var c=(r.length-1)/2,s=Math.floor(c),f=Math.ceil(c);s<=f;++s){var d=r[s];u[n]===n&&e<a[d]&&!Ie(t,n,d)&&(u[d]=n,u[n]=i[n]=i[d],e=a[d])}}}))})),{root:i,align:u}}(0,e,o,a),f=Ce(n,e,s.root,s.align,"r"===t);"r"===t&&(f=L(f,(function(n){return-n}))),i[u+t]=f}))}));var u=function(n,e){return Q(Vn.Z(e),(function(e){var t=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY;return ke(e,(function(e,o){var i=function(n,e){return n.node(e).width}(n,o)/2;t=Math.max(e+i,t),r=Math.min(e-i,r)})),t-r}))}(n,i);return function(n,e){var t=Vn.Z(e),o=R(t),i=x(t);r.Z(["u","d"],(function(t){r.Z(["l","r"],(function(r){var u,a=t+r,c=n[a];if(c!==e){var s=Vn.Z(c);(u="l"===r?o-R(s):i-x(s))&&(n[a]=L(c,(function(n){return n+u})))}}))}))}(i,u),function(n,e){return L(n.ul,(function(t,r){if(e)return n[e.toLowerCase()][r];var o=se(c.Z(n,r));return(o[1]+o[2])/2}))}(i,n.graph().align)}function Le(n){(function(n){var e=B(n),t=n.graph().ranksep,o=0;r.Z(e,(function(e){var i=x(c.Z(e,(function(e){return n.node(e).height})));r.Z(e,(function(e){n.node(e).y=o+i/2})),o+=i+t}))})(n=F(n)),_e(Oe(n),(function(e,t){n.node(t).x=e}))}function Me(n,e){var t=e&&e.debugTiming?z:q;t("layout",(function(){var e=t(" buildLayoutGraph",(function(){return function(n){var e=new f.k({multigraph:!0,compound:!0}),t=Ve(n.graph());return e.setGraph(w.Z({},Re,Ge(t,Ae),m.Z(t,Se))),r.Z(n.nodes(),(function(t){var r=Ve(n.node(t));e.setNode(t,y.Z(Ge(r,Pe),Te)),e.setParent(t,n.parent(t))})),r.Z(n.edges(),(function(t){var r=Ve(n.edge(t));e.setEdge(t,w.Z({},De,Ge(r,Fe),m.Z(r,Be)))})),e}(n)}));t(" runLayout",(function(){!function(n,e){e(" makeSpaceForEdgeLabels",(function(){!function(n){var e=n.graph();e.ranksep/=2,r.Z(n.edges(),(function(t){var r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(n)})),e(" removeSelfEdges",(function(){!function(n){r.Z(n.edges(),(function(e){if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}}))}(n)})),e(" acyclic",(function(){b(n)})),e(" nestingGraph.run",(function(){qn(n)})),e(" rank",(function(){Dn(F(n))})),e(" injectEdgeLabelProxies",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(t.width&&t.height){var r=n.node(e.v),o={rank:(n.node(e.w).rank-r.rank)/2+r.rank,e:e};T(n,"edge-proxy",o,"_ep")}}))}(n)})),e(" removeEmptyRanks",(function(){!function(n){var e=R(c.Z(n.nodes(),(function(e){return n.node(e).rank}))),t=[];r.Z(n.nodes(),(function(r){var o=n.node(r).rank-e;t[o]||(t[o]=[]),t[o].push(r)}));var o=0,i=n.graph().nodeRankFactor;r.Z(t,(function(e,t){M.Z(e)&&t%i!=0?--o:o&&r.Z(e,(function(e){n.node(e).rank+=o}))}))}(n)})),e(" nestingGraph.cleanup",(function(){!function(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,r.Z(n.edges(),(function(e){n.edge(e).nestingEdge&&n.removeEdge(e)}))}(n)})),e(" normalizeRanks",(function(){!function(n){var e=R(c.Z(n.nodes(),(function(e){return n.node(e).rank})));r.Z(n.nodes(),(function(t){var r=n.node(t);i.Z(r,"rank")&&(r.rank-=e)}))}(n)})),e(" assignRankMinMax",(function(){!function(n){var e=0;r.Z(n.nodes(),(function(t){var r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=x(e,r.maxRank))})),n.graph().maxRank=e}(n)})),e(" removeEdgeLabelProxies",(function(){!function(n){r.Z(n.nodes(),(function(e){var t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))}))}(n)})),e(" normalize.run",(function(){H(n)})),e(" parentDummyChains",(function(){me(n)})),e(" addBorderSegments",(function(){!function(n){r.Z(n.children(),(function e(t){var o=n.children(t),u=n.node(t);if(o.length&&r.Z(o,e),i.Z(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(var a=u.minRank,c=u.maxRank+1;a<c;++a)U(n,"borderLeft","_bl",t,u,a),U(n,"borderRight","_br",t,u,a)}}))}(n)})),e(" order",(function(){ge(n)})),e(" insertSelfEdges",(function(){!function(n){var e=B(n);r.Z(e,(function(e){var t=0;r.Z(e,(function(e,o){var i=n.node(e);i.order=o+t,r.Z(i.selfEdges,(function(e){T(n,"selfedge",{width:e.label.width,height:e.label.height,rank:i.rank,order:o+ ++t,e:e.e,label:e.label},"_se")})),delete i.selfEdges}))}))}(n)})),e(" adjustCoordinateSystem",(function(){!function(n){var e=n.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||$(n)}(n)})),e(" position",(function(){Le(n)})),e(" positionSelfEdges",(function(){!function(n){r.Z(n.nodes(),(function(e){var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),o=r.x+r.width/2,i=r.y,u=t.x-o,a=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],t.label.x=t.x,t.label.y=t.y}}))}(n)})),e(" removeBorderNodes",(function(){!function(n){r.Z(n.nodes(),(function(e){if(n.children(e).length){var t=n.node(e),r=n.node(t.borderTop),o=n.node(t.borderBottom),i=n.node(N(t.borderLeft)),u=n.node(N(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}})),r.Z(n.nodes(),(function(e){"border"===n.node(e).dummy&&n.removeNode(e)}))}(n)})),e(" normalize.undo",(function(){!function(n){r.Z(n.graph().dummyChains,(function(e){var t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)}))}(n)})),e(" fixupEdgeLabelCoords",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(i.Z(t,"x"))switch("l"!==t.labelpos&&"r"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}}))}(n)})),e(" undoCoordinateSystem",(function(){Y(n)})),e(" translateGraph",(function(){!function(n){var e=Number.POSITIVE_INFINITY,t=0,o=Number.POSITIVE_INFINITY,u=0,a=n.graph(),c=a.marginx||0,s=a.marginy||0;function f(n){var r=n.x,i=n.y,a=n.width,c=n.height;e=Math.min(e,r-a/2),t=Math.max(t,r+a/2),o=Math.min(o,i-c/2),u=Math.max(u,i+c/2)}r.Z(n.nodes(),(function(e){f(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);i.Z(t,"x")&&f(t)})),e-=c,o-=s,r.Z(n.nodes(),(function(t){var r=n.node(t);r.x-=e,r.y-=o})),r.Z(n.edges(),(function(t){var u=n.edge(t);r.Z(u.points,(function(n){n.x-=e,n.y-=o})),i.Z(u,"x")&&(u.x-=e),i.Z(u,"y")&&(u.y-=o)})),a.width=t-e+c,a.height=u-o+s}(n)})),e(" assignNodeIntersects",(function(){!function(n){r.Z(n.edges(),(function(e){var t,r,o=n.edge(e),i=n.node(e.v),u=n.node(e.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=u,r=i),o.points.unshift(D(i,t)),o.points.push(D(u,r))}))}(n)})),e(" reversePoints",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);t.reversed&&t.points.reverse()}))}(n)})),e(" acyclic.undo",(function(){!function(n){r.Z(n.edges(),(function(e){var t=n.edge(e);if(t.reversed){n.removeEdge(e);var r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}}))}(n)}))}(e,t)})),t(" updateInputGraph",(function(){!function(n,e){r.Z(n.nodes(),(function(t){var r=n.node(t),o=e.node(t);r&&(r.x=o.x,r.y=o.y,e.children(t).length&&(r.width=o.width,r.height=o.height))})),r.Z(n.edges(),(function(t){var r=n.edge(t),o=e.edge(t);r.points=o.points,i.Z(o,"x")&&(r.x=o.x,r.y=o.y)})),n.graph().width=e.graph().width,n.graph().height=e.graph().height}(n,e)}))}))}var Ae=["nodesep","edgesep","ranksep","marginx","marginy"],Re={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Se=["acyclicer","ranker","rankdir","align"],Pe=["width","height"],Te={width:0,height:0},Fe=["minlen","weight","width","height","labeloffset"],De={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Be=["labelpos"];function Ge(n,e){return L(m.Z(n,e),Number)}function Ve(n){var e={};return r.Z(n,(function(n,t){e[t.toLowerCase()]=n})),e}},52544:(n,e,t)=>{t.d(e,{k:()=>R});var r=t(17452),o=t(62002),i=t(73234),u=t(17179),a=t(13445),c=t(79697),s=t(70870),f=t(49360),d=t(10626),h=t(69581),v=t(63001),l=t(21692);const Z=function(n){return n!=n};const g=function(n,e,t){for(var r=t-1,o=n.length;++r<o;)if(n[r]===e)return r;return-1};const p=function(n,e,t){return e==e?g(n,e,t):(0,l.Z)(n,Z,t)};const b=function(n,e){return!!(null==n?0:n.length)&&p(n,e,0)>-1};const w=function(n,e,t){for(var r=-1,o=null==n?0:n.length;++r<o;)if(t(e,n[r]))return!0;return!1};var m=t(59548),y=t(93203);const _=function(){};var E=t(6545),j=y.Z&&1/(0,E.Z)(new y.Z([,-0]))[1]==1/0?function(n){return new y.Z(n)}:_;const k=j;const x=function(n,e,t){var r=-1,o=b,i=n.length,u=!0,a=[],c=a;if(t)u=!1,o=w;else if(i>=200){var s=e?null:k(n);if(s)return(0,E.Z)(s);u=!1,o=m.Z,c=new v.Z}else c=e?[]:a;n:for(;++r<i;){var f=n[r],d=e?e(f):f;if(f=t||0!==f?f:0,u&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue n;e&&c.push(d),a.push(f)}else o(c,d,t)||(c!==a&&c.push(d),a.push(f))}return a};var N=t(836);const I=(0,h.Z)((function(n){return x((0,d.Z)(n,1,N.Z,!0))}));var C=t(34148),O=t(92344),L="\0",M="\0",A="\x01";class R{constructor(n={}){this._isDirected=!r.Z(n,"directed")||n.directed,this._isMultigraph=!!r.Z(n,"multigraph")&&n.multigraph,this._isCompound=!!r.Z(n,"compound")&&n.compound,this._label=void 0,this._defaultNodeLabelFn=o.Z(void 0),this._defaultEdgeLabelFn=o.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[M]={}),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(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultNodeLabelFn=n,this}nodeCount(){return this._nodeCount}nodes(){return u.Z(this._nodes)}sources(){var n=this;return a.Z(this.nodes(),(function(e){return c.Z(n._in[e])}))}sinks(){var n=this;return a.Z(this.nodes(),(function(e){return c.Z(n._out[e])}))}setNodes(n,e){var t=arguments,r=this;return s.Z(n,(function(n){t.length>1?r.setNode(n,e):r.setNode(n)})),this}setNode(n,e){return r.Z(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=e),this):(this._nodes[n]=arguments.length>1?e:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=M,this._children[n]={},this._children[M][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return r.Z(this._nodes,n)}removeNode(n){var e=this;if(r.Z(this._nodes,n)){var t=function(n){e.removeEdge(e._edgeObjs[n])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],s.Z(this.children(n),(function(n){e.setParent(n)})),delete this._children[n]),s.Z(u.Z(this._in[n]),t),delete this._in[n],delete this._preds[n],s.Z(u.Z(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f.Z(e))e=M;else{for(var t=e+="";!f.Z(t);t=this.parent(t))if(t===n)throw new Error("Setting "+e+" as parent of "+n+" would create a cycle");this.setNode(e)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=e,this._children[e][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var e=this._parent[n];if(e!==M)return e}}children(n){if(f.Z(n)&&(n=M),this._isCompound){var e=this._children[n];if(e)return u.Z(e)}else{if(n===M)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var e=this._preds[n];if(e)return u.Z(e)}successors(n){var e=this._sucs[n];if(e)return u.Z(e)}neighbors(n){var e=this.predecessors(n);if(e)return I(e,this.successors(n))}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;s.Z(this._nodes,(function(t,r){n(r)&&e.setNode(r,t)})),s.Z(this._edgeObjs,(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))}));var r={};function o(n){var i=t.parent(n);return void 0===i||e.hasNode(i)?(r[n]=i,i):i in r?r[i]:o(i)}return this._isCompound&&s.Z(e.nodes(),(function(n){e.setParent(n,o(n))})),e}setDefaultEdgeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return C.Z(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return O.Z(n,(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o})),this}setEdge(){var n,e,t,o,i=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(n=u.v,e=u.w,t=u.name,2===arguments.length&&(o=arguments[1],i=!0)):(n=u,e=arguments[1],t=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),n=""+n,e=""+e,f.Z(t)||(t=""+t);var a=T(this._isDirected,n,e,t);if(r.Z(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(!f.Z(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(e),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(n,e,t);var c=function(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};r&&(a.name=r);return a}(this._isDirected,n,e,t);return n=c.v,e=c.w,Object.freeze(c),this._edgeObjs[a]=c,S(this._preds[e],n),S(this._sucs[n],e),this._in[e][a]=c,this._out[n][a]=c,this._edgeCount++,this}edge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return this._edgeLabels[r]}hasEdge(n,e,t){var o=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return r.Z(this._edgeLabels,o)}removeEdge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t),o=this._edgeObjs[r];return o&&(n=o.v,e=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],P(this._preds[e],n),P(this._sucs[n],e),delete this._in[e][r],delete this._out[n][r],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.v===e})):r}}outEdges(n,e){var t=this._out[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.w===e})):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}}function S(n,e){n[e]?n[e]++:n[e]=1}function P(n,e){--n[e]||delete n[e]}function T(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}return o+A+i+A+(f.Z(r)?L:r)}function F(n,e){return T(n,e.v,e.w,e.name)}R.prototype._nodeCount=0,R.prototype._edgeCount=0},45625:(n,e,t)=>{t.d(e,{k:()=>r.k});var r=t(52544)},63001:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(37834);const o=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this};const i=function(n){return this.__data__.has(n)};function u(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new r.Z;++e<t;)this.add(n[e])}u.prototype.add=u.prototype.push=o,u.prototype.has=i;const a=u},76579:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length;++t<r&&!1!==e(n[t],t,n););return n}},68774:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=0,i=[];++t<r;){var u=n[t];e(u,t,n)&&(i[o++]=u)}return i}},74073:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=Array(r);++t<r;)o[t]=e(n[t],t,n);return o}},58694:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=e.length,o=n.length;++t<r;)n[o+t]=e[t];return n}},48451:(n,e,t)=>{t.d(e,{Z:()=>X});var r=t(31667),o=t(76579),i=t(72954),u=t(31899),a=t(17179);const c=function(n,e){return n&&(0,u.Z)(e,(0,a.Z)(e),n)};var s=t(32957);const f=function(n,e){return n&&(0,u.Z)(e,(0,s.Z)(e),n)};var d=t(91050),h=t(87215),v=t(95695);const l=function(n,e){return(0,u.Z)(n,(0,v.Z)(n),e)};var Z=t(58694),g=t(12513),p=t(60532);const b=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)(0,Z.Z)(e,(0,v.Z)(n)),n=(0,g.Z)(n);return e}:p.Z;const w=function(n,e){return(0,u.Z)(n,b(n),e)};var m=t(1808),y=t(63327);const _=function(n){return(0,y.Z)(n,s.Z,b)};var E=t(83970),j=Object.prototype.hasOwnProperty;const k=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&j.call(n,"index")&&(t.index=n.index,t.input=n.input),t};var x=t(41884);const N=function(n,e){var t=e?(0,x.Z)(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)};var I=/\w*$/;const C=function(n){var e=new n.constructor(n.source,I.exec(n));return e.lastIndex=n.lastIndex,e};var O=t(17685),L=O.Z?O.Z.prototype:void 0,M=L?L.valueOf:void 0;const A=function(n){return M?Object(M.call(n)):{}};var R=t(12701);const S=function(n,e,t){var r=n.constructor;switch(e){case"[object ArrayBuffer]":return(0,x.Z)(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return N(n,t);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,R.Z)(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return C(n);case"[object Symbol]":return A(n)}};var P=t(73658),T=t(27771),F=t(77008),D=t(18533);const B=function(n){return(0,D.Z)(n)&&"[object Map]"==(0,E.Z)(n)};var G=t(21162),V=t(98351),z=V.Z&&V.Z.isMap;const q=z?(0,G.Z)(z):B;var U=t(77226);const Y=function(n){return(0,D.Z)(n)&&"[object Set]"==(0,E.Z)(n)};var $=V.Z&&V.Z.isSet;const J=$?(0,G.Z)($):Y;var K="[object Arguments]",W="[object Function]",H="[object Object]",Q={};Q[K]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q[H]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q[W]=Q["[object WeakMap]"]=!1;const X=function n(e,t,u,v,Z,g){var p,b=1&t,y=2&t,j=4&t;if(u&&(p=Z?u(e,v,Z,g):u(e)),void 0!==p)return p;if(!(0,U.Z)(e))return e;var x=(0,T.Z)(e);if(x){if(p=k(e),!b)return(0,h.Z)(e,p)}else{var N=(0,E.Z)(e),I=N==W||"[object GeneratorFunction]"==N;if((0,F.Z)(e))return(0,d.Z)(e,b);if(N==H||N==K||I&&!Z){if(p=y||I?{}:(0,P.Z)(e),!b)return y?w(e,f(p,e)):l(e,c(p,e))}else{if(!Q[N])return Z?e:{};p=S(e,N,b)}}g||(g=new r.Z);var C=g.get(e);if(C)return C;g.set(e,p),J(e)?e.forEach((function(r){p.add(n(r,t,u,r,e,g))})):q(e)&&e.forEach((function(r,o){p.set(o,n(r,t,u,o,e,g))}));var O=j?y?_:m.Z:y?s.Z:a.Z,L=x?void 0:O(e);return(0,o.Z)(L||e,(function(r,o){L&&(r=e[o=r]),(0,i.Z)(p,o,n(r,t,u,o,e,g))})),p}},49811:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2693),o=t(50585);const i=function(n,e){return function(t,r){if(null==t)return t;if(!(0,o.Z)(t))return n(t,r);for(var i=t.length,u=e?i:-1,a=Object(t);(e?u--:++u<i)&&!1!==r(a[u],u,a););return t}}(r.Z)},21692:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e,t,r){for(var o=n.length,i=t+(r?1:-1);r?i--:++i<o;)if(e(n[i],i,n))return i;return-1}},10626:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(58694),o=t(17685),i=t(29169),u=t(27771),a=o.Z?o.Z.isConcatSpreadable:void 0;const c=function(n){return(0,u.Z)(n)||(0,i.Z)(n)||!!(a&&n&&n[a])};const s=function n(e,t,o,i,u){var a=-1,s=e.length;for(o||(o=c),u||(u=[]);++a<s;){var f=e[a];t>0&&o(f)?t>1?n(f,t-1,o,i,u):(0,r.Z)(u,f):i||(u[u.length]=f)}return u}},2693:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(61395),o=t(17179);const i=function(n,e){return n&&(0,r.Z)(n,e,o.Z)}},13317:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(22823),o=t(62281);const i=function(n,e){for(var t=0,i=(e=(0,r.Z)(e,n)).length;null!=n&&t<i;)n=n[(0,o.Z)(e[t++])];return t&&t==i?n:void 0}},63327:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(58694),o=t(27771);const i=function(n,e,t){var i=e(n);return(0,o.Z)(n)?i:(0,r.Z)(i,t(n))}},74765:(n,e,t)=>{t.d(e,{Z:()=>$});var r=t(31667),o=t(63001);const i=function(n,e){for(var t=-1,r=null==n?0:n.length;++t<r;)if(e(n[t],t,n))return!0;return!1};var u=t(59548);const a=function(n,e,t,r,a,c){var s=1&t,f=n.length,d=e.length;if(f!=d&&!(s&&d>f))return!1;var h=c.get(n),v=c.get(e);if(h&&v)return h==e&&v==n;var l=-1,Z=!0,g=2&t?new o.Z:void 0;for(c.set(n,e),c.set(e,n);++l<f;){var p=n[l],b=e[l];if(r)var w=s?r(b,p,l,e,n,c):r(p,b,l,n,e,c);if(void 0!==w){if(w)continue;Z=!1;break}if(g){if(!i(e,(function(n,e){if(!(0,u.Z)(g,e)&&(p===n||a(p,n,t,r,c)))return g.push(e)}))){Z=!1;break}}else if(p!==b&&!a(p,b,t,r,c)){Z=!1;break}}return c.delete(n),c.delete(e),Z};var c=t(17685),s=t(84073),f=t(79651);const d=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n,r){t[++e]=[r,n]})),t};var h=t(6545),v=c.Z?c.Z.prototype:void 0,l=v?v.valueOf:void 0;const Z=function(n,e,t,r,o,i,u){switch(t){case"[object DataView]":if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(n.byteLength!=e.byteLength||!i(new s.Z(n),new s.Z(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,f.Z)(+n,+e);case"[object Error]":return n.name==e.name&&n.message==e.message;case"[object RegExp]":case"[object String]":return n==e+"";case"[object Map]":var c=d;case"[object Set]":var v=1&r;if(c||(c=h.Z),n.size!=e.size&&!v)return!1;var Z=u.get(n);if(Z)return Z==e;r|=2,u.set(n,e);var g=a(c(n),c(e),r,o,i,u);return u.delete(n),g;case"[object Symbol]":if(l)return l.call(n)==l.call(e)}return!1};var g=t(1808),p=Object.prototype.hasOwnProperty;const b=function(n,e,t,r,o,i){var u=1&t,a=(0,g.Z)(n),c=a.length;if(c!=(0,g.Z)(e).length&&!u)return!1;for(var s=c;s--;){var f=a[s];if(!(u?f in e:p.call(e,f)))return!1}var d=i.get(n),h=i.get(e);if(d&&h)return d==e&&h==n;var v=!0;i.set(n,e),i.set(e,n);for(var l=u;++s<c;){var Z=n[f=a[s]],b=e[f];if(r)var w=u?r(b,Z,f,e,n,i):r(Z,b,f,n,e,i);if(!(void 0===w?Z===b||o(Z,b,t,r,i):w)){v=!1;break}l||(l="constructor"==f)}if(v&&!l){var m=n.constructor,y=e.constructor;m==y||!("constructor"in n)||!("constructor"in e)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(v=!1)}return i.delete(n),i.delete(e),v};var w=t(83970),m=t(27771),y=t(77008),_=t(18843),E="[object Arguments]",j="[object Array]",k="[object Object]",x=Object.prototype.hasOwnProperty;const N=function(n,e,t,o,i,u){var c=(0,m.Z)(n),s=(0,m.Z)(e),f=c?j:(0,w.Z)(n),d=s?j:(0,w.Z)(e),h=(f=f==E?k:f)==k,v=(d=d==E?k:d)==k,l=f==d;if(l&&(0,y.Z)(n)){if(!(0,y.Z)(e))return!1;c=!0,h=!1}if(l&&!h)return u||(u=new r.Z),c||(0,_.Z)(n)?a(n,e,t,o,i,u):Z(n,e,f,t,o,i,u);if(!(1&t)){var g=h&&x.call(n,"__wrapped__"),p=v&&x.call(e,"__wrapped__");if(g||p){var N=g?n.value():n,I=p?e.value():e;return u||(u=new r.Z),i(N,I,t,o,u)}}return!!l&&(u||(u=new r.Z),b(n,e,t,o,i,u))};var I=t(18533);const C=function n(e,t,r,o,i){return e===t||(null==e||null==t||!(0,I.Z)(e)&&!(0,I.Z)(t)?e!=e&&t!=t:N(e,t,r,o,n,i))};const O=function(n,e,t,o){var i=t.length,u=i,a=!o;if(null==n)return!u;for(n=Object(n);i--;){var c=t[i];if(a&&c[2]?c[1]!==n[c[0]]:!(c[0]in n))return!1}for(;++i<u;){var s=(c=t[i])[0],f=n[s],d=c[1];if(a&&c[2]){if(void 0===f&&!(s in n))return!1}else{var h=new r.Z;if(o)var v=o(f,d,s,n,e,h);if(!(void 0===v?C(d,f,3,o,h):v))return!1}}return!0};var L=t(77226);const M=function(n){return n==n&&!(0,L.Z)(n)};var A=t(17179);const R=function(n){for(var e=(0,A.Z)(n),t=e.length;t--;){var r=e[t],o=n[r];e[t]=[r,o,M(o)]}return e};const S=function(n,e){return function(t){return null!=t&&(t[n]===e&&(void 0!==e||n in Object(t)))}};const P=function(n){var e=R(n);return 1==e.length&&e[0][2]?S(e[0][0],e[0][1]):function(t){return t===n||O(t,n,e)}};var T=t(13317);const F=function(n,e,t){var r=null==n?void 0:(0,T.Z)(n,e);return void 0===r?t:r};var D=t(75487),B=t(99365),G=t(62281);const V=function(n,e){return(0,B.Z)(n)&&M(e)?S((0,G.Z)(n),e):function(t){var r=F(t,n);return void 0===r&&r===e?(0,D.Z)(t,n):C(e,r,3)}};var z=t(69203),q=t(54193);const U=function(n){return function(e){return(0,T.Z)(e,n)}};const Y=function(n){return(0,B.Z)(n)?(0,q.Z)((0,G.Z)(n)):U(n)};const $=function(n){return"function"==typeof n?n:null==n?z.Z:"object"==typeof n?(0,m.Z)(n)?V(n[0],n[1]):P(n):Y(n)}},21018:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(49811),o=t(50585);const i=function(n,e){var t=-1,i=(0,o.Z)(n)?Array(n.length):[];return(0,r.Z)(n,(function(n,r,o){i[++t]=e(n,r,o)})),i}},54193:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return function(e){return null==e?void 0:e[n]}}},59548:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){return n.has(e)}},68882:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(69203);const o=function(n){return"function"==typeof n?n:r.Z}},22823:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(27771),o=t(99365),i=t(42454);var u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;const c=function(n){var e=(0,i.Z)(n,(function(n){return 500===t.size&&t.clear(),n})),t=e.cache;return e}((function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(u,(function(n,t,r,o){e.push(r?o.replace(a,"$1"):t||n)})),e}));var s=t(50751);const f=function(n,e){return(0,r.Z)(n)?n:(0,o.Z)(n,e)?[n]:c((0,s.Z)(n))}},1808:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(63327),o=t(95695),i=t(17179);const u=function(n){return(0,r.Z)(n,i.Z,o.Z)}},95695:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(68774),o=t(60532),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols;const a=u?function(n){return null==n?[]:(n=Object(n),(0,r.Z)(u(n),(function(e){return i.call(n,e)})))}:o.Z},16174:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(22823),o=t(29169),i=t(27771),u=t(56009),a=t(1656),c=t(62281);const s=function(n,e,t){for(var s=-1,f=(e=(0,r.Z)(e,n)).length,d=!1;++s<f;){var h=(0,c.Z)(e[s]);if(!(d=null!=n&&t(n,h)))break;n=n[h]}return d||++s!=f?d:!!(f=null==n?0:n.length)&&(0,a.Z)(f)&&(0,u.Z)(h,f)&&((0,i.Z)(n)||(0,o.Z)(n))}},99365:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(27771),o=t(72714),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;const a=function(n,e){if((0,r.Z)(n))return!1;var t=typeof n;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=n&&!(0,o.Z)(n))||(u.test(n)||!i.test(n)||null!=e&&n in Object(e))}},6545:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n){t[++e]=n})),t}},62281:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(72714);const o=function(n){if("string"==typeof n||(0,r.Z)(n))return n;var e=n+"";return"0"==e&&1/n==-Infinity?"-0":e}},3688:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(69581),o=t(79651),i=t(50439),u=t(32957),a=Object.prototype,c=a.hasOwnProperty;const s=(0,r.Z)((function(n,e){n=Object(n);var t=-1,r=e.length,s=r>2?e[2]:void 0;for(s&&(0,i.Z)(e[0],e[1],s)&&(r=1);++t<r;)for(var f=e[t],d=(0,u.Z)(f),h=-1,v=d.length;++h<v;){var l=d[h],Z=n[l];(void 0===Z||(0,o.Z)(Z,a[l])&&!c.call(n,l))&&(n[l]=f[l])}return n}))},13445:(n,e,t)=>{t.d(e,{Z:()=>c});var r=t(68774),o=t(49811);const i=function(n,e){var t=[];return(0,o.Z)(n,(function(n,r,o){e(n,r,o)&&t.push(n)})),t};var u=t(74765),a=t(27771);const c=function(n,e){return((0,a.Z)(n)?r.Z:i)(n,(0,u.Z)(e,3))}},27961:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(10626);const o=function(n){return(null==n?0:n.length)?(0,r.Z)(n,1):[]}},70870:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(76579),o=t(49811),i=t(68882),u=t(27771);const a=function(n,e){return((0,u.Z)(n)?r.Z:o.Z)(n,(0,i.Z)(e))}},17452:(n,e,t)=>{t.d(e,{Z:()=>u});var r=Object.prototype.hasOwnProperty;const o=function(n,e){return null!=n&&r.call(n,e)};var i=t(16174);const u=function(n,e){return null!=n&&(0,i.Z)(n,e,o)}},75487:(n,e,t)=>{t.d(e,{Z:()=>i});const r=function(n,e){return null!=n&&e in Object(n)};var o=t(16174);const i=function(n,e){return null!=n&&(0,o.Z)(n,e,r)}},72714:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(93589),o=t(18533);const i=function(n){return"symbol"==typeof n||(0,o.Z)(n)&&"[object Symbol]"==(0,r.Z)(n)}},49360:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return void 0===n}},17179:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(87668),o=t(39473),i=t(50585);const u=function(n){return(0,i.Z)(n)?(0,r.Z)(n):(0,o.Z)(n)}},43836:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(74073),o=t(74765),i=t(21018),u=t(27771);const a=function(n,e){return((0,u.Z)(n)?r.Z:i.Z)(n,(0,o.Z)(e,3))}},61666:(n,e,t)=>{t.d(e,{Z:()=>g});var r=t(13317),o=t(72954),i=t(22823),u=t(56009),a=t(77226),c=t(62281);const s=function(n,e,t,r){if(!(0,a.Z)(n))return n;for(var s=-1,f=(e=(0,i.Z)(e,n)).length,d=f-1,h=n;null!=h&&++s<f;){var v=(0,c.Z)(e[s]),l=t;if("__proto__"===v||"constructor"===v||"prototype"===v)return n;if(s!=d){var Z=h[v];void 0===(l=r?r(Z,v,h):void 0)&&(l=(0,a.Z)(Z)?Z:(0,u.Z)(e[s+1])?[]:{})}(0,o.Z)(h,v,l),h=h[v]}return n};const f=function(n,e,t){for(var o=-1,u=e.length,a={};++o<u;){var c=e[o],f=(0,r.Z)(n,c);t(f,c)&&s(a,(0,i.Z)(c,n),f)}return a};var d=t(75487);const h=function(n,e){return f(n,e,(function(e,t){return(0,d.Z)(n,t)}))};var v=t(27961),l=t(81211),Z=t(27227);const g=function(n){return(0,Z.Z)((0,l.Z)(n,void 0,v.Z),n+"")}((function(n,e){return null==n?{}:h(n,e)}))},74379:(n,e,t)=>{t.d(e,{Z:()=>c});var r=Math.ceil,o=Math.max;const i=function(n,e,t,i){for(var u=-1,a=o(r((e-n)/(t||1)),0),c=Array(a);a--;)c[i?a:++u]=n,n+=t;return c};var u=t(50439),a=t(94099);const c=function(n){return function(e,t,r){return r&&"number"!=typeof r&&(0,u.Z)(e,t,r)&&(t=r=void 0),e=(0,a.Z)(e),void 0===t?(t=e,e=0):t=(0,a.Z)(t),r=void 0===r?e<t?1:-1:(0,a.Z)(r),i(e,t,r,n)}}()},92344:(n,e,t)=>{t.d(e,{Z:()=>c});const r=function(n,e,t,r){var o=-1,i=null==n?0:n.length;for(r&&i&&(t=n[++o]);++o<i;)t=e(t,n[o],o,n);return t};var o=t(49811),i=t(74765);const u=function(n,e,t,r,o){return o(n,(function(n,o,i){t=r?(r=!1,n):e(t,n,o,i)})),t};var a=t(27771);const c=function(n,e,t){var c=(0,a.Z)(n)?r:u,s=arguments.length<3;return c(n,(0,i.Z)(e,4),t,s,o.Z)}},60532:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(){return[]}},94099:(n,e,t)=>{t.d(e,{Z:()=>Z});var r=/\s/;const o=function(n){for(var e=n.length;e--&&r.test(n.charAt(e)););return e};var i=/^\s+/;const u=function(n){return n?n.slice(0,o(n)+1).replace(i,""):n};var a=t(77226),c=t(72714),s=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const v=function(n){if("number"==typeof n)return n;if((0,c.Z)(n))return NaN;if((0,a.Z)(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=(0,a.Z)(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=u(n);var t=f.test(n);return t||d.test(n)?h(n.slice(2),t?2:8):s.test(n)?NaN:+n};var l=1/0;const Z=function(n){return n?(n=v(n))===l||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}},50751:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(17685),o=t(74073),i=t(27771),u=t(72714),a=r.Z?r.Z.prototype:void 0,c=a?a.toString:void 0;const s=function n(e){if("string"==typeof e)return e;if((0,i.Z)(e))return(0,o.Z)(e,n)+"";if((0,u.Z)(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t};const f=function(n){return null==n?"":s(n)}},66749:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(50751),o=0;const i=function(n){var e=++o;return(0,r.Z)(n)+e}},34148:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(74073);const o=function(n,e){return(0,r.Z)(e,(function(e){return n[e]}))};var i=t(17179);const u=function(n){return null==n?[]:o(n,(0,i.Z)(n))}}}]); \ No newline at end of file diff --git a/assets/js/16cbc838.63632cb6.js b/assets/js/16cbc838.63632cb6.js deleted file mode 100644 index a33759f..0000000 --- a/assets/js/16cbc838.63632cb6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1494],{8252:t=>{t.exports=JSON.parse('{"label":"iterative","permalink":"/algorithms/tags/iterative","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/16cbc838.eafc393a.js b/assets/js/16cbc838.eafc393a.js new file mode 100644 index 0000000..99ab740 --- /dev/null +++ b/assets/js/16cbc838.eafc393a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1494],{98252:t=>{t.exports=JSON.parse('{"label":"iterative","permalink":"/algorithms/tags/iterative","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/1763.98bf88d0.js b/assets/js/1763.98bf88d0.js deleted file mode 100644 index 8ba1c4c..0000000 --- a/assets/js/1763.98bf88d0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1763],{3349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(6225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},6225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(7514),l=n(3234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},1763:(e,t,n)=>{n.d(t,{diagram:()=>i});var r=n(8955),l=(n(5625),n(4218));n(5322),n(7452),n(3688),n(870),n(1644),n(6225);n(3349);n(6749),n(4379);n(1666);l.c_6;var o=n(1358);n(7484),n(7967),n(7856),n(9354);const a={},s=function(e){const t=Object.keys(e);for(const n of t)a[n]=e[n]},i={parser:r.p,db:r.f,renderer:o.f,styles:o.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,s(e.flowchart),r.f.clear(),r.f.setGen("gen-1")}}},1358:(e,t,n)=>{n.d(t,{a:()=>h,f:()=>u});var r=n(5625),l=n(4218),o=n(5322),a=n(7936),s=n(3349),i=n(1691),c=n(1610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(1117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.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=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",h="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(h=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,h=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=h,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const h="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),g="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e<k.nodes.length;e++)o.l.info("Setting up subgraphs",k.nodes[e],k.id),y.setParent(k.nodes[e],k.id)}f(v,y,t,h,g,s),w(m,y);const T=h.select(`[id="${t}"]`),_=h.select("#"+t+" g");if(await(0,a.r)(_,y,["point","circle","cross"],"flowchart",t),o.u.insertTitle(T,"flowchartTitleText",d.titleTopMargin,s.db.getDiagramTitle()),(0,o.o)(y,T,d.diagramPadding,d.useMaxWidth),s.db.indexNodes("subGraph"+S),!d.htmlLabels){const e=g.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of e){const e=t.getBBox(),n=g.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",e.width),n.setAttribute("height",e.height),t.insertBefore(n,t.firstChild)}}Object.keys(v).forEach((function(e){const n=v[e];if(n.link){const r=(0,l.Ys)("#"+t+' [id="'+e+'"]');if(r){const e=g.createElementNS("http://www.w3.org/2000/svg","a");e.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),e.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),e.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===c?e.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&e.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const t=r.insert((function(){return e}),":first-child"),l=r.select(".label-container");l&&t.append((function(){return l.node()}));const o=r.select(".label");o&&t.append((function(){return o.node()}))}}}))}},h=e=>`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.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: ${e.textColor};\n }\n`}}]); \ No newline at end of file diff --git a/assets/js/1763.dd6ac9f1.js b/assets/js/1763.dd6ac9f1.js new file mode 100644 index 0000000..9326ba1 --- /dev/null +++ b/assets/js/1763.dd6ac9f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1763],{43349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(96225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},96225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(37514),l=n(73234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},1763:(e,t,n)=>{n.d(t,{diagram:()=>i});var r=n(88955),l=(n(45625),n(64218));n(85322),n(17452),n(3688),n(70870),n(41644),n(96225);n(43349);n(66749),n(74379);n(61666);l.c_6;var o=n(21358);n(27484),n(17967),n(27856),n(39354);const a={},s=function(e){const t=Object.keys(e);for(const n of t)a[n]=e[n]},i={parser:r.p,db:r.f,renderer:o.f,styles:o.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,s(e.flowchart),r.f.clear(),r.f.setGen("gen-1")}}},21358:(e,t,n)=>{n.d(t,{a:()=>h,f:()=>u});var r=n(45625),l=n(64218),o=n(85322),a=n(87936),s=n(43349),i=n(61691),c=n(71610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(51117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.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=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",h="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(h=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,h=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=h,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const h="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),g="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e<k.nodes.length;e++)o.l.info("Setting up subgraphs",k.nodes[e],k.id),y.setParent(k.nodes[e],k.id)}f(v,y,t,h,g,s),w(m,y);const T=h.select(`[id="${t}"]`),_=h.select("#"+t+" g");if(await(0,a.r)(_,y,["point","circle","cross"],"flowchart",t),o.u.insertTitle(T,"flowchartTitleText",d.titleTopMargin,s.db.getDiagramTitle()),(0,o.o)(y,T,d.diagramPadding,d.useMaxWidth),s.db.indexNodes("subGraph"+S),!d.htmlLabels){const e=g.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of e){const e=t.getBBox(),n=g.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",e.width),n.setAttribute("height",e.height),t.insertBefore(n,t.firstChild)}}Object.keys(v).forEach((function(e){const n=v[e];if(n.link){const r=(0,l.Ys)("#"+t+' [id="'+e+'"]');if(r){const e=g.createElementNS("http://www.w3.org/2000/svg","a");e.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),e.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),e.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===c?e.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&e.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const t=r.insert((function(){return e}),":first-child"),l=r.select(".label-container");l&&t.append((function(){return l.node()}));const o=r.select(".label");o&&t.append((function(){return o.node()}))}}}))}},h=e=>`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.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: ${e.textColor};\n }\n`}}]); \ No newline at end of file diff --git a/assets/js/1772.321bc53b.js b/assets/js/1772.321bc53b.js deleted file mode 100644 index 7d3d6ce..0000000 --- a/assets/js/1772.321bc53b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(7294);var n=i(6010),o=i(5999),s=i(7955),r=i(5893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(7294);var n=i(5999),o=i(833),s=i(8207),r=i(5658),a=i(5893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/1772.7702e9c0.js b/assets/js/1772.7702e9c0.js new file mode 100644 index 0000000..613fe6c --- /dev/null +++ b/assets/js/1772.7702e9c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(67294);var n=i(86010),o=i(95999),s=i(92503),r=i(85893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},51772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(67294);var n=i(95999),o=i(10833),s=i(58207),r=i(5658),a=i(85893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.0840295c.js b/assets/js/17896441.0840295c.js new file mode 100644 index 0000000..d15122b --- /dev/null +++ b/assets/js/17896441.0840295c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7918],{1310:(e,t,n)=>{n.d(t,{Z:()=>p});n(67294);var s=n(86010),a=n(35281),i=n(53438),l=n(48596),o=n(39960),r=n(95999),c=n(44996),d=n(85893);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,c.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(o.Z,{"aria-label":(0,r.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function b(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(o.Z,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:i}=e;return(0,d.jsxs)("li",{...i&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function p(){const e=(0,i.s1)(),t=(0,l.Ns)();return e?(0,d.jsx)("nav",{className:(0,s.Z)(a.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,r.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(b,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},15154:(e,t,n)=>{n.r(t),n.d(t,{default:()=>q});var s=n(67294),a=n(10833),i=n(902),l=n(85893);const o=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,l.jsx)(o.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,l.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(86010),m=n(87524),h=n(80049);function v(){const{metadata:e}=c();return(0,l.jsx)(h.Z,{previous:e.previous,next:e.next})}var b=n(23120),x=n(44364),p=n(35281),f=n(95999);function g(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,l.jsx)(f.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function j(e){let{lastUpdatedBy:t}=e;return(0,l.jsx)(f.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:t})},children:" by {user}"})}function L(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,l.jsxs)("span",{className:p.k.common.lastUpdated,children:[(0,l.jsx)(f.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,l.jsx)(g,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,l.jsx)(j,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}var C=n(84881),N=n(71526);const Z={lastUpdated:"lastUpdated_vwxv"};function k(e){return(0,l.jsx)("div",{className:(0,u.Z)(p.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(N.Z,{...e})})})}function _(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,l.jsxs)("div",{className:(0,u.Z)(p.k.docs.docFooterEditMetaRow,"row"),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(C.Z,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.Z)("col",Z.lastUpdated),children:(n||s)&&(0,l.jsx)(L,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function T(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:i}=e,o=i.length>0,r=!!(t||n||a);return o||r?(0,l.jsxs)("footer",{className:(0,u.Z)(p.k.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,l.jsx)(k,{tags:i}),r&&(0,l.jsx)(_,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var U=n(86043),H=n(93743);const y={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function A(e){let{collapsed:t,...n}=e;return(0,l.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",y.tocCollapsibleButton,!t&&y.tocCollapsibleButtonExpanded,n.className),children:(0,l.jsx)(f.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const w={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function M(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,U.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(w.tocCollapsible,!i&&w.tocCollapsibleExpanded,n),children:[(0,l.jsx)(A,{collapsed:i,onClick:o}),(0,l.jsx)(U.z,{lazy:!0,className:w.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(H.Z,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const I={tocMobile:"tocMobile_ITEo"};function B(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(M,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(p.k.docs.docTocMobile,I.tocMobile)})}var E=n(39407);function O(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(E.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:p.k.docs.docTocDesktop})}var S=n(92503),V=n(27779);function P(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(p.k.docs.docMarkdown,"markdown"),children:[n&&(0,l.jsx)("header",{children:(0,l.jsx)(S.Z,{as:"h1",children:n})}),(0,l.jsx)(V.Z,{children:t})]})}var D=n(1310),R=n(22212);const F={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function z(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,l.jsx)(B,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,l.jsx)(O,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&F.docItemCol),children:[s&&(0,l.jsx)(R.Z,{}),(0,l.jsx)(b.Z,{}),(0,l.jsxs)("div",{className:F.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(D.Z,{}),(0,l.jsx)(x.Z,{}),n.mobile,(0,l.jsx)(P,{children:t}),(0,l.jsx)(T,{})]}),(0,l.jsx)(v,{})]})]}),n.desktop&&(0,l.jsx)("div",{className:"col col--3",children:n.desktop})]})}function q(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.FG,{className:t,children:[(0,l.jsx)(d,{}),(0,l.jsx)(z,{children:(0,l.jsx)(n,{})})]})})}},80049:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(95999),a=n(32244),i=n(85893);function l(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(a.Z,{...t,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(a.Z,{...n,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},44364:(e,t,n)=>{n.d(t,{Z:()=>r});n(67294);var s=n(86010),a=n(95999),i=n(35281),l=n(74477),o=n(85893);function r(e){let{className:t}=e;const n=(0,l.E)();return n.badge?(0,o.jsx)("span",{className:(0,s.Z)(t,i.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(a.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},23120:(e,t,n)=>{n.d(t,{Z:()=>x});n(67294);var s=n(86010),a=n(52263),i=n(39960),l=n(95999),o=n(80143),r=n(35281),c=n(60373),d=n(74477),u=n(85893);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function v(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.Z,{to:n,onClick:s,children:(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function b(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:i}}=(0,a.Z)(),{pluginId:l}=(0,o.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,c.J)(l),{latestDocSuggestion:m,latestVersionSuggestion:b}=(0,o.Jo)(l),x=m??(p=b).docs.find((e=>e.id===p.mainDocId));var p;return(0,u.jsxs)("div",{className:(0,s.Z)(t,r.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:i,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(v,{versionLabel:b.label,to:x.path,onClick:()=>d(b.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.E)();return n.banner?(0,u.jsx)(b,{className:t,versionMetadata:n}):null}},39407:(e,t,n)=>{n.d(t,{Z:()=>c});n(67294);var s=n(86010),a=n(93743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=n(85893);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,l.jsx)("div",{className:(0,s.Z)(i.tableOfContents,"thin-scrollbar",t),children:(0,l.jsx)(a.Z,{...n,linkClassName:o,linkActiveClassName:r})})}},93743:(e,t,n)=>{n.d(t,{Z:()=>b});var s=n(67294),a=n(86668);function i(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>o(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.L)();return(0,s.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,n])}var u=n(39960),m=n(85893);function h(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const b=(0,a.L)(),x=c??b.tableOfContents.minHeadingLevel,p=u??b.tableOfContents.maxHeadingLevel,f=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:x,maxHeadingLevel:p});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:x,maxHeadingLevel:p}}),[o,r,x,p])),(0,m.jsx)(v,{toc:f,className:n,linkClassName:o,...h})}},22212:(e,t,n)=>{n.d(t,{Z:()=>h});n(67294);var s=n(86010),a=n(95999),i=n(35742),l=n(85893);function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(35281),u=n(59047);function m(e){let{className:t}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.Z)(t,d.k.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.d57f667a.js b/assets/js/17896441.d57f667a.js deleted file mode 100644 index b2dfc1c..0000000 --- a/assets/js/17896441.d57f667a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7918],{1310:(e,t,n)=>{n.d(t,{Z:()=>p});n(7294);var s=n(6010),a=n(5281),i=n(3438),l=n(8596),o=n(9960),r=n(5999),c=n(4996),d=n(5893);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,c.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(o.Z,{"aria-label":(0,r.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function b(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(o.Z,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:i}=e;return(0,d.jsxs)("li",{...i&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function p(){const e=(0,i.s1)(),t=(0,l.Ns)();return e?(0,d.jsx)("nav",{className:(0,s.Z)(a.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,r.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(b,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},5154:(e,t,n)=>{n.r(t),n.d(t,{default:()=>q});var s=n(7294),a=n(833),i=n(902),l=n(5893);const o=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,l.jsx)(o.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,l.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(6010),m=n(7524),h=n(49);function v(){const{metadata:e}=c();return(0,l.jsx)(h.Z,{previous:e.previous,next:e.next})}var b=n(3120),x=n(4364),p=n(5281),f=n(5999);function g(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,l.jsx)(f.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function j(e){let{lastUpdatedBy:t}=e;return(0,l.jsx)(f.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:t})},children:" by {user}"})}function L(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,l.jsxs)("span",{className:p.k.common.lastUpdated,children:[(0,l.jsx)(f.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,l.jsx)(g,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,l.jsx)(j,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}var C=n(4881),N=n(1526);const Z={lastUpdated:"lastUpdated_vwxv"};function k(e){return(0,l.jsx)("div",{className:(0,u.Z)(p.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(N.Z,{...e})})})}function _(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,l.jsxs)("div",{className:(0,u.Z)(p.k.docs.docFooterEditMetaRow,"row"),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(C.Z,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.Z)("col",Z.lastUpdated),children:(n||s)&&(0,l.jsx)(L,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function T(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:i}=e,o=i.length>0,r=!!(t||n||a);return o||r?(0,l.jsxs)("footer",{className:(0,u.Z)(p.k.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,l.jsx)(k,{tags:i}),r&&(0,l.jsx)(_,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var U=n(6043),H=n(3743);const y={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function A(e){let{collapsed:t,...n}=e;return(0,l.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",y.tocCollapsibleButton,!t&&y.tocCollapsibleButtonExpanded,n.className),children:(0,l.jsx)(f.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const w={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function M(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,U.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(w.tocCollapsible,!i&&w.tocCollapsibleExpanded,n),children:[(0,l.jsx)(A,{collapsed:i,onClick:o}),(0,l.jsx)(U.z,{lazy:!0,className:w.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(H.Z,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const I={tocMobile:"tocMobile_ITEo"};function B(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(M,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(p.k.docs.docTocMobile,I.tocMobile)})}var E=n(9407);function O(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(E.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:p.k.docs.docTocDesktop})}var S=n(7955),V=n(7779);function P(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(p.k.docs.docMarkdown,"markdown"),children:[n&&(0,l.jsx)("header",{children:(0,l.jsx)(S.Z,{as:"h1",children:n})}),(0,l.jsx)(V.Z,{children:t})]})}var D=n(1310),R=n(2212);const F={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function z(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,l.jsx)(B,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,l.jsx)(O,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&F.docItemCol),children:[s&&(0,l.jsx)(R.Z,{}),(0,l.jsx)(b.Z,{}),(0,l.jsxs)("div",{className:F.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(D.Z,{}),(0,l.jsx)(x.Z,{}),n.mobile,(0,l.jsx)(P,{children:t}),(0,l.jsx)(T,{})]}),(0,l.jsx)(v,{})]})]}),n.desktop&&(0,l.jsx)("div",{className:"col col--3",children:n.desktop})]})}function q(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.FG,{className:t,children:[(0,l.jsx)(d,{}),(0,l.jsx)(z,{children:(0,l.jsx)(n,{})})]})})}},49:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(5999),a=n(2244),i=n(5893);function l(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(a.Z,{...t,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(a.Z,{...n,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,n)=>{n.d(t,{Z:()=>r});n(7294);var s=n(6010),a=n(5999),i=n(5281),l=n(4477),o=n(5893);function r(e){let{className:t}=e;const n=(0,l.E)();return n.badge?(0,o.jsx)("span",{className:(0,s.Z)(t,i.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(a.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,n)=>{n.d(t,{Z:()=>x});n(7294);var s=n(6010),a=n(2263),i=n(9960),l=n(5999),o=n(143),r=n(5281),c=n(373),d=n(4477),u=n(5893);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function v(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.Z,{to:n,onClick:s,children:(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function b(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:i}}=(0,a.Z)(),{pluginId:l}=(0,o.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,c.J)(l),{latestDocSuggestion:m,latestVersionSuggestion:b}=(0,o.Jo)(l),x=m??(p=b).docs.find((e=>e.id===p.mainDocId));var p;return(0,u.jsxs)("div",{className:(0,s.Z)(t,r.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:i,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(v,{versionLabel:b.label,to:x.path,onClick:()=>d(b.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.E)();return n.banner?(0,u.jsx)(b,{className:t,versionMetadata:n}):null}},9407:(e,t,n)=>{n.d(t,{Z:()=>c});n(7294);var s=n(6010),a=n(3743);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=n(5893);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,l.jsx)("div",{className:(0,s.Z)(i.tableOfContents,"thin-scrollbar",t),children:(0,l.jsx)(a.Z,{...n,linkClassName:o,linkActiveClassName:r})})}},3743:(e,t,n)=>{n.d(t,{Z:()=>b});var s=n(7294),a=n(6668);function i(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function r(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>o(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.L)();return(0,s.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,n])}var u=n(9960),m=n(5893);function h(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const b=(0,a.L)(),x=c??b.tableOfContents.minHeadingLevel,p=u??b.tableOfContents.maxHeadingLevel,f=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:x,maxHeadingLevel:p});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:x,maxHeadingLevel:p}}),[o,r,x,p])),(0,m.jsx)(v,{toc:f,className:n,linkClassName:o,...h})}},2212:(e,t,n)=>{n.d(t,{Z:()=>h});n(7294);var s=n(6010),a=n(5999),i=n(5742),l=n(5893);function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(5281),u=n(9047);function m(e){let{className:t}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.Z)(t,d.k.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/19d7c045.004afc43.js b/assets/js/19d7c045.004afc43.js deleted file mode 100644 index 6d905e5..0000000 --- a/assets/js/19d7c045.004afc43.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4637],{7772:e=>{e.exports=JSON.parse('{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code","allTagsPath":"/blog/tags","count":5,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/19d7c045.fd298b3d.js b/assets/js/19d7c045.fd298b3d.js new file mode 100644 index 0000000..eed4db2 --- /dev/null +++ b/assets/js/19d7c045.fd298b3d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4637],{67772:e=>{e.exports=JSON.parse('{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code","allTagsPath":"/blog/tags","count":5,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.4bafbff8.js b/assets/js/1a4e3797.4bafbff8.js deleted file mode 100644 index ea8930b..0000000 --- a/assets/js/1a4e3797.4bafbff8.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1a4e3797.4bafbff8.js.LICENSE.txt */ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7920],{7331: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,s,a,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(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(o=s.slice()).length,u=0;u<a;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,s){var a;if(!r(s))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(s.listener)?s.listener:s),this._events[e]?n(this._events[e])?this._events[e].push(s):this._events[e]=[this._events[e],s]:this._events[e]=s,n(this._events[e])&&!this._events[e].warned&&(a=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[e].length>a&&(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,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-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=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,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(9374),i=r(7775),s=r(3076);function a(e,t,r){return new n(e,t,r)}a.version=r(4336),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=s,e.exports=a},8078:(e,t,r)=>{"use strict";var n=r(7331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(4853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},2437:(e,t,r)=>{"use strict";var n=r(2344),i=r(116),s=r(9803),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.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 a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return s(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},7775:(e,t,r)=>{"use strict";var n=r(2344),i=r(7888),s=r(2686),a=r(185),c=r(116),u=r(9803),o=r(8023),h=r(6801),f=r(2437);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 a({},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&&c(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."):c(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 n=o(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},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){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,o(n))}))}):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 c(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 s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,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)),i={};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)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,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:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},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 Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var s,a,c=o(r),u=void 0!==(s=this.numericRefinements[e][t],a=c,i(s,(function(e){return l(e,a)})));return n&&u},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(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()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},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}),{}),s=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(s)},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 i(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},210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var n=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",h=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),l=e._getHierarchicalShowParentLevel(n),m=s(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,n,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,s){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)&&(s||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,n)}));l.data=a(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var s=t.split(r);return{name:s[s.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(4039),i=r(7888),s=r(2293),a=r(2148),c=n.escapeFacetValue,u=n.unescapeFacetValue},3076:(e,t,r)=>{"use strict";var n=r(4587),i=r(2344),s=r(4039),a=r(7888),c=r(9725),u=r(2293),o=r(185),h=r(2148),f=s.escapeFacetValue,l=s.unescapeFacetValue,m=r(210);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 s=t[0];this._rawResults=t;var u=this;Object.keys(s).forEach((function(e){u[e]=s[e]})),Object.keys(r||{}).forEach((function(e){u[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=s.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],o=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(o){var h=o.attributes.indexOf(t),l=c(e.hierarchicalFacets,(function(e){return e.name===o.name}));u.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],u.disjunctiveFacets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.disjunctiveFacets[m],s.facets_stats,t)),g&&(m=f[t],u.facets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.facets[m],s.facets_stats,t))}})),this.hierarchicalFacets=n(this.hierarchicalFacets),h.forEach((function(r){var n=t[g],a=n&&n.facets?n.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,f=a[t];if(h){r=c(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=c(u.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;u.hierarchicalFacets[r][m].data=o({},u.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=s.facets&&s.facets[t]||{};u.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:n.exhaustiveFacetsCount},p(u.disjunctiveFacets[r],n.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!u.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(u.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var o=r[t],h=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=c(u.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0){var m=a[0].split(s)[0];l[m]=u.hierarchicalFacets[h][f].data[m]}u.hierarchicalFacets[h][f].data=i(l,o,u.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];u.facets[n]={name:t,data:y[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){u.facets[n]=u.facets[n]||{name:t},u.facets[n].data=u.facets[n].data||{},u.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=n(this.facets),this.disjunctiveFacets=n(this.disjunctiveFacets),this._state=e}function g(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(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=a(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)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var c=e._state.getHierarchicalFacetByName(t),u=e._state._getHierarchicalFacetSeparator(c),o=l(e._state.getHierarchicalRefinement(t)[0]||"");0===o.indexOf(c.rootPath)&&(o=o.replace(c.rootPath+u,""));var h=o.split(u);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(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 s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=a(i,(function(e){return e.name===r})),c=s&&s.data&&s.data[n]?s.data[n]:0,u=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:c,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=g(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return R((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]}(a,t);if(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,a=t.sortRemainingBy;return"hidden"===a?r:(s="alpha"===a?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(h(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=u(s.sortBy,v.DEFAULT_SORT);return h(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)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(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(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(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),s=e._getHierarchicalFacetSeparator(i),c=r.split(s),u=a(n,(function(e){return e.name===t})),o=c.reduce((function(e,t){var r=e&&a(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},9374:(e,t,r)=>{"use strict";var n=r(7331),i=r(8078),s=r(4039).escapeFacetValue,a=r(4853),c=r(185),u=r(116),o=r(9803),h=r(6394),f=r(7775),l=r(3076),m=r(4336);function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.setClient(e);var n=r||{};n.index=t,this.state=f.make(n),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}a(d,n),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 h._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=h._getQueries(r.index,r),i=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),{content:new l(r,e.results),state:r,_originalResponse:e}}),(function(e){throw i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(null,new l(r,e.results),r)})).catch((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=c({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:o(h._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="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(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.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=h.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var f,l=this;return i?f=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?f=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,f=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}),f.then((function(t){return l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=s(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw l._currentNbQueries--,0===l._currentNbQueries&&l.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:f.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new f(e),this},d.prototype.hasRefinements=function(e){return!!u(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=h._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=n.index?h._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},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,i=e.helper,s=n.splice(0,r);t.index?(i.lastResults=new l(t,s),i.emit("result",{results:i.lastResults,state:t})):i.emit("result",{results:null,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 ("+m+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new i(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},4587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},2344:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).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}),{})}},4039: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]}},9725: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}},2293:(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(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},4853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},2686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},185: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&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&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 s=arguments[n];t(s)&&r(e,s)}return e}},116:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},9803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},2148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e<t||s&&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 s=t(e.criteria[i],r.criteria[i]);if(s)return i>=n.length?s:"desc"===n[i]?-s:s}return e.index-r.index})),i.map((function(e){return e.value}))}},8023: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.")}},6394:(e,t,r)=>{"use strict";var n=r(185);function i(e){return Object.keys(e).sort().reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var u=a[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,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[a-1];c.facetFilters=a>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)).sort(),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),a.length>0&&(u.numericFilters=a),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),u=s._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?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),a.length>0&&(o.facetFilters=a),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 s=i[e]||[];t!==n&&s.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).sort().forEach((function(e){(i[e]||[]).sort().forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).sort().forEach((function(e){(s[e]||[]).sort().forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).sort().forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.sort().forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).sort().forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(u=f.split(h).length-1,s=f):(u=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=o.attributes[u]}else u=s.split(h).length-1,a=o.attributes[u];a&&n.push([a+":"+s])}})),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),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),u))}};e.exports=s},6801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},4336:e=>{"use strict";e.exports="3.15.0"},290: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={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[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,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(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 a(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},s=function(){return JSON.parse(n().getItem(r)||"{}")},a=function(e){n().setItem(r,JSON.stringify(e))},c=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=s(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==i(e,2)[1].timestamp})));if(a(n),t){var c=Object.fromEntries(Object.entries(n).filter((function(e){var r=i(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));a(c)}};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(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();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=s(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()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},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 j(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(s(r),s(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 P(e,t,n,i){var a=[],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,s){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:O(a)};var m={data:c,headers:u,method:o,url:_(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.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",w(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,s)}))},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,O(a))}};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 j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function x(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,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(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 O(e){return e.map((function(e){return w(e)}))}function w(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),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,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 P(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 s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return P(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:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.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:E(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 s=t.params,a=s.facetName,c=s.facetQuery,u=n(s,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:I}}).searchForFacetValues(a,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)}},I=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,k=2,q=3;function V(e,t,n){var i,s={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)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),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 k>=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:[a({key:"".concat("4.20.0","-").concat(e)}),u()]}),userAgent:x("4.20.0").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},s),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:I,findAnswers:Q}})}}}}))}return V.version="4.20.0",V}()},8824:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(7294),i=r(2263);const s=["zero","one","two","few","many","other"];function a(e){return s.filter((t=>e.includes(t)))}const c={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function u(){const{i18n:{currentLocale:e}}=(0,i.Z)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(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),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}},9172:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>w});var n=r(7294),i=r(6010),s=r(8131),a=r.n(s),c=r(290),u=r.n(c),o=r(412),h=r(5742),f=r(9960),l=r(143),m=r(8824),d=r(6177),p=r(902),v=r(833),g=r(2128),y=r(5999),R=r(2263),F=r(6278),b=r(239),j=r(8207),P=r(7955);const x={searchQueryInput:"searchQueryInput_u2C7",searchVersionInput:"searchVersionInput_m0Ui",searchResultsColumn:"searchResultsColumn_JPFH",algoliaLogo:"algoliaLogo_rT1R",algoliaLogoPathFill:"algoliaLogoPathFill_WdUC",searchResultItem:"searchResultItem_Tv2o",searchResultItemHeading:"searchResultItemHeading_KbCB",searchResultItemPath:"searchResultItemPath_lhe1",searchResultItemSummary:"searchResultItemSummary_AEaO",searchQueryColumn:"searchQueryColumn_RTkw",searchVersionColumn:"searchVersionColumn_ypXd",searchLogoColumn:"searchLogoColumn_rJIA",loadingSpinner:"loadingSpinner_XVxU","loading-spin":"loading-spin_vzvp",loader:"loader_vvXV"};var _=r(5893);function E(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,_.jsx)("div",{className:(0,i.Z)("col","col--3","padding-left--none",x.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,_.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:x.searchVersionInput,children:i.versions.map(((e,t)=>(0,_.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function O(){const{i18n:{currentLocale:e}}=(0,R.Z)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,F.L)(),c=(0,b.l)(),v=function(){const{selectMessage:e}=(0,m.c)();return t=>e(t,(0,y.I)({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}))}(),O=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})))}}(),[w,N]=(0,d.K)(),A={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[H,S]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return A;case"loading":return{...e,loading:!0};case"update":return w!==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}}),A),T=u()(t,r),Q=a()(T,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});Q.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void S({type:"reset"});const a=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=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));S({type:"update",value:{items:u,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,I]=(0,n.useState)(null),D=(0,n.useRef)(0),k=(0,n.useRef)(o.Z.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&D.current>r&&S({type:"advance"}),D.current=r}),{threshold:1})),q=()=>w?(0,y.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:w}):(0,y.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),V=(0,p.zX)((function(t){void 0===t&&(t=0),Q.addDisjunctiveFacetRefinement("docusaurus_tag","default"),Q.addDisjunctiveFacetRefinement("language",e),Object.entries(O.searchVersions).forEach((e=>{let[t,r]=e;Q.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),Q.setQuery(w).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{S({type:"reset"}),w&&(S({type:"loading"}),setTimeout((()=>{V()}),300))}),[w,O.searchVersions,V]),(0,n.useEffect)((()=>{H.lastPage&&0!==H.lastPage&&V(H.lastPage)}),[V,H.lastPage]),(0,_.jsxs)(j.Z,{children:[(0,_.jsxs)(h.Z,{children:[(0,_.jsx)("title",{children:(0,g.p)(q())}),(0,_.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,_.jsxs)("div",{className:"container margin-vert--lg",children:[(0,_.jsx)(P.Z,{as:"h1",children:q()}),(0,_.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,_.jsx)("div",{className:(0,i.Z)("col",x.searchQueryColumn,{"col--9":O.versioningEnabled,"col--12":!O.versioningEnabled}),children:(0,_.jsx)("input",{type:"search",name:"q",className:x.searchQueryInput,placeholder:(0,y.I)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,y.I)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>N(e.target.value),value:w,autoComplete:"off",autoFocus:!0})}),O.versioningEnabled&&(0,_.jsx)(E,{docsSearchVersionsHelpers:O})]}),(0,_.jsxs)("div",{className:"row",children:[(0,_.jsx)("div",{className:(0,i.Z)("col","col--8",x.searchResultsColumn),children:!!H.totalResults&&v(H.totalResults)}),(0,_.jsx)("div",{className:(0,i.Z)("col","col--4","text--right",x.searchLogoColumn),children:(0,_.jsx)(f.Z,{to:"https://www.algolia.com/","aria-label":(0,y.I)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,_.jsx)("svg",{viewBox:"0 0 168 24",className:x.algoliaLogo,children:(0,_.jsxs)("g",{fill:"none",children:[(0,_.jsx)("path",{className:x.algoliaLogoPathFill,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"}),(0,_.jsx)("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"}),(0,_.jsx)("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"})]})})})})]}),H.items.length>0?(0,_.jsx)("main",{children:H.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,_.jsxs)("article",{className:x.searchResultItem,children:[(0,_.jsx)(P.Z,{as:"h2",className:x.searchResultItemHeading,children:(0,_.jsx)(f.Z,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,_.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,_.jsx)("ul",{className:(0,i.Z)("breadcrumbs",x.searchResultItemPath),children:a.map(((e,t)=>(0,_.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,_.jsx)("p",{className:x.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[w&&!H.loading&&(0,_.jsx)("p",{children:(0,_.jsx)(y.Z,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!H.loading&&(0,_.jsx)("div",{className:x.loadingSpinner},"spinner")],H.hasMore&&(0,_.jsx)("div",{className:x.loader,ref:I,children:(0,_.jsx)(y.Z,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function w(){return(0,_.jsx)(v.FG,{className:"search-page-wrapper",children:(0,_.jsx)(O,{})})}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.4e3726f1.js b/assets/js/1a4e3797.4e3726f1.js new file mode 100644 index 0000000..28ad2f9 --- /dev/null +++ b/assets/js/1a4e3797.4e3726f1.js @@ -0,0 +1,2 @@ +/*! For license information please see 1a4e3797.4e3726f1.js.LICENSE.txt */ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7920],{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,s,a,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(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(o=s.slice()).length,u=0;u<a;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,s){var a;if(!r(s))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(s.listener)?s.listener:s),this._events[e]?n(this._events[e])?this._events[e].push(s):this._events[e]=[this._events[e],s]:this._events[e]=s,n(this._events[e])&&!this._events[e].warned&&(a=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&a>0&&this._events[e].length>a&&(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,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-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=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,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),s=r(23076);function a(e,t,r){return new n(e,t,r)}a.version=r(24336),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=s,e.exports=a},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(90116),s=r(49803),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.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 a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return s(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},17775:(e,t,r)=>{"use strict";var n=r(52344),i=r(7888),s=r(22686),a=r(60185),c=r(90116),u=r(49803),o=r(28023),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 a({},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&&c(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."):c(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 n=o(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},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){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,o(n))}))}):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 c(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 s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,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)),i={};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)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,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:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},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 Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var s,a,c=o(r),u=void 0!==(s=this.numericRefinements[e][t],a=c,i(s,(function(e){return l(e,a)})));return n&&u},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(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()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},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}),{}),s=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(s)},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 i(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 n=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",h=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),l=e._getHierarchicalShowParentLevel(n),m=s(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,n,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,s){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)&&(s||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,n)}));l.data=a(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var s=t.split(r);return{name:s[s.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(94039),i=r(7888),s=r(82293),a=r(42148),c=n.escapeFacetValue,u=n.unescapeFacetValue},23076:(e,t,r)=>{"use strict";var n=r(74587),i=r(52344),s=r(94039),a=r(7888),c=r(69725),u=r(82293),o=r(60185),h=r(42148),f=s.escapeFacetValue,l=s.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 s=t[0];this._rawResults=t;var u=this;Object.keys(s).forEach((function(e){u[e]=s[e]})),Object.keys(r||{}).forEach((function(e){u[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=s.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],o=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(o){var h=o.attributes.indexOf(t),l=c(e.hierarchicalFacets,(function(e){return e.name===o.name}));u.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],u.disjunctiveFacets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.disjunctiveFacets[m],s.facets_stats,t)),g&&(m=f[t],u.facets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.facets[m],s.facets_stats,t))}})),this.hierarchicalFacets=n(this.hierarchicalFacets),h.forEach((function(r){var n=t[g],a=n&&n.facets?n.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,f=a[t];if(h){r=c(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=c(u.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;u.hierarchicalFacets[r][m].data=o({},u.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=s.facets&&s.facets[t]||{};u.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:n.exhaustiveFacetsCount},p(u.disjunctiveFacets[r],n.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!u.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(u.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var o=r[t],h=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=c(u.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0){var m=a[0].split(s)[0];l[m]=u.hierarchicalFacets[h][f].data[m]}u.hierarchicalFacets[h][f].data=i(l,o,u.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];u.facets[n]={name:t,data:y[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){u.facets[n]=u.facets[n]||{name:t},u.facets[n].data=u.facets[n].data||{},u.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=n(this.facets),this.disjunctiveFacets=n(this.disjunctiveFacets),this._state=e}function g(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(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=a(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)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var c=e._state.getHierarchicalFacetByName(t),u=e._state._getHierarchicalFacetSeparator(c),o=l(e._state.getHierarchicalRefinement(t)[0]||"");0===o.indexOf(c.rootPath)&&(o=o.replace(c.rootPath+u,""));var h=o.split(u);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(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 s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=a(i,(function(e){return e.name===r})),c=s&&s.data&&s.data[n]?s.data[n]:0,u=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:c,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=g(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return R((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]}(a,t);if(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,a=t.sortRemainingBy;return"hidden"===a?r:(s="alpha"===a?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(h(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=u(s.sortBy,v.DEFAULT_SORT);return h(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)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(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(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(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),s=e._getHierarchicalFacetSeparator(i),c=r.split(s),u=a(n,(function(e){return e.name===t})),o=c.reduce((function(e,t){var r=e&&a(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(17331),i=r(68078),s=r(94039).escapeFacetValue,a=r(14853),c=r(60185),u=r(90116),o=r(49803),h=r(96394),f=r(17775),l=r(23076),m=r(24336);function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.setClient(e);var n=r||{};n.index=t,this.state=f.make(n),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}a(d,n),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 h._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=h._getQueries(r.index,r),i=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),{content:new l(r,e.results),state:r,_originalResponse:e}}),(function(e){throw i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(null,new l(r,e.results),r)})).catch((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=c({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:o(h._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="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(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.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=h.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var f,l=this;return i?f=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?f=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,f=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}),f.then((function(t){return l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=s(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw l._currentNbQueries--,0===l._currentNbQueries&&l.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:f.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new f(e),this},d.prototype.hasRefinements=function(e){return!!u(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=h._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=n.index?h._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},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,i=e.helper,s=n.splice(0,r);t.index?(i.lastResults=new l(t,s),i.emit("result",{results:i.lastResults,state:t})):i.emit("result",{results:null,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 ("+m+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new i(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(){return Array.prototype.slice.call(arguments).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(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[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&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&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 s=arguments[n];t(s)&&r(e,s)}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={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[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,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e<t||s&&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 s=t(e.criteria[i],r.criteria[i]);if(s)return i>=n.length?s:"desc"===n[i]?-s:s}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().reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var u=a[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,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[a-1];c.facetFilters=a>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)).sort(),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),a.length>0&&(u.numericFilters=a),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),u=s._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?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),a.length>0&&(o.facetFilters=a),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 s=i[e]||[];t!==n&&s.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).sort().forEach((function(e){(i[e]||[]).sort().forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).sort().forEach((function(e){(s[e]||[]).sort().forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).sort().forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.sort().forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).sort().forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(u=f.split(h).length-1,s=f):(u=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=o.attributes[u]}else u=s.split(h).length-1,a=o.attributes[u];a&&n.push([a+":"+s])}})),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),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),u))}};e.exports=s},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.15.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={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[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,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(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 a(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},s=function(){return JSON.parse(n().getItem(r)||"{}")},a=function(e){n().setItem(r,JSON.stringify(e))},c=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=s(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==i(e,2)[1].timestamp})));if(a(n),t){var c=Object.fromEntries(Object.entries(n).filter((function(e){var r=i(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));a(c)}};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(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();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=s(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()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},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 j(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(s(r),s(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 P(e,t,n,i){var a=[],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,s){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:O(a)};var m={data:c,headers:u,method:o,url:_(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.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",w(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,s)}))},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,O(a))}};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 j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function x(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,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(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 O(e){return e.map((function(e){return w(e)}))}function w(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),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,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 P(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 s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return P(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:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.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:E(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 s=t.params,a=s.facetName,c=s.facetQuery,u=n(s,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:I}}).searchForFacetValues(a,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)}},I=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,k=2,q=3;function V(e,t,n){var i,s={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)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),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 k>=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:[a({key:"".concat("4.20.0","-").concat(e)}),u()]}),userAgent:x("4.20.0").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},s),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:I,findAnswers:Q}})}}}}))}return V.version="4.20.0",V}()},88824:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(67294),i=r(52263);const s=["zero","one","two","few","many","other"];function a(e){return s.filter((t=>e.includes(t)))}const c={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function u(){const{i18n:{currentLocale:e}}=(0,i.Z)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(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),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}},39172:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>w});var n=r(67294),i=r(86010),s=r(8131),a=r.n(s),c=r(70290),u=r.n(c),o=r(10412),h=r(35742),f=r(39960),l=r(80143),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),j=r(58207),P=r(92503);const x={searchQueryInput:"searchQueryInput_u2C7",searchVersionInput:"searchVersionInput_m0Ui",searchResultsColumn:"searchResultsColumn_JPFH",algoliaLogo:"algoliaLogo_rT1R",algoliaLogoPathFill:"algoliaLogoPathFill_WdUC",searchResultItem:"searchResultItem_Tv2o",searchResultItemHeading:"searchResultItemHeading_KbCB",searchResultItemPath:"searchResultItemPath_lhe1",searchResultItemSummary:"searchResultItemSummary_AEaO",searchQueryColumn:"searchQueryColumn_RTkw",searchVersionColumn:"searchVersionColumn_ypXd",searchLogoColumn:"searchLogoColumn_rJIA",loadingSpinner:"loadingSpinner_XVxU","loading-spin":"loading-spin_vzvp",loader:"loader_vvXV"};var _=r(85893);function E(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,_.jsx)("div",{className:(0,i.Z)("col","col--3","padding-left--none",x.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,_.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:x.searchVersionInput,children:i.versions.map(((e,t)=>(0,_.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function O(){const{i18n:{currentLocale:e}}=(0,R.Z)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,F.L)(),c=(0,b.l)(),v=function(){const{selectMessage:e}=(0,m.c)();return t=>e(t,(0,y.I)({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}))}(),O=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})))}}(),[w,N]=(0,d.K)(),A={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[H,S]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return A;case"loading":return{...e,loading:!0};case"update":return w!==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}}),A),T=u()(t,r),Q=a()(T,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});Q.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void S({type:"reset"});const a=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=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));S({type:"update",value:{items:u,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,I]=(0,n.useState)(null),D=(0,n.useRef)(0),k=(0,n.useRef)(o.Z.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&D.current>r&&S({type:"advance"}),D.current=r}),{threshold:1})),q=()=>w?(0,y.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:w}):(0,y.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),V=(0,p.zX)((function(t){void 0===t&&(t=0),Q.addDisjunctiveFacetRefinement("docusaurus_tag","default"),Q.addDisjunctiveFacetRefinement("language",e),Object.entries(O.searchVersions).forEach((e=>{let[t,r]=e;Q.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),Q.setQuery(w).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{S({type:"reset"}),w&&(S({type:"loading"}),setTimeout((()=>{V()}),300))}),[w,O.searchVersions,V]),(0,n.useEffect)((()=>{H.lastPage&&0!==H.lastPage&&V(H.lastPage)}),[V,H.lastPage]),(0,_.jsxs)(j.Z,{children:[(0,_.jsxs)(h.Z,{children:[(0,_.jsx)("title",{children:(0,g.p)(q())}),(0,_.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,_.jsxs)("div",{className:"container margin-vert--lg",children:[(0,_.jsx)(P.Z,{as:"h1",children:q()}),(0,_.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,_.jsx)("div",{className:(0,i.Z)("col",x.searchQueryColumn,{"col--9":O.versioningEnabled,"col--12":!O.versioningEnabled}),children:(0,_.jsx)("input",{type:"search",name:"q",className:x.searchQueryInput,placeholder:(0,y.I)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,y.I)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>N(e.target.value),value:w,autoComplete:"off",autoFocus:!0})}),O.versioningEnabled&&(0,_.jsx)(E,{docsSearchVersionsHelpers:O})]}),(0,_.jsxs)("div",{className:"row",children:[(0,_.jsx)("div",{className:(0,i.Z)("col","col--8",x.searchResultsColumn),children:!!H.totalResults&&v(H.totalResults)}),(0,_.jsx)("div",{className:(0,i.Z)("col","col--4","text--right",x.searchLogoColumn),children:(0,_.jsx)(f.Z,{to:"https://www.algolia.com/","aria-label":(0,y.I)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,_.jsx)("svg",{viewBox:"0 0 168 24",className:x.algoliaLogo,children:(0,_.jsxs)("g",{fill:"none",children:[(0,_.jsx)("path",{className:x.algoliaLogoPathFill,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"}),(0,_.jsx)("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"}),(0,_.jsx)("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"})]})})})})]}),H.items.length>0?(0,_.jsx)("main",{children:H.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,_.jsxs)("article",{className:x.searchResultItem,children:[(0,_.jsx)(P.Z,{as:"h2",className:x.searchResultItemHeading,children:(0,_.jsx)(f.Z,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,_.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,_.jsx)("ul",{className:(0,i.Z)("breadcrumbs",x.searchResultItemPath),children:a.map(((e,t)=>(0,_.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,_.jsx)("p",{className:x.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[w&&!H.loading&&(0,_.jsx)("p",{children:(0,_.jsx)(y.Z,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!H.loading&&(0,_.jsx)("div",{className:x.loadingSpinner},"spinner")],H.hasMore&&(0,_.jsx)("div",{className:x.loader,ref:I,children:(0,_.jsx)(y.Z,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function w(){return(0,_.jsx)(v.FG,{className:"search-page-wrapper",children:(0,_.jsx)(O,{})})}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.4bafbff8.js.LICENSE.txt b/assets/js/1a4e3797.4e3726f1.js.LICENSE.txt similarity index 100% rename from assets/js/1a4e3797.4bafbff8.js.LICENSE.txt rename to assets/js/1a4e3797.4e3726f1.js.LICENSE.txt diff --git a/assets/js/1a606400.9499d809.js b/assets/js/1a606400.9499d809.js new file mode 100644 index 0000000..86d74f5 --- /dev/null +++ b/assets/js/1a606400.9499d809.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[494],{82400:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"algorithms"}')}}]); \ No newline at end of file diff --git a/assets/js/1a606400.acf1b263.js b/assets/js/1a606400.acf1b263.js deleted file mode 100644 index 5cec4b1..0000000 --- a/assets/js/1a606400.acf1b263.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[494],{2400:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"algorithms"}')}}]); \ No newline at end of file diff --git a/assets/js/1acf65cc.33171995.js b/assets/js/1acf65cc.33171995.js new file mode 100644 index 0000000..ce09f61 --- /dev/null +++ b/assets/js/1acf65cc.33171995.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8529],{34568:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=s(85893),t=s(11151);const r={slug:"garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",last_update:{date:new Date("2023-05-08T00:00:00.000Z")}},a="Garbage Collection",o={id:"pexam/b-garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",source:"@site/c/pexam/b-garbage_collect.md",sourceDirName:"pexam",slug:"/pexam/garbage_collect",permalink:"/c/pexam/garbage_collect",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/pexam/b-garbage_collect.md",tags:[],version:"current",lastUpdatedAt:1683504e3,formattedLastUpdatedAt:"May 8, 2023",frontMatter:{slug:"garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",last_update:{date:"2023-05-08T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Practice Exams",permalink:"/c/category/practice-exams"},next:{title:"Practice exam C",permalink:"/c/pexam/cams"}},l={},c=[{value:"Format of the shell history",id:"format-of-the-shell-history",level:2},{value:"Format of the output",id:"format-of-the-output",level:2},{value:"<code>-gt \u2039min_size\u203a</code>",id:"-gt-min_size",level:3},{value:"<code>-f \u2039total_size\u203a \u2039min_unused\u203a</code>",id:"-f-total_size-min_unused",level:3},{value:"Example usage",id:"example-usage",level:2},{value:"Requirements and notes",id:"requirements-and-notes",level:2}];function d(e){const n={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"garbage-collection",children:"Garbage Collection"}),"\n",(0,i.jsx)(n.admonition,{title:"Exam environment",type:"caution",children:(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["During the exam you will be provided with a barebone ",(0,i.jsx)(n.em,{children:"exam session"})," on the\n",(0,i.jsx)(n.em,{children:"faculty computers"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["In browser you are only allowed to have the following tabs open:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.cppreference.com",children:"C documentation"})}),"\n",(0,i.jsx)(n.li,{children:"page containing the assignment"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["You ",(0,i.jsx)(n.strong,{children:"are not"})," allowed to use your own source code, e.g. prepared beforehand\nor from the seminars."]}),"\n",(0,i.jsxs)(n.li,{children:["You have ",(0,i.jsx)(n.strong,{children:"5 minutes"})," to read through the assignment and ask any follow-up\nquestions should be there something unclear."]}),"\n",(0,i.jsxs)(n.li,{children:["You have ",(0,i.jsx)(n.strong,{children:"60 minutes"})," to work on the assignment, afterward your work will be\ndiscussed with your seminar tutor."]}),"\n"]})}),"\n",(0,i.jsxs)(n.p,{children:["You have gotten into a trouble during your regular upgrade of your archLinux",(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),"\ninstallation\u2026 You've been carelessly running the upgrades for months and forgot\nabout clearing up the caches."]}),"\n",(0,i.jsxs)(n.p,{children:["Your task is to write a program ",(0,i.jsx)(n.code,{children:"garbage_collect"})," that will evaluate the shell\nhistory provided as a file and will try to find files or directories that are\nsuspiciously big and decide which of them should be deleted to free some space."]}),"\n",(0,i.jsx)(n.h2,{id:"format-of-the-shell-history",children:"Format of the shell history"}),"\n",(0,i.jsx)(n.p,{children:"You are provided one file consisting of the captured buffer of the terminal. You\ncan see only two commands being used:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"cd \u2039somewhere\u203a"})," that changes the current working directory."]}),"\n",(0,i.jsxs)(n.p,{children:["At the beginning you start in the root of the filesystem (i.e. ",(0,i.jsx)(n.code,{children:"/"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["You are ",(0,i.jsx)(n.strong,{children:"guaranteed"})," that ",(0,i.jsx)(n.code,{children:"\u2039somewhere\u203a"})," is:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"."})," that is a current working directory (i.e. does nothing),"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".."})," that moves you up one level (in case you are in ",(0,i.jsx)(n.code,{children:"/"}),", does nothing), or"]}),"\n",(0,i.jsx)(n.li,{children:"is a valid directory in the current working directory."}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"There are no guarantees or restrictions on the names of the files or\ndirectories!"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ls"})," that will list files in the current working directory and their\nrespective sizes. If there is a directory in the current working it has ",(0,i.jsx)(n.code,{children:"dir"}),"\ninstead of the size."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"$ ls\ndir a\n14848514 b.txt\n8504156 c.dat\ndir d\n$ cd a\n$ cd .\n$ cd .\n$ cd .\n$ ls\ndir e\n29116 f\n2557 g\n62596 h.lst\n$ cd e\n$ ls\n584 i\n$ cd ..\n$ cd ..\n$ cd d\n$ ls\n4060174 j\n8033020 d.log\n5626152 d.ext\n7214296 k\n"})}),"\n",(0,i.jsx)(n.p,{children:"For this input, you will get following file system:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"- / (dir, size=48381165)\n - a (dir, size=94853)\n - e (dir, size=584)\n - i (file, size=584)\n - f (file, size=29116)\n - g (file, size=2557)\n - h.lst (file, size=62596)\n - b.txt (file, size=14848514)\n - c.dat (file, size=8504156)\n - d (dir, size=24933642)\n - j (file, size=4060174)\n - d.log (file, size=8033020)\n - d.ext (file, size=5626152)\n - k (file, size=7214296)\n"})}),"\n",(0,i.jsx)(n.h2,{id:"format-of-the-output",children:"Format of the output"}),"\n",(0,i.jsx)(n.p,{children:"Your program should support 2 switches:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-gt \u2039min_size\u203a"})," that will print out suspiciously big files."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-f \u2039total_size\u203a \u2039min_unused\u203a"})," that will print out a file to be deleted."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"-gt-min_size",children:(0,i.jsx)(n.code,{children:"-gt \u2039min_size\u203a"})}),"\n",(0,i.jsx)(n.p,{children:"With this switch you are provided one additional argument:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"min_size"})," that is the lower bound (inclusive) for size of any file or\ndirectory that is supposed to be listed."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["When your program is being run with this switch, it is is supposed to print out\nall files ",(0,i.jsx)(n.strong,{children:"and"})," directories that are bigger than the provided ",(0,i.jsx)(n.code,{children:"min_size"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"-f-total_size-min_unused",children:(0,i.jsx)(n.code,{children:"-f \u2039total_size\u203a \u2039min_unused\u203a"})}),"\n",(0,i.jsx)(n.p,{children:"With this switch you are provided two additional arguments:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"total_size"})," that is a total size of the filesystem",(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"min_unused"})," that is a minimum of free space required for an upgrade."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Your program should find ",(0,i.jsx)(n.strong,{children:"exactly one"})," file or a directory that is of the\nsmallest size, but big enough to free enough space for the upgrade to proceed."]}),"\n",(0,i.jsx)(n.p,{children:"In other words, if that file or directory is deleted, following should hold:"}),"\n",(0,i.jsx)(n.span,{className:"katex-display",children:(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"t"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"o"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"t"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"a"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"l"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"_"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"i"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"z"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"})]}),(0,i.jsx)(n.mo,{children:"\u2212"}),(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"d"})]}),(0,i.jsx)(n.mo,{children:"\u2265"}),(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"m"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"i"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"n"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"_"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"n"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"d"})]})]}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathtt{total\\_size} - \\mathtt{used} \\geq \\mathtt{min\\_unused}"})]})})}),(0,i.jsxs)(n.span,{className:"katex-html","aria-hidden":"true",children:[(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7063em",verticalAlign:"-0.0951em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"total_size"})}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,i.jsx)(n.span,{className:"mbin",children:"\u2212"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7719em",verticalAlign:"-0.136em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"used"})}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,i.jsx)(n.span,{className:"mrel",children:"\u2265"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7063em",verticalAlign:"-0.0951em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"min_unused"})})]})]})]})}),"\n",(0,i.jsx)(n.h2,{id:"example-usage",children:"Example usage"}),"\n",(0,i.jsx)(n.p,{children:"You can have a look at the example usage of your program. We can run your\nprogram from the shell like"}),"\n",(0,i.jsx)(n.p,{children:"$ ./garbage_collect shell_history.txt -gt 10000000\n24933642 /d\n14848514 /b.txt\n48381165 /"}),"\n",(0,i.jsx)(n.p,{children:"$ ./garbage_collect shell_history.txt -f 70000000 30000000\n24933642 /d"}),"\n",(0,i.jsx)(n.h2,{id:"requirements-and-notes",children:"Requirements and notes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Define ",(0,i.jsx)(n.strong,{children:"structures"})," (and ",(0,i.jsx)(n.strong,{children:"enumerations"}),", if applicable) for the parsed\ninformation from the files."]}),"\n",(0,i.jsxs)(n.li,{children:["For keeping the \u201crecords\u201d, use some ",(0,i.jsx)(n.strong,{children:"dynamic"})," data structure.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Don't forget to consider pros and cons of using ",(0,i.jsx)(n.em,{children:"specific"})," data structures\nbefore going through implementing."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["You ",(0,i.jsx)(n.strong,{children:"are not required"})," to produce 1:1 output to the provided examples, they\nare just a hint to not waste your time tinkering with a user experience."]}),"\n",(0,i.jsxs)(n.li,{children:["If any of the operations on the input files should fail,\n",(0,i.jsx)(n.strong,{children:"you are expected to"})," handle the situation ",(0,i.jsx)(n.em,{children:"accordingly"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Failures of any other common functions (e.g. functions used for memory\nmanagement) should be handled in ",(0,i.jsx)(n.strong,{children:"the same way"})," as they were in the\nhomeworks and seminars."]}),"\n",(0,i.jsxs)(n.li,{children:["Your program ",(0,i.jsx)(n.strong,{children:"must free"})," all the resources before exiting."]}),"\n"]}),"\n",(0,i.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,i.jsxs)(n.p,{children:["Also applies to Fedora, but\u2026 we use arch btw ","\ud83d\ude09 ",(0,i.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{id:"user-content-fn-2",children:["\n",(0,i.jsxs)(n.p,{children:["duh! ",(0,i.jsx)(n.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>a});var i=s(67294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1acf65cc.6bab8119.js b/assets/js/1acf65cc.6bab8119.js deleted file mode 100644 index 38e1b5d..0000000 --- a/assets/js/1acf65cc.6bab8119.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8529],{4568:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var i=s(5893),t=s(1151);const r={slug:"garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",last_update:{date:new Date("2023-05-08T00:00:00.000Z")}},a="Garbage Collection",o={id:"pexam/b-garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",source:"@site/c/pexam/b-garbage_collect.md",sourceDirName:"pexam",slug:"/pexam/garbage_collect",permalink:"/c/pexam/garbage_collect",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/pexam/b-garbage_collect.md",tags:[],version:"current",lastUpdatedAt:1683504e3,formattedLastUpdatedAt:"May 8, 2023",frontMatter:{slug:"garbage_collect",title:"Practice exam B",description:"Garbage everywhere\u2026\n",last_update:{date:"2023-05-08T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Practice Exams",permalink:"/c/category/practice-exams"},next:{title:"Practice exam C",permalink:"/c/pexam/cams"}},l={},c=[{value:"Format of the shell history",id:"format-of-the-shell-history",level:2},{value:"Format of the output",id:"format-of-the-output",level:2},{value:"<code>-gt \u2039min_size\u203a</code>",id:"-gt-min_size",level:3},{value:"<code>-f \u2039total_size\u203a \u2039min_unused\u203a</code>",id:"-f-total_size-min_unused",level:3},{value:"Example usage",id:"example-usage",level:2},{value:"Requirements and notes",id:"requirements-and-notes",level:2}];function d(e){const n={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",ul:"ul",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"garbage-collection",children:"Garbage Collection"}),"\n",(0,i.jsx)(n.admonition,{title:"Exam environment",type:"caution",children:(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["During the exam you will be provided with a barebone ",(0,i.jsx)(n.em,{children:"exam session"})," on the\n",(0,i.jsx)(n.em,{children:"faculty computers"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["In browser you are only allowed to have the following tabs open:","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.cppreference.com",children:"C documentation"})}),"\n",(0,i.jsx)(n.li,{children:"page containing the assignment"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["You ",(0,i.jsx)(n.strong,{children:"are not"})," allowed to use your own source code, e.g. prepared beforehand\nor from the seminars."]}),"\n",(0,i.jsxs)(n.li,{children:["You have ",(0,i.jsx)(n.strong,{children:"5 minutes"})," to read through the assignment and ask any follow-up\nquestions should be there something unclear."]}),"\n",(0,i.jsxs)(n.li,{children:["You have ",(0,i.jsx)(n.strong,{children:"60 minutes"})," to work on the assignment, afterward your work will be\ndiscussed with your seminar tutor."]}),"\n"]})}),"\n",(0,i.jsxs)(n.p,{children:["You have gotten into a trouble during your regular upgrade of your archLinux",(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),"\ninstallation\u2026 You've been carelessly running the upgrades for months and forgot\nabout clearing up the caches."]}),"\n",(0,i.jsxs)(n.p,{children:["Your task is to write a program ",(0,i.jsx)(n.code,{children:"garbage_collect"})," that will evaluate the shell\nhistory provided as a file and will try to find files or directories that are\nsuspiciously big and decide which of them should be deleted to free some space."]}),"\n",(0,i.jsx)(n.h2,{id:"format-of-the-shell-history",children:"Format of the shell history"}),"\n",(0,i.jsx)(n.p,{children:"You are provided one file consisting of the captured buffer of the terminal. You\ncan see only two commands being used:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"cd \u2039somewhere\u203a"})," that changes the current working directory."]}),"\n",(0,i.jsxs)(n.p,{children:["At the beginning you start in the root of the filesystem (i.e. ",(0,i.jsx)(n.code,{children:"/"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["You are ",(0,i.jsx)(n.strong,{children:"guaranteed"})," that ",(0,i.jsx)(n.code,{children:"\u2039somewhere\u203a"})," is:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"."})," that is a current working directory (i.e. does nothing),"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".."})," that moves you up one level (in case you are in ",(0,i.jsx)(n.code,{children:"/"}),", does nothing), or"]}),"\n",(0,i.jsx)(n.li,{children:"is a valid directory in the current working directory."}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"There are no guarantees or restrictions on the names of the files or\ndirectories!"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ls"})," that will list files in the current working directory and their\nrespective sizes. If there is a directory in the current working it has ",(0,i.jsx)(n.code,{children:"dir"}),"\ninstead of the size."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"$ ls\ndir a\n14848514 b.txt\n8504156 c.dat\ndir d\n$ cd a\n$ cd .\n$ cd .\n$ cd .\n$ ls\ndir e\n29116 f\n2557 g\n62596 h.lst\n$ cd e\n$ ls\n584 i\n$ cd ..\n$ cd ..\n$ cd d\n$ ls\n4060174 j\n8033020 d.log\n5626152 d.ext\n7214296 k\n"})}),"\n",(0,i.jsx)(n.p,{children:"For this input, you will get following file system:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"- / (dir, size=48381165)\n - a (dir, size=94853)\n - e (dir, size=584)\n - i (file, size=584)\n - f (file, size=29116)\n - g (file, size=2557)\n - h.lst (file, size=62596)\n - b.txt (file, size=14848514)\n - c.dat (file, size=8504156)\n - d (dir, size=24933642)\n - j (file, size=4060174)\n - d.log (file, size=8033020)\n - d.ext (file, size=5626152)\n - k (file, size=7214296)\n"})}),"\n",(0,i.jsx)(n.h2,{id:"format-of-the-output",children:"Format of the output"}),"\n",(0,i.jsx)(n.p,{children:"Your program should support 2 switches:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-gt \u2039min_size\u203a"})," that will print out suspiciously big files."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-f \u2039total_size\u203a \u2039min_unused\u203a"})," that will print out a file to be deleted."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"-gt-min_size",children:(0,i.jsx)(n.code,{children:"-gt \u2039min_size\u203a"})}),"\n",(0,i.jsx)(n.p,{children:"With this switch you are provided one additional argument:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"min_size"})," that is the lower bound (inclusive) for size of any file or\ndirectory that is supposed to be listed."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["When your program is being run with this switch, it is is supposed to print out\nall files ",(0,i.jsx)(n.strong,{children:"and"})," directories that are bigger than the provided ",(0,i.jsx)(n.code,{children:"min_size"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"-f-total_size-min_unused",children:(0,i.jsx)(n.code,{children:"-f \u2039total_size\u203a \u2039min_unused\u203a"})}),"\n",(0,i.jsx)(n.p,{children:"With this switch you are provided two additional arguments:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"total_size"})," that is a total size of the filesystem",(0,i.jsx)(n.sup,{children:(0,i.jsx)(n.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"min_unused"})," that is a minimum of free space required for an upgrade."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Your program should find ",(0,i.jsx)(n.strong,{children:"exactly one"})," file or a directory that is of the\nsmallest size, but big enough to free enough space for the upgrade to proceed."]}),"\n",(0,i.jsx)(n.p,{children:"In other words, if that file or directory is deleted, following should hold:"}),"\n",(0,i.jsx)(n.span,{className:"katex-display",children:(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"t"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"o"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"t"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"a"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"l"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"_"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"i"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"z"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"})]}),(0,i.jsx)(n.mo,{children:"\u2212"}),(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"d"})]}),(0,i.jsx)(n.mo,{children:"\u2265"}),(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"m"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"i"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"n"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"_"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"n"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"u"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"s"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"e"}),(0,i.jsx)(n.mi,{mathvariant:"monospace",children:"d"})]})]}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"\\mathtt{total\\_size} - \\mathtt{used} \\geq \\mathtt{min\\_unused}"})]})})}),(0,i.jsxs)(n.span,{className:"katex-html","aria-hidden":"true",children:[(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7063em",verticalAlign:"-0.0951em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"total_size"})}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,i.jsx)(n.span,{className:"mbin",children:"\u2212"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7719em",verticalAlign:"-0.136em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"used"})}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,i.jsx)(n.span,{className:"mrel",children:"\u2265"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.7063em",verticalAlign:"-0.0951em"}}),(0,i.jsx)(n.span,{className:"mord",children:(0,i.jsx)(n.span,{className:"mord mathtt",children:"min_unused"})})]})]})]})}),"\n",(0,i.jsx)(n.h2,{id:"example-usage",children:"Example usage"}),"\n",(0,i.jsx)(n.p,{children:"You can have a look at the example usage of your program. We can run your\nprogram from the shell like"}),"\n",(0,i.jsx)(n.p,{children:"$ ./garbage_collect shell_history.txt -gt 10000000\n24933642 /d\n14848514 /b.txt\n48381165 /"}),"\n",(0,i.jsx)(n.p,{children:"$ ./garbage_collect shell_history.txt -f 70000000 30000000\n24933642 /d"}),"\n",(0,i.jsx)(n.h2,{id:"requirements-and-notes",children:"Requirements and notes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Define ",(0,i.jsx)(n.strong,{children:"structures"})," (and ",(0,i.jsx)(n.strong,{children:"enumerations"}),", if applicable) for the parsed\ninformation from the files."]}),"\n",(0,i.jsxs)(n.li,{children:["For keeping the \u201crecords\u201d, use some ",(0,i.jsx)(n.strong,{children:"dynamic"})," data structure.","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Don't forget to consider pros and cons of using ",(0,i.jsx)(n.em,{children:"specific"})," data structures\nbefore going through implementing."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["You ",(0,i.jsx)(n.strong,{children:"are not required"})," to produce 1:1 output to the provided examples, they\nare just a hint to not waste your time tinkering with a user experience."]}),"\n",(0,i.jsxs)(n.li,{children:["If any of the operations on the input files should fail,\n",(0,i.jsx)(n.strong,{children:"you are expected to"})," handle the situation ",(0,i.jsx)(n.em,{children:"accordingly"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Failures of any other common functions (e.g. functions used for memory\nmanagement) should be handled in ",(0,i.jsx)(n.strong,{children:"the same way"})," as they were in the\nhomeworks and seminars."]}),"\n",(0,i.jsxs)(n.li,{children:["Your program ",(0,i.jsx)(n.strong,{children:"must free"})," all the resources before exiting."]}),"\n"]}),"\n",(0,i.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,i.jsxs)(n.p,{children:["Also applies to Fedora, but\u2026 we use arch btw ","\ud83d\ude09 ",(0,i.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{id:"user-content-fn-2",children:["\n",(0,i.jsxs)(n.p,{children:["duh! ",(0,i.jsx)(n.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>a});var i=s(7294);const t={},r=i.createContext(t);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2183.618b481a.js b/assets/js/2183.618b481a.js deleted file mode 100644 index 19a9a59..0000000 --- a/assets/js/2183.618b481a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2183],{2183:(t,e,n)=>{n.d(e,{diagram:()=>j});var i=n(5322),s=n(4218),r=n(3317),a=(n(7484),n(7967),n(7856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,11,12,14,16,17,18],n=[1,9],i=[1,10],s=[1,11],r=[1,12],a=[1,13],o=[1,14],l={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 9:this.$=r[o].trim(),i.setAccTitle(this.$);break;case 10:case 11:this.$=r[o].trim(),i.setAccDescription(this.$);break;case 12:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 13:i.addTask(r[o-1],r[o]),this.$="task"}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:s,16:r,17:a,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:n,12:i,14:s,16:r,17:a,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},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="",l=0,c=0,h=r.slice.call(arguments,1),y=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);y.setInput(t,u.yy),u.yy.lexer=y,u.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var d=y.yylloc;r.push(d);var f=y.options&&y.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,x,m,k,_,b,v,$,w,M={};;){if(x=n[n.length-1],this.defaultActions[x]?m=this.defaultActions[x]:(null==g&&(w=void 0,"number"!=typeof(w=i.pop()||y.lex()||1)&&(w instanceof Array&&(w=(i=w).pop()),w=e.symbols_[w]||w),g=w),m=a[x]&&a[x][g]),void 0===m||!m.length||!m[0]){var E="";for(_ in $=[],a[x])this.terminals_[_]&&_>2&&$.push("'"+this.terminals_[_]+"'");E=y.showPosition?"Parse error on line "+(l+1)+":\n"+y.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(E,{text:y.match,token:this.terminals_[g]||g,line:y.yylineno,loc:d,expected:$})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+g);switch(m[0]){case 1:n.push(g),s.push(y.yytext),r.push(y.yylloc),n.push(m[1]),g=null,c=y.yyleng,o=y.yytext,l=y.yylineno,d=y.yylloc;break;case 2:if(b=this.productions_[m[1]][1],M.$=s[s.length-b],M._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},f&&(M._$.range=[r[r.length-(b||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[o,c,l,u.yy,m[1],s,r].concat(h))))return k;b&&(n=n.slice(0,-1*b*2),s=s.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[m[1]][0]),s.push(M.$),r.push(M._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},c={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\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:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};function h(){this.yy={}}return l.lexer=c,h.prototype=l,l.Parser=h,new h}());a.parser=a;const o=a;let l="";const c=[],h=[],y=[],u=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},p={getConfig:()=>(0,i.c)().journey,clear:function(){c.length=0,h.length=0,l="",y.length=0,(0,i.t)()},setDiagramTitle:i.q,getDiagramTitle:i.r,setAccTitle:i.s,getAccTitle:i.g,setAccDescription:i.b,getAccDescription:i.a,addSection:function(t){l=t,c.push(t)},getSections:function(){return c},getTasks:function(){let t=u();let e=0;for(;!t&&e<100;)t=u(),e++;return h.push(...y),h},addTask:function(t,e){const n=e.substr(1).split(":");let i=0,s=[];1===n.length?(i=Number(n[0]),s=[]):(i=Number(n[0]),s=n[1].split(","));const r=s.map((t=>t.trim())),a={section:l,type:l,people:r,task:t,score:i};y.push(a)},addTaskOrg:function(t){const e={section:l,type:l,description:t,task:t,classes:[]};h.push(e)},getActors:function(){return function(){const t=[];return h.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()}()}},d=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`,f=function(t,e){return(0,r.d)(t,e)},g=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},x=function(t,e){return(0,r.f)(t,e)};let m=-1;const k=function(){function t(t,e,n,s,r,a,o,l){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",l).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,l,c){const{taskFontSize:h,taskFontFamily:y}=l,u=t.split(/<br\s*\/?>/gi);for(let p=0;p<u.length;p++){const t=p*h-h*(u.length-1)/2,l=e.append("text").attr("x",n+r/2).attr("y",s).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",y);l.append("tspan").attr("x",n+r/2).attr("dy",t).text(u[p]),l.attr("y",s+a/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,o)}}function n(t,n,s,r,a,o,l,c){const h=n.append("switch"),y=h.append("foreignObject").attr("x",s).attr("y",r).attr("width",a).attr("height",o).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");y.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,s,r,a,o,l,c),i(y,l)}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}}(),_=g,b=function(t,e,n){const i=t.append("g"),s=(0,r.g)();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=n.width*e.taskCount+n.diagramMarginX*(e.taskCount-1),s.height=n.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,f(i,s),k(n)(e.text,i,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},n,e.colour)},v=x,$=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");m++;a.append("line").attr("id","task"+m).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"),r=t.append("g");r.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"),r.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)+")")}(r):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)+")")}(r):r.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 o=(0,r.g)();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,f(a,o);let l=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:l,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};g(a,i),l+=10})),k(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},w=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")},M={};const E=(0,i.c)().journey,T=E.leftMargin,S={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,s){const r=(0,i.c)().journey,a=this;let o=0;var l;this.sequenceItems.forEach((function(i){o++;const c=a.sequenceItems.length-o+1;a.updateVal(i,"starty",e-c*r.boxMargin,Math.min),a.updateVal(i,"stopy",s+c*r.boxMargin,Math.max),a.updateVal(S.data,"startx",t-c*r.boxMargin,Math.min),a.updateVal(S.data,"stopx",n+c*r.boxMargin,Math.max),"activation"!==l&&(a.updateVal(i,"startx",t-c*r.boxMargin,Math.min),a.updateVal(i,"stopx",n+c*r.boxMargin,Math.max),a.updateVal(S.data,"starty",e-c*r.boxMargin,Math.min),a.updateVal(S.data,"stopy",s+c*r.boxMargin,Math.max))}))},insert:function(t,e,n,i){const s=Math.min(t,n),r=Math.max(t,n),a=Math.min(e,i),o=Math.max(e,i);this.updateVal(S.data,"startx",s,Math.min),this.updateVal(S.data,"starty",a,Math.min),this.updateVal(S.data,"stopx",r,Math.max),this.updateVal(S.data,"stopy",o,Math.max),this.updateBounds(s,a,r,o)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},A=E.sectionFills,I=E.sectionColours,P=function(t,e,n){const s=(0,i.c)().journey;let r="";const a=n+(2*s.height+s.diagramMarginY);let o=0,l="#CCC",c="black",h=0;for(const[i,y]of e.entries()){if(r!==y.section){l=A[o%A.length],h=o%A.length,c=I[o%I.length];let n=0;const a=y.section;for(let t=i;t<e.length&&e[t].section==a;t++)n+=1;const u={x:i*s.taskMargin+i*s.width+T,y:50,text:y.section,fill:l,num:h,colour:c,taskCount:n};b(t,u,s),r=y.section,o++}const n=y.people.reduce(((t,e)=>(M[e]&&(t[e]=M[e]),t)),{});y.x=i*s.taskMargin+i*s.width+T,y.y=a,y.width=s.diagramMarginX,y.height=s.diagramMarginY,y.colour=c,y.fill=l,y.num=h,y.actors=n,$(t,y,s),S.insert(y.x,y.y,y.x+y.width+s.taskMargin,450)}},C={setConf:function(t){Object.keys(t).forEach((function(e){E[e]=t[e]}))},draw:function(t,e,n,r){const a=(0,i.c)().journey,o=(0,i.c)().securityLevel;let l;"sandbox"===o&&(l=(0,s.Ys)("#i"+e));const c="sandbox"===o?(0,s.Ys)(l.nodes()[0].contentDocument.body):(0,s.Ys)("body");S.init();const h=c.select("#"+e);w(h);const y=r.db.getTasks(),u=r.db.getDiagramTitle(),p=r.db.getActors();for(const i in M)delete M[i];let d=0;p.forEach((t=>{M[t]={color:a.actorColours[d%a.actorColours.length],position:d},d++})),function(t){const e=(0,i.c)().journey;let n=60;Object.keys(M).forEach((i=>{const s=M[i].color,r={cx:20,cy:n,r:7,fill:s,stroke:"#000",pos:M[i].position};_(t,r);const a={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};v(t,a),n+=20}))}(h),S.insert(0,0,T,50*Object.keys(M).length),P(h,y,0);const f=S.getBounds();u&&h.append("text").text(u).attr("x",T).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const g=f.stopy-f.starty+2*a.diagramMarginY,x=T+f.stopx+2*a.diagramMarginX;(0,i.i)(h,g,x,a.useMaxWidth),h.append("line").attr("x1",T).attr("y1",4*a.height).attr("x2",x-T-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const m=u?70:0;h.attr("viewBox",`${f.startx} -25 ${x} ${g+m}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",g+m+25)}},j={parser:o,db:p,renderer:C,styles:d,init:t=>{C.setConf(t.journey),p.clear()}}},3317:(t,e,n)=>{n.d(e,{a:()=>a,b:()=>c,c:()=>l,d:()=>r,e:()=>y,f:()=>o,g:()=>h});var i=n(7967),s=n(5322);const r=(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),void 0!==e.rx&&n.attr("rx",e.rx),void 0!==e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const i in e.attrs)n.attr(i,e.attrs[i]);return void 0!==e.class&&n.attr("class",e.class),n},a=(t,e)=>{const n={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};r(t,n).lower()},o=(t,e)=>{const n=e.text.replace(s.H," "),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 r=i.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(n),i},l=(t,e,n,s)=>{const r=t.append("image");r.attr("x",e),r.attr("y",n);const a=(0,i.Nm)(s);r.attr("xlink:href",a)},c=(t,e,n,s)=>{const r=t.append("use");r.attr("x",e),r.attr("y",n);const a=(0,i.Nm)(s);r.attr("xlink:href",`#${a}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),y=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/2183.695e6dce.js b/assets/js/2183.695e6dce.js new file mode 100644 index 0000000..a135df2 --- /dev/null +++ b/assets/js/2183.695e6dce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2183],{52183:(t,e,n)=>{n.d(e,{diagram:()=>j});var i=n(85322),s=n(64218),r=n(43317),a=(n(27484),n(17967),n(27856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,11,12,14,16,17,18],n=[1,9],i=[1,10],s=[1,11],r=[1,12],a=[1,13],o=[1,14],l={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 9:this.$=r[o].trim(),i.setAccTitle(this.$);break;case 10:case 11:this.$=r[o].trim(),i.setAccDescription(this.$);break;case 12:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 13:i.addTask(r[o-1],r[o]),this.$="task"}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:s,16:r,17:a,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:n,12:i,14:s,16:r,17:a,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},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="",l=0,c=0,h=r.slice.call(arguments,1),y=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);y.setInput(t,u.yy),u.yy.lexer=y,u.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var d=y.yylloc;r.push(d);var f=y.options&&y.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,x,m,k,_,b,v,$,w,M={};;){if(x=n[n.length-1],this.defaultActions[x]?m=this.defaultActions[x]:(null==g&&(w=void 0,"number"!=typeof(w=i.pop()||y.lex()||1)&&(w instanceof Array&&(w=(i=w).pop()),w=e.symbols_[w]||w),g=w),m=a[x]&&a[x][g]),void 0===m||!m.length||!m[0]){var E="";for(_ in $=[],a[x])this.terminals_[_]&&_>2&&$.push("'"+this.terminals_[_]+"'");E=y.showPosition?"Parse error on line "+(l+1)+":\n"+y.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(E,{text:y.match,token:this.terminals_[g]||g,line:y.yylineno,loc:d,expected:$})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+g);switch(m[0]){case 1:n.push(g),s.push(y.yytext),r.push(y.yylloc),n.push(m[1]),g=null,c=y.yyleng,o=y.yytext,l=y.yylineno,d=y.yylloc;break;case 2:if(b=this.productions_[m[1]][1],M.$=s[s.length-b],M._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},f&&(M._$.range=[r[r.length-(b||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(M,[o,c,l,u.yy,m[1],s,r].concat(h))))return k;b&&(n=n.slice(0,-1*b*2),s=s.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[m[1]][0]),s.push(M.$),r.push(M._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},c={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\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:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};function h(){this.yy={}}return l.lexer=c,h.prototype=l,l.Parser=h,new h}());a.parser=a;const o=a;let l="";const c=[],h=[],y=[],u=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},p={getConfig:()=>(0,i.c)().journey,clear:function(){c.length=0,h.length=0,l="",y.length=0,(0,i.t)()},setDiagramTitle:i.q,getDiagramTitle:i.r,setAccTitle:i.s,getAccTitle:i.g,setAccDescription:i.b,getAccDescription:i.a,addSection:function(t){l=t,c.push(t)},getSections:function(){return c},getTasks:function(){let t=u();let e=0;for(;!t&&e<100;)t=u(),e++;return h.push(...y),h},addTask:function(t,e){const n=e.substr(1).split(":");let i=0,s=[];1===n.length?(i=Number(n[0]),s=[]):(i=Number(n[0]),s=n[1].split(","));const r=s.map((t=>t.trim())),a={section:l,type:l,people:r,task:t,score:i};y.push(a)},addTaskOrg:function(t){const e={section:l,type:l,description:t,task:t,classes:[]};h.push(e)},getActors:function(){return function(){const t=[];return h.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()}()}},d=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`,f=function(t,e){return(0,r.d)(t,e)},g=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},x=function(t,e){return(0,r.f)(t,e)};let m=-1;const k=function(){function t(t,e,n,s,r,a,o,l){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",l).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,l,c){const{taskFontSize:h,taskFontFamily:y}=l,u=t.split(/<br\s*\/?>/gi);for(let p=0;p<u.length;p++){const t=p*h-h*(u.length-1)/2,l=e.append("text").attr("x",n+r/2).attr("y",s).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",y);l.append("tspan").attr("x",n+r/2).attr("dy",t).text(u[p]),l.attr("y",s+a/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,o)}}function n(t,n,s,r,a,o,l,c){const h=n.append("switch"),y=h.append("foreignObject").attr("x",s).attr("y",r).attr("width",a).attr("height",o).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");y.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,s,r,a,o,l,c),i(y,l)}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}}(),_=g,b=function(t,e,n){const i=t.append("g"),s=(0,r.g)();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=n.width*e.taskCount+n.diagramMarginX*(e.taskCount-1),s.height=n.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,f(i,s),k(n)(e.text,i,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},n,e.colour)},v=x,$=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");m++;a.append("line").attr("id","task"+m).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"),r=t.append("g");r.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"),r.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)+")")}(r):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)+")")}(r):r.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 o=(0,r.g)();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,f(a,o);let l=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:l,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};g(a,i),l+=10})),k(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},w=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")},M={};const E=(0,i.c)().journey,T=E.leftMargin,S={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,s){const r=(0,i.c)().journey,a=this;let o=0;var l;this.sequenceItems.forEach((function(i){o++;const c=a.sequenceItems.length-o+1;a.updateVal(i,"starty",e-c*r.boxMargin,Math.min),a.updateVal(i,"stopy",s+c*r.boxMargin,Math.max),a.updateVal(S.data,"startx",t-c*r.boxMargin,Math.min),a.updateVal(S.data,"stopx",n+c*r.boxMargin,Math.max),"activation"!==l&&(a.updateVal(i,"startx",t-c*r.boxMargin,Math.min),a.updateVal(i,"stopx",n+c*r.boxMargin,Math.max),a.updateVal(S.data,"starty",e-c*r.boxMargin,Math.min),a.updateVal(S.data,"stopy",s+c*r.boxMargin,Math.max))}))},insert:function(t,e,n,i){const s=Math.min(t,n),r=Math.max(t,n),a=Math.min(e,i),o=Math.max(e,i);this.updateVal(S.data,"startx",s,Math.min),this.updateVal(S.data,"starty",a,Math.min),this.updateVal(S.data,"stopx",r,Math.max),this.updateVal(S.data,"stopy",o,Math.max),this.updateBounds(s,a,r,o)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},A=E.sectionFills,I=E.sectionColours,P=function(t,e,n){const s=(0,i.c)().journey;let r="";const a=n+(2*s.height+s.diagramMarginY);let o=0,l="#CCC",c="black",h=0;for(const[i,y]of e.entries()){if(r!==y.section){l=A[o%A.length],h=o%A.length,c=I[o%I.length];let n=0;const a=y.section;for(let t=i;t<e.length&&e[t].section==a;t++)n+=1;const u={x:i*s.taskMargin+i*s.width+T,y:50,text:y.section,fill:l,num:h,colour:c,taskCount:n};b(t,u,s),r=y.section,o++}const n=y.people.reduce(((t,e)=>(M[e]&&(t[e]=M[e]),t)),{});y.x=i*s.taskMargin+i*s.width+T,y.y=a,y.width=s.diagramMarginX,y.height=s.diagramMarginY,y.colour=c,y.fill=l,y.num=h,y.actors=n,$(t,y,s),S.insert(y.x,y.y,y.x+y.width+s.taskMargin,450)}},C={setConf:function(t){Object.keys(t).forEach((function(e){E[e]=t[e]}))},draw:function(t,e,n,r){const a=(0,i.c)().journey,o=(0,i.c)().securityLevel;let l;"sandbox"===o&&(l=(0,s.Ys)("#i"+e));const c="sandbox"===o?(0,s.Ys)(l.nodes()[0].contentDocument.body):(0,s.Ys)("body");S.init();const h=c.select("#"+e);w(h);const y=r.db.getTasks(),u=r.db.getDiagramTitle(),p=r.db.getActors();for(const i in M)delete M[i];let d=0;p.forEach((t=>{M[t]={color:a.actorColours[d%a.actorColours.length],position:d},d++})),function(t){const e=(0,i.c)().journey;let n=60;Object.keys(M).forEach((i=>{const s=M[i].color,r={cx:20,cy:n,r:7,fill:s,stroke:"#000",pos:M[i].position};_(t,r);const a={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};v(t,a),n+=20}))}(h),S.insert(0,0,T,50*Object.keys(M).length),P(h,y,0);const f=S.getBounds();u&&h.append("text").text(u).attr("x",T).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const g=f.stopy-f.starty+2*a.diagramMarginY,x=T+f.stopx+2*a.diagramMarginX;(0,i.i)(h,g,x,a.useMaxWidth),h.append("line").attr("x1",T).attr("y1",4*a.height).attr("x2",x-T-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const m=u?70:0;h.attr("viewBox",`${f.startx} -25 ${x} ${g+m}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",g+m+25)}},j={parser:o,db:p,renderer:C,styles:d,init:t=>{C.setConf(t.journey),p.clear()}}},43317:(t,e,n)=>{n.d(e,{a:()=>a,b:()=>c,c:()=>l,d:()=>r,e:()=>y,f:()=>o,g:()=>h});var i=n(17967),s=n(85322);const r=(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),void 0!==e.rx&&n.attr("rx",e.rx),void 0!==e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(const i in e.attrs)n.attr(i,e.attrs[i]);return void 0!==e.class&&n.attr("class",e.class),n},a=(t,e)=>{const n={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};r(t,n).lower()},o=(t,e)=>{const n=e.text.replace(s.H," "),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 r=i.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(n),i},l=(t,e,n,s)=>{const r=t.append("image");r.attr("x",e),r.attr("y",n);const a=(0,i.Nm)(s);r.attr("xlink:href",a)},c=(t,e,n,s)=>{const r=t.append("use");r.attr("x",e),r.attr("y",n);const a=(0,i.Nm)(s);r.attr("xlink:href",`#${a}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),y=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/22a175ec.d1e2af50.js b/assets/js/22a175ec.d1e2af50.js deleted file mode 100644 index a932882..0000000 --- a/assets/js/22a175ec.d1e2af50.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6890],{707:(e,t,i)=>{i.r(t),i.d(t,{default:()=>x});var r=i(7294),o=i(8207),s=i(6010);const n="card_n_Wj",a="contributionsContainer_vdAK",l="buttons_UAd1";var c,h;function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},d.apply(this,arguments)}const p=e=>{let{title:t,titleId:i,...o}=e;return r.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":i},o),t?r.createElement("title",{id:i},t):null,c||(c=r.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),h||(h=r.createElement("path",{d:"M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"})))};var u=i(5893);const b=e=>{let{title:t,description:i,contribution:r,repoURL:o}=e;return(0,u.jsx)("div",{className:"col col--12",children:(0,u.jsxs)("div",{className:(0,s.Z)("card",n),children:[(0,u.jsx)("div",{className:"card__header",children:(0,u.jsx)("h2",{children:t})}),(0,u.jsx)("div",{className:"card__body",children:(0,u.jsxs)("div",{className:"row",children:[(0,u.jsxs)("div",{className:"col col--6",children:[(0,u.jsx)("h6",{children:"Description"}),i]}),(0,u.jsxs)("div",{className:(0,s.Z)("col col--6",a),children:[(0,u.jsx)("h6",{children:"Contribution"}),r]})]})}),(0,u.jsx)("div",{className:"card__footer",children:(0,u.jsx)("div",{className:l,children:(0,u.jsxs)("a",{href:o,target:"_blank",className:"button button--secondary button--outline",children:[(0,u.jsx)("span",{className:"button__icon",children:(0,u.jsx)(p,{})}),"See repository"]})})})]})})},m=[{title:"tmt",description:(0,u.jsx)("p",{children:"The `tmt` tool provides a user-friendly way to work with tests. You can comfortably create new tests, safely and easily run tests across different environments, review test results, debug test code and enable tests in the CI using a consistent and concise config."}),contribution:(0,u.jsx)("p",{children:"Just a smallish contribution to the docs related to the changes implemented on the Packit side."}),repoURL:"https://github.com/teemtee/tmt"},{title:"Fedora Infrastructure Ansible",description:(0,u.jsx)("p",{children:"Collection of Ansible playbooks that powers the Fedora Infrastructure."}),contribution:(0,u.jsx)("p",{children:"I have adjusted the groups in the Bodhi playbooks after Packit has been granted the privileges to propose updates without restrictions."}),repoURL:"https://pagure.io/fedora-infra/ansible"},{title:"Bodhi",description:(0,u.jsx)("p",{children:"Bodhi is a web-system that facilitates the process of publishing updates for a Fedora-based software distribution."}),contribution:(0,u.jsx)("p",{children:"I have adjusted the client, so that it doesn't show secrets in terminal when you log in to the Bodhi via browser."}),repoURL:"https://github.com/fedora-infra/bodhi"},{title:"Gluetool Modules Collection",description:(0,u.jsxs)("p",{children:["Modules for ",(0,u.jsx)("code",{children:"gluetool"})," \u2014 a command line centric framework usable for glueing modules into a pipeline."]}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"I have proposed a possible implementation of git merging that was later on extended."}),(0,u.jsx)("li",{children:"I have tried to help out with Copr module after they deprecated older version of their API."})]}),repoURL:"https://gitlab.com/testing-farm/gluetool-modules"},{title:"Pagure",description:(0,u.jsx)("p",{children:"Pagure is a git-centered forge, python based using pygit2."}),contribution:(0,u.jsx)("p",{children:"I have added an API endpoint for reopening pull requests."}),repoURL:"https://pagure.io/pagure"},{title:"Copr",description:(0,u.jsxs)("p",{children:["RPM build system - upstream for"," ",(0,u.jsx)("a",{target:"_blank",href:"https://copr.fedorainfracloud.org/",children:"Copr"}),"."]}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"Supporting external repositories for custom SRPM build method."}),(0,u.jsxs)("li",{children:["Allowing admins of Copr repositories to build without the need to ask for explicit ",(0,u.jsx)("code",{children:"builder"})," permissions."]})]}),repoURL:"https://github.com/fedora-copr/copr"},{title:"python-gitlab",description:(0,u.jsx)("p",{children:"A python wrapper for the GitLab API."}),contribution:(0,u.jsxs)("p",{children:["I have contributed support for the ",(0,u.jsx)("code",{children:"merge_ref"})," on merge requests that hasn't been supported, yet it was present in the GitLab API."]}),repoURL:"https://github.com/python-gitlab/python-gitlab"},{title:"PatternFly React",description:(0,u.jsx)("p",{children:"A set of React components for the PatternFly project."}),contribution:(0,u.jsx)("p",{children:"When working on Packit Dashboard, I have spotted smaller bugs that were present in this project and fixed them upstream to provide better experience for our users."}),repoURL:"https://github.com/patternfly/patternfly-react"},{title:"Fira Code",description:(0,u.jsx)("p",{children:"Free monospaced font with programming ligatures."}),contribution:(0,u.jsxs)("p",{children:["I have set up a GitHub Action for building the font on each push to the default branch allowing users to install ",(0,u.jsx)("i",{children:"bleeding edge"})," ","version of the font."]}),repoURL:"https://github.com/tonsky/FiraCode"},{title:"nixpkgs",description:(0,u.jsx)("p",{children:"Nixpkgs is a collection of over 80,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution."}),contribution:(0,u.jsx)("p",{children:"When I was trying out the nixpkgs, I have tried to bump .NET Core to the latest version. My changes haven't been accepted as they required bumping of multiple more packages that depended upon the .NET Core."}),repoURL:"https://github.com/NixOS/nixpkgs"},{title:"Darcula",description:(0,u.jsx)("p",{children:"A theme for Visual Studio Code based on Darcula theme from Jetbrains IDEs."}),contribution:(0,u.jsx)("p",{children:"I have contributed support for diff files, though the project doesn't seem to be live anymore, so it hasn't been accepted as of now."}),repoURL:"https://github.com/rokoroku/vscode-theme-darcula"},{title:"Packit",description:(0,u.jsx)("p",{children:"An open source project aiming to ease the integration of your project with Fedora Linux, CentOS Stream and other distributions."}),contribution:(0,u.jsxs)("p",{children:["Have a look at my"," ",(0,u.jsx)("a",{href:"https://github.com/search?q=is%3Apr%20author%3Amfocko%20org%3Apackit&type=pullrequests",target:"_blank",children:"pull requests"}),"."]}),repoURL:"https://github.com/packit"},{title:"Snitch",description:(0,u.jsx)(u.Fragment,{children:(0,u.jsx)("p",{children:"Language agnostic tool that collects TODOs in the source code and reports them as Issues."})}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"Environment variable support for self-hosted GitLab instances"}),(0,u.jsx)("li",{children:"GitLab support"})]}),repoURL:"https://github.com/tsoding/snitch"},{title:"Karel the Robot",description:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("p",{children:["Karel the robot is in general an educational programming language for beginners, created by ",(0,u.jsx)("i",{children:"Richard E. Pattis"}),". This is implementation of ",(0,u.jsx)("i",{children:"Karel the Robot"})," for"," ",(0,u.jsx)("i",{children:"C programming language"}),"."]}),(0,u.jsxs)("p",{children:["This project is used for educational purposes at"," ",(0,u.jsx)("a",{target:"_blank",href:"https://fei.tuke.sk",children:"TUKE"}),"."]})]}),contribution:(0,u.jsx)("p",{children:"I have contributed some refactoring tips to the author of the library."}),repoURL:"https://git.kpi.fei.tuke.sk/kpi/karel-the-robot"}],g="Contributions",f="Many of my contributions to open-source projects.";function x(){return(0,u.jsx)(o.Z,{title:g,description:f,children:(0,u.jsxs)("main",{className:"container container--fluid margin-vert--lg",children:[(0,u.jsx)("h1",{children:g}),(0,u.jsx)("p",{children:f}),(0,u.jsx)("div",{className:"row",children:m.map((e=>(0,u.jsx)(b,{...e},e.project)))})]})})}}}]); \ No newline at end of file diff --git a/assets/js/22a175ec.ebe0aeb7.js b/assets/js/22a175ec.ebe0aeb7.js new file mode 100644 index 0000000..9d1adbe --- /dev/null +++ b/assets/js/22a175ec.ebe0aeb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6890],{40707:(e,t,i)=>{i.r(t),i.d(t,{default:()=>x});var r=i(67294),o=i(58207),s=i(86010);const n="card_n_Wj",a="contributionsContainer_vdAK",l="buttons_UAd1";var c,h;function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},d.apply(this,arguments)}const p=e=>{let{title:t,titleId:i,...o}=e;return r.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-labelledby":i},o),t?r.createElement("title",{id:i},t):null,c||(c=r.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),h||(h=r.createElement("path",{d:"M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"})))};var u=i(85893);const b=e=>{let{title:t,description:i,contribution:r,repoURL:o}=e;return(0,u.jsx)("div",{className:"col col--12",children:(0,u.jsxs)("div",{className:(0,s.Z)("card",n),children:[(0,u.jsx)("div",{className:"card__header",children:(0,u.jsx)("h2",{children:t})}),(0,u.jsx)("div",{className:"card__body",children:(0,u.jsxs)("div",{className:"row",children:[(0,u.jsxs)("div",{className:"col col--6",children:[(0,u.jsx)("h6",{children:"Description"}),i]}),(0,u.jsxs)("div",{className:(0,s.Z)("col col--6",a),children:[(0,u.jsx)("h6",{children:"Contribution"}),r]})]})}),(0,u.jsx)("div",{className:"card__footer",children:(0,u.jsx)("div",{className:l,children:(0,u.jsxs)("a",{href:o,target:"_blank",className:"button button--secondary button--outline",children:[(0,u.jsx)("span",{className:"button__icon",children:(0,u.jsx)(p,{})}),"See repository"]})})})]})})},m=[{title:"tmt",description:(0,u.jsx)("p",{children:"The `tmt` tool provides a user-friendly way to work with tests. You can comfortably create new tests, safely and easily run tests across different environments, review test results, debug test code and enable tests in the CI using a consistent and concise config."}),contribution:(0,u.jsx)("p",{children:"Just a smallish contribution to the docs related to the changes implemented on the Packit side."}),repoURL:"https://github.com/teemtee/tmt"},{title:"Fedora Infrastructure Ansible",description:(0,u.jsx)("p",{children:"Collection of Ansible playbooks that powers the Fedora Infrastructure."}),contribution:(0,u.jsx)("p",{children:"I have adjusted the groups in the Bodhi playbooks after Packit has been granted the privileges to propose updates without restrictions."}),repoURL:"https://pagure.io/fedora-infra/ansible"},{title:"Bodhi",description:(0,u.jsx)("p",{children:"Bodhi is a web-system that facilitates the process of publishing updates for a Fedora-based software distribution."}),contribution:(0,u.jsx)("p",{children:"I have adjusted the client, so that it doesn't show secrets in terminal when you log in to the Bodhi via browser."}),repoURL:"https://github.com/fedora-infra/bodhi"},{title:"Gluetool Modules Collection",description:(0,u.jsxs)("p",{children:["Modules for ",(0,u.jsx)("code",{children:"gluetool"})," \u2014 a command line centric framework usable for glueing modules into a pipeline."]}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"I have proposed a possible implementation of git merging that was later on extended."}),(0,u.jsx)("li",{children:"I have tried to help out with Copr module after they deprecated older version of their API."})]}),repoURL:"https://gitlab.com/testing-farm/gluetool-modules"},{title:"Pagure",description:(0,u.jsx)("p",{children:"Pagure is a git-centered forge, python based using pygit2."}),contribution:(0,u.jsx)("p",{children:"I have added an API endpoint for reopening pull requests."}),repoURL:"https://pagure.io/pagure"},{title:"Copr",description:(0,u.jsxs)("p",{children:["RPM build system - upstream for"," ",(0,u.jsx)("a",{target:"_blank",href:"https://copr.fedorainfracloud.org/",children:"Copr"}),"."]}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"Supporting external repositories for custom SRPM build method."}),(0,u.jsxs)("li",{children:["Allowing admins of Copr repositories to build without the need to ask for explicit ",(0,u.jsx)("code",{children:"builder"})," permissions."]})]}),repoURL:"https://github.com/fedora-copr/copr"},{title:"python-gitlab",description:(0,u.jsx)("p",{children:"A python wrapper for the GitLab API."}),contribution:(0,u.jsxs)("p",{children:["I have contributed support for the ",(0,u.jsx)("code",{children:"merge_ref"})," on merge requests that hasn't been supported, yet it was present in the GitLab API."]}),repoURL:"https://github.com/python-gitlab/python-gitlab"},{title:"PatternFly React",description:(0,u.jsx)("p",{children:"A set of React components for the PatternFly project."}),contribution:(0,u.jsx)("p",{children:"When working on Packit Dashboard, I have spotted smaller bugs that were present in this project and fixed them upstream to provide better experience for our users."}),repoURL:"https://github.com/patternfly/patternfly-react"},{title:"Fira Code",description:(0,u.jsx)("p",{children:"Free monospaced font with programming ligatures."}),contribution:(0,u.jsxs)("p",{children:["I have set up a GitHub Action for building the font on each push to the default branch allowing users to install ",(0,u.jsx)("i",{children:"bleeding edge"})," ","version of the font."]}),repoURL:"https://github.com/tonsky/FiraCode"},{title:"nixpkgs",description:(0,u.jsx)("p",{children:"Nixpkgs is a collection of over 80,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution."}),contribution:(0,u.jsx)("p",{children:"When I was trying out the nixpkgs, I have tried to bump .NET Core to the latest version. My changes haven't been accepted as they required bumping of multiple more packages that depended upon the .NET Core."}),repoURL:"https://github.com/NixOS/nixpkgs"},{title:"Darcula",description:(0,u.jsx)("p",{children:"A theme for Visual Studio Code based on Darcula theme from Jetbrains IDEs."}),contribution:(0,u.jsx)("p",{children:"I have contributed support for diff files, though the project doesn't seem to be live anymore, so it hasn't been accepted as of now."}),repoURL:"https://github.com/rokoroku/vscode-theme-darcula"},{title:"Packit",description:(0,u.jsx)("p",{children:"An open source project aiming to ease the integration of your project with Fedora Linux, CentOS Stream and other distributions."}),contribution:(0,u.jsxs)("p",{children:["Have a look at my"," ",(0,u.jsx)("a",{href:"https://github.com/search?q=is%3Apr%20author%3Amfocko%20org%3Apackit&type=pullrequests",target:"_blank",children:"pull requests"}),"."]}),repoURL:"https://github.com/packit"},{title:"Snitch",description:(0,u.jsx)(u.Fragment,{children:(0,u.jsx)("p",{children:"Language agnostic tool that collects TODOs in the source code and reports them as Issues."})}),contribution:(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:"Environment variable support for self-hosted GitLab instances"}),(0,u.jsx)("li",{children:"GitLab support"})]}),repoURL:"https://github.com/tsoding/snitch"},{title:"Karel the Robot",description:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("p",{children:["Karel the robot is in general an educational programming language for beginners, created by ",(0,u.jsx)("i",{children:"Richard E. Pattis"}),". This is implementation of ",(0,u.jsx)("i",{children:"Karel the Robot"})," for"," ",(0,u.jsx)("i",{children:"C programming language"}),"."]}),(0,u.jsxs)("p",{children:["This project is used for educational purposes at"," ",(0,u.jsx)("a",{target:"_blank",href:"https://fei.tuke.sk",children:"TUKE"}),"."]})]}),contribution:(0,u.jsx)("p",{children:"I have contributed some refactoring tips to the author of the library."}),repoURL:"https://git.kpi.fei.tuke.sk/kpi/karel-the-robot"}],g="Contributions",f="Many of my contributions to open-source projects.";function x(){return(0,u.jsx)(o.Z,{title:g,description:f,children:(0,u.jsxs)("main",{className:"container container--fluid margin-vert--lg",children:[(0,u.jsx)("h1",{children:g}),(0,u.jsx)("p",{children:f}),(0,u.jsx)("div",{className:"row",children:m.map((e=>(0,u.jsx)(b,{...e},e.project)))})]})})}}}]); \ No newline at end of file diff --git a/assets/js/240.8190aace.js b/assets/js/240.8190aace.js deleted file mode 100644 index 0d84363..0000000 --- a/assets/js/240.8190aace.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[240],{240:(t,n,e)=>{e.d(n,{diagram:()=>H});var i=e(5322),s=e(4218);function r(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function o(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function c(t,n){let e=0;if(void 0===n)for(let i of t)(i=+i)&&(e+=i);else{let i=-1;for(let s of t)(s=+n(s,++i,t))&&(e+=s)}return e}function h(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e<i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e<s||void 0===e&&s>=s)&&(e=s)}return e}function a(t){return function(){return t}}function u(t,n){return y(t.source,n.source)||t.index-n.index}function f(t,n){return y(t.target,n.target)||t.index-n.index}function y(t,n){return t.y0-n.y0}function d(t){return t.value}function p(t){return t.index}function g(t){return t.nodes}function _(t){return t.links}function x(t,n){const e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function k({nodes:t}){for(const n of t){let t=n.y0,e=t;for(const i of n.sourceLinks)i.y0=t+i.width/2,t+=i.width;for(const i of n.targetLinks)i.y1=e+i.width/2,e+=i.width}}function m(){let t,n,e,i=0,s=0,o=1,m=1,v=24,b=8,w=p,E=l,L=g,A=_,S=6;function M(){const l={nodes:L.apply(null,arguments),links:A.apply(null,arguments)};return function({nodes:t,links:n}){for(const[e,s]of t.entries())s.index=e,s.sourceLinks=[],s.targetLinks=[];const i=new Map(t.map(((n,e)=>[w(n,e,t),n])));for(const[e,s]of n.entries()){s.index=e;let{source:t,target:n}=s;"object"!=typeof t&&(t=s.source=x(i,t)),"object"!=typeof n&&(n=s.target=x(i,n)),t.sourceLinks.push(s),n.targetLinks.push(s)}if(null!=e)for(const{sourceLinks:s,targetLinks:r}of t)s.sort(e),r.sort(e)}(l),function({nodes:t}){for(const n of t)n.value=void 0===n.fixedValue?Math.max(c(n.sourceLinks,d),c(n.targetLinks,d)):n.fixedValue}(l),function({nodes:t}){const n=t.length;let e=new Set(t),i=new Set,s=0;for(;e.size;){for(const t of e){t.depth=s;for(const{target:n}of t.sourceLinks)i.add(n)}if(++s>n)throw new Error("circular link");e=i,i=new Set}}(l),function({nodes:t}){const n=t.length;let e=new Set(t),i=new Set,s=0;for(;e.size;){for(const t of e){t.height=s;for(const{source:n}of t.targetLinks)i.add(n)}if(++s>n)throw new Error("circular link");e=i,i=new Set}}(l),function(e){const l=function({nodes:t}){const e=h(t,(t=>t.depth))+1,s=(o-i-v)/(e-1),r=new Array(e);for(const n of t){const t=Math.max(0,Math.min(e-1,Math.floor(E.call(null,n,e))));n.layer=t,n.x0=i+t*s,n.x1=n.x0+v,r[t]?r[t].push(n):r[t]=[n]}if(n)for(const i of r)i.sort(n);return r}(e);t=Math.min(b,(m-s)/(h(l,(t=>t.length))-1)),function(n){const e=r(n,(n=>(m-s-(n.length-1)*t)/c(n,d)));for(const i of n){let n=s;for(const s of i){s.y0=n,s.y1=n+s.value*e,n=s.y1+t;for(const t of s.sourceLinks)t.width=t.value*e}n=(m-n+t)/(i.length+1);for(let t=0;t<i.length;++t){const e=i[t];e.y0+=n*(t+1),e.y1+=n*(t+1)}N(i)}}(l);for(let t=0;t<S;++t){const n=Math.pow(.99,t),e=Math.max(1-n,(t+1)/S);T(l,n,e),I(l,n,e)}}(l),k(l),l}function I(t,e,i){for(let s=1,r=t.length;s<r;++s){const r=t[s];for(const t of r){let n=0,i=0;for(const{source:e,value:r}of t.targetLinks){let s=r*(t.layer-e.layer);n+=$(e,t)*s,i+=s}if(!(i>0))continue;let s=(n/i-t.y0)*e;t.y0+=s,t.y1+=s,D(t)}void 0===n&&r.sort(y),O(r,i)}}function T(t,e,i){for(let s=t.length-2;s>=0;--s){const r=t[s];for(const t of r){let n=0,i=0;for(const{target:e,value:r}of t.sourceLinks){let s=r*(e.layer-t.layer);n+=j(t,e)*s,i+=s}if(!(i>0))continue;let s=(n/i-t.y0)*e;t.y0+=s,t.y1+=s,D(t)}void 0===n&&r.sort(y),O(r,i)}}function O(n,e){const i=n.length>>1,r=n[i];C(n,r.y0-t,i-1,e),P(n,r.y1+t,i+1,e),C(n,m,n.length-1,e),P(n,s,0,e)}function P(n,e,i,s){for(;i<n.length;++i){const r=n[i],o=(e-r.y0)*s;o>1e-6&&(r.y0+=o,r.y1+=o),e=r.y1+t}}function C(n,e,i,s){for(;i>=0;--i){const r=n[i],o=(r.y1-e)*s;o>1e-6&&(r.y0-=o,r.y1-=o),e=r.y0-t}}function D({sourceLinks:t,targetLinks:n}){if(void 0===e){for(const{source:{sourceLinks:t}}of n)t.sort(f);for(const{target:{targetLinks:n}}of t)n.sort(u)}}function N(t){if(void 0===e)for(const{sourceLinks:n,targetLinks:e}of t)n.sort(f),e.sort(u)}function $(n,e){let i=n.y0-(n.sourceLinks.length-1)*t/2;for(const{target:s,width:r}of n.sourceLinks){if(s===e)break;i+=r+t}for(const{source:t,width:s}of e.targetLinks){if(t===n)break;i-=s}return i}function j(n,e){let i=e.y0-(e.targetLinks.length-1)*t/2;for(const{source:s,width:r}of e.targetLinks){if(s===n)break;i+=r+t}for(const{target:t,width:s}of n.sourceLinks){if(t===e)break;i-=s}return i}return M.update=function(t){return k(t),t},M.nodeId=function(t){return arguments.length?(w="function"==typeof t?t:a(t),M):w},M.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:a(t),M):E},M.nodeSort=function(t){return arguments.length?(n=t,M):n},M.nodeWidth=function(t){return arguments.length?(v=+t,M):v},M.nodePadding=function(n){return arguments.length?(b=t=+n,M):b},M.nodes=function(t){return arguments.length?(L="function"==typeof t?t:a(t),M):L},M.links=function(t){return arguments.length?(A="function"==typeof t?t:a(t),M):A},M.linkSort=function(t){return arguments.length?(e=t,M):e},M.size=function(t){return arguments.length?(i=s=0,o=+t[0],m=+t[1],M):[o-i,m-s]},M.extent=function(t){return arguments.length?(i=+t[0][0],o=+t[1][0],s=+t[0][1],m=+t[1][1],M):[[i,s],[o,m]]},M.iterations=function(t){return arguments.length?(S=+t,M):S},M}var v=Math.PI,b=2*v,w=1e-6,E=b-w;function L(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function A(){return new L}L.prototype=A.prototype={constructor:L,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,i){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+i)},bezierCurveTo:function(t,n,e,i,s,r){this._+="C"+ +t+","+ +n+","+ +e+","+ +i+","+(this._x1=+s)+","+(this._y1=+r)},arcTo:function(t,n,e,i,s){t=+t,n=+n,e=+e,i=+i,s=+s;var r=this._x1,o=this._y1,l=e-t,c=i-n,h=r-t,a=o-n,u=h*h+a*a;if(s<0)throw new Error("negative radius: "+s);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(u>w)if(Math.abs(a*l-c*h)>w&&s){var f=e-r,y=i-o,d=l*l+c*c,p=f*f+y*y,g=Math.sqrt(d),_=Math.sqrt(u),x=s*Math.tan((v-Math.acos((d+u-p)/(2*g*_)))/2),k=x/_,m=x/g;Math.abs(k-1)>w&&(this._+="L"+(t+k*h)+","+(n+k*a)),this._+="A"+s+","+s+",0,0,"+ +(a*f>h*y)+","+(this._x1=t+m*l)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,i,s,r){t=+t,n=+n,r=!!r;var o=(e=+e)*Math.cos(i),l=e*Math.sin(i),c=t+o,h=n+l,a=1^r,u=r?i-s:s-i;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+h:(Math.abs(this._x1-c)>w||Math.abs(this._y1-h)>w)&&(this._+="L"+c+","+h),e&&(u<0&&(u=u%b+b),u>E?this._+="A"+e+","+e+",0,1,"+a+","+(t-o)+","+(n-l)+"A"+e+","+e+",0,1,"+a+","+(this._x1=c)+","+(this._y1=h):u>w&&(this._+="A"+e+","+e+",0,"+ +(u>=v)+","+a+","+(this._x1=t+e*Math.cos(s))+","+(this._y1=n+e*Math.sin(s))))},rect:function(t,n,e,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +i+"h"+-e+"Z"},toString:function(){return this._}};const S=A;var M=Array.prototype.slice;function I(t){return function(){return t}}function T(t){return t[0]}function O(t){return t[1]}function P(t){return t.source}function C(t){return t.target}function D(t){var n=P,e=C,i=T,s=O,r=null;function o(){var o,l=M.call(arguments),c=n.apply(this,l),h=e.apply(this,l);if(r||(r=o=S()),t(r,+i.apply(this,(l[0]=c,l)),+s.apply(this,l),+i.apply(this,(l[0]=h,l)),+s.apply(this,l)),o)return r=null,o+""||null}return o.source=function(t){return arguments.length?(n=t,o):n},o.target=function(t){return arguments.length?(e=t,o):e},o.x=function(t){return arguments.length?(i="function"==typeof t?t:I(+t),o):i},o.y=function(t){return arguments.length?(s="function"==typeof t?t:I(+t),o):s},o.context=function(t){return arguments.length?(r=null==t?null:t,o):r},o}function N(t,n,e,i,s){t.moveTo(n,e),t.bezierCurveTo(n=(n+i)/2,e,n,s,i,s)}function $(t){return[t.source.x1,t.y0]}function j(t){return[t.target.x0,t.y1]}function z(){return D(N).source($).target(j)}e(7484),e(7967),e(7856);var Y=function(){var t=function(t,n,e,i){for(e=e||{},i=t.length;i--;e[t[i]]=n);return e},n=[1,9],e=[1,10],i=[1,5,10,12],s={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(t,n,e,i,s,r,o){var l=r.length-1;switch(s){case 7:const t=i.findOrCreateNode(r[l-4].trim().replaceAll('""','"')),n=i.findOrCreateNode(r[l-2].trim().replaceAll('""','"')),e=parseFloat(r[l].trim());i.addLink(t,n,e);break;case 8:case 9:case 11:this.$=r[l];break;case 10:this.$=r[l-1]}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:e},{1:[2,6],7:11,10:[1,12]},t(e,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(i,[2,8]),t(i,[2,9]),{19:[1,16]},t(i,[2,11]),{1:[2,1]},{1:[2,5]},t(e,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:e},{15:18,16:7,17:8,18:n,20:e},{18:[1,19]},t(e,[2,3]),{12:[1,20]},t(i,[2,10]),{15:21,16:7,17:8,18:n,20:e},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(t,n){if(!n.recoverable){var e=new Error(t);throw e.hash=n,e}this.trace(t)},parse:function(t){var n=this,e=[0],i=[],s=[null],r=[],o=this.table,l="",c=0,h=0,a=r.slice.call(arguments,1),u=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);u.setInput(t,f.yy),f.yy.lexer=u,f.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;r.push(d);var p=u.options&&u.options.ranges;"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,_,x,k,m,v,b,w,E,L={};;){if(_=e[e.length-1],this.defaultActions[_]?x=this.defaultActions[_]:(null==g&&(E=void 0,"number"!=typeof(E=i.pop()||u.lex()||1)&&(E instanceof Array&&(E=(i=E).pop()),E=n.symbols_[E]||E),g=E),x=o[_]&&o[_][g]),void 0===x||!x.length||!x[0]){var A="";for(m in w=[],o[_])this.terminals_[m]&&m>2&&w.push("'"+this.terminals_[m]+"'");A=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:d,expected:w})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+g);switch(x[0]){case 1:e.push(g),s.push(u.yytext),r.push(u.yylloc),e.push(x[1]),g=null,h=u.yyleng,l=u.yytext,c=u.yylineno,d=u.yylloc;break;case 2:if(v=this.productions_[x[1]][1],L.$=s[s.length-v],L._$={first_line:r[r.length-(v||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(v||1)].first_column,last_column:r[r.length-1].last_column},p&&(L._$.range=[r[r.length-(v||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(L,[l,h,c,f.yy,x[1],s,r].concat(a))))return k;v&&(e=e.slice(0,-1*v*2),s=s.slice(0,-1*v),r=r.slice(0,-1*v)),e.push(this.productions_[x[1]][0]),s.push(L.$),r.push(L._$),b=o[e[e.length-2]][e[e.length-1]],e.push(b);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||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 n=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;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),e.length-1&&(this.yylineno-=e.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:e?(e.length===i.length?this.yylloc.first_column:0)+i[i.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-n]),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(),n=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+n+"^"},test_match:function(t,n){var e,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],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;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,n,e,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;r<s.length;r++)if((e=this._input.match(this.rules[s[r]]))&&(!n||e[0].length>n[0].length)){if(n=e,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,s[r])))return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?!1!==(t=this.test_match(n,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:{easy_keword_rules:!0},performAction:function(t,n,e,i){switch(e){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};function o(){this.yy={}}return s.lexer=r,o.prototype=s,s.Parser=o,new o}();Y.parser=Y;const F=Y;let U=[],W=[],q={};class G{constructor(t,n,e=0){this.source=t,this.target=n,this.value=e}}class K{constructor(t){this.ID=t}}const V={nodesMap:q,getConfig:()=>(0,i.c)().sankey,getNodes:()=>W,getLinks:()=>U,getGraph:()=>({nodes:W.map((t=>({id:t.ID}))),links:U.map((t=>({source:t.source.ID,target:t.target.ID,value:t.value})))}),addLink:(t,n,e)=>{U.push(new G(t,n,e))},findOrCreateNode:t=>(t=i.e.sanitizeText(t,(0,i.c)()),q[t]||(q[t]=new K(t),W.push(q[t])),q[t]),getAccTitle:i.g,setAccTitle:i.s,getAccDescription:i.a,setAccDescription:i.b,getDiagramTitle:i.r,setDiagramTitle:i.q,clear:()=>{U=[],W=[],q={},(0,i.t)()}},X=class t{static next(n){return new t(n+ ++t.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}};X.count=0;let Q=X;const B={left:function(t){return t.depth},right:function(t,n){return n-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?r(t.sourceLinks,o)-1:0},justify:l},R={draw:function(t,n,e,r){const{securityLevel:o,sankey:l}=(0,i.c)(),c=i.I.sankey;let h;"sandbox"===o&&(h=(0,s.Ys)("#i"+n));const a="sandbox"===o?(0,s.Ys)(h.nodes()[0].contentDocument.body):(0,s.Ys)("body"),u="sandbox"===o?a.select(`[id="${n}"]`):(0,s.Ys)(`[id="${n}"]`),f=(null==l?void 0:l.width)??c.width,y=(null==l?void 0:l.height)??c.width,d=(null==l?void 0:l.useMaxWidth)??c.useMaxWidth,p=(null==l?void 0:l.nodeAlignment)??c.nodeAlignment,g=(null==l?void 0:l.prefix)??c.prefix,_=(null==l?void 0:l.suffix)??c.suffix,x=(null==l?void 0:l.showValues)??c.showValues;(0,i.i)(u,y,f,d);const k=r.db.getGraph(),v=B[p];m().nodeId((t=>t.id)).nodeWidth(10).nodePadding(10+(x?15:0)).nodeAlign(v).extent([[0,0],[f,y]])(k);const b=(0,s.PKp)(s.K2I);u.append("g").attr("class","nodes").selectAll(".node").data(k.nodes).join("g").attr("class","node").attr("id",(t=>(t.uid=Q.next("node-")).id)).attr("transform",(function(t){return"translate("+t.x0+","+t.y0+")"})).attr("x",(t=>t.x0)).attr("y",(t=>t.y0)).append("rect").attr("height",(t=>t.y1-t.y0)).attr("width",(t=>t.x1-t.x0)).attr("fill",(t=>b(t.id)));u.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(k.nodes).join("text").attr("x",(t=>t.x0<f/2?t.x1+6:t.x0-6)).attr("y",(t=>(t.y1+t.y0)/2)).attr("dy",(x?"0":"0.35")+"em").attr("text-anchor",(t=>t.x0<f/2?"start":"end")).text((({id:t,value:n})=>x?`${t}\n${g}${Math.round(100*n)/100}${_}`:t));const w=u.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(k.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),E=(null==l?void 0:l.linkColor)||"gradient";if("gradient"===E){const t=w.append("linearGradient").attr("id",(t=>(t.uid=Q.next("linearGradient-")).id)).attr("gradientUnits","userSpaceOnUse").attr("x1",(t=>t.source.x1)).attr("x2",(t=>t.target.x0));t.append("stop").attr("offset","0%").attr("stop-color",(t=>b(t.source.id))),t.append("stop").attr("offset","100%").attr("stop-color",(t=>b(t.target.id)))}let L;switch(E){case"gradient":L=t=>t.uid;break;case"source":L=t=>b(t.source.id);break;case"target":L=t=>b(t.target.id);break;default:L=E}w.append("path").attr("d",z()).attr("stroke",L).attr("stroke-width",(t=>Math.max(1,t.width)))}},Z=F.parse.bind(F);F.parse=t=>Z((t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim())(t));const H={parser:F,db:V,renderer:R}}}]); \ No newline at end of file diff --git a/assets/js/240.962c2c3a.js b/assets/js/240.962c2c3a.js new file mode 100644 index 0000000..70b11c0 --- /dev/null +++ b/assets/js/240.962c2c3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[240],{10240:(t,n,e)=>{e.d(n,{diagram:()=>H});var i=e(85322),s=e(64218);function r(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function o(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function c(t,n){let e=0;if(void 0===n)for(let i of t)(i=+i)&&(e+=i);else{let i=-1;for(let s of t)(s=+n(s,++i,t))&&(e+=s)}return e}function h(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e<i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e<s||void 0===e&&s>=s)&&(e=s)}return e}function a(t){return function(){return t}}function u(t,n){return y(t.source,n.source)||t.index-n.index}function f(t,n){return y(t.target,n.target)||t.index-n.index}function y(t,n){return t.y0-n.y0}function d(t){return t.value}function p(t){return t.index}function g(t){return t.nodes}function _(t){return t.links}function x(t,n){const e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function k({nodes:t}){for(const n of t){let t=n.y0,e=t;for(const i of n.sourceLinks)i.y0=t+i.width/2,t+=i.width;for(const i of n.targetLinks)i.y1=e+i.width/2,e+=i.width}}function m(){let t,n,e,i=0,s=0,o=1,m=1,v=24,b=8,w=p,E=l,L=g,A=_,S=6;function M(){const l={nodes:L.apply(null,arguments),links:A.apply(null,arguments)};return function({nodes:t,links:n}){for(const[e,s]of t.entries())s.index=e,s.sourceLinks=[],s.targetLinks=[];const i=new Map(t.map(((n,e)=>[w(n,e,t),n])));for(const[e,s]of n.entries()){s.index=e;let{source:t,target:n}=s;"object"!=typeof t&&(t=s.source=x(i,t)),"object"!=typeof n&&(n=s.target=x(i,n)),t.sourceLinks.push(s),n.targetLinks.push(s)}if(null!=e)for(const{sourceLinks:s,targetLinks:r}of t)s.sort(e),r.sort(e)}(l),function({nodes:t}){for(const n of t)n.value=void 0===n.fixedValue?Math.max(c(n.sourceLinks,d),c(n.targetLinks,d)):n.fixedValue}(l),function({nodes:t}){const n=t.length;let e=new Set(t),i=new Set,s=0;for(;e.size;){for(const t of e){t.depth=s;for(const{target:n}of t.sourceLinks)i.add(n)}if(++s>n)throw new Error("circular link");e=i,i=new Set}}(l),function({nodes:t}){const n=t.length;let e=new Set(t),i=new Set,s=0;for(;e.size;){for(const t of e){t.height=s;for(const{source:n}of t.targetLinks)i.add(n)}if(++s>n)throw new Error("circular link");e=i,i=new Set}}(l),function(e){const l=function({nodes:t}){const e=h(t,(t=>t.depth))+1,s=(o-i-v)/(e-1),r=new Array(e);for(const n of t){const t=Math.max(0,Math.min(e-1,Math.floor(E.call(null,n,e))));n.layer=t,n.x0=i+t*s,n.x1=n.x0+v,r[t]?r[t].push(n):r[t]=[n]}if(n)for(const i of r)i.sort(n);return r}(e);t=Math.min(b,(m-s)/(h(l,(t=>t.length))-1)),function(n){const e=r(n,(n=>(m-s-(n.length-1)*t)/c(n,d)));for(const i of n){let n=s;for(const s of i){s.y0=n,s.y1=n+s.value*e,n=s.y1+t;for(const t of s.sourceLinks)t.width=t.value*e}n=(m-n+t)/(i.length+1);for(let t=0;t<i.length;++t){const e=i[t];e.y0+=n*(t+1),e.y1+=n*(t+1)}N(i)}}(l);for(let t=0;t<S;++t){const n=Math.pow(.99,t),e=Math.max(1-n,(t+1)/S);T(l,n,e),I(l,n,e)}}(l),k(l),l}function I(t,e,i){for(let s=1,r=t.length;s<r;++s){const r=t[s];for(const t of r){let n=0,i=0;for(const{source:e,value:r}of t.targetLinks){let s=r*(t.layer-e.layer);n+=$(e,t)*s,i+=s}if(!(i>0))continue;let s=(n/i-t.y0)*e;t.y0+=s,t.y1+=s,D(t)}void 0===n&&r.sort(y),O(r,i)}}function T(t,e,i){for(let s=t.length-2;s>=0;--s){const r=t[s];for(const t of r){let n=0,i=0;for(const{target:e,value:r}of t.sourceLinks){let s=r*(e.layer-t.layer);n+=j(t,e)*s,i+=s}if(!(i>0))continue;let s=(n/i-t.y0)*e;t.y0+=s,t.y1+=s,D(t)}void 0===n&&r.sort(y),O(r,i)}}function O(n,e){const i=n.length>>1,r=n[i];C(n,r.y0-t,i-1,e),P(n,r.y1+t,i+1,e),C(n,m,n.length-1,e),P(n,s,0,e)}function P(n,e,i,s){for(;i<n.length;++i){const r=n[i],o=(e-r.y0)*s;o>1e-6&&(r.y0+=o,r.y1+=o),e=r.y1+t}}function C(n,e,i,s){for(;i>=0;--i){const r=n[i],o=(r.y1-e)*s;o>1e-6&&(r.y0-=o,r.y1-=o),e=r.y0-t}}function D({sourceLinks:t,targetLinks:n}){if(void 0===e){for(const{source:{sourceLinks:t}}of n)t.sort(f);for(const{target:{targetLinks:n}}of t)n.sort(u)}}function N(t){if(void 0===e)for(const{sourceLinks:n,targetLinks:e}of t)n.sort(f),e.sort(u)}function $(n,e){let i=n.y0-(n.sourceLinks.length-1)*t/2;for(const{target:s,width:r}of n.sourceLinks){if(s===e)break;i+=r+t}for(const{source:t,width:s}of e.targetLinks){if(t===n)break;i-=s}return i}function j(n,e){let i=e.y0-(e.targetLinks.length-1)*t/2;for(const{source:s,width:r}of e.targetLinks){if(s===n)break;i+=r+t}for(const{target:t,width:s}of n.sourceLinks){if(t===e)break;i-=s}return i}return M.update=function(t){return k(t),t},M.nodeId=function(t){return arguments.length?(w="function"==typeof t?t:a(t),M):w},M.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:a(t),M):E},M.nodeSort=function(t){return arguments.length?(n=t,M):n},M.nodeWidth=function(t){return arguments.length?(v=+t,M):v},M.nodePadding=function(n){return arguments.length?(b=t=+n,M):b},M.nodes=function(t){return arguments.length?(L="function"==typeof t?t:a(t),M):L},M.links=function(t){return arguments.length?(A="function"==typeof t?t:a(t),M):A},M.linkSort=function(t){return arguments.length?(e=t,M):e},M.size=function(t){return arguments.length?(i=s=0,o=+t[0],m=+t[1],M):[o-i,m-s]},M.extent=function(t){return arguments.length?(i=+t[0][0],o=+t[1][0],s=+t[0][1],m=+t[1][1],M):[[i,s],[o,m]]},M.iterations=function(t){return arguments.length?(S=+t,M):S},M}var v=Math.PI,b=2*v,w=1e-6,E=b-w;function L(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function A(){return new L}L.prototype=A.prototype={constructor:L,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,i){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+i)},bezierCurveTo:function(t,n,e,i,s,r){this._+="C"+ +t+","+ +n+","+ +e+","+ +i+","+(this._x1=+s)+","+(this._y1=+r)},arcTo:function(t,n,e,i,s){t=+t,n=+n,e=+e,i=+i,s=+s;var r=this._x1,o=this._y1,l=e-t,c=i-n,h=r-t,a=o-n,u=h*h+a*a;if(s<0)throw new Error("negative radius: "+s);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(u>w)if(Math.abs(a*l-c*h)>w&&s){var f=e-r,y=i-o,d=l*l+c*c,p=f*f+y*y,g=Math.sqrt(d),_=Math.sqrt(u),x=s*Math.tan((v-Math.acos((d+u-p)/(2*g*_)))/2),k=x/_,m=x/g;Math.abs(k-1)>w&&(this._+="L"+(t+k*h)+","+(n+k*a)),this._+="A"+s+","+s+",0,0,"+ +(a*f>h*y)+","+(this._x1=t+m*l)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,i,s,r){t=+t,n=+n,r=!!r;var o=(e=+e)*Math.cos(i),l=e*Math.sin(i),c=t+o,h=n+l,a=1^r,u=r?i-s:s-i;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+h:(Math.abs(this._x1-c)>w||Math.abs(this._y1-h)>w)&&(this._+="L"+c+","+h),e&&(u<0&&(u=u%b+b),u>E?this._+="A"+e+","+e+",0,1,"+a+","+(t-o)+","+(n-l)+"A"+e+","+e+",0,1,"+a+","+(this._x1=c)+","+(this._y1=h):u>w&&(this._+="A"+e+","+e+",0,"+ +(u>=v)+","+a+","+(this._x1=t+e*Math.cos(s))+","+(this._y1=n+e*Math.sin(s))))},rect:function(t,n,e,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +i+"h"+-e+"Z"},toString:function(){return this._}};const S=A;var M=Array.prototype.slice;function I(t){return function(){return t}}function T(t){return t[0]}function O(t){return t[1]}function P(t){return t.source}function C(t){return t.target}function D(t){var n=P,e=C,i=T,s=O,r=null;function o(){var o,l=M.call(arguments),c=n.apply(this,l),h=e.apply(this,l);if(r||(r=o=S()),t(r,+i.apply(this,(l[0]=c,l)),+s.apply(this,l),+i.apply(this,(l[0]=h,l)),+s.apply(this,l)),o)return r=null,o+""||null}return o.source=function(t){return arguments.length?(n=t,o):n},o.target=function(t){return arguments.length?(e=t,o):e},o.x=function(t){return arguments.length?(i="function"==typeof t?t:I(+t),o):i},o.y=function(t){return arguments.length?(s="function"==typeof t?t:I(+t),o):s},o.context=function(t){return arguments.length?(r=null==t?null:t,o):r},o}function N(t,n,e,i,s){t.moveTo(n,e),t.bezierCurveTo(n=(n+i)/2,e,n,s,i,s)}function $(t){return[t.source.x1,t.y0]}function j(t){return[t.target.x0,t.y1]}function z(){return D(N).source($).target(j)}e(27484),e(17967),e(27856);var Y=function(){var t=function(t,n,e,i){for(e=e||{},i=t.length;i--;e[t[i]]=n);return e},n=[1,9],e=[1,10],i=[1,5,10,12],s={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(t,n,e,i,s,r,o){var l=r.length-1;switch(s){case 7:const t=i.findOrCreateNode(r[l-4].trim().replaceAll('""','"')),n=i.findOrCreateNode(r[l-2].trim().replaceAll('""','"')),e=parseFloat(r[l].trim());i.addLink(t,n,e);break;case 8:case 9:case 11:this.$=r[l];break;case 10:this.$=r[l-1]}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:e},{1:[2,6],7:11,10:[1,12]},t(e,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(i,[2,8]),t(i,[2,9]),{19:[1,16]},t(i,[2,11]),{1:[2,1]},{1:[2,5]},t(e,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:e},{15:18,16:7,17:8,18:n,20:e},{18:[1,19]},t(e,[2,3]),{12:[1,20]},t(i,[2,10]),{15:21,16:7,17:8,18:n,20:e},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(t,n){if(!n.recoverable){var e=new Error(t);throw e.hash=n,e}this.trace(t)},parse:function(t){var n=this,e=[0],i=[],s=[null],r=[],o=this.table,l="",c=0,h=0,a=r.slice.call(arguments,1),u=Object.create(this.lexer),f={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(f.yy[y]=this.yy[y]);u.setInput(t,f.yy),f.yy.lexer=u,f.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;r.push(d);var p=u.options&&u.options.ranges;"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,_,x,k,m,v,b,w,E,L={};;){if(_=e[e.length-1],this.defaultActions[_]?x=this.defaultActions[_]:(null==g&&(E=void 0,"number"!=typeof(E=i.pop()||u.lex()||1)&&(E instanceof Array&&(E=(i=E).pop()),E=n.symbols_[E]||E),g=E),x=o[_]&&o[_][g]),void 0===x||!x.length||!x[0]){var A="";for(m in w=[],o[_])this.terminals_[m]&&m>2&&w.push("'"+this.terminals_[m]+"'");A=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:u.match,token:this.terminals_[g]||g,line:u.yylineno,loc:d,expected:w})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+g);switch(x[0]){case 1:e.push(g),s.push(u.yytext),r.push(u.yylloc),e.push(x[1]),g=null,h=u.yyleng,l=u.yytext,c=u.yylineno,d=u.yylloc;break;case 2:if(v=this.productions_[x[1]][1],L.$=s[s.length-v],L._$={first_line:r[r.length-(v||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(v||1)].first_column,last_column:r[r.length-1].last_column},p&&(L._$.range=[r[r.length-(v||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(L,[l,h,c,f.yy,x[1],s,r].concat(a))))return k;v&&(e=e.slice(0,-1*v*2),s=s.slice(0,-1*v),r=r.slice(0,-1*v)),e.push(this.productions_[x[1]][0]),s.push(L.$),r.push(L._$),b=o[e[e.length-2]][e[e.length-1]],e.push(b);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||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 n=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;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),e.length-1&&(this.yylineno-=e.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:e?(e.length===i.length?this.yylloc.first_column:0)+i[i.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-n]),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(),n=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+n+"^"},test_match:function(t,n){var e,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],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;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,n,e,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;r<s.length;r++)if((e=this._input.match(this.rules[s[r]]))&&(!n||e[0].length>n[0].length)){if(n=e,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,s[r])))return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?!1!==(t=this.test_match(n,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:{easy_keword_rules:!0},performAction:function(t,n,e,i){switch(e){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};function o(){this.yy={}}return s.lexer=r,o.prototype=s,s.Parser=o,new o}();Y.parser=Y;const F=Y;let U=[],W=[],q={};class G{constructor(t,n,e=0){this.source=t,this.target=n,this.value=e}}class K{constructor(t){this.ID=t}}const V={nodesMap:q,getConfig:()=>(0,i.c)().sankey,getNodes:()=>W,getLinks:()=>U,getGraph:()=>({nodes:W.map((t=>({id:t.ID}))),links:U.map((t=>({source:t.source.ID,target:t.target.ID,value:t.value})))}),addLink:(t,n,e)=>{U.push(new G(t,n,e))},findOrCreateNode:t=>(t=i.e.sanitizeText(t,(0,i.c)()),q[t]||(q[t]=new K(t),W.push(q[t])),q[t]),getAccTitle:i.g,setAccTitle:i.s,getAccDescription:i.a,setAccDescription:i.b,getDiagramTitle:i.r,setDiagramTitle:i.q,clear:()=>{U=[],W=[],q={},(0,i.t)()}},X=class t{static next(n){return new t(n+ ++t.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}};X.count=0;let Q=X;const B={left:function(t){return t.depth},right:function(t,n){return n-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?r(t.sourceLinks,o)-1:0},justify:l},R={draw:function(t,n,e,r){const{securityLevel:o,sankey:l}=(0,i.c)(),c=i.I.sankey;let h;"sandbox"===o&&(h=(0,s.Ys)("#i"+n));const a="sandbox"===o?(0,s.Ys)(h.nodes()[0].contentDocument.body):(0,s.Ys)("body"),u="sandbox"===o?a.select(`[id="${n}"]`):(0,s.Ys)(`[id="${n}"]`),f=(null==l?void 0:l.width)??c.width,y=(null==l?void 0:l.height)??c.width,d=(null==l?void 0:l.useMaxWidth)??c.useMaxWidth,p=(null==l?void 0:l.nodeAlignment)??c.nodeAlignment,g=(null==l?void 0:l.prefix)??c.prefix,_=(null==l?void 0:l.suffix)??c.suffix,x=(null==l?void 0:l.showValues)??c.showValues;(0,i.i)(u,y,f,d);const k=r.db.getGraph(),v=B[p];m().nodeId((t=>t.id)).nodeWidth(10).nodePadding(10+(x?15:0)).nodeAlign(v).extent([[0,0],[f,y]])(k);const b=(0,s.PKp)(s.K2I);u.append("g").attr("class","nodes").selectAll(".node").data(k.nodes).join("g").attr("class","node").attr("id",(t=>(t.uid=Q.next("node-")).id)).attr("transform",(function(t){return"translate("+t.x0+","+t.y0+")"})).attr("x",(t=>t.x0)).attr("y",(t=>t.y0)).append("rect").attr("height",(t=>t.y1-t.y0)).attr("width",(t=>t.x1-t.x0)).attr("fill",(t=>b(t.id)));u.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(k.nodes).join("text").attr("x",(t=>t.x0<f/2?t.x1+6:t.x0-6)).attr("y",(t=>(t.y1+t.y0)/2)).attr("dy",(x?"0":"0.35")+"em").attr("text-anchor",(t=>t.x0<f/2?"start":"end")).text((({id:t,value:n})=>x?`${t}\n${g}${Math.round(100*n)/100}${_}`:t));const w=u.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(k.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),E=(null==l?void 0:l.linkColor)||"gradient";if("gradient"===E){const t=w.append("linearGradient").attr("id",(t=>(t.uid=Q.next("linearGradient-")).id)).attr("gradientUnits","userSpaceOnUse").attr("x1",(t=>t.source.x1)).attr("x2",(t=>t.target.x0));t.append("stop").attr("offset","0%").attr("stop-color",(t=>b(t.source.id))),t.append("stop").attr("offset","100%").attr("stop-color",(t=>b(t.target.id)))}let L;switch(E){case"gradient":L=t=>t.uid;break;case"source":L=t=>b(t.source.id);break;case"target":L=t=>b(t.target.id);break;default:L=E}w.append("path").attr("d",z()).attr("stroke",L).attr("stroke-width",(t=>Math.max(1,t.width)))}},Z=F.parse.bind(F);F.parse=t=>Z((t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim())(t));const H={parser:F,db:V,renderer:R}}}]); \ No newline at end of file diff --git a/assets/js/24fecc0a.0d18355b.js b/assets/js/24fecc0a.0d18355b.js new file mode 100644 index 0000000..97e7a11 --- /dev/null +++ b/assets/js/24fecc0a.0d18355b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3707],{69383:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>m});var a=n(85893),t=n(11151);const i={id:"extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",tags:["c","python","dynamic array","time complexity","recursion"],last_update:{date:new Date("2021-03-31T00:00:00.000Z")}},l=void 0,c={id:"time-complexity/extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",source:"@site/algorithms/03-time-complexity/2021-03-31-extend.md",sourceDirName:"03-time-complexity",slug:"/time-complexity/extend",permalink:"/algorithms/time-complexity/extend",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/03-time-complexity/2021-03-31-extend.md",tags:[{label:"c",permalink:"/algorithms/tags/c"},{label:"python",permalink:"/algorithms/tags/python"},{label:"dynamic array",permalink:"/algorithms/tags/dynamic-array"},{label:"time complexity",permalink:"/algorithms/tags/time-complexity"},{label:"recursion",permalink:"/algorithms/tags/recursion"}],version:"current",lastUpdatedAt:1617148800,formattedLastUpdatedAt:"Mar 31, 2021",frontMatter:{id:"extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",tags:["c","python","dynamic array","time complexity","recursion"],last_update:{date:"2021-03-31T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Asymptotic Notation and Time Complexity",permalink:"/algorithms/category/asymptotic-notation-and-time-complexity"},next:{title:"Recursion",permalink:"/algorithms/category/recursion"}},r={},m=[{value:"Introduction",id:"introduction",level:2},{value:"Technicalities",id:"technicalities",level:2},{value:"Example #1",id:"example-1",level:2},{value:"Example #2",id:"example-2",level:2},{value:"Implementation of <code>extend</code>",id:"implementation-of-extend",level:2}];function h(e){const s={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mtext:"mtext",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.h2,{id:"introduction",children:"Introduction"}),"\n",(0,a.jsxs)(s.p,{children:["Each year there is a lot of confusion regarding time complexity of the ",(0,a.jsx)(s.code,{children:"extend"})," operation on the lists in Python. I will introduce two specific examples from previous year and also will try to explain it on one of the possible implementations of ",(0,a.jsx)(s.code,{children:"extend"})," operation."]}),"\n",(0,a.jsx)(s.h2,{id:"technicalities",children:"Technicalities"}),"\n",(0,a.jsxs)(s.p,{children:["At the beginning we should clear some of the \u201cmyths\u201d regarding extending of the lists. There is a common misunderstanding regarding differences between ",(0,a.jsx)(s.code,{children:"a += b"}),", ",(0,a.jsx)(s.code,{children:"a.extend(b)"})," and ",(0,a.jsx)(s.code,{children:"a + b"}),"."]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a.extend(b)"})," - adds all elements from ",(0,a.jsx)(s.code,{children:"b"})," to ",(0,a.jsx)(s.code,{children:"a"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Time complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsx)(s.mrow,{children:(0,a.jsx)(s.mi,{children:"n"})}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denotes the length of ",(0,a.jsx)(s.code,{children:"b"}),"."]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a += b"})," - equivalent to ",(0,a.jsx)(s.code,{children:"a.extend(b)"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a + b"})," - constructs a new list that contains elements from ",(0,a.jsx)(s.code,{children:"a"})," followed by\nelements from ",(0,a.jsx)(s.code,{children:"b"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Time complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{children:"+"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(m + n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"+"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{separator:"true",children:","}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"m, n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.625em",verticalAlign:"-0.1944em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mpunct",children:","}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denote the length of\n",(0,a.jsx)(s.code,{children:"a"})," and ",(0,a.jsx)(s.code,{children:"b"})," respectively."]}),"\n",(0,a.jsxs)(s.p,{children:["Space complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{children:"+"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(m + n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"+"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{separator:"true",children:","}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"m, n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.625em",verticalAlign:"-0.1944em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mpunct",children:","}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denote the length of\n",(0,a.jsx)(s.code,{children:"a"})," and ",(0,a.jsx)(s.code,{children:"b"})," respectively, since we construct new list."]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"example-1",children:"Example #1"}),"\n",(0,a.jsx)(s.p,{children:"Let us assume function that uses divide & conquer strategy to return indices at which we can find specific element in any list."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-py",metastring:"showLineNumbers",children:"def recursive_find_in_list(\n values: List[Any], key: Any, lower: int, upper: int\n) -> List[int]:\n if lower == upper:\n return [lower] if values[lower] == key else []\n\n indices = []\n mid = (lower + upper) // 2\n\n indices.extend(recursive_find_in_list(values, key, lower, mid))\n indices.extend(recursive_find_in_list(values, key, mid + 1, upper))\n\n return indices\n\n\ndef find_in_list(values: List[Any], key: Any) -> List[int]:\n return recursive_find_in_list(values, key, 0, len(values) - 1)\n"})}),"\n",(0,a.jsxs)(s.p,{children:["This implementation works nicely, ",(0,a.jsx)(s.code,{children:"extend"})," is linear (with the respect to the length of the list that is being appended)."]}),"\n",(0,a.jsxs)(s.p,{children:["Let us try to dissect the way this function works on some specific input (that will be pushed to the extreme, ",(0,a.jsx)(s.em,{children:"just in case"})," ;)"]}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"find_in_list([1] * 5000, 1)"}),". What shall be the result of this? Since we have ",(0,a.jsx)(s.code,{children:"key = 1"})," and the list contains only ",(0,a.jsx)(s.code,{children:"1"}),"s, we should get list of ",(0,a.jsx)(s.strong,{children:"all"})," indices."]}),"\n",(0,a.jsxs)(s.p,{children:["If we were to draw a tree of call hierarchy of ",(0,a.jsx)(s.code,{children:"recursive_find_in_list"}),", we would notice that in sum it is still linear to the length. ",(0,a.jsxs)(s.strong,{children:["However we use ",(0,a.jsx)(s.code,{children:"extend"}),"!"]})]}),"\n",(0,a.jsxs)(s.p,{children:["In the leaves of the tree we return lists of length 1. In this case it means calling ",(0,a.jsx)(s.code,{children:"extend"})," 5000-times at the second-to-last level of the tree on the 1-element long lists, next level 2500 calls on 2-elements long lists, next one 1250 on 4-elements long lists, etc. At the top-level we get 2 calls on 5000/2-element long lists."]}),"\n",(0,a.jsxs)(s.p,{children:["A lot of ",(0,a.jsx)(s.code,{children:"extend"})," calls, right? And the lengths of the lists are growing (in this example, second call happens on 2500-elements long lists)."]}),"\n",(0,a.jsxs)(s.p,{children:["Because of the ",(0,a.jsx)(s.code,{children:"extend"})," in each level of the tree (call hierarchy) we traverse all of the elements. That means:"]}),"\n",(0,a.jsx)(s.span,{className:"katex-display",children:(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{children:"\u22c5"}),(0,a.jsx)(s.mi,{children:"log"}),(0,a.jsx)(s.mo,{children:"\u2061"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n \\cdot \\log n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(s.span,{className:"mop",children:["lo",(0,a.jsx)(s.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(s.p,{children:["because we have ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"log"}),(0,a.jsx)(s.mo,{children:"\u2061"}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\log n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,a.jsxs)(s.span,{className:"mop",children:["lo",(0,a.jsx)(s.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," levels in the tree and ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsx)(s.mrow,{children:(0,a.jsx)(s.mi,{children:"n"})}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," elements at each level."]}),"\n",(0,a.jsx)(s.h2,{id:"example-2",children:"Example #2"}),"\n",(0,a.jsxs)(s.p,{children:["As we could observe in the example above, ",(0,a.jsx)(s.code,{children:"extend"})," iterates over all of the elements that it adds. In case of recursive calls, it results in iterating over the same elements multiple times."]}),"\n",(0,a.jsx)(s.p,{children:"Consider constructing of this list:"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.img,{alt:"Rendered construction of the list",src:n(41967).Z+"#gh-light-mode-only",width:"851",height:"276"}),"\n",(0,a.jsx)(s.img,{alt:"Rendered construction of the list",src:n(99244).Z+"#gh-dark-mode-only",width:"851",height:"276"})]}),"\n",(0,a.jsx)(s.p,{children:"Let us assume that you extend the result with the list that you get from the recursive call."}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["B iterates through 1, 2 and 3; returns ",(0,a.jsx)(s.code,{children:"[1, 2, 3]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["C iterates through 4, 5 and 6; returns ",(0,a.jsx)(s.code,{children:"[4, 5, 6]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["D iterates through 7, 8 and 9; returns ",(0,a.jsx)(s.code,{children:"[7, 8, 9]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["now we return those lists to the calls from A), so each of the ",(0,a.jsx)(s.code,{children:"extend"})," calls iterates through:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"1, 2, 3 that was returned from B"}),"\n",(0,a.jsx)(s.li,{children:"4, 5, 6 that was returned from C"}),"\n",(0,a.jsx)(s.li,{children:"7, 8, 9 that was returned from D"}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["and returns ",(0,a.jsx)(s.code,{children:"[1, 2, 3, 4, 5, 6, 7, 8, 9]"})]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:"If the recursion had bigger depth and/or more elements, it would iterate through them more than twice, therefore it does not take constant time to do nor some constant multiple of the input, since it traverses all of the elements in each of the levels."}),"\n",(0,a.jsxs)(s.h2,{id:"implementation-of-extend",children:["Implementation of ",(0,a.jsx)(s.code,{children:"extend"})]}),"\n",(0,a.jsx)(s.p,{children:"There is an example of dynamic array:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:(0,a.jsxs)(s.a,{href:"pathname:///files/algorithms/time-complexity/extend/dynlist.h",children:["interface (",(0,a.jsx)(s.code,{children:"dynlist.h"}),")"]})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsxs)(s.a,{href:"pathname:///files/algorithms/time-complexity/extend/dynlist.c",children:["implementation (",(0,a.jsx)(s.code,{children:"dynlist.c"}),")"]})}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["For the sake of ",(0,a.jsx)(s.em,{children:"Algorithms and Data Structures I"})," we consider ",(0,a.jsx)(s.code,{children:"APPEND"})," operation, i.e. adding the element to the end of the list, to have time complexity ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mn,{children:"1"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(1)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord",children:"1"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]})," (",(0,a.jsx)(s.strong,{children:"amortized"}),"; which is out of the scope of IB002)."]}),"\n",(0,a.jsxs)(s.p,{children:["If we have a look at the ",(0,a.jsx)(s.code,{children:"extend"})," implementation in this dynamic array example:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-c",metastring:"showLineNumbers",children:"void dynamic_array_extend(struct dynamic_array_t *arr, struct dynamic_array_t *src)\n{\n if (arr == NULL || src == NULL)\n {\n return;\n }\n\n for (size_t i = 0; i < src->count; i++)\n {\n dynamic_array_push_back(arr, dynamic_array_at(src, i));\n }\n}\n"})}),"\n",(0,a.jsxs)(s.p,{children:["Apart from checking edge cases, we can notice that we run ",(0,a.jsx)(s.code,{children:"for"}),"-loop over the elements from the other array and add them one-by-one to the ",(0,a.jsx)(s.code,{children:"arr"}),". Time complexity of this operation is time dependant on the ",(0,a.jsx)(s.code,{children:"src"})," array."]}),"\n",(0,a.jsxs)(s.p,{children:["In this specific implementation, you could also resize the memory allocated for the array in one go and copy ",(0,a.jsx)(s.em,{children:"whole"})," ",(0,a.jsx)(s.code,{children:"src"})," array in one go. However even if you did so, it would be still dependant on the size of the ",(0,a.jsx)(s.code,{children:"src"})," array. Cause you still need to copy ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"count"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"}),(0,a.jsx)(s.mo,{children:"\u22c5"}),(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"elementSize"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\texttt{count}(src) \\cdot \\texttt{elementSize}(src)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"count"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"elementSize"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]})," bytes. From that we can assume that for specific instance of array the ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"elementSize"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\texttt{elementSize}(src)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"elementSize"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]})," is fixed, therefore we consider it a constant. That way we are getting ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"count"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\texttt{count}(src))"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"count"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:"))"})]})})]})," as a time complexity of our ",(0,a.jsx)(s.code,{children:"extend"})," operation."]})]})}function d(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},99244:(e,s,n)=>{n.d(s,{Z:()=>a});const a=n.p+"assets/images/construction_dark-fac28e7cafcc43d7e2fb5f0b6c25504e.svg"},41967:(e,s,n)=>{n.d(s,{Z:()=>a});const a=n.p+"assets/images/construction_light-02b0be76041a8b1379107378e8f8b64c.svg"},11151:(e,s,n)=>{n.d(s,{Z:()=>c,a:()=>l});var a=n(67294);const t={},i=a.createContext(t);function l(e){const s=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),a.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/24fecc0a.602fded1.js b/assets/js/24fecc0a.602fded1.js deleted file mode 100644 index eae483d..0000000 --- a/assets/js/24fecc0a.602fded1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3707],{9383:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>m});var a=n(5893),t=n(1151);const i={id:"extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",tags:["c","python","dynamic array","time complexity","recursion"],last_update:{date:new Date("2021-03-31T00:00:00.000Z")}},l=void 0,c={id:"time-complexity/extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",source:"@site/algorithms/03-time-complexity/2021-03-31-extend.md",sourceDirName:"03-time-complexity",slug:"/time-complexity/extend",permalink:"/algorithms/time-complexity/extend",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/03-time-complexity/2021-03-31-extend.md",tags:[{label:"c",permalink:"/algorithms/tags/c"},{label:"python",permalink:"/algorithms/tags/python"},{label:"dynamic array",permalink:"/algorithms/tags/dynamic-array"},{label:"time complexity",permalink:"/algorithms/tags/time-complexity"},{label:"recursion",permalink:"/algorithms/tags/recursion"}],version:"current",lastUpdatedAt:1617148800,formattedLastUpdatedAt:"Mar 31, 2021",frontMatter:{id:"extend",title:"Time complexity of \u2039extend\u203a",description:"How to make inefficient algorithm unknowingly.\n",tags:["c","python","dynamic array","time complexity","recursion"],last_update:{date:"2021-03-31T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Asymptotic Notation and Time Complexity",permalink:"/algorithms/category/asymptotic-notation-and-time-complexity"},next:{title:"Recursion",permalink:"/algorithms/category/recursion"}},r={},m=[{value:"Introduction",id:"introduction",level:2},{value:"Technicalities",id:"technicalities",level:2},{value:"Example #1",id:"example-1",level:2},{value:"Example #2",id:"example-2",level:2},{value:"Implementation of <code>extend</code>",id:"implementation-of-extend",level:2}];function h(e){const s={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mtext:"mtext",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.h2,{id:"introduction",children:"Introduction"}),"\n",(0,a.jsxs)(s.p,{children:["Each year there is a lot of confusion regarding time complexity of the ",(0,a.jsx)(s.code,{children:"extend"})," operation on the lists in Python. I will introduce two specific examples from previous year and also will try to explain it on one of the possible implementations of ",(0,a.jsx)(s.code,{children:"extend"})," operation."]}),"\n",(0,a.jsx)(s.h2,{id:"technicalities",children:"Technicalities"}),"\n",(0,a.jsxs)(s.p,{children:["At the beginning we should clear some of the \u201cmyths\u201d regarding extending of the lists. There is a common misunderstanding regarding differences between ",(0,a.jsx)(s.code,{children:"a += b"}),", ",(0,a.jsx)(s.code,{children:"a.extend(b)"})," and ",(0,a.jsx)(s.code,{children:"a + b"}),"."]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a.extend(b)"})," - adds all elements from ",(0,a.jsx)(s.code,{children:"b"})," to ",(0,a.jsx)(s.code,{children:"a"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Time complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsx)(s.mrow,{children:(0,a.jsx)(s.mi,{children:"n"})}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denotes the length of ",(0,a.jsx)(s.code,{children:"b"}),"."]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a += b"})," - equivalent to ",(0,a.jsx)(s.code,{children:"a.extend(b)"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"a + b"})," - constructs a new list that contains elements from ",(0,a.jsx)(s.code,{children:"a"})," followed by\nelements from ",(0,a.jsx)(s.code,{children:"b"}),"."]}),"\n",(0,a.jsxs)(s.p,{children:["Time complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{children:"+"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(m + n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"+"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{separator:"true",children:","}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"m, n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.625em",verticalAlign:"-0.1944em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mpunct",children:","}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denote the length of\n",(0,a.jsx)(s.code,{children:"a"})," and ",(0,a.jsx)(s.code,{children:"b"})," respectively."]}),"\n",(0,a.jsxs)(s.p,{children:["Space complexity: ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{children:"+"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(m + n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"+"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]}),", where ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"m"}),(0,a.jsx)(s.mo,{separator:"true",children:","}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"m, n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.625em",verticalAlign:"-0.1944em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"m"}),(0,a.jsx)(s.span,{className:"mpunct",children:","}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," denote the length of\n",(0,a.jsx)(s.code,{children:"a"})," and ",(0,a.jsx)(s.code,{children:"b"})," respectively, since we construct new list."]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.h2,{id:"example-1",children:"Example #1"}),"\n",(0,a.jsx)(s.p,{children:"Let us assume function that uses divide & conquer strategy to return indices at which we can find specific element in any list."}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-py",metastring:"showLineNumbers",children:"def recursive_find_in_list(\n values: List[Any], key: Any, lower: int, upper: int\n) -> List[int]:\n if lower == upper:\n return [lower] if values[lower] == key else []\n\n indices = []\n mid = (lower + upper) // 2\n\n indices.extend(recursive_find_in_list(values, key, lower, mid))\n indices.extend(recursive_find_in_list(values, key, mid + 1, upper))\n\n return indices\n\n\ndef find_in_list(values: List[Any], key: Any) -> List[int]:\n return recursive_find_in_list(values, key, 0, len(values) - 1)\n"})}),"\n",(0,a.jsxs)(s.p,{children:["This implementation works nicely, ",(0,a.jsx)(s.code,{children:"extend"})," is linear (with the respect to the length of the list that is being appended)."]}),"\n",(0,a.jsxs)(s.p,{children:["Let us try to dissect the way this function works on some specific input (that will be pushed to the extreme, ",(0,a.jsx)(s.em,{children:"just in case"})," ;)"]}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.code,{children:"find_in_list([1] * 5000, 1)"}),". What shall be the result of this? Since we have ",(0,a.jsx)(s.code,{children:"key = 1"})," and the list contains only ",(0,a.jsx)(s.code,{children:"1"}),"s, we should get list of ",(0,a.jsx)(s.strong,{children:"all"})," indices."]}),"\n",(0,a.jsxs)(s.p,{children:["If we were to draw a tree of call hierarchy of ",(0,a.jsx)(s.code,{children:"recursive_find_in_list"}),", we would notice that in sum it is still linear to the length. ",(0,a.jsxs)(s.strong,{children:["However we use ",(0,a.jsx)(s.code,{children:"extend"}),"!"]})]}),"\n",(0,a.jsxs)(s.p,{children:["In the leaves of the tree we return lists of length 1. In this case it means calling ",(0,a.jsx)(s.code,{children:"extend"})," 5000-times at the second-to-last level of the tree on the 1-element long lists, next level 2500 calls on 2-elements long lists, next one 1250 on 4-elements long lists, etc. At the top-level we get 2 calls on 5000/2-element long lists."]}),"\n",(0,a.jsxs)(s.p,{children:["A lot of ",(0,a.jsx)(s.code,{children:"extend"})," calls, right? And the lengths of the lists are growing (in this example, second call happens on 2500-elements long lists)."]}),"\n",(0,a.jsxs)(s.p,{children:["Because of the ",(0,a.jsx)(s.code,{children:"extend"})," in each level of the tree (call hierarchy) we traverse all of the elements. That means:"]}),"\n",(0,a.jsx)(s.span,{className:"katex-display",children:(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{children:"\u22c5"}),(0,a.jsx)(s.mi,{children:"log"}),(0,a.jsx)(s.mo,{children:"\u2061"}),(0,a.jsx)(s.mi,{children:"n"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n \\cdot \\log n)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(s.span,{className:"mop",children:["lo",(0,a.jsx)(s.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(s.p,{children:["because we have ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{children:"log"}),(0,a.jsx)(s.mo,{children:"\u2061"}),(0,a.jsx)(s.mi,{children:"n"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\log n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,a.jsxs)(s.span,{className:"mop",children:["lo",(0,a.jsx)(s.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," levels in the tree and ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsx)(s.mrow,{children:(0,a.jsx)(s.mi,{children:"n"})}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"n"})]})})]})," elements at each level."]}),"\n",(0,a.jsx)(s.h2,{id:"example-2",children:"Example #2"}),"\n",(0,a.jsxs)(s.p,{children:["As we could observe in the example above, ",(0,a.jsx)(s.code,{children:"extend"})," iterates over all of the elements that it adds. In case of recursive calls, it results in iterating over the same elements multiple times."]}),"\n",(0,a.jsx)(s.p,{children:"Consider constructing of this list:"}),"\n",(0,a.jsxs)(s.p,{children:[(0,a.jsx)(s.img,{alt:"Rendered construction of the list",src:n(1967).Z+"#gh-light-mode-only",width:"851",height:"276"}),"\n",(0,a.jsx)(s.img,{alt:"Rendered construction of the list",src:n(9244).Z+"#gh-dark-mode-only",width:"851",height:"276"})]}),"\n",(0,a.jsx)(s.p,{children:"Let us assume that you extend the result with the list that you get from the recursive call."}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["B iterates through 1, 2 and 3; returns ",(0,a.jsx)(s.code,{children:"[1, 2, 3]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["C iterates through 4, 5 and 6; returns ",(0,a.jsx)(s.code,{children:"[4, 5, 6]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["D iterates through 7, 8 and 9; returns ",(0,a.jsx)(s.code,{children:"[7, 8, 9]"})]}),"\n"]}),"\n",(0,a.jsxs)(s.li,{children:["\n",(0,a.jsxs)(s.p,{children:["now we return those lists to the calls from A), so each of the ",(0,a.jsx)(s.code,{children:"extend"})," calls iterates through:"]}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:"1, 2, 3 that was returned from B"}),"\n",(0,a.jsx)(s.li,{children:"4, 5, 6 that was returned from C"}),"\n",(0,a.jsx)(s.li,{children:"7, 8, 9 that was returned from D"}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["and returns ",(0,a.jsx)(s.code,{children:"[1, 2, 3, 4, 5, 6, 7, 8, 9]"})]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(s.p,{children:"If the recursion had bigger depth and/or more elements, it would iterate through them more than twice, therefore it does not take constant time to do nor some constant multiple of the input, since it traverses all of the elements in each of the levels."}),"\n",(0,a.jsxs)(s.h2,{id:"implementation-of-extend",children:["Implementation of ",(0,a.jsx)(s.code,{children:"extend"})]}),"\n",(0,a.jsx)(s.p,{children:"There is an example of dynamic array:"}),"\n",(0,a.jsxs)(s.ul,{children:["\n",(0,a.jsx)(s.li,{children:(0,a.jsxs)(s.a,{href:"pathname:///files/algorithms/time-complexity/extend/dynlist.h",children:["interface (",(0,a.jsx)(s.code,{children:"dynlist.h"}),")"]})}),"\n",(0,a.jsx)(s.li,{children:(0,a.jsxs)(s.a,{href:"pathname:///files/algorithms/time-complexity/extend/dynlist.c",children:["implementation (",(0,a.jsx)(s.code,{children:"dynlist.c"}),")"]})}),"\n"]}),"\n",(0,a.jsxs)(s.p,{children:["For the sake of ",(0,a.jsx)(s.em,{children:"Algorithms and Data Structures I"})," we consider ",(0,a.jsx)(s.code,{children:"APPEND"})," operation, i.e. adding the element to the end of the list, to have time complexity ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mn,{children:"1"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(1)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord",children:"1"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]})," (",(0,a.jsx)(s.strong,{children:"amortized"}),"; which is out of the scope of IB002)."]}),"\n",(0,a.jsxs)(s.p,{children:["If we have a look at the ",(0,a.jsx)(s.code,{children:"extend"})," implementation in this dynamic array example:"]}),"\n",(0,a.jsx)(s.pre,{children:(0,a.jsx)(s.code,{className:"language-c",metastring:"showLineNumbers",children:"void dynamic_array_extend(struct dynamic_array_t *arr, struct dynamic_array_t *src)\n{\n if (arr == NULL || src == NULL)\n {\n return;\n }\n\n for (size_t i = 0; i < src->count; i++)\n {\n dynamic_array_push_back(arr, dynamic_array_at(src, i));\n }\n}\n"})}),"\n",(0,a.jsxs)(s.p,{children:["Apart from checking edge cases, we can notice that we run ",(0,a.jsx)(s.code,{children:"for"}),"-loop over the elements from the other array and add them one-by-one to the ",(0,a.jsx)(s.code,{children:"arr"}),". Time complexity of this operation is time dependant on the ",(0,a.jsx)(s.code,{children:"src"})," array."]}),"\n",(0,a.jsxs)(s.p,{children:["In this specific implementation, you could also resize the memory allocated for the array in one go and copy ",(0,a.jsx)(s.em,{children:"whole"})," ",(0,a.jsx)(s.code,{children:"src"})," array in one go. However even if you did so, it would be still dependant on the size of the ",(0,a.jsx)(s.code,{children:"src"})," array. Cause you still need to copy ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"count"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"}),(0,a.jsx)(s.mo,{children:"\u22c5"}),(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"elementSize"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\texttt{count}(src) \\cdot \\texttt{elementSize}(src)"})]})})}),(0,a.jsxs)(s.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"count"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(s.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(s.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"elementSize"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})]})]})," bytes. From that we can assume that for specific instance of array the ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"elementSize"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\texttt{elementSize}(src)"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"elementSize"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:")"})]})})]})," is fixed, therefore we consider it a constant. That way we are getting ",(0,a.jsxs)(s.span,{className:"katex",children:[(0,a.jsx)(s.span,{className:"katex-mathml",children:(0,a.jsx)(s.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(s.semantics,{children:[(0,a.jsxs)(s.mrow,{children:[(0,a.jsx)(s.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mtext,{mathvariant:"monospace",children:"count"}),(0,a.jsx)(s.mo,{stretchy:"false",children:"("}),(0,a.jsx)(s.mi,{children:"s"}),(0,a.jsx)(s.mi,{children:"r"}),(0,a.jsx)(s.mi,{children:"c"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"}),(0,a.jsx)(s.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(s.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\texttt{count}(src))"})]})})}),(0,a.jsx)(s.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(s.span,{className:"base",children:[(0,a.jsx)(s.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(s.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord text",children:(0,a.jsx)(s.span,{className:"mord texttt",children:"count"})}),(0,a.jsx)(s.span,{className:"mopen",children:"("}),(0,a.jsx)(s.span,{className:"mord mathnormal",children:"src"}),(0,a.jsx)(s.span,{className:"mclose",children:"))"})]})})]})," as a time complexity of our ",(0,a.jsx)(s.code,{children:"extend"})," operation."]})]})}function d(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,a.jsx)(s,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},9244:(e,s,n)=>{n.d(s,{Z:()=>a});const a=n.p+"assets/images/construction_dark-fac28e7cafcc43d7e2fb5f0b6c25504e.svg"},1967:(e,s,n)=>{n.d(s,{Z:()=>a});const a=n.p+"assets/images/construction_light-02b0be76041a8b1379107378e8f8b64c.svg"},1151:(e,s,n)=>{n.d(s,{Z:()=>c,a:()=>l});var a=n(7294);const t={},i=a.createContext(t);function l(e){const s=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),a.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2661.adb036a5.js b/assets/js/2661.adb036a5.js new file mode 100644 index 0000000..882a951 --- /dev/null +++ b/assets/js/2661.adb036a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2661],{12661:(t,e,i)=>{i.d(e,{diagram:()=>d});var n=i(85322),s=i(64218),r=(i(27484),i(17967),i(27856),function(){var t=function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},e=[1,3],i=[1,4],n=[1,5],s=[1,6],r=[1,10,12,14,16,18,19,20,21,22],l=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],c=[20,21,22],o=[2,7],h=[1,12],u=[1,13],y=[1,14],p=[1,15],d=[1,16],g=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",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:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,e,i,n,s,r,l){var a=r.length-1;switch(s){case 3:n.setShowData(!0);break;case 6:this.$=r[a-1];break;case 8:n.addSection(r[a-1],n.cleanupValue(r[a]));break;case 9:this.$=r[a].trim(),n.setDiagramTitle(this.$);break;case 10:this.$=r[a].trim(),n.setAccTitle(this.$);break;case 11:case 12:this.$=r[a].trim(),n.setAccDescription(this.$);break;case 13:n.addSection(r[a].substr(8)),this.$=r[a].substr(8)}},table:[{3:1,4:2,5:e,20:i,21:n,22:s},{1:[3]},{3:7,4:2,5:e,20:i,21:n,22:s},t(r,l,{6:8,7:[1,9]}),t(a,[2,14]),t(a,[2,15]),t(a,[2,16]),{1:[2,1]},t(c,o,{8:10,9:11,1:[2,2],10:h,12:u,14:y,16:p,18:d,19:g}),t(r,l,{6:18}),t(r,[2,5]),{4:19,20:i,21:n,22:s},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},t(c,[2,12]),t(c,[2,13]),t(c,o,{8:10,9:11,1:[2,3],10:h,12:u,14:y,16:p,18:d,19:g}),t(r,[2,6]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,e){if(!e.recoverable){var i=new Error(t);throw i.hash=e,i}this.trace(t)},parse:function(t){var e=this,i=[0],n=[],s=[null],r=[],l=this.table,a="",c=0,o=0,h=r.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(y.yy[p]=this.yy[p]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;r.push(d);var g=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,_,m,b,k,v,x,S,w,$={};;){if(_=i[i.length-1],this.defaultActions[_]?m=this.defaultActions[_]:(null==f&&(w=void 0,"number"!=typeof(w=n.pop()||u.lex()||1)&&(w instanceof Array&&(w=(n=w).pop()),w=e.symbols_[w]||w),f=w),m=l[_]&&l[_][f]),void 0===m||!m.length||!m[0]){var E="";for(k in S=[],l[_])this.terminals_[k]&&k>2&&S.push("'"+this.terminals_[k]+"'");E=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:u.match,token:this.terminals_[f]||f,line:u.yylineno,loc:d,expected:S})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+f);switch(m[0]){case 1:i.push(f),s.push(u.yytext),r.push(u.yylloc),i.push(m[1]),f=null,o=u.yyleng,a=u.yytext,c=u.yylineno,d=u.yylloc;break;case 2:if(v=this.productions_[m[1]][1],$.$=s[s.length-v],$._$={first_line:r[r.length-(v||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(v||1)].first_column,last_column:r[r.length-1].last_column},g&&($._$.range=[r[r.length-(v||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[a,o,c,y.yy,m[1],s,r].concat(h))))return b;v&&(i=i.slice(0,-1*v*2),s=s.slice(0,-1*v),r=r.slice(0,-1*v)),i.push(this.productions_[m[1]][0]),s.push($.$),r.push($._$),x=l[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}},_={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,i=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 n=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),i.length-1&&(this.yylineno-=i.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:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[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 i,n,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))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;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,i,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;r<s.length;r++)if((i=this._input.match(this.rules[s[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,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[n]))&&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,i,n){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 20;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\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:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};function m(){this.yy={}}return f.lexer=_,m.prototype=f,f.Parser=m,new m}());r.parser=r;const l=r,a=n.A.pie,c={},o=!1;let h=c,u=o;const y=structuredClone(a),p={getConfig:()=>structuredClone(y),clear:()=>{h=structuredClone(c),u=o,(0,n.t)()},setDiagramTitle:n.q,getDiagramTitle:n.r,setAccTitle:n.s,getAccTitle:n.g,setAccDescription:n.b,getAccDescription:n.a,addSection:(t,e)=>{t=(0,n.d)(t,(0,n.c)()),void 0===h[t]&&(h[t]=e,n.l.debug(`added new section: ${t}, with value: ${e}`))},getSections:()=>h,cleanupValue:t=>(":"===t.substring(0,1)&&(t=t.substring(1).trim()),Number(t.trim())),setShowData:t=>{u=t},getShowData:()=>u},d={parser:l,db:p,renderer:{draw:(t,e,i,r)=>{var l,a;n.l.debug("rendering pie chart\n"+t);const c=r.db,o=(0,n.c)(),h=(0,n.B)(c.getConfig(),o.pie),u=450,y=(null==(a=null==(l=document.getElementById(e))?void 0:l.parentElement)?void 0:a.offsetWidth)??h.useWidth,p=(0,n.z)(e);p.attr("viewBox",`0 0 ${y} 450`),(0,n.i)(p,u,y,h.useMaxWidth);const d=18,g=p.append("g");g.attr("transform","translate("+y/2+",225)");const{themeVariables:f}=o;let[_]=(0,n.C)(f.pieOuterStrokeWidth);_??(_=2);const m=h.textPosition,b=Math.min(y,u)/2-40,k=(0,s.Nb1)().innerRadius(0).outerRadius(b),v=(0,s.Nb1)().innerRadius(b*m).outerRadius(b*m);g.append("circle").attr("cx",0).attr("cy",0).attr("r",b+_/2).attr("class","pieOuterCircle");const x=c.getSections(),S=(t=>{const e=Object.entries(t).map((t=>({label:t[0],value:t[1]}))).sort(((t,e)=>e.value-t.value));return(0,s.ve8)().value((t=>t.value))(e)})(x),w=[f.pie1,f.pie2,f.pie3,f.pie4,f.pie5,f.pie6,f.pie7,f.pie8,f.pie9,f.pie10,f.pie11,f.pie12],$=(0,s.PKp)(w);g.selectAll("mySlices").data(S).enter().append("path").attr("d",k).attr("fill",(t=>$(t.data.label))).attr("class","pieCircle");let E=0;Object.keys(x).forEach((t=>{E+=x[t]})),g.selectAll("mySlices").data(S).enter().append("text").text((t=>(t.data.value/E*100).toFixed(0)+"%")).attr("transform",(t=>"translate("+v.centroid(t)+")")).style("text-anchor","middle").attr("class","slice"),g.append("text").text(c.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");const A=g.selectAll(".legend").data($.domain()).enter().append("g").attr("class","legend").attr("transform",((t,e)=>"translate(216,"+(22*e-22*$.domain().length/2)+")"));A.append("rect").attr("width",d).attr("height",d).style("fill",$).style("stroke",$),A.data(S).append("text").attr("x",22).attr("y",14).text((t=>{const{label:e,value:i}=t.data;return c.getShowData()?`${e} [${i}]`:e}))}},styles:t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${t.pieOuterStrokeColor};\n stroke-width: ${t.pieOuterStrokeWidth};\n fill: none;\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`}}}]); \ No newline at end of file diff --git a/assets/js/2661.e691bc83.js b/assets/js/2661.e691bc83.js deleted file mode 100644 index cf8df62..0000000 --- a/assets/js/2661.e691bc83.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2661],{2661:(t,e,i)=>{i.d(e,{diagram:()=>d});var n=i(5322),s=i(4218),r=(i(7484),i(7967),i(7856),function(){var t=function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},e=[1,3],i=[1,4],n=[1,5],s=[1,6],r=[1,10,12,14,16,18,19,20,21,22],l=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],c=[20,21,22],o=[2,7],h=[1,12],u=[1,13],y=[1,14],p=[1,15],d=[1,16],g=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",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:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,e,i,n,s,r,l){var a=r.length-1;switch(s){case 3:n.setShowData(!0);break;case 6:this.$=r[a-1];break;case 8:n.addSection(r[a-1],n.cleanupValue(r[a]));break;case 9:this.$=r[a].trim(),n.setDiagramTitle(this.$);break;case 10:this.$=r[a].trim(),n.setAccTitle(this.$);break;case 11:case 12:this.$=r[a].trim(),n.setAccDescription(this.$);break;case 13:n.addSection(r[a].substr(8)),this.$=r[a].substr(8)}},table:[{3:1,4:2,5:e,20:i,21:n,22:s},{1:[3]},{3:7,4:2,5:e,20:i,21:n,22:s},t(r,l,{6:8,7:[1,9]}),t(a,[2,14]),t(a,[2,15]),t(a,[2,16]),{1:[2,1]},t(c,o,{8:10,9:11,1:[2,2],10:h,12:u,14:y,16:p,18:d,19:g}),t(r,l,{6:18}),t(r,[2,5]),{4:19,20:i,21:n,22:s},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},t(c,[2,12]),t(c,[2,13]),t(c,o,{8:10,9:11,1:[2,3],10:h,12:u,14:y,16:p,18:d,19:g}),t(r,[2,6]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,e){if(!e.recoverable){var i=new Error(t);throw i.hash=e,i}this.trace(t)},parse:function(t){var e=this,i=[0],n=[],s=[null],r=[],l=this.table,a="",c=0,o=0,h=r.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(y.yy[p]=this.yy[p]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var d=u.yylloc;r.push(d);var g=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,_,m,b,k,v,x,S,w,$={};;){if(_=i[i.length-1],this.defaultActions[_]?m=this.defaultActions[_]:(null==f&&(w=void 0,"number"!=typeof(w=n.pop()||u.lex()||1)&&(w instanceof Array&&(w=(n=w).pop()),w=e.symbols_[w]||w),f=w),m=l[_]&&l[_][f]),void 0===m||!m.length||!m[0]){var E="";for(k in S=[],l[_])this.terminals_[k]&&k>2&&S.push("'"+this.terminals_[k]+"'");E=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:u.match,token:this.terminals_[f]||f,line:u.yylineno,loc:d,expected:S})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+f);switch(m[0]){case 1:i.push(f),s.push(u.yytext),r.push(u.yylloc),i.push(m[1]),f=null,o=u.yyleng,a=u.yytext,c=u.yylineno,d=u.yylloc;break;case 2:if(v=this.productions_[m[1]][1],$.$=s[s.length-v],$._$={first_line:r[r.length-(v||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(v||1)].first_column,last_column:r[r.length-1].last_column},g&&($._$.range=[r[r.length-(v||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[a,o,c,y.yy,m[1],s,r].concat(h))))return b;v&&(i=i.slice(0,-1*v*2),s=s.slice(0,-1*v),r=r.slice(0,-1*v)),i.push(this.productions_[m[1]][0]),s.push($.$),r.push($._$),x=l[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}},_={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,i=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 n=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),i.length-1&&(this.yylineno-=i.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:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[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 i,n,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))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;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,i,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;r<s.length;r++)if((i=this._input.match(this.rules[s[r]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,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[n]))&&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,i,n){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 20;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\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:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};function m(){this.yy={}}return f.lexer=_,m.prototype=f,f.Parser=m,new m}());r.parser=r;const l=r,a=n.A.pie,c={},o=!1;let h=c,u=o;const y=structuredClone(a),p={getConfig:()=>structuredClone(y),clear:()=>{h=structuredClone(c),u=o,(0,n.t)()},setDiagramTitle:n.q,getDiagramTitle:n.r,setAccTitle:n.s,getAccTitle:n.g,setAccDescription:n.b,getAccDescription:n.a,addSection:(t,e)=>{t=(0,n.d)(t,(0,n.c)()),void 0===h[t]&&(h[t]=e,n.l.debug(`added new section: ${t}, with value: ${e}`))},getSections:()=>h,cleanupValue:t=>(":"===t.substring(0,1)&&(t=t.substring(1).trim()),Number(t.trim())),setShowData:t=>{u=t},getShowData:()=>u},d={parser:l,db:p,renderer:{draw:(t,e,i,r)=>{var l,a;n.l.debug("rendering pie chart\n"+t);const c=r.db,o=(0,n.c)(),h=(0,n.B)(c.getConfig(),o.pie),u=450,y=(null==(a=null==(l=document.getElementById(e))?void 0:l.parentElement)?void 0:a.offsetWidth)??h.useWidth,p=(0,n.z)(e);p.attr("viewBox",`0 0 ${y} 450`),(0,n.i)(p,u,y,h.useMaxWidth);const d=18,g=p.append("g");g.attr("transform","translate("+y/2+",225)");const{themeVariables:f}=o;let[_]=(0,n.C)(f.pieOuterStrokeWidth);_??(_=2);const m=h.textPosition,b=Math.min(y,u)/2-40,k=(0,s.Nb1)().innerRadius(0).outerRadius(b),v=(0,s.Nb1)().innerRadius(b*m).outerRadius(b*m);g.append("circle").attr("cx",0).attr("cy",0).attr("r",b+_/2).attr("class","pieOuterCircle");const x=c.getSections(),S=(t=>{const e=Object.entries(t).map((t=>({label:t[0],value:t[1]}))).sort(((t,e)=>e.value-t.value));return(0,s.ve8)().value((t=>t.value))(e)})(x),w=[f.pie1,f.pie2,f.pie3,f.pie4,f.pie5,f.pie6,f.pie7,f.pie8,f.pie9,f.pie10,f.pie11,f.pie12],$=(0,s.PKp)(w);g.selectAll("mySlices").data(S).enter().append("path").attr("d",k).attr("fill",(t=>$(t.data.label))).attr("class","pieCircle");let E=0;Object.keys(x).forEach((t=>{E+=x[t]})),g.selectAll("mySlices").data(S).enter().append("text").text((t=>(t.data.value/E*100).toFixed(0)+"%")).attr("transform",(t=>"translate("+v.centroid(t)+")")).style("text-anchor","middle").attr("class","slice"),g.append("text").text(c.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");const A=g.selectAll(".legend").data($.domain()).enter().append("g").attr("class","legend").attr("transform",((t,e)=>"translate(216,"+(22*e-22*$.domain().length/2)+")"));A.append("rect").attr("width",d).attr("height",d).style("fill",$).style("stroke",$),A.data(S).append("text").attr("x",22).attr("y",14).text((t=>{const{label:e,value:i}=t.data;return c.getShowData()?`${e} [${i}]`:e}))}},styles:t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${t.pieOuterStrokeColor};\n stroke-width: ${t.pieOuterStrokeWidth};\n fill: none;\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`}}}]); \ No newline at end of file diff --git a/assets/js/2693.64c402f3.js b/assets/js/2693.64c402f3.js deleted file mode 100644 index 1aa0245..0000000 --- a/assets/js/2693.64c402f3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2693],{8088:(t,i,e)=>{e.d(i,{diagram:()=>O});var s=e(5322),n=e(6042),a=e(4218),h=(e(7484),e(7967),e(7856),function(){var t=function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],a=[1,6],h=[1,7],o=[1,5,10,12,14,16,18,19,21,23,34,35,36],r=[1,25],l=[1,26],c=[1,28],g=[1,29],u=[1,30],x=[1,31],d=[1,32],p=[1,33],f=[1,34],y=[1,35],m=[1,36],b=[1,37],A=[1,43],w=[1,42],S=[1,47],C=[1,50],k=[1,10,12,14,16,18,19,21,23,34,35,36],_=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],T=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],R=[1,64],D={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(t,i,e,s,n,a,h){var o=a.length-1;switch(n){case 5:s.setOrientation(a[o]);break;case 9:s.setDiagramTitle(a[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},a[o]);break;case 13:s.setLineData(a[o-1],a[o]);break;case 14:s.setBarData({text:"",type:"text"},a[o]);break;case 15:s.setBarData(a[o-1],a[o]);break;case 16:this.$=a[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),s.setAccDescription(this.$);break;case 19:case 27:this.$=a[o-1];break;case 20:this.$=[Number(a[o-2]),...a[o]];break;case 21:this.$=[Number(a[o])];break;case 22:s.setXAxisTitle(a[o]);break;case 23:s.setXAxisTitle(a[o-1]);break;case 24:s.setXAxisTitle({type:"text",text:""});break;case 25:s.setXAxisBand(a[o]);break;case 26:s.setXAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 28:this.$=[a[o-2],...a[o]];break;case 29:this.$=[a[o]];break;case 30:s.setYAxisTitle(a[o]);break;case 31:s.setYAxisTitle(a[o-1]);break;case 32:s.setYAxisTitle({type:"text",text:""});break;case 33:s.setYAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 37:case 38:this.$={text:a[o],type:"text"};break;case 39:this.$={text:a[o],type:"markdown"};break;case 40:this.$=a[o];break;case 41:this.$=a[o-1]+""+a[o]}},table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:a,36:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:a,36:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:a,36:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(o,[2,34]),t(o,[2,35]),t(o,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:a,36:h}),{1:[2,3]},t(o,[2,5]),t(i,[2,7],{4:22,34:n,35:a,36:h}),{11:23,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:39,13:38,24:A,27:w,29:40,30:41,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:45,15:44,27:S,33:46,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:49,17:48,24:C,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:52,17:51,24:C,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{20:[1,53]},{22:[1,54]},t(k,[2,18]),{1:[2,2]},t(k,[2,8]),t(k,[2,9]),t(_,[2,37],{40:55,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b}),t(_,[2,38]),t(_,[2,39]),t(T,[2,40]),t(T,[2,42]),t(T,[2,43]),t(T,[2,44]),t(T,[2,45]),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(k,[2,10]),t(k,[2,22],{30:41,29:56,24:A,27:w}),t(k,[2,24]),t(k,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},t(k,[2,11]),t(k,[2,30],{33:60,27:S}),t(k,[2,32]),{31:[1,61]},t(k,[2,12]),{17:62,24:C},{25:63,27:R},t(k,[2,14]),{17:65,24:C},t(k,[2,16]),t(k,[2,17]),t(T,[2,41]),t(k,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(k,[2,31]),{27:[1,69]},t(k,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(k,[2,15]),t(k,[2,26]),t(k,[2,27]),{11:59,32:72,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},t(k,[2,33]),t(k,[2,19]),{25:73,27:R},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(t,i){if(!i.recoverable){var e=new Error(t);throw e.hash=i,e}this.trace(t)},parse:function(t){var i=this,e=[0],s=[],n=[null],a=[],h=this.table,o="",r=0,l=0,c=a.slice.call(arguments,1),g=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);g.setInput(t,u.yy),u.yy.lexer=g,u.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var d=g.yylloc;a.push(d);var p=g.options&&g.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,y,m,b,A,w,S,C,k,_={};;){if(y=e[e.length-1],this.defaultActions[y]?m=this.defaultActions[y]:(null==f&&(k=void 0,"number"!=typeof(k=s.pop()||g.lex()||1)&&(k instanceof Array&&(k=(s=k).pop()),k=i.symbols_[k]||k),f=k),m=h[y]&&h[y][f]),void 0===m||!m.length||!m[0]){var T="";for(A in C=[],h[y])this.terminals_[A]&&A>2&&C.push("'"+this.terminals_[A]+"'");T=g.showPosition?"Parse error on line "+(r+1)+":\n"+g.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(r+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(T,{text:g.match,token:this.terminals_[f]||f,line:g.yylineno,loc:d,expected:C})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+f);switch(m[0]){case 1:e.push(f),n.push(g.yytext),a.push(g.yylloc),e.push(m[1]),f=null,l=g.yyleng,o=g.yytext,r=g.yylineno,d=g.yylloc;break;case 2:if(w=this.productions_[m[1]][1],_.$=n[n.length-w],_._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},p&&(_._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(_,[o,l,r,u.yy,m[1],n,a].concat(c))))return b;w&&(e=e.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),e.push(this.productions_[m[1]][0]),n.push(_.$),a.push(_._$),S=h[e[e.length-2]][e[e.length-1]],e.push(S);break;case 3:return!0}}return!0}},L={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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),e.length-1&&(this.yylineno-=e.length-1);var n=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:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var e,s,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,e,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;a<n.length;a++)if((e=this._input.match(this.rules[n[a]]))&&(!i||e[0].length>i[0].length)){if(i=e,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[a])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[s]))&&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,i,e,s){switch(e){case 0:case 1:case 5:case 43:break;case 2:case 3:return this.popState(),34;case 4:return 34;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 25:case 27:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 26:this.pushState("string");break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};function P(){this.yy={}}return D.lexer=L,P.prototype=D,D.Parser=P,new P}());h.parser=h;const o=h;function r(t){return"bar"===t.type}function l(t){return"band"===t.type}function c(t){return"linear"===t.type}class g{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce(((t,i)=>Math.max(i.length,t)),0)*i,height:i};const e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const a of t){const t=(0,n.c)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}}class u{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((t=>t.toString())),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);const n=e.height+2*this.axisConfig.labelPadding;this.labelTextHeight=e.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);const n=e.width+2*this.axisConfig.labelPadding;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"})))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}}class x extends u{constructor(t,i,e,s,n){super(t,s,n,i),this.categories=e,this.scale=(0,a.tiA)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,a.tiA)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),s.l.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)||this.getRange()[0]}}class d extends u{constructor(t,i,e,s,n){super(t,s,n,i),this.domain=e,this.scale=(0,a.BYU)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,a.BYU)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}function p(t,i,e,s){const n=new g(s);return l(t)?new x(i,e,t.categories,t.title,n):new d(i,e,[t.min,t.max],t.title,n)}class f{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}}function y(t,i,e,s){const n=new g(s);return new f(n,t,i,e)}class m{constructor(t,i,e,s,n){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=n}getDrawableElement(){const t=this.plotData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]));let i;return i="horizontal"===this.orientation?(0,a.jvg)().y((t=>t[0])).x((t=>t[1]))(t):(0,a.jvg)().x((t=>t[0])).y((t=>t[1]))(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class b{constructor(t,i,e,s,n,a){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=a}getDrawableElement(){const t=this.barData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])])),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]}}class A{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!this.xAxis||!this.yAxis)throw Error("Axes must be passed to render Plots");const t=[];for(const[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{const s=new m(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{const s=new b(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}}function w(t,i,e){return new A(t,i,e)}class S{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:y(t,i,e,s),plot:w(t,i,e),xAxis:p(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:p(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),h=this.componentStore.plot.calculateSpace({width:n,height:a});t-=h.width,i-=h.height,h=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=h.height,i-=h.height,this.componentStore.xAxis.setAxisPosition("bottom"),h=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=h.height,this.componentStore.yAxis.setAxisPosition("left"),h=this.componentStore.yAxis.calculateSpace({width:t,height:i}),e=h.width,t-=h.width,t>0&&(n+=t,t=0),i>0&&(a+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:a}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+a}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some((t=>r(t)))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizonatalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:a,height:h});t-=o.width,i-=o.height,o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),e=o.height,i-=o.height,this.componentStore.xAxis.setAxisPosition("left"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=o.width,s=o.width,this.componentStore.yAxis.setAxisPosition("top"),o=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=o.height,n=e+o.height,t>0&&(a+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:h}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([n,n+h]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some((t=>r(t)))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizonatalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}}class C{static build(t,i,e,s){return new S(t,i,e,s).getDrawableElement()}}let k,_=0,T=I(),R=v(),D=M(),L=R.plotColorPalette.split(",").map((t=>t.trim())),P=!1,E=!1;function v(){const t=(0,s.D)(),i=(0,s.E)();return(0,s.B)(t.xyChart,i.themeVariables.xyChart)}function I(){const t=(0,s.E)();return(0,s.B)(s.A.xyChart,t.xyChart)}function M(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function $(t){const i=(0,s.E)();return(0,s.d)(t.trim(),i)}function B(t,i){D.xAxis={type:"linear",title:D.xAxis.title,min:t,max:i},P=!0}function z(t){let i=[];if(0===t.length)return i;if(!P){const i=c(D.xAxis)?D.xAxis.min:1/0,e=c(D.xAxis)?D.xAxis.max:-1/0;B(Math.min(i,1),Math.max(e,t.length))}if(E||function(t){const i=Math.min(...t),e=Math.max(...t),s=c(D.yAxis)?D.yAxis.min:1/0,n=c(D.yAxis)?D.yAxis.max:-1/0;D.yAxis={type:"linear",title:D.yAxis.title,min:Math.min(s,i),max:Math.max(n,e)}}(t),l(D.xAxis)&&(i=D.xAxis.categories.map(((i,e)=>[i,t[e]]))),c(D.xAxis)){const e=D.xAxis.min,s=D.xAxis.max,n=(s-e+1)/t.length,a=[];for(let t=e;t<=s;t+=n)a.push(`${t}`);i=a.map(((i,e)=>[i,t[e]]))}return i}function W(t){return L[0===t?0:t%L.length]}const O={parser:o,db:{getDrawableElem:function(){if(0===D.plots.length)throw Error("No Plot to render, please provide a plot with some data");return D.title=(0,s.r)(),C.build(T,D,R,k)},clear:function(){(0,s.t)(),_=0,T=I(),D={yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]},R=v(),L=R.plotColorPalette.split(",").map((t=>t.trim())),P=!1,E=!1},setAccTitle:s.s,getAccTitle:s.g,setDiagramTitle:s.q,getDiagramTitle:s.r,getAccDescription:s.a,setAccDescription:s.b,setOrientation:function(t){T.chartOrientation="horizontal"===t?"horizontal":"vertical"},setXAxisTitle:function(t){D.xAxis.title=$(t.text)},setXAxisRangeData:B,setXAxisBand:function(t){D.xAxis={type:"band",title:D.xAxis.title,categories:t.map((t=>$(t.text)))},P=!0},setYAxisTitle:function(t){D.yAxis.title=$(t.text)},setYAxisRangeData:function(t,i){D.yAxis={type:"linear",title:D.yAxis.title,min:t,max:i},E=!0},setLineData:function(t,i){const e=z(i);D.plots.push({type:"line",strokeFill:W(_),strokeWidth:2,data:e}),_++},setBarData:function(t,i){const e=z(i);D.plots.push({type:"bar",fill:W(_),data:e}),_++},setTmpSVGG:function(t){k=t},getChartThemeConfig:function(){return R},getChartConfig:function(){return T}},renderer:{draw:(t,i,e,n)=>{const a=n.db,h=a.getChartThemeConfig(),o=a.getChartConfig();function r(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}s.l.debug("Rendering xychart chart\n"+t);const l=(0,s.z)(i),c=l.append("g").attr("class","main"),g=c.append("rect").attr("width",o.width).attr("height",o.height).attr("class","background");(0,s.i)(l,o.height,o.width,!0),l.attr("viewBox",`0 0 ${o.width} ${o.height}`),g.attr("fill",h.backgroundColor),a.setTmpSVGG(l.append("g").attr("class","mermaid-tmp-group"));const u=a.getDrawableElem(),x={};function d(t){let i=c,e="";for(const[s]of t.entries()){let n=c;s>0&&x[e]&&(n=x[e]),e+=t[s],i=x[e],i||(i=x[e]=n.append("g").attr("class",t[s]))}return i}for(const s of u){if(0===s.data.length)continue;const t=d(s.groupTexts);switch(s.type){case"rect":t.selectAll("rect").data(s.data).enter().append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill)).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth));break;case"text":t.selectAll("text").data(s.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>"top"===t.verticalPos?"text-before-edge":"middle")).attr("text-anchor",(t=>{return"left"===(i=t.horizontalPos)?"start":"right"===i?"end":"middle";var i})).attr("transform",(t=>r(t))).text((t=>t.text));break;case"path":t.selectAll("path").data(s.data).enter().append("path").attr("d",(t=>t.path)).attr("fill",(t=>t.fill?t.fill:"none")).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth))}}}}}}}]); \ No newline at end of file diff --git a/assets/js/2693.86767de9.js b/assets/js/2693.86767de9.js new file mode 100644 index 0000000..dd1246d --- /dev/null +++ b/assets/js/2693.86767de9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2693],{32693:(t,i,e)=>{e.d(i,{diagram:()=>O});var s=e(85322),n=e(13076),a=e(64218),h=(e(27484),e(17967),e(27856),function(){var t=function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],a=[1,6],h=[1,7],o=[1,5,10,12,14,16,18,19,21,23,34,35,36],r=[1,25],l=[1,26],c=[1,28],g=[1,29],u=[1,30],x=[1,31],d=[1,32],p=[1,33],f=[1,34],y=[1,35],m=[1,36],b=[1,37],A=[1,43],w=[1,42],S=[1,47],C=[1,50],k=[1,10,12,14,16,18,19,21,23,34,35,36],_=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],T=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],R=[1,64],D={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(t,i,e,s,n,a,h){var o=a.length-1;switch(n){case 5:s.setOrientation(a[o]);break;case 9:s.setDiagramTitle(a[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},a[o]);break;case 13:s.setLineData(a[o-1],a[o]);break;case 14:s.setBarData({text:"",type:"text"},a[o]);break;case 15:s.setBarData(a[o-1],a[o]);break;case 16:this.$=a[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),s.setAccDescription(this.$);break;case 19:case 27:this.$=a[o-1];break;case 20:this.$=[Number(a[o-2]),...a[o]];break;case 21:this.$=[Number(a[o])];break;case 22:s.setXAxisTitle(a[o]);break;case 23:s.setXAxisTitle(a[o-1]);break;case 24:s.setXAxisTitle({type:"text",text:""});break;case 25:s.setXAxisBand(a[o]);break;case 26:s.setXAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 28:this.$=[a[o-2],...a[o]];break;case 29:this.$=[a[o]];break;case 30:s.setYAxisTitle(a[o]);break;case 31:s.setYAxisTitle(a[o-1]);break;case 32:s.setYAxisTitle({type:"text",text:""});break;case 33:s.setYAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 37:case 38:this.$={text:a[o],type:"text"};break;case 39:this.$={text:a[o],type:"markdown"};break;case 40:this.$=a[o];break;case 41:this.$=a[o-1]+""+a[o]}},table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:a,36:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:a,36:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:a,36:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(o,[2,34]),t(o,[2,35]),t(o,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:a,36:h}),{1:[2,3]},t(o,[2,5]),t(i,[2,7],{4:22,34:n,35:a,36:h}),{11:23,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:39,13:38,24:A,27:w,29:40,30:41,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:45,15:44,27:S,33:46,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:49,17:48,24:C,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{11:52,17:51,24:C,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},{20:[1,53]},{22:[1,54]},t(k,[2,18]),{1:[2,2]},t(k,[2,8]),t(k,[2,9]),t(_,[2,37],{40:55,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b}),t(_,[2,38]),t(_,[2,39]),t(T,[2,40]),t(T,[2,42]),t(T,[2,43]),t(T,[2,44]),t(T,[2,45]),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(k,[2,10]),t(k,[2,22],{30:41,29:56,24:A,27:w}),t(k,[2,24]),t(k,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},t(k,[2,11]),t(k,[2,30],{33:60,27:S}),t(k,[2,32]),{31:[1,61]},t(k,[2,12]),{17:62,24:C},{25:63,27:R},t(k,[2,14]),{17:65,24:C},t(k,[2,16]),t(k,[2,17]),t(T,[2,41]),t(k,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(k,[2,31]),{27:[1,69]},t(k,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(k,[2,15]),t(k,[2,26]),t(k,[2,27]),{11:59,32:72,37:24,38:r,39:l,40:27,41:c,42:g,43:u,44:x,45:d,46:p,47:f,48:y,49:m,50:b},t(k,[2,33]),t(k,[2,19]),{25:73,27:R},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(t,i){if(!i.recoverable){var e=new Error(t);throw e.hash=i,e}this.trace(t)},parse:function(t){var i=this,e=[0],s=[],n=[null],a=[],h=this.table,o="",r=0,l=0,c=a.slice.call(arguments,1),g=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);g.setInput(t,u.yy),u.yy.lexer=g,u.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var d=g.yylloc;a.push(d);var p=g.options&&g.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,y,m,b,A,w,S,C,k,_={};;){if(y=e[e.length-1],this.defaultActions[y]?m=this.defaultActions[y]:(null==f&&(k=void 0,"number"!=typeof(k=s.pop()||g.lex()||1)&&(k instanceof Array&&(k=(s=k).pop()),k=i.symbols_[k]||k),f=k),m=h[y]&&h[y][f]),void 0===m||!m.length||!m[0]){var T="";for(A in C=[],h[y])this.terminals_[A]&&A>2&&C.push("'"+this.terminals_[A]+"'");T=g.showPosition?"Parse error on line "+(r+1)+":\n"+g.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(r+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(T,{text:g.match,token:this.terminals_[f]||f,line:g.yylineno,loc:d,expected:C})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+f);switch(m[0]){case 1:e.push(f),n.push(g.yytext),a.push(g.yylloc),e.push(m[1]),f=null,l=g.yyleng,o=g.yytext,r=g.yylineno,d=g.yylloc;break;case 2:if(w=this.productions_[m[1]][1],_.$=n[n.length-w],_._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},p&&(_._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(_,[o,l,r,u.yy,m[1],n,a].concat(c))))return b;w&&(e=e.slice(0,-1*w*2),n=n.slice(0,-1*w),a=a.slice(0,-1*w)),e.push(this.productions_[m[1]][0]),n.push(_.$),a.push(_._$),S=h[e[e.length-2]][e[e.length-1]],e.push(S);break;case 3:return!0}}return!0}},L={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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),e.length-1&&(this.yylineno-=e.length-1);var n=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:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var e,s,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,e,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;a<n.length;a++)if((e=this._input.match(this.rules[n[a]]))&&(!i||e[0].length>i[0].length)){if(i=e,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[a])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[s]))&&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,i,e,s){switch(e){case 0:case 1:case 5:case 43:break;case 2:case 3:return this.popState(),34;case 4:return 34;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 25:case 27:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 26:this.pushState("string");break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};function P(){this.yy={}}return D.lexer=L,P.prototype=D,D.Parser=P,new P}());h.parser=h;const o=h;function r(t){return"bar"===t.type}function l(t){return"band"===t.type}function c(t){return"linear"===t.type}class g{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce(((t,i)=>Math.max(i.length,t)),0)*i,height:i};const e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const a of t){const t=(0,n.c)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}}class u{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((t=>t.toString())),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);const n=e.height+2*this.axisConfig.labelPadding;this.labelTextHeight=e.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);const n=e.width+2*this.axisConfig.labelPadding;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"})))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}}class x extends u{constructor(t,i,e,s,n){super(t,s,n,i),this.categories=e,this.scale=(0,a.tiA)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,a.tiA)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),s.l.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)||this.getRange()[0]}}class d extends u{constructor(t,i,e,s,n){super(t,s,n,i),this.domain=e,this.scale=(0,a.BYU)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,a.BYU)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}function p(t,i,e,s){const n=new g(s);return l(t)?new x(i,e,t.categories,t.title,n):new d(i,e,[t.min,t.max],t.title,n)}class f{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}}function y(t,i,e,s){const n=new g(s);return new f(n,t,i,e)}class m{constructor(t,i,e,s,n){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=n}getDrawableElement(){const t=this.plotData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]));let i;return i="horizontal"===this.orientation?(0,a.jvg)().y((t=>t[0])).x((t=>t[1]))(t):(0,a.jvg)().x((t=>t[0])).y((t=>t[1]))(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class b{constructor(t,i,e,s,n,a){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=a}getDrawableElement(){const t=this.barData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])])),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]}}class A{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!this.xAxis||!this.yAxis)throw Error("Axes must be passed to render Plots");const t=[];for(const[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{const s=new m(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{const s=new b(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}}function w(t,i,e){return new A(t,i,e)}class S{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:y(t,i,e,s),plot:w(t,i,e),xAxis:p(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:p(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),h=this.componentStore.plot.calculateSpace({width:n,height:a});t-=h.width,i-=h.height,h=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=h.height,i-=h.height,this.componentStore.xAxis.setAxisPosition("bottom"),h=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=h.height,this.componentStore.yAxis.setAxisPosition("left"),h=this.componentStore.yAxis.calculateSpace({width:t,height:i}),e=h.width,t-=h.width,t>0&&(n+=t,t=0),i>0&&(a+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:a}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+a}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some((t=>r(t)))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizonatalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:a,height:h});t-=o.width,i-=o.height,o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),e=o.height,i-=o.height,this.componentStore.xAxis.setAxisPosition("left"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=o.width,s=o.width,this.componentStore.yAxis.setAxisPosition("top"),o=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=o.height,n=e+o.height,t>0&&(a+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:h}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([n,n+h]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some((t=>r(t)))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizonatalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}}class C{static build(t,i,e,s){return new S(t,i,e,s).getDrawableElement()}}let k,_=0,T=I(),R=v(),D=M(),L=R.plotColorPalette.split(",").map((t=>t.trim())),P=!1,E=!1;function v(){const t=(0,s.D)(),i=(0,s.E)();return(0,s.B)(t.xyChart,i.themeVariables.xyChart)}function I(){const t=(0,s.E)();return(0,s.B)(s.A.xyChart,t.xyChart)}function M(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function $(t){const i=(0,s.E)();return(0,s.d)(t.trim(),i)}function B(t,i){D.xAxis={type:"linear",title:D.xAxis.title,min:t,max:i},P=!0}function z(t){let i=[];if(0===t.length)return i;if(!P){const i=c(D.xAxis)?D.xAxis.min:1/0,e=c(D.xAxis)?D.xAxis.max:-1/0;B(Math.min(i,1),Math.max(e,t.length))}if(E||function(t){const i=Math.min(...t),e=Math.max(...t),s=c(D.yAxis)?D.yAxis.min:1/0,n=c(D.yAxis)?D.yAxis.max:-1/0;D.yAxis={type:"linear",title:D.yAxis.title,min:Math.min(s,i),max:Math.max(n,e)}}(t),l(D.xAxis)&&(i=D.xAxis.categories.map(((i,e)=>[i,t[e]]))),c(D.xAxis)){const e=D.xAxis.min,s=D.xAxis.max,n=(s-e+1)/t.length,a=[];for(let t=e;t<=s;t+=n)a.push(`${t}`);i=a.map(((i,e)=>[i,t[e]]))}return i}function W(t){return L[0===t?0:t%L.length]}const O={parser:o,db:{getDrawableElem:function(){if(0===D.plots.length)throw Error("No Plot to render, please provide a plot with some data");return D.title=(0,s.r)(),C.build(T,D,R,k)},clear:function(){(0,s.t)(),_=0,T=I(),D={yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]},R=v(),L=R.plotColorPalette.split(",").map((t=>t.trim())),P=!1,E=!1},setAccTitle:s.s,getAccTitle:s.g,setDiagramTitle:s.q,getDiagramTitle:s.r,getAccDescription:s.a,setAccDescription:s.b,setOrientation:function(t){T.chartOrientation="horizontal"===t?"horizontal":"vertical"},setXAxisTitle:function(t){D.xAxis.title=$(t.text)},setXAxisRangeData:B,setXAxisBand:function(t){D.xAxis={type:"band",title:D.xAxis.title,categories:t.map((t=>$(t.text)))},P=!0},setYAxisTitle:function(t){D.yAxis.title=$(t.text)},setYAxisRangeData:function(t,i){D.yAxis={type:"linear",title:D.yAxis.title,min:t,max:i},E=!0},setLineData:function(t,i){const e=z(i);D.plots.push({type:"line",strokeFill:W(_),strokeWidth:2,data:e}),_++},setBarData:function(t,i){const e=z(i);D.plots.push({type:"bar",fill:W(_),data:e}),_++},setTmpSVGG:function(t){k=t},getChartThemeConfig:function(){return R},getChartConfig:function(){return T}},renderer:{draw:(t,i,e,n)=>{const a=n.db,h=a.getChartThemeConfig(),o=a.getChartConfig();function r(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}s.l.debug("Rendering xychart chart\n"+t);const l=(0,s.z)(i),c=l.append("g").attr("class","main"),g=c.append("rect").attr("width",o.width).attr("height",o.height).attr("class","background");(0,s.i)(l,o.height,o.width,!0),l.attr("viewBox",`0 0 ${o.width} ${o.height}`),g.attr("fill",h.backgroundColor),a.setTmpSVGG(l.append("g").attr("class","mermaid-tmp-group"));const u=a.getDrawableElem(),x={};function d(t){let i=c,e="";for(const[s]of t.entries()){let n=c;s>0&&x[e]&&(n=x[e]),e+=t[s],i=x[e],i||(i=x[e]=n.append("g").attr("class",t[s]))}return i}for(const s of u){if(0===s.data.length)continue;const t=d(s.groupTexts);switch(s.type){case"rect":t.selectAll("rect").data(s.data).enter().append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill)).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth));break;case"text":t.selectAll("text").data(s.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>"top"===t.verticalPos?"text-before-edge":"middle")).attr("text-anchor",(t=>{return"left"===(i=t.horizontalPos)?"start":"right"===i?"end":"middle";var i})).attr("transform",(t=>r(t))).text((t=>t.text));break;case"path":t.selectAll("path").data(s.data).enter().append("path").attr("d",(t=>t.path)).attr("fill",(t=>t.fill?t.fill:"none")).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth))}}}}}}}]); \ No newline at end of file diff --git a/assets/js/2696.9c4ce6ae.js b/assets/js/2696.9c4ce6ae.js new file mode 100644 index 0000000..5aac9a4 --- /dev/null +++ b/assets/js/2696.9c4ce6ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2696],{72696:(t,e,a)=>{a.d(e,{diagram:()=>b});var i=a(41504),n=a(64218),d=a(41644),r=a(45625),s=a(85322);a(27484),a(17967),a(27856);const o={},c=(t,e)=>{o[t]=e},g=(t,e)=>{const a=t.append("text").attr("x",2*(0,s.c)().state.padding).attr("y",(0,s.c)().state.textHeight+1.3*(0,s.c)().state.padding).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),i=a.height,n=t.append("text").attr("x",(0,s.c)().state.padding).attr("y",i+.4*(0,s.c)().state.padding+(0,s.c)().state.dividerMargin+(0,s.c)().state.textHeight).attr("class","state-description");let d=!0,r=!0;e.descriptions.forEach((function(t){d||(!function(t,e,a){const i=t.append("tspan").attr("x",2*(0,s.c)().state.padding).text(e);a||i.attr("dy",(0,s.c)().state.textHeight)}(n,t,r),r=!1),d=!1}));const o=t.append("line").attr("x1",(0,s.c)().state.padding).attr("y1",(0,s.c)().state.padding+i+(0,s.c)().state.dividerMargin/2).attr("y2",(0,s.c)().state.padding+i+(0,s.c)().state.dividerMargin/2).attr("class","descr-divider"),c=n.node().getBBox(),g=Math.max(c.width,a.width);return o.attr("x2",g+3*(0,s.c)().state.padding),t.insert("rect",":first-child").attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding).attr("width",g+2*(0,s.c)().state.padding).attr("height",c.height+i+2*(0,s.c)().state.padding).attr("rx",(0,s.c)().state.radius),t},p=(t,e,a)=>{const i=(0,s.c)().state.padding,n=2*(0,s.c)().state.padding,d=t.node().getBBox(),r=d.width,o=d.x,c=t.append("text").attr("x",0).attr("y",(0,s.c)().state.titleShift).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.id),g=c.node().getBBox().width+n;let p,h=Math.max(g,r);h===r&&(h+=n);const l=t.node().getBBox();e.doc,p=o-i,g>r&&(p=(r-h)/2+i),Math.abs(o-l.x)<i&&g>r&&(p=o-(g-r)/2);const x=1-(0,s.c)().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",x).attr("class",a?"alt-composit":"composit").attr("width",h).attr("height",l.height+(0,s.c)().state.textHeight+(0,s.c)().state.titleShift+1).attr("rx","0"),c.attr("x",p+i),g<=r&&c.attr("x",o+(h-n)/2-g/2+i),t.insert("rect",":first-child").attr("x",p).attr("y",(0,s.c)().state.titleShift-(0,s.c)().state.textHeight-(0,s.c)().state.padding).attr("width",h).attr("height",3*(0,s.c)().state.textHeight).attr("rx",(0,s.c)().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",(0,s.c)().state.titleShift-(0,s.c)().state.textHeight-(0,s.c)().state.padding).attr("width",h).attr("height",l.height+3+2*(0,s.c)().state.textHeight).attr("rx",(0,s.c)().state.radius),t},h=(t,e)=>{e.attr("class","state-note");const a=e.append("rect").attr("x",0).attr("y",(0,s.c)().state.padding),i=e.append("g"),{textWidth:n,textHeight:d}=((t,e,a,i)=>{let n=0;const d=i.append("text");d.style("text-anchor","start"),d.attr("class","noteText");let r=t.replace(/\r\n/g,"<br/>");r=r.replace(/\n/g,"<br/>");const o=r.split(s.e.lineBreakRegex);let c=1.25*(0,s.c)().state.noteMargin;for(const g of o){const t=g.trim();if(t.length>0){const i=d.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),n+=c,i.attr("x",e+(0,s.c)().state.noteMargin),i.attr("y",a+n+1.25*(0,s.c)().state.noteMargin)}}return{textWidth:d.node().getBBox().width,textHeight:n}})(t,0,0,i);return a.attr("height",d+2*(0,s.c)().state.noteMargin),a.attr("width",n+2*(0,s.c)().state.noteMargin),a},l=function(t,e){const a=e.id,i={id:a,label:e.id,width:0,height:0},n=t.append("g").attr("id",a).attr("class","stateGroup");"start"===e.type&&(t=>{t.append("circle").attr("class","start-state").attr("r",(0,s.c)().state.sizeUnit).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit)})(n),"end"===e.type&&(t=>{t.append("circle").attr("class","end-state-outer").attr("r",(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",(0,s.c)().state.sizeUnit).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+2).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+2)})(n),"fork"!==e.type&&"join"!==e.type||((t,e)=>{let a=(0,s.c)().state.forkWidth,i=(0,s.c)().state.forkHeight;if(e.parentId){let t=a;a=i,i=t}t.append("rect").style("stroke","black").style("fill","black").attr("width",a).attr("height",i).attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding)})(n,e),"note"===e.type&&h(e.note.text,n),"divider"===e.type&&(t=>{t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,s.c)().state.textHeight).attr("class","divider").attr("x2",2*(0,s.c)().state.textHeight).attr("y1",0).attr("y2",0)})(n),"default"===e.type&&0===e.descriptions.length&&((t,e)=>{const a=t.append("text").attr("x",2*(0,s.c)().state.padding).attr("y",(0,s.c)().state.textHeight+2*(0,s.c)().state.padding).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.id),i=a.node().getBBox();t.insert("rect",":first-child").attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding).attr("width",i.width+2*(0,s.c)().state.padding).attr("height",i.height+2*(0,s.c)().state.padding).attr("rx",(0,s.c)().state.radius)})(n,e),"default"===e.type&&e.descriptions.length>0&&g(n,e);const d=n.node().getBBox();return i.width=d.width+2*(0,s.c)().state.padding,i.height=d.height+2*(0,s.c)().state.padding,c(a,i),i};let x=0;let f;const u={},y=(t,e,a,o,c,g,h)=>{const w=new r.k({compound:!0,multigraph:!0});let b,B=!0;for(b=0;b<t.length;b++)if("relation"===t[b].stmt){B=!1;break}a?w.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:B?1:f.edgeLengthFactor,nodeSep:B?1:50,isMultiGraph:!0}):w.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:B?1:f.edgeLengthFactor,nodeSep:B?1:50,ranker:"tight-tree",isMultiGraph:!0}),w.setDefaultEdgeLabel((function(){return{}})),h.db.extract(t);const m=h.db.getStates(),k=h.db.getRelations(),N=Object.keys(m);for(const i of N){const t=m[i];let n;if(a&&(t.parentId=a),t.doc){let a=e.append("g").attr("id",t.id).attr("class","stateGroup");n=y(t.doc,a,t.id,!o,c,g,h);{a=p(a,t,o);let e=a.node().getBBox();n.width=e.width,n.height=e.height+f.padding/2,u[t.id]={y:f.compositTitleSize}}}else n=l(e,t);if(t.note){const a={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=l(e,a);"left of"===t.note.position?(w.setNode(n.id+"-note",i),w.setNode(n.id,n)):(w.setNode(n.id,n),w.setNode(n.id+"-note",i)),w.setParent(n.id,n.id+"-group"),w.setParent(n.id+"-note",n.id+"-group")}else w.setNode(n.id,n)}s.l.debug("Count=",w.nodeCount(),w);let E=0;k.forEach((function(t){var e;E++,s.l.debug("Setting edge",t),w.setEdge(t.id1,t.id2,{relation:t,width:(e=t.title,e?e.length*f.fontSizeFactor:1),height:f.labelHeight*s.e.getRows(t.title).length,labelpos:"c"},"id"+E)})),(0,d.bK)(w),s.l.debug("Graph after layout",w.nodes());const M=e.node();w.nodes().forEach((function(t){if(void 0!==t&&void 0!==w.node(t)){s.l.warn("Node "+t+": "+JSON.stringify(w.node(t))),c.select("#"+M.id+" #"+t).attr("transform","translate("+(w.node(t).x-w.node(t).width/2)+","+(w.node(t).y+(u[t]?u[t].y:0)-w.node(t).height/2)+" )"),c.select("#"+M.id+" #"+t).attr("data-x-shift",w.node(t).x-w.node(t).width/2);g.querySelectorAll("#"+M.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let a=0,i=0;e&&(e.parentElement&&(a=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",a-i-8)}))}else s.l.debug("No Node "+t+": "+JSON.stringify(w.node(t)))}));let v=M.getBBox();w.edges().forEach((function(t){void 0!==t&&void 0!==w.edge(t)&&(s.l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(w.edge(t))),function(t,e,a){e.points=e.points.filter((t=>!Number.isNaN(t.y)));const d=e.points,r=(0,n.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(n.$0Z),o=t.append("path").attr("d",r(d)).attr("id","edge"+x).attr("class","transition");let c="";if((0,s.c)().state.arrowMarkerAbsolute&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),o.attr("marker-end","url("+c+"#"+function(t){switch(t){case i.d.relationType.AGGREGATION:return"aggregation";case i.d.relationType.EXTENSION:return"extension";case i.d.relationType.COMPOSITION:return"composition";case i.d.relationType.DEPENDENCY:return"dependency"}}(i.d.relationType.DEPENDENCY)+"End)"),void 0!==a.title){const i=t.append("g").attr("class","stateLabel"),{x:n,y:d}=s.u.calcLabelPosition(e.points),r=s.e.getRows(a.title);let o=0;const c=[];let g=0,p=0;for(let t=0;t<=r.length;t++){const e=i.append("text").attr("text-anchor","middle").text(r[t]).attr("x",n).attr("y",d+o),a=e.node().getBBox();if(g=Math.max(g,a.width),p=Math.min(p,a.x),s.l.info(a.x,n,d+o),0===o){const t=e.node().getBBox();o=t.height,s.l.info("Title height",o,d)}c.push(e)}let h=o*r.length;if(r.length>1){const t=(r.length-1)*o*.5;c.forEach(((e,a)=>e.attr("y",d+a*o-t))),h=o*r.length}const l=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",n-g/2-(0,s.c)().state.padding/2).attr("y",d-h/2-(0,s.c)().state.padding/2-3.5).attr("width",g+(0,s.c)().state.padding).attr("height",h+(0,s.c)().state.padding),s.l.info(l)}x++}(e,w.edge(t),w.edge(t).relation))})),v=M.getBBox();const S={id:a||"root",label:a||"root",width:0,height:0};return S.width=v.width+2*f.padding,S.height=v.height+2*f.padding,s.l.debug("Doc rendered",S,w),S},w={setConf:function(){},draw:function(t,e,a,i){f=(0,s.c)().state;const d=(0,s.c)().securityLevel;let r;"sandbox"===d&&(r=(0,n.Ys)("#i"+e));const o="sandbox"===d?(0,n.Ys)(r.nodes()[0].contentDocument.body):(0,n.Ys)("body"),c="sandbox"===d?r.nodes()[0].contentDocument:document;s.l.debug("Rendering diagram "+t);const g=o.select(`[id='${e}']`);g.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");const p=i.db.getRootDoc();y(p,g,void 0,!1,o,c,i);const h=f.padding,l=g.node().getBBox(),x=l.width+2*h,u=l.height+2*h,w=1.75*x;(0,s.i)(g,u,w,f.useMaxWidth),g.attr("viewBox",`${l.x-f.padding} ${l.y-f.padding} `+x+" "+u)}},b={parser:i.p,db:i.d,renderer:w,styles:i.s,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,i.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/2696.e61a0300.js b/assets/js/2696.e61a0300.js deleted file mode 100644 index 788ef88..0000000 --- a/assets/js/2696.e61a0300.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2696],{2696:(t,e,a)=>{a.d(e,{diagram:()=>b});var i=a(1504),n=a(4218),d=a(1644),r=a(5625),s=a(5322);a(7484),a(7967),a(7856);const o={},c=(t,e)=>{o[t]=e},g=(t,e)=>{const a=t.append("text").attr("x",2*(0,s.c)().state.padding).attr("y",(0,s.c)().state.textHeight+1.3*(0,s.c)().state.padding).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),i=a.height,n=t.append("text").attr("x",(0,s.c)().state.padding).attr("y",i+.4*(0,s.c)().state.padding+(0,s.c)().state.dividerMargin+(0,s.c)().state.textHeight).attr("class","state-description");let d=!0,r=!0;e.descriptions.forEach((function(t){d||(!function(t,e,a){const i=t.append("tspan").attr("x",2*(0,s.c)().state.padding).text(e);a||i.attr("dy",(0,s.c)().state.textHeight)}(n,t,r),r=!1),d=!1}));const o=t.append("line").attr("x1",(0,s.c)().state.padding).attr("y1",(0,s.c)().state.padding+i+(0,s.c)().state.dividerMargin/2).attr("y2",(0,s.c)().state.padding+i+(0,s.c)().state.dividerMargin/2).attr("class","descr-divider"),c=n.node().getBBox(),g=Math.max(c.width,a.width);return o.attr("x2",g+3*(0,s.c)().state.padding),t.insert("rect",":first-child").attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding).attr("width",g+2*(0,s.c)().state.padding).attr("height",c.height+i+2*(0,s.c)().state.padding).attr("rx",(0,s.c)().state.radius),t},p=(t,e,a)=>{const i=(0,s.c)().state.padding,n=2*(0,s.c)().state.padding,d=t.node().getBBox(),r=d.width,o=d.x,c=t.append("text").attr("x",0).attr("y",(0,s.c)().state.titleShift).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.id),g=c.node().getBBox().width+n;let p,h=Math.max(g,r);h===r&&(h+=n);const l=t.node().getBBox();e.doc,p=o-i,g>r&&(p=(r-h)/2+i),Math.abs(o-l.x)<i&&g>r&&(p=o-(g-r)/2);const x=1-(0,s.c)().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",x).attr("class",a?"alt-composit":"composit").attr("width",h).attr("height",l.height+(0,s.c)().state.textHeight+(0,s.c)().state.titleShift+1).attr("rx","0"),c.attr("x",p+i),g<=r&&c.attr("x",o+(h-n)/2-g/2+i),t.insert("rect",":first-child").attr("x",p).attr("y",(0,s.c)().state.titleShift-(0,s.c)().state.textHeight-(0,s.c)().state.padding).attr("width",h).attr("height",3*(0,s.c)().state.textHeight).attr("rx",(0,s.c)().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",(0,s.c)().state.titleShift-(0,s.c)().state.textHeight-(0,s.c)().state.padding).attr("width",h).attr("height",l.height+3+2*(0,s.c)().state.textHeight).attr("rx",(0,s.c)().state.radius),t},h=(t,e)=>{e.attr("class","state-note");const a=e.append("rect").attr("x",0).attr("y",(0,s.c)().state.padding),i=e.append("g"),{textWidth:n,textHeight:d}=((t,e,a,i)=>{let n=0;const d=i.append("text");d.style("text-anchor","start"),d.attr("class","noteText");let r=t.replace(/\r\n/g,"<br/>");r=r.replace(/\n/g,"<br/>");const o=r.split(s.e.lineBreakRegex);let c=1.25*(0,s.c)().state.noteMargin;for(const g of o){const t=g.trim();if(t.length>0){const i=d.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),n+=c,i.attr("x",e+(0,s.c)().state.noteMargin),i.attr("y",a+n+1.25*(0,s.c)().state.noteMargin)}}return{textWidth:d.node().getBBox().width,textHeight:n}})(t,0,0,i);return a.attr("height",d+2*(0,s.c)().state.noteMargin),a.attr("width",n+2*(0,s.c)().state.noteMargin),a},l=function(t,e){const a=e.id,i={id:a,label:e.id,width:0,height:0},n=t.append("g").attr("id",a).attr("class","stateGroup");"start"===e.type&&(t=>{t.append("circle").attr("class","start-state").attr("r",(0,s.c)().state.sizeUnit).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit)})(n),"end"===e.type&&(t=>{t.append("circle").attr("class","end-state-outer").attr("r",(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+(0,s.c)().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",(0,s.c)().state.sizeUnit).attr("cx",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+2).attr("cy",(0,s.c)().state.padding+(0,s.c)().state.sizeUnit+2)})(n),"fork"!==e.type&&"join"!==e.type||((t,e)=>{let a=(0,s.c)().state.forkWidth,i=(0,s.c)().state.forkHeight;if(e.parentId){let t=a;a=i,i=t}t.append("rect").style("stroke","black").style("fill","black").attr("width",a).attr("height",i).attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding)})(n,e),"note"===e.type&&h(e.note.text,n),"divider"===e.type&&(t=>{t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,s.c)().state.textHeight).attr("class","divider").attr("x2",2*(0,s.c)().state.textHeight).attr("y1",0).attr("y2",0)})(n),"default"===e.type&&0===e.descriptions.length&&((t,e)=>{const a=t.append("text").attr("x",2*(0,s.c)().state.padding).attr("y",(0,s.c)().state.textHeight+2*(0,s.c)().state.padding).attr("font-size",(0,s.c)().state.fontSize).attr("class","state-title").text(e.id),i=a.node().getBBox();t.insert("rect",":first-child").attr("x",(0,s.c)().state.padding).attr("y",(0,s.c)().state.padding).attr("width",i.width+2*(0,s.c)().state.padding).attr("height",i.height+2*(0,s.c)().state.padding).attr("rx",(0,s.c)().state.radius)})(n,e),"default"===e.type&&e.descriptions.length>0&&g(n,e);const d=n.node().getBBox();return i.width=d.width+2*(0,s.c)().state.padding,i.height=d.height+2*(0,s.c)().state.padding,c(a,i),i};let x=0;let f;const u={},y=(t,e,a,o,c,g,h)=>{const w=new r.k({compound:!0,multigraph:!0});let b,B=!0;for(b=0;b<t.length;b++)if("relation"===t[b].stmt){B=!1;break}a?w.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:B?1:f.edgeLengthFactor,nodeSep:B?1:50,isMultiGraph:!0}):w.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:B?1:f.edgeLengthFactor,nodeSep:B?1:50,ranker:"tight-tree",isMultiGraph:!0}),w.setDefaultEdgeLabel((function(){return{}})),h.db.extract(t);const m=h.db.getStates(),k=h.db.getRelations(),N=Object.keys(m);for(const i of N){const t=m[i];let n;if(a&&(t.parentId=a),t.doc){let a=e.append("g").attr("id",t.id).attr("class","stateGroup");n=y(t.doc,a,t.id,!o,c,g,h);{a=p(a,t,o);let e=a.node().getBBox();n.width=e.width,n.height=e.height+f.padding/2,u[t.id]={y:f.compositTitleSize}}}else n=l(e,t);if(t.note){const a={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=l(e,a);"left of"===t.note.position?(w.setNode(n.id+"-note",i),w.setNode(n.id,n)):(w.setNode(n.id,n),w.setNode(n.id+"-note",i)),w.setParent(n.id,n.id+"-group"),w.setParent(n.id+"-note",n.id+"-group")}else w.setNode(n.id,n)}s.l.debug("Count=",w.nodeCount(),w);let E=0;k.forEach((function(t){var e;E++,s.l.debug("Setting edge",t),w.setEdge(t.id1,t.id2,{relation:t,width:(e=t.title,e?e.length*f.fontSizeFactor:1),height:f.labelHeight*s.e.getRows(t.title).length,labelpos:"c"},"id"+E)})),(0,d.bK)(w),s.l.debug("Graph after layout",w.nodes());const M=e.node();w.nodes().forEach((function(t){if(void 0!==t&&void 0!==w.node(t)){s.l.warn("Node "+t+": "+JSON.stringify(w.node(t))),c.select("#"+M.id+" #"+t).attr("transform","translate("+(w.node(t).x-w.node(t).width/2)+","+(w.node(t).y+(u[t]?u[t].y:0)-w.node(t).height/2)+" )"),c.select("#"+M.id+" #"+t).attr("data-x-shift",w.node(t).x-w.node(t).width/2);g.querySelectorAll("#"+M.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let a=0,i=0;e&&(e.parentElement&&(a=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",a-i-8)}))}else s.l.debug("No Node "+t+": "+JSON.stringify(w.node(t)))}));let v=M.getBBox();w.edges().forEach((function(t){void 0!==t&&void 0!==w.edge(t)&&(s.l.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(w.edge(t))),function(t,e,a){e.points=e.points.filter((t=>!Number.isNaN(t.y)));const d=e.points,r=(0,n.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(n.$0Z),o=t.append("path").attr("d",r(d)).attr("id","edge"+x).attr("class","transition");let c="";if((0,s.c)().state.arrowMarkerAbsolute&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),o.attr("marker-end","url("+c+"#"+function(t){switch(t){case i.d.relationType.AGGREGATION:return"aggregation";case i.d.relationType.EXTENSION:return"extension";case i.d.relationType.COMPOSITION:return"composition";case i.d.relationType.DEPENDENCY:return"dependency"}}(i.d.relationType.DEPENDENCY)+"End)"),void 0!==a.title){const i=t.append("g").attr("class","stateLabel"),{x:n,y:d}=s.u.calcLabelPosition(e.points),r=s.e.getRows(a.title);let o=0;const c=[];let g=0,p=0;for(let t=0;t<=r.length;t++){const e=i.append("text").attr("text-anchor","middle").text(r[t]).attr("x",n).attr("y",d+o),a=e.node().getBBox();if(g=Math.max(g,a.width),p=Math.min(p,a.x),s.l.info(a.x,n,d+o),0===o){const t=e.node().getBBox();o=t.height,s.l.info("Title height",o,d)}c.push(e)}let h=o*r.length;if(r.length>1){const t=(r.length-1)*o*.5;c.forEach(((e,a)=>e.attr("y",d+a*o-t))),h=o*r.length}const l=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",n-g/2-(0,s.c)().state.padding/2).attr("y",d-h/2-(0,s.c)().state.padding/2-3.5).attr("width",g+(0,s.c)().state.padding).attr("height",h+(0,s.c)().state.padding),s.l.info(l)}x++}(e,w.edge(t),w.edge(t).relation))})),v=M.getBBox();const S={id:a||"root",label:a||"root",width:0,height:0};return S.width=v.width+2*f.padding,S.height=v.height+2*f.padding,s.l.debug("Doc rendered",S,w),S},w={setConf:function(){},draw:function(t,e,a,i){f=(0,s.c)().state;const d=(0,s.c)().securityLevel;let r;"sandbox"===d&&(r=(0,n.Ys)("#i"+e));const o="sandbox"===d?(0,n.Ys)(r.nodes()[0].contentDocument.body):(0,n.Ys)("body"),c="sandbox"===d?r.nodes()[0].contentDocument:document;s.l.debug("Rendering diagram "+t);const g=o.select(`[id='${e}']`);g.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");const p=i.db.getRootDoc();y(p,g,void 0,!1,o,c,i);const h=f.padding,l=g.node().getBBox(),x=l.width+2*h,u=l.height+2*h,w=1.75*x;(0,s.i)(g,u,w,f.useMaxWidth),g.attr("viewBox",`${l.x-f.padding} ${l.y-f.padding} `+x+" "+u)}},b={parser:i.p,db:i.d,renderer:w,styles:i.s,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,i.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/2700.24d240c1.js b/assets/js/2700.24d240c1.js deleted file mode 100644 index 7a35256..0000000 --- a/assets/js/2700.24d240c1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2700],{2700:(t,e,n)=>{n.d(e,{diagram:()=>O});var i=n(5322),s=n(4218),r=n(1619),a=n(2281),o=n(7201),l=(n(7484),n(7967),n(7856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],s=[1,11],r=[1,12],a=[1,13],o=[1,16],l=[1,17],c={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.getCommonDb().setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 9:this.$=r[o].trim(),i.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=r[o].trim(),i.getCommonDb().setAccDescription(this.$);break;case 12:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 15:i.addTask(r[o],0,""),this.$=r[o];break;case 16:i.addEvent(r[o].substr(2)),this.$=r[o]}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:s,16:r,17:a,18:14,19:15,20:o,21:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:n,12:i,14:s,16:r,17:a,18:14,19:15,20:o,21:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},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="",l=0,c=0,h=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var y=d.yylloc;r.push(y);var g=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,m,_,b,x,k,v,w,S,$={};;){if(m=n[n.length-1],this.defaultActions[m]?_=this.defaultActions[m]:(null==f&&(S=void 0,"number"!=typeof(S=i.pop()||d.lex()||1)&&(S instanceof Array&&(S=(i=S).pop()),S=e.symbols_[S]||S),f=S),_=a[m]&&a[m][f]),void 0===_||!_.length||!_[0]){var E="";for(x in w=[],a[m])this.terminals_[x]&&x>2&&w.push("'"+this.terminals_[x]+"'");E=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:y,expected:w})}if(_[0]instanceof Array&&_.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(_[0]){case 1:n.push(f),s.push(d.yytext),r.push(d.yylloc),n.push(_[1]),f=null,c=d.yyleng,o=d.yytext,l=d.yylineno,y=d.yylloc;break;case 2:if(k=this.productions_[_[1]][1],$.$=s[s.length-k],$._$={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},g&&($._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[o,c,l,u.yy,_[1],s,r].concat(h))))return b;k&&(n=n.slice(0,-1*k*2),s=s.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[_[1]][0]),s.push($.$),r.push($._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},h={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\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:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};function d(){this.yy={}}return c.lexer=h,d.prototype=c,c.Parser=d,new d}());l.parser=l;const c=l;let h="",d=0;const u=[],p=[],y=[],g=()=>i.K,f=function(){u.length=0,p.length=0,h="",y.length=0,(0,i.t)()},m=function(t){h=t,u.push(t)},_=function(){return u},b=function(){let t=w();let e=0;for(;!t&&e<100;)t=w(),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)},k=function(t){y.find((t=>t.id===d-1)).events.push(t)},v=function(t){const e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},w=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},S={clear:f,getCommonDb:g,addSection:m,getSections:_,getTasks:b,addTask:x,addTaskOrg:v,addEvent:k},$=Object.freeze(Object.defineProperty({__proto__:null,addEvent:k,addSection:m,addTask:x,addTaskOrg:v,clear:f,default:S,getCommonDb:g,getSections:_,getTasks:b},Symbol.toStringTag,{value:"Module"}));!function(){function t(t,e,n,s,r,a,o,l){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",l).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,l,c){const{taskFontSize:h,taskFontFamily:d}=l,u=t.split(/<br\s*\/?>/gi);for(let p=0;p<u.length;p++){const t=p*h-h*(u.length-1)/2,l=e.append("text").attr("x",n+r/2).attr("y",s).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",d);l.append("tspan").attr("x",n+r/2).attr("dy",t).text(u[p]),l.attr("y",s+a/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,o)}}function n(t,n,s,r,a,o,l,c){const h=n.append("switch"),d=h.append("foreignObject").attr("x",s).attr("y",r).attr("width",a).attr("height",o).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,h,s,r,a,o,l,c),i(d,l)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}}();function E(t,e){t.each((function(){var t,n=(0,s.Ys)(this),i=n.text().split(/(\s+|<br>)/).reverse(),r=[],a=n.attr("y"),o=parseFloat(n.attr("dy")),l=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",o+"em");for(let s=0;s<i.length;s++)t=i[i.length-1-s],r.push(t),l.text(r.join(" ").trim()),(l.node().getComputedTextLength()>e||"<br>"===t)&&(r.pop(),l.text(r.join(" ").trim()),r="<br>"===t?[""]:[t],l=n.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))}))}const I=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)},T=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")},C=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"),l=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(E,e.width).node().getBBox(),c=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=l.height+1.1*c*.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+")"),I(a,e,s),e},L=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(E,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},A=function(t,e,n,s,r,a,o,l,c,h,d){var u;for(const p of e){const e={descr:p.task,section:n,number:n,width:150,padding:20,maxHeight:a};i.l.debug("taskNode",e);const l=t.append("g").attr("class","taskWrapper"),y=C(l,e,n,o).height;if(i.l.debug("taskHeight after draw",y),l.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,y),p.events){const e=t.append("g").attr("class","lineWrapper");let i=a;r+=100,i+=M(t,p.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)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!(null==(u=o.timeline)?void 0:u.disableMulticolor)&&n++}r-=10},M=function(t,e,n,s,r,a){let o=0;const l=r;r+=100;for(const c of e){const e={descr:c,section:n,number:n,width:150,padding:20,maxHeight:50};i.l.debug("eventNode",e);const l=t.append("g").attr("class","eventWrapper"),h=C(l,e,n,a).height;o+=h,l.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=l,o},O={db:$,renderer:{setConf:()=>{},draw:function(t,e,n,r){var a,o;const l=(0,i.c)(),c=l.leftMargin??50;i.l.debug("timeline",r.db);const h=l.securityLevel;let d;"sandbox"===h&&(d=(0,s.Ys)("#i"+e));const u=("sandbox"===h?(0,s.Ys)(d.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);u.append("g");const p=r.db.getTasks(),y=r.db.getCommonDb().getDiagramTitle();i.l.debug("task",p),T(u);const g=r.db.getSections();i.l.debug("sections",g);let f=0,m=0,_=0,b=0,x=50+c,k=50;b=50;let v=0,w=!0;g.forEach((function(t){const e=L(u,{number:v,descr:t,section:v,width:150,padding:20,maxHeight:f},l);i.l.debug("sectionHeight before draw",e),f=Math.max(f,e+20)}));let S=0,$=0;i.l.debug("tasks.length",p.length);for(const[s,I]of p.entries()){const t={number:s,descr:I,section:I.section,width:150,padding:20,maxHeight:m},e=L(u,t,l);i.l.debug("taskHeight before draw",e),m=Math.max(m,e+20),S=Math.max(S,I.events.length);let n=0;for(let i=0;i<I.events.length;i++){const t={descr:I.events[i],section:I.section,number:I.section,width:150,padding:20,maxHeight:50};n+=L(u,t,l)}$=Math.max($,n)}i.l.debug("maxSectionHeight before draw",f),i.l.debug("maxTaskHeight before draw",m),g&&g.length>0?g.forEach((t=>{const e=p.filter((e=>e.section===t)),n={number:v,descr:t,section:v,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:f};i.l.debug("sectionNode",n);const s=u.append("g"),r=C(s,n,v,l);i.l.debug("sectionNode output",r),s.attr("transform",`translate(${x}, 50)`),k+=f+50,e.length>0&&A(u,e,v,x,k,m,l,S,$,f,!1),x+=200*Math.max(e.length,1),k=50,v++})):(w=!1,A(u,p,v,x,k,m,l,S,$,f,!0));const E=u.node().getBBox();i.l.debug("bounds",E),y&&u.append("text").text(y).attr("x",E.width/2-c).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),_=w?f+m+150:m+100;u.append("g").attr("class","lineWrapper").append("line").attr("x1",c).attr("y1",_).attr("x2",E.width+3*c).attr("y2",_).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,i.o)(void 0,u,(null==(a=l.timeline)?void 0:a.padding)??50,(null==(o=l.timeline)?void 0:o.useMaxWidth)??!1)}},parser:c,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${(t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],(0,r.Z)(t["lineColor"+n])?t["lineColor"+n]=(0,a.Z)(t["lineColor"+n],20):t["lineColor"+n]=(0,o.Z)(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})(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`}}}]); \ No newline at end of file diff --git a/assets/js/2700.eb54ab23.js b/assets/js/2700.eb54ab23.js new file mode 100644 index 0000000..a64080e --- /dev/null +++ b/assets/js/2700.eb54ab23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2700],{12700:(t,e,n)=>{n.d(e,{diagram:()=>O});var i=n(85322),s=n(64218),r=n(91619),a=n(12281),o=n(7201),l=(n(27484),n(17967),n(27856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],s=[1,11],r=[1,12],a=[1,13],o=[1,16],l=[1,17],c={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.getCommonDb().setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 9:this.$=r[o].trim(),i.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=r[o].trim(),i.getCommonDb().setAccDescription(this.$);break;case 12:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 15:i.addTask(r[o],0,""),this.$=r[o];break;case 16:i.addEvent(r[o].substr(2)),this.$=r[o]}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:s,16:r,17:a,18:14,19:15,20:o,21:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:n,12:i,14:s,16:r,17:a,18:14,19:15,20:o,21:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},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="",l=0,c=0,h=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var y=d.yylloc;r.push(y);var g=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,m,_,b,x,k,v,w,S,$={};;){if(m=n[n.length-1],this.defaultActions[m]?_=this.defaultActions[m]:(null==f&&(S=void 0,"number"!=typeof(S=i.pop()||d.lex()||1)&&(S instanceof Array&&(S=(i=S).pop()),S=e.symbols_[S]||S),f=S),_=a[m]&&a[m][f]),void 0===_||!_.length||!_[0]){var E="";for(x in w=[],a[m])this.terminals_[x]&&x>2&&w.push("'"+this.terminals_[x]+"'");E=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(E,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:y,expected:w})}if(_[0]instanceof Array&&_.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(_[0]){case 1:n.push(f),s.push(d.yytext),r.push(d.yylloc),n.push(_[1]),f=null,c=d.yyleng,o=d.yytext,l=d.yylineno,y=d.yylloc;break;case 2:if(k=this.productions_[_[1]][1],$.$=s[s.length-k],$._$={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},g&&($._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[o,c,l,u.yy,_[1],s,r].concat(h))))return b;k&&(n=n.slice(0,-1*k*2),s=s.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[_[1]][0]),s.push($.$),r.push($._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},h={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\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:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};function d(){this.yy={}}return c.lexer=h,d.prototype=c,c.Parser=d,new d}());l.parser=l;const c=l;let h="",d=0;const u=[],p=[],y=[],g=()=>i.K,f=function(){u.length=0,p.length=0,h="",y.length=0,(0,i.t)()},m=function(t){h=t,u.push(t)},_=function(){return u},b=function(){let t=w();let e=0;for(;!t&&e<100;)t=w(),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)},k=function(t){y.find((t=>t.id===d-1)).events.push(t)},v=function(t){const e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},w=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},S={clear:f,getCommonDb:g,addSection:m,getSections:_,getTasks:b,addTask:x,addTaskOrg:v,addEvent:k},$=Object.freeze(Object.defineProperty({__proto__:null,addEvent:k,addSection:m,addTask:x,addTaskOrg:v,clear:f,default:S,getCommonDb:g,getSections:_,getTasks:b},Symbol.toStringTag,{value:"Module"}));!function(){function t(t,e,n,s,r,a,o,l){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",l).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,l,c){const{taskFontSize:h,taskFontFamily:d}=l,u=t.split(/<br\s*\/?>/gi);for(let p=0;p<u.length;p++){const t=p*h-h*(u.length-1)/2,l=e.append("text").attr("x",n+r/2).attr("y",s).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",d);l.append("tspan").attr("x",n+r/2).attr("dy",t).text(u[p]),l.attr("y",s+a/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,o)}}function n(t,n,s,r,a,o,l,c){const h=n.append("switch"),d=h.append("foreignObject").attr("x",s).attr("y",r).attr("width",a).attr("height",o).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,h,s,r,a,o,l,c),i(d,l)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}}();function E(t,e){t.each((function(){var t,n=(0,s.Ys)(this),i=n.text().split(/(\s+|<br>)/).reverse(),r=[],a=n.attr("y"),o=parseFloat(n.attr("dy")),l=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",o+"em");for(let s=0;s<i.length;s++)t=i[i.length-1-s],r.push(t),l.text(r.join(" ").trim()),(l.node().getComputedTextLength()>e||"<br>"===t)&&(r.pop(),l.text(r.join(" ").trim()),r="<br>"===t?[""]:[t],l=n.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))}))}const I=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)},T=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")},C=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"),l=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(E,e.width).node().getBBox(),c=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=l.height+1.1*c*.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+")"),I(a,e,s),e},L=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(E,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},A=function(t,e,n,s,r,a,o,l,c,h,d){var u;for(const p of e){const e={descr:p.task,section:n,number:n,width:150,padding:20,maxHeight:a};i.l.debug("taskNode",e);const l=t.append("g").attr("class","taskWrapper"),y=C(l,e,n,o).height;if(i.l.debug("taskHeight after draw",y),l.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,y),p.events){const e=t.append("g").attr("class","lineWrapper");let i=a;r+=100,i+=M(t,p.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)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!(null==(u=o.timeline)?void 0:u.disableMulticolor)&&n++}r-=10},M=function(t,e,n,s,r,a){let o=0;const l=r;r+=100;for(const c of e){const e={descr:c,section:n,number:n,width:150,padding:20,maxHeight:50};i.l.debug("eventNode",e);const l=t.append("g").attr("class","eventWrapper"),h=C(l,e,n,a).height;o+=h,l.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=l,o},O={db:$,renderer:{setConf:()=>{},draw:function(t,e,n,r){var a,o;const l=(0,i.c)(),c=l.leftMargin??50;i.l.debug("timeline",r.db);const h=l.securityLevel;let d;"sandbox"===h&&(d=(0,s.Ys)("#i"+e));const u=("sandbox"===h?(0,s.Ys)(d.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);u.append("g");const p=r.db.getTasks(),y=r.db.getCommonDb().getDiagramTitle();i.l.debug("task",p),T(u);const g=r.db.getSections();i.l.debug("sections",g);let f=0,m=0,_=0,b=0,x=50+c,k=50;b=50;let v=0,w=!0;g.forEach((function(t){const e=L(u,{number:v,descr:t,section:v,width:150,padding:20,maxHeight:f},l);i.l.debug("sectionHeight before draw",e),f=Math.max(f,e+20)}));let S=0,$=0;i.l.debug("tasks.length",p.length);for(const[s,I]of p.entries()){const t={number:s,descr:I,section:I.section,width:150,padding:20,maxHeight:m},e=L(u,t,l);i.l.debug("taskHeight before draw",e),m=Math.max(m,e+20),S=Math.max(S,I.events.length);let n=0;for(let i=0;i<I.events.length;i++){const t={descr:I.events[i],section:I.section,number:I.section,width:150,padding:20,maxHeight:50};n+=L(u,t,l)}$=Math.max($,n)}i.l.debug("maxSectionHeight before draw",f),i.l.debug("maxTaskHeight before draw",m),g&&g.length>0?g.forEach((t=>{const e=p.filter((e=>e.section===t)),n={number:v,descr:t,section:v,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:f};i.l.debug("sectionNode",n);const s=u.append("g"),r=C(s,n,v,l);i.l.debug("sectionNode output",r),s.attr("transform",`translate(${x}, 50)`),k+=f+50,e.length>0&&A(u,e,v,x,k,m,l,S,$,f,!1),x+=200*Math.max(e.length,1),k=50,v++})):(w=!1,A(u,p,v,x,k,m,l,S,$,f,!0));const E=u.node().getBBox();i.l.debug("bounds",E),y&&u.append("text").text(y).attr("x",E.width/2-c).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),_=w?f+m+150:m+100;u.append("g").attr("class","lineWrapper").append("line").attr("x1",c).attr("y1",_).attr("x2",E.width+3*c).attr("y2",_).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,i.o)(void 0,u,(null==(a=l.timeline)?void 0:a.padding)??50,(null==(o=l.timeline)?void 0:o.useMaxWidth)??!1)}},parser:c,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${(t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],(0,r.Z)(t["lineColor"+n])?t["lineColor"+n]=(0,a.Z)(t["lineColor"+n],20):t["lineColor"+n]=(0,o.Z)(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})(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`}}}]); \ No newline at end of file diff --git a/assets/js/29694455.5fa079ce.js b/assets/js/29694455.5fa079ce.js new file mode 100644 index 0000000..0dc3ff4 --- /dev/null +++ b/assets/js/29694455.5fa079ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3388],{39828:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/iterators","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/29694455.a2e2c1d7.js b/assets/js/29694455.a2e2c1d7.js deleted file mode 100644 index acce2ed..0000000 --- a/assets/js/29694455.a2e2c1d7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3388],{9828:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/iterators","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/2b89902a.467bd596.js b/assets/js/2b89902a.467bd596.js deleted file mode 100644 index 19e8a02..0000000 --- a/assets/js/2b89902a.467bd596.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6342],{5443:i=>{i.exports=JSON.parse('{"label":"recursion","permalink":"/algorithms/tags/recursion","allTagsPath":"/algorithms/tags","count":3,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/2b89902a.cec021fa.js b/assets/js/2b89902a.cec021fa.js new file mode 100644 index 0000000..30747fa --- /dev/null +++ b/assets/js/2b89902a.cec021fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6342],{45443:i=>{i.exports=JSON.parse('{"label":"recursion","permalink":"/algorithms/tags/recursion","allTagsPath":"/algorithms/tags","count":3,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/2fcf0558.14a64e69.js b/assets/js/2fcf0558.14a64e69.js new file mode 100644 index 0000000..0e1b478 --- /dev/null +++ b/assets/js/2fcf0558.14a64e69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4638],{69470:e=>{e.exports=JSON.parse('{"title":"Hash Tables","description":"Materials related to hash tables.\\n","slug":"/category/hash-tables","permalink":"/algorithms/category/hash-tables","navigation":{"previous":{"title":"Distance boundaries from BFS tree on undirected graphs","permalink":"/algorithms/graphs/bfs-tree"},"next":{"title":"Breaking Hash Table","permalink":"/algorithms/hash-tables/breaking"}}}')}}]); \ No newline at end of file diff --git a/assets/js/3011a4c0.573f9325.js b/assets/js/3011a4c0.573f9325.js deleted file mode 100644 index edf99fc..0000000 --- a/assets/js/3011a4c0.573f9325.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7926],{1670:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/copr","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/3011a4c0.bfa0084e.js b/assets/js/3011a4c0.bfa0084e.js new file mode 100644 index 0000000..4307ab3 --- /dev/null +++ b/assets/js/3011a4c0.bfa0084e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7926],{31670:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/copr","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/3076.0d102429.js b/assets/js/3076.0d102429.js new file mode 100644 index 0000000..984273a --- /dev/null +++ b/assets/js/3076.0d102429.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3076],{13076:(e,n,t)=>{t.d(n,{a:()=>ln,c:()=>cn});var r={};t.r(r),t.d(r,{attentionMarkers:()=>Me,contentInitial:()=>Te,disable:()=>Pe,document:()=>Ce,flow:()=>De,flowInitial:()=>ze,insideSpan:()=>Le,string:()=>Be,text:()=>_e});var i=t(85322);const u={};function o(e,n,t){if(function(e){return Boolean(e&&"object"==typeof e)}(e)){if("value"in e)return"html"!==e.type||t?e.value:"";if(n&&"alt"in e&&e.alt)return e.alt;if("children"in e)return c(e.children,n,t)}return Array.isArray(e)?c(e,n,t):""}function c(e,n,t){const r=[];let i=-1;for(;++i<e.length;)r[i]=o(e[i],n,t);return r.join("")}function s(e,n,t,r){const i=e.length;let u,o=0;if(n=n<0?-n>i?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)u=Array.from(r),u.unshift(n,t),e.splice(...u);else for(t&&e.splice(n,t);o<r.length;)u=r.slice(o,o+1e4),u.unshift(n,0),e.splice(...u),o+=1e4,n+=1e4}function l(e,n){return e.length>0?(s(e,e.length,0,n),e):n}const a={}.hasOwnProperty;function f(e,n){let t;for(t in n){const r=(a.call(e,t)?e[t]:void 0)||(e[t]={}),i=n[t];let u;if(i)for(u in i){a.call(r,u)||(r[u]=[]);const e=i[u];d(r[u],Array.isArray(e)?e:e?[e]:[])}}}function d(e,n){let t=-1;const r=[];for(;++t<n.length;)("after"===n[t].add?e:r).push(n[t]);s(e,0,0,r)}const h=A(/[A-Za-z]/),p=A(/[\dA-Za-z]/),m=A(/[#-'*+\--9=?A-Z^-~]/);function g(e){return null!==e&&(e<32||127===e)}const x=A(/\d/),k=A(/[\dA-Fa-f]/),y=A(/[!-/:-@[-`{-~]/);function F(e){return null!==e&&e<-2}function v(e){return null!==e&&(e<0||32===e)}function b(e){return-2===e||-1===e||32===e}const S=A(/[!-\/:-@\[-`\{-~\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]/),E=A(/\s/);function A(e){return function(n){return null!==n&&e.test(String.fromCharCode(n))}}function I(e,n,t,r){const i=r?r-1:Number.POSITIVE_INFINITY;let u=0;return function(r){if(b(r))return e.enter(t),o(r);return n(r)};function o(r){return b(r)&&u++<i?(e.consume(r),o):(e.exit(t),n(r))}}const w={tokenize:function(e){const n=e.attempt(this.parser.constructs.contentInitial,(function(t){if(null===t)return void e.consume(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I(e,n,"linePrefix")}),(function(n){return e.enter("paragraph"),r(n)}));let t;return n;function r(n){const r=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=r),t=r,i(n)}function i(n){return null===n?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(n)):F(n)?(e.consume(n),e.exit("chunkText"),r):(e.consume(n),i)}}};const C={tokenize:function(e){const n=this,t=[];let r,i,u,o=0;return c;function c(r){if(o<t.length){const i=t[o];return n.containerState=i[1],e.attempt(i[0].continuation,l,a)(r)}return a(r)}function l(e){if(o++,n.containerState._closeFlow){n.containerState._closeFlow=void 0,r&&y();const t=n.events.length;let i,u=t;for(;u--;)if("exit"===n.events[u][0]&&"chunkFlow"===n.events[u][1].type){i=n.events[u][1].end;break}k(o);let c=t;for(;c<n.events.length;)n.events[c][1].end=Object.assign({},i),c++;return s(n.events,u+1,0,n.events.slice(t)),n.events.length=c,a(e)}return c(e)}function a(i){if(o===t.length){if(!r)return h(i);if(r.currentConstruct&&r.currentConstruct.concrete)return m(i);n.interrupt=Boolean(r.currentConstruct&&!r._gfmTableDynamicInterruptHack)}return n.containerState={},e.check(T,f,d)(i)}function f(e){return r&&y(),k(o),h(e)}function d(e){return n.parser.lazy[n.now().line]=o!==t.length,u=n.now().offset,m(e)}function h(t){return n.containerState={},e.attempt(T,p,m)(t)}function p(e){return o++,t.push([n.currentConstruct,n.containerState]),h(e)}function m(t){return null===t?(r&&y(),k(0),void e.consume(t)):(r=r||n.parser.flow(n.now()),e.enter("chunkFlow",{contentType:"flow",previous:i,_tokenizer:r}),g(t))}function g(t){return null===t?(x(e.exit("chunkFlow"),!0),k(0),void e.consume(t)):F(t)?(e.consume(t),x(e.exit("chunkFlow")),o=0,n.interrupt=void 0,c):(e.consume(t),g)}function x(e,t){const c=n.sliceStream(e);if(t&&c.push(null),e.previous=i,i&&(i.next=e),i=e,r.defineSkip(e.start),r.write(c),n.parser.lazy[e.start.line]){let e=r.events.length;for(;e--;)if(r.events[e][1].start.offset<u&&(!r.events[e][1].end||r.events[e][1].end.offset>u))return;const t=n.events.length;let i,c,l=t;for(;l--;)if("exit"===n.events[l][0]&&"chunkFlow"===n.events[l][1].type){if(i){c=n.events[l][1].end;break}i=!0}for(k(o),e=t;e<n.events.length;)n.events[e][1].end=Object.assign({},c),e++;s(n.events,l+1,0,n.events.slice(t)),n.events.length=e}}function k(r){let i=t.length;for(;i-- >r;){const r=t[i];n.containerState=r[1],r[0].exit.call(n,e)}t.length=r}function y(){r.write([null]),i=void 0,r=void 0,n.containerState._closeFlow=void 0}}},T={tokenize:function(e,n,t){return I(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const z={tokenize:function(e,n,t){return function(n){return b(n)?I(e,r,"linePrefix")(n):r(n)};function r(e){return null===e||F(e)?n(e):t(e)}},partial:!0};function D(e,n,t,r){const i=e.length;let u,o=0;if(n=n<0?-n>i?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)u=Array.from(r),u.unshift(n,t),e.splice(...u);else for(t&&e.splice(n,t);o<r.length;)u=r.slice(o,o+1e4),u.unshift(n,0),e.splice(...u),o+=1e4,n+=1e4}function B(e){const n={};let t,r,i,u,o,c,s,l=-1;for(;++l<e.length;){for(;l in n;)l=n[l];if(t=e[l],l&&"chunkFlow"===t[1].type&&"listItemPrefix"===e[l-1][1].type&&(c=t[1]._tokenizer.events,i=0,i<c.length&&"lineEndingBlank"===c[i][1].type&&(i+=2),i<c.length&&"content"===c[i][1].type))for(;++i<c.length&&"content"!==c[i][1].type;)"chunkText"===c[i][1].type&&(c[i][1]._isInFirstContentOfListItem=!0,i++);if("enter"===t[0])t[1].contentType&&(Object.assign(n,_(e,l)),l=n[l],s=!0);else if(t[1]._container){for(i=l,r=void 0;i--&&(u=e[i],"lineEnding"===u[1].type||"lineEndingBlank"===u[1].type);)"enter"===u[0]&&(r&&(e[r][1].type="lineEndingBlank"),u[1].type="lineEnding",r=i);r&&(t[1].end=Object.assign({},e[r][1].start),o=e.slice(r,l),o.unshift(t),D(e,r,l-r+1,o))}}return!s}function _(e,n){const t=e[n][1],r=e[n][2];let i=n-1;const u=[],o=t._tokenizer||r.parser[t.contentType](t.start),c=o.events,s=[],l={};let a,f,d=-1,h=t,p=0,m=0;const g=[m];for(;h;){for(;e[++i][1]!==h;);u.push(i),h._tokenizer||(a=r.sliceStream(h),h.next||a.push(null),f&&o.defineSkip(h.start),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(a),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),f=h,h=h.next}for(h=t;++d<c.length;)"exit"===c[d][0]&&"enter"===c[d-1][0]&&c[d][1].type===c[d-1][1].type&&c[d][1].start.line!==c[d][1].end.line&&(m=d+1,g.push(m),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(o.events=[],h?(h._tokenizer=void 0,h.previous=void 0):g.pop(),d=g.length;d--;){const n=c.slice(g[d],g[d+1]),t=u.pop();s.unshift([t,t+n.length-1]),D(e,t,2,n)}for(d=-1;++d<s.length;)l[p+s[d][0]]=p+s[d][1],p+=s[d][1]-s[d][0]-1;return l}const L={tokenize:function(e,n){let t;return function(n){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),r(n)};function r(n){return null===n?i(n):F(n)?e.check(M,u,i)(n):(e.consume(n),r)}function i(t){return e.exit("chunkContent"),e.exit("content"),n(t)}function u(n){return e.consume(n),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,r}},resolve:function(e){return B(e),e}},M={tokenize:function(e,n,t){const r=this;return function(n){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),I(e,i,"linePrefix")};function i(i){if(null===i||F(i))return t(i);const u=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?n(i):e.interrupt(r.parser.constructs.flow,t,n)(i)}},partial:!0};const P={tokenize:function(e){const n=this,t=e.attempt(z,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t}),e.attempt(this.parser.constructs.flowInitial,r,I(e,e.attempt(this.parser.constructs.flow,r,e.attempt(L,r)),"linePrefix")));return t;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n.currentConstruct=void 0,t;e.consume(r)}}};const O={resolveAll:q()},j=R("string"),H=R("text");function R(e){return{tokenize:function(n){const t=this,r=this.parser.constructs[e],i=n.attempt(r,u,o);return u;function u(e){return s(e)?i(e):o(e)}function o(e){if(null!==e)return n.enter("data"),n.consume(e),c;n.consume(e)}function c(e){return s(e)?(n.exit("data"),i(e)):(n.consume(e),c)}function s(e){if(null===e)return!0;const n=r[e];let i=-1;if(n)for(;++i<n.length;){const e=n[i];if(!e.previous||e.previous.call(t,t.previous))return!0}return!1}},resolveAll:q("text"===e?V:void 0)}}function q(e){return function(n,t){let r,i=-1;for(;++i<=n.length;)void 0===r?n[i]&&"data"===n[i][1].type&&(r=i,i++):n[i]&&"data"===n[i][1].type||(i!==r+2&&(n[r][1].end=n[i-1][1].end,n.splice(r+2,i-r-2),i=r+2),r=void 0);return e?e(n,t):n}}function V(e,n){let t=0;for(;++t<=e.length;)if((t===e.length||"lineEnding"===e[t][1].type)&&"data"===e[t-1][1].type){const r=e[t-1][1],i=n.sliceStream(r);let u,o=i.length,c=-1,s=0;for(;o--;){const e=i[o];if("string"==typeof e){for(c=e.length;32===e.charCodeAt(c-1);)s++,c--;if(c)break;c=-1}else if(-2===e)u=!0,s++;else if(-1!==e){o++;break}}if(s){const i={type:t===e.length||u||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+o,_bufferIndex:o?c:r.start._bufferIndex+c},end:Object.assign({},r.end)};r.end=Object.assign({},i.start),r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(t,0,["enter",i,n],["exit",i,n]),t+=2)}t++}return e}function Q(e,n,t){const r=[];let i=-1;for(;++i<e.length;){const u=e[i].resolveAll;u&&!r.includes(u)&&(n=u(n,t),r.push(u))}return n}function N(e,n,t){let r=Object.assign(t?Object.assign({},t):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},u=[];let o=[],c=[],a=!0;const f={consume:function(e){F(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,S()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++));d.previous=e,a=!0},enter:function(e,n){const t=n||{};return t.type=e,t.start=g(),d.events.push(["enter",t,d]),c.push(t),t},exit:function(e){const n=c.pop();return n.end=g(),d.events.push(["exit",n,d]),n},attempt:v((function(e,n){b(e,n.from)})),check:v(y),interrupt:v(y,{interrupt:!0})},d={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:m,sliceSerialize:function(e,n){return function(e,n){let t=-1;const r=[];let i;for(;++t<e.length;){const u=e[t];let o;if("string"==typeof u)o=u;else switch(u){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=n?" ":"\t";break;case-1:if(!n&&i)continue;o=" ";break;default:o=String.fromCharCode(u)}i=-2===u,r.push(o)}return r.join("")}(m(e),n)},now:g,defineSkip:function(e){i[e.line]=e.column,S()},write:function(e){if(o=l(o,e),x(),null!==o[o.length-1])return[];return b(n,0),d.events=Q(u,d.events,d),d.events}};let h,p=n.tokenize.call(d,f);return n.resolveAll&&u.push(n),d;function m(e){return function(e,n){const t=n.start._index,r=n.start._bufferIndex,i=n.end._index,u=n.end._bufferIndex;let o;if(t===i)o=[e[t].slice(r,u)];else{if(o=e.slice(t,i),r>-1){const e=o[0];"string"==typeof e?o[0]=e.slice(r):o.shift()}u>0&&o.push(e[i].slice(0,u))}return o}(o,e)}function g(){const{line:e,column:n,offset:t,_index:i,_bufferIndex:u}=r;return{line:e,column:n,offset:t,_index:i,_bufferIndex:u}}function x(){let e;for(;r._index<o.length;){const n=o[r._index];if("string"==typeof n)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<n.length;)k(n.charCodeAt(r._bufferIndex));else k(n)}}function k(e){a=void 0,h=e,p=p(e)}function y(e,n){n.restore()}function v(e,n){return function(t,i,u){let o,s,l,h;return Array.isArray(t)?p(t):"tokenize"in t?p([t]):function(e){return n;function n(n){const t=null!==n&&e[n],r=null!==n&&e.null;return p([...Array.isArray(t)?t:t?[t]:[],...Array.isArray(r)?r:r?[r]:[]])(n)}}(t);function p(e){return o=e,s=0,0===e.length?u:m(e[s])}function m(e){return function(t){h=function(){const e=g(),n=d.previous,t=d.currentConstruct,i=d.events.length,u=Array.from(c);return{restore:o,from:i};function o(){r=e,d.previous=n,d.currentConstruct=t,d.events.length=i,c=u,S()}}(),l=e,e.partial||(d.currentConstruct=e);if(e.name&&d.parser.constructs.disable.null.includes(e.name))return k(t);return e.tokenize.call(n?Object.assign(Object.create(d),n):d,f,x,k)(t)}}function x(n){return a=!0,e(l,h),i}function k(e){return a=!0,h.restore(),++s<o.length?m(o[s]):u}}}function b(e,n){e.resolveAll&&!u.includes(e)&&u.push(e),e.resolve&&s(d.events,n,d.events.length-n,e.resolve(d.events.slice(n),d)),e.resolveTo&&(d.events=e.resolveTo(d.events,d))}function S(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}const U={name:"thematicBreak",tokenize:function(e,n,t){let r,i=0;return function(n){return e.enter("thematicBreak"),function(e){return r=e,u(e)}(n)};function u(u){return u===r?(e.enter("thematicBreakSequence"),o(u)):i>=3&&(null===u||F(u))?(e.exit("thematicBreak"),n(u)):t(u)}function o(n){return n===r?(e.consume(n),i++,o):(e.exit("thematicBreakSequence"),b(n)?I(e,u,"whitespace")(n):u(n))}}};const $={name:"list",tokenize:function(e,n,t){const r=this,i=r.events[r.events.length-1];let u=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,o=0;return function(n){const i=r.containerState.type||(42===n||43===n||45===n?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||n===r.containerState.marker:x(n)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===n||45===n?e.check(U,t,s)(n):s(n);if(!r.interrupt||49===n)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(n)}return t(n)};function c(n){return x(n)&&++o<10?(e.consume(n),c):(!r.interrupt||o<2)&&(r.containerState.marker?n===r.containerState.marker:41===n||46===n)?(e.exit("listItemValue"),s(n)):t(n)}function s(n){return e.enter("listItemMarker"),e.consume(n),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||n,e.check(z,r.interrupt?t:l,e.attempt(W,f,a))}function l(e){return r.containerState.initialBlankLine=!0,u++,f(e)}function a(n){return b(n)?(e.enter("listItemPrefixWhitespace"),e.consume(n),e.exit("listItemPrefixWhitespace"),f):t(n)}function f(t){return r.containerState.size=u+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(t)}},continuation:{tokenize:function(e,n,t){const r=this;return r.containerState._closeFlow=void 0,e.check(z,(function(t){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,I(e,n,"listItemIndent",r.containerState.size+1)(t)}),(function(t){if(r.containerState.furtherBlankLines||!b(t))return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(t);return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Z,n,i)(t)}));function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,I(e,e.attempt($,n,t),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)}},W={tokenize:function(e,n,t){const r=this;return I(e,(function(e){const i=r.events[r.events.length-1];return!b(e)&&i&&"listItemPrefixWhitespace"===i[1].type?n(e):t(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},Z={tokenize:function(e,n,t){const r=this;return I(e,(function(e){const i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?n(e):t(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};const Y={name:"blockQuote",tokenize:function(e,n,t){const r=this;return function(n){if(62===n){const t=r.containerState;return t.open||(e.enter("blockQuote",{_container:!0}),t.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(n),e.exit("blockQuoteMarker"),i}return t(n)};function i(t){return b(t)?(e.enter("blockQuotePrefixWhitespace"),e.consume(t),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),n):(e.exit("blockQuotePrefix"),n(t))}},continuation:{tokenize:function(e,n,t){const r=this;return function(n){if(b(n))return I(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n);return i(n)};function i(r){return e.attempt(Y,n,t)(r)}}},exit:function(e){e.exit("blockQuote")}};function J(e,n,t,r,i,u,o,c,s){const l=s||Number.POSITIVE_INFINITY;let a=0;return function(n){if(60===n)return e.enter(r),e.enter(i),e.enter(u),e.consume(n),e.exit(u),f;if(null===n||32===n||41===n||g(n))return t(n);return e.enter(r),e.enter(o),e.enter(c),e.enter("chunkString",{contentType:"string"}),p(n)};function f(t){return 62===t?(e.enter(u),e.consume(t),e.exit(u),e.exit(i),e.exit(r),n):(e.enter(c),e.enter("chunkString",{contentType:"string"}),d(t))}function d(n){return 62===n?(e.exit("chunkString"),e.exit(c),f(n)):null===n||60===n||F(n)?t(n):(e.consume(n),92===n?h:d)}function h(n){return 60===n||62===n||92===n?(e.consume(n),d):d(n)}function p(i){return a||null!==i&&41!==i&&!v(i)?a<l&&40===i?(e.consume(i),a++,p):41===i?(e.consume(i),a--,p):null===i||32===i||40===i||g(i)?t(i):(e.consume(i),92===i?m:p):(e.exit("chunkString"),e.exit(c),e.exit(o),e.exit(r),n(i))}function m(n){return 40===n||41===n||92===n?(e.consume(n),p):p(n)}}function G(e,n,t,r,i,u){const o=this;let c,s=0;return function(n){return e.enter(r),e.enter(i),e.consume(n),e.exit(i),e.enter(u),l};function l(f){return s>999||null===f||91===f||93===f&&!c||94===f&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs?t(f):93===f?(e.exit(u),e.enter(i),e.consume(f),e.exit(i),e.exit(r),n):F(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),a(f))}function a(n){return null===n||91===n||93===n||F(n)||s++>999?(e.exit("chunkString"),l(n)):(e.consume(n),c||(c=!b(n)),92===n?f:a)}function f(n){return 91===n||92===n||93===n?(e.consume(n),s++,a):a(n)}}function K(e,n,t,r,i,u){let o;return function(n){if(34===n||39===n||40===n)return e.enter(r),e.enter(i),e.consume(n),e.exit(i),o=40===n?41:n,c;return t(n)};function c(t){return t===o?(e.enter(i),e.consume(t),e.exit(i),e.exit(r),n):(e.enter(u),s(t))}function s(n){return n===o?(e.exit(u),c(o)):null===n?t(n):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),I(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(n))}function l(n){return n===o||null===n||F(n)?(e.exit("chunkString"),s(n)):(e.consume(n),92===n?a:l)}function a(n){return n===o||92===n?(e.consume(n),l):l(n)}}function X(e,n){let t;return function r(i){if(F(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t=!0,r;if(b(i))return I(e,r,t?"linePrefix":"lineSuffix")(i);return n(i)}}function ee(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ne={name:"definition",tokenize:function(e,n,t){const r=this;let i;return function(n){return e.enter("definition"),function(n){return G.call(r,e,u,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(n)}(n)};function u(n){return i=ee(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===n?(e.enter("definitionMarker"),e.consume(n),e.exit("definitionMarker"),o):t(n)}function o(n){return v(n)?X(e,c)(n):c(n)}function c(n){return J(e,s,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(n)}function s(n){return e.attempt(te,l,l)(n)}function l(n){return b(n)?I(e,a,"whitespace")(n):a(n)}function a(u){return null===u||F(u)?(e.exit("definition"),r.parser.defined.push(i),n(u)):t(u)}}},te={tokenize:function(e,n,t){return function(n){return v(n)?X(e,r)(n):t(n)};function r(n){return K(e,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(n)}function i(n){return b(n)?I(e,u,"whitespace")(n):u(n)}function u(e){return null===e||F(e)?n(e):t(e)}},partial:!0};const re={name:"codeIndented",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("codeIndented"),I(e,i,"linePrefix",5)(n)};function i(e){const n=r.events[r.events.length-1];return n&&"linePrefix"===n[1].type&&n[2].sliceSerialize(n[1],!0).length>=4?u(e):t(e)}function u(n){return null===n?c(n):F(n)?e.attempt(ie,u,c)(n):(e.enter("codeFlowValue"),o(n))}function o(n){return null===n||F(n)?(e.exit("codeFlowValue"),u(n)):(e.consume(n),o)}function c(t){return e.exit("codeIndented"),n(t)}}},ie={tokenize:function(e,n,t){const r=this;return i;function i(n){return r.parser.lazy[r.now().line]?t(n):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i):I(e,u,"linePrefix",5)(n)}function u(e){const u=r.events[r.events.length-1];return u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?n(e):F(e)?i(e):t(e)}},partial:!0};const ue={name:"headingAtx",tokenize:function(e,n,t){let r=0;return function(n){return e.enter("atxHeading"),function(n){return e.enter("atxHeadingSequence"),i(n)}(n)};function i(n){return 35===n&&r++<6?(e.consume(n),i):null===n||v(n)?(e.exit("atxHeadingSequence"),u(n)):t(n)}function u(t){return 35===t?(e.enter("atxHeadingSequence"),o(t)):null===t||F(t)?(e.exit("atxHeading"),n(t)):b(t)?I(e,u,"whitespace")(t):(e.enter("atxHeadingText"),c(t))}function o(n){return 35===n?(e.consume(n),o):(e.exit("atxHeadingSequence"),u(n))}function c(n){return null===n||35===n||v(n)?(e.exit("atxHeadingText"),u(n)):(e.consume(n),c)}},resolve:function(e,n){let t,r,i=e.length-2,u=3;"whitespace"===e[u][1].type&&(u+=2);i-2>u&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(u===i-1||i-4>u&&"whitespace"===e[i-2][1].type)&&(i-=u+1===i?2:4);i>u&&(t={type:"atxHeadingText",start:e[u][1].start,end:e[i][1].end},r={type:"chunkText",start:e[u][1].start,end:e[i][1].end,contentType:"text"},s(e,u,i-u+1,[["enter",t,n],["enter",r,n],["exit",r,n],["exit",t,n]]));return e}};const oe={name:"setextUnderline",tokenize:function(e,n,t){const r=this;let i;return function(n){let o,c=r.events.length;for(;c--;)if("lineEnding"!==r.events[c][1].type&&"linePrefix"!==r.events[c][1].type&&"content"!==r.events[c][1].type){o="paragraph"===r.events[c][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||o))return e.enter("setextHeadingLine"),i=n,function(n){return e.enter("setextHeadingLineSequence"),u(n)}(n);return t(n)};function u(n){return n===i?(e.consume(n),u):(e.exit("setextHeadingLineSequence"),b(n)?I(e,o,"lineSuffix")(n):o(n))}function o(r){return null===r||F(r)?(e.exit("setextHeadingLine"),n(r)):t(r)}},resolveTo:function(e,n){let t,r,i,u=e.length;for(;u--;)if("enter"===e[u][0]){if("content"===e[u][1].type){t=u;break}"paragraph"===e[u][1].type&&(r=u)}else"content"===e[u][1].type&&e.splice(u,1),i||"definition"!==e[u][1].type||(i=u);const o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",o,n]),e.splice(i+1,0,["exit",e[t][1],n]),e[t][1].end=Object.assign({},e[i][1].end)):e[t][1]=o;return e.push(["exit",o,n]),e}};const ce=["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"],se=["pre","script","style","textarea"],le={name:"htmlFlow",tokenize:function(e,n,t){const r=this;let i,u,o,c,s;return function(n){return function(n){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(n),l}(n)};function l(c){return 33===c?(e.consume(c),a):47===c?(e.consume(c),u=!0,m):63===c?(e.consume(c),i=3,r.interrupt?n:H):h(c)?(e.consume(c),o=String.fromCharCode(c),g):t(c)}function a(u){return 45===u?(e.consume(u),i=2,f):91===u?(e.consume(u),i=5,c=0,d):h(u)?(e.consume(u),i=4,r.interrupt?n:H):t(u)}function f(i){return 45===i?(e.consume(i),r.interrupt?n:H):t(i)}function d(i){const u="CDATA[";return i===u.charCodeAt(c++)?(e.consume(i),6===c?r.interrupt?n:D:d):t(i)}function m(n){return h(n)?(e.consume(n),o=String.fromCharCode(n),g):t(n)}function g(c){if(null===c||47===c||62===c||v(c)){const s=47===c,l=o.toLowerCase();return s||u||!se.includes(l)?ce.includes(o.toLowerCase())?(i=6,s?(e.consume(c),x):r.interrupt?n(c):D(c)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?t(c):u?k(c):y(c)):(i=1,r.interrupt?n(c):D(c))}return 45===c||p(c)?(e.consume(c),o+=String.fromCharCode(c),g):t(c)}function x(i){return 62===i?(e.consume(i),r.interrupt?n:D):t(i)}function k(n){return b(n)?(e.consume(n),k):T(n)}function y(n){return 47===n?(e.consume(n),T):58===n||95===n||h(n)?(e.consume(n),S):b(n)?(e.consume(n),y):T(n)}function S(n){return 45===n||46===n||58===n||95===n||p(n)?(e.consume(n),S):E(n)}function E(n){return 61===n?(e.consume(n),A):b(n)?(e.consume(n),E):y(n)}function A(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),s=n,I):b(n)?(e.consume(n),A):w(n)}function I(n){return n===s?(e.consume(n),s=null,C):null===n||F(n)?t(n):(e.consume(n),I)}function w(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||v(n)?E(n):(e.consume(n),w)}function C(e){return 47===e||62===e||b(e)?y(e):t(e)}function T(n){return 62===n?(e.consume(n),z):t(n)}function z(n){return null===n||F(n)?D(n):b(n)?(e.consume(n),z):t(n)}function D(n){return 45===n&&2===i?(e.consume(n),M):60===n&&1===i?(e.consume(n),P):62===n&&4===i?(e.consume(n),R):63===n&&3===i?(e.consume(n),H):93===n&&5===i?(e.consume(n),j):!F(n)||6!==i&&7!==i?null===n||F(n)?(e.exit("htmlFlowData"),B(n)):(e.consume(n),D):(e.exit("htmlFlowData"),e.check(ae,q,B)(n))}function B(n){return e.check(fe,_,q)(n)}function _(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),L}function L(n){return null===n||F(n)?B(n):(e.enter("htmlFlowData"),D(n))}function M(n){return 45===n?(e.consume(n),H):D(n)}function P(n){return 47===n?(e.consume(n),o="",O):D(n)}function O(n){if(62===n){const t=o.toLowerCase();return se.includes(t)?(e.consume(n),R):D(n)}return h(n)&&o.length<8?(e.consume(n),o+=String.fromCharCode(n),O):D(n)}function j(n){return 93===n?(e.consume(n),H):D(n)}function H(n){return 62===n?(e.consume(n),R):45===n&&2===i?(e.consume(n),H):D(n)}function R(n){return null===n||F(n)?(e.exit("htmlFlowData"),q(n)):(e.consume(n),R)}function q(t){return e.exit("htmlFlow"),n(t)}},resolveTo:function(e){let n=e.length;for(;n--&&("enter"!==e[n][0]||"htmlFlow"!==e[n][1].type););n>1&&"linePrefix"===e[n-2][1].type&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2));return e},concrete:!0},ae={tokenize:function(e,n,t){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(z,n,t)}},partial:!0},fe={tokenize:function(e,n,t){const r=this;return function(n){if(F(n))return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i;return t(n)};function i(e){return r.parser.lazy[r.now().line]?t(e):n(e)}},partial:!0};const de={tokenize:function(e,n,t){const r=this;return function(n){if(null===n)return t(n);return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i};function i(e){return r.parser.lazy[r.now().line]?t(e):n(e)}},partial:!0},he={name:"codeFenced",tokenize:function(e,n,t){const r=this,i={tokenize:function(e,n,t){let i=0;return o;function o(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),s}function s(n){return e.enter("codeFencedFence"),b(n)?I(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):l(n)}function l(n){return n===u?(e.enter("codeFencedFenceSequence"),a(n)):t(n)}function a(n){return n===u?(i++,e.consume(n),a):i>=c?(e.exit("codeFencedFenceSequence"),b(n)?I(e,f,"whitespace")(n):f(n)):t(n)}function f(r){return null===r||F(r)?(e.exit("codeFencedFence"),n(r)):t(r)}},partial:!0};let u,o=0,c=0;return function(n){return function(n){const t=r.events[r.events.length-1];return o=t&&"linePrefix"===t[1].type?t[2].sliceSerialize(t[1],!0).length:0,u=n,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(n)}(n)};function s(n){return n===u?(c++,e.consume(n),s):c<3?t(n):(e.exit("codeFencedFenceSequence"),b(n)?I(e,l,"whitespace")(n):l(n))}function l(t){return null===t||F(t)?(e.exit("codeFencedFence"),r.interrupt?n(t):e.check(de,h,k)(t)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),a(t))}function a(n){return null===n||F(n)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(n)):b(n)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),I(e,f,"whitespace")(n)):96===n&&n===u?t(n):(e.consume(n),a)}function f(n){return null===n||F(n)?l(n):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),d(n))}function d(n){return null===n||F(n)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(n)):96===n&&n===u?t(n):(e.consume(n),d)}function h(n){return e.attempt(i,k,p)(n)}function p(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),m}function m(n){return o>0&&b(n)?I(e,g,"linePrefix",o+1)(n):g(n)}function g(n){return null===n||F(n)?e.check(de,h,k)(n):(e.enter("codeFlowValue"),x(n))}function x(n){return null===n||F(n)?(e.exit("codeFlowValue"),g(n)):(e.consume(n),x)}function k(t){return e.exit("codeFenced"),n(t)}},concrete:!0};const pe=document.createElement("i");function me(e){const n="&"+e+";";pe.innerHTML=n;const t=pe.textContent;return(59!==t.charCodeAt(t.length-1)||"semi"===e)&&(t!==n&&t)}const ge={name:"characterReference",tokenize:function(e,n,t){const r=this;let i,u,o=0;return function(n){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(n),e.exit("characterReferenceMarker"),c};function c(n){return 35===n?(e.enter("characterReferenceMarkerNumeric"),e.consume(n),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),i=31,u=p,l(n))}function s(n){return 88===n||120===n?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(n),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,u=k,l):(e.enter("characterReferenceValue"),i=7,u=x,l(n))}function l(c){if(59===c&&o){const i=e.exit("characterReferenceValue");return u!==p||me(r.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),n):t(c)}return u(c)&&o++<i?(e.consume(c),l):t(c)}}};const xe={name:"characterEscape",tokenize:function(e,n,t){return function(n){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(n),e.exit("escapeMarker"),r};function r(r){return y(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),n):t(r)}}};const ke={name:"lineEnding",tokenize:function(e,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I(e,n,"linePrefix")}}};const ye={name:"labelEnd",tokenize:function(e,n,t){const r=this;let i,u,o=r.events.length;for(;o--;)if(("labelImage"===r.events[o][1].type||"labelLink"===r.events[o][1].type)&&!r.events[o][1]._balanced){i=r.events[o][1];break}return function(n){if(!i)return t(n);if(i._inactive)return a(n);return u=r.parser.defined.includes(ee(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelEnd"),c};function c(n){return 40===n?e.attempt(Fe,l,u?l:a)(n):91===n?e.attempt(ve,l,u?s:a)(n):u?l(n):a(n)}function s(n){return e.attempt(be,l,a)(n)}function l(e){return n(e)}function a(e){return i._balanced=!0,t(e)}},resolveTo:function(e,n){let t,r,i,u,o=e.length,c=0;for(;o--;)if(t=e[o][1],r){if("link"===t.type||"labelLink"===t.type&&t._inactive)break;"enter"===e[o][0]&&"labelLink"===t.type&&(t._inactive=!0)}else if(i){if("enter"===e[o][0]&&("labelImage"===t.type||"labelLink"===t.type)&&!t._balanced&&(r=o,"labelLink"!==t.type)){c=2;break}}else"labelEnd"===t.type&&(i=o);const a={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},f={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[i][1].end)},d={type:"labelText",start:Object.assign({},e[r+c+2][1].end),end:Object.assign({},e[i-2][1].start)};return u=[["enter",a,n],["enter",f,n]],u=l(u,e.slice(r+1,r+c+3)),u=l(u,[["enter",d,n]]),u=l(u,Q(n.parser.constructs.insideSpan.null,e.slice(r+c+4,i-3),n)),u=l(u,[["exit",d,n],e[i-2],e[i-1],["exit",f,n]]),u=l(u,e.slice(i+1)),u=l(u,[["exit",a,n]]),s(e,r,e.length,u),e},resolveAll:function(e){let n=-1;for(;++n<e.length;){const t=e[n][1];"labelImage"!==t.type&&"labelLink"!==t.type&&"labelEnd"!==t.type||(e.splice(n+1,"labelImage"===t.type?4:2),t.type="data",n++)}return e}},Fe={tokenize:function(e,n,t){return function(n){return e.enter("resource"),e.enter("resourceMarker"),e.consume(n),e.exit("resourceMarker"),r};function r(n){return v(n)?X(e,i)(n):i(n)}function i(n){return 41===n?l(n):J(e,u,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(n)}function u(n){return v(n)?X(e,c)(n):l(n)}function o(e){return t(e)}function c(n){return 34===n||39===n||40===n?K(e,s,t,"resourceTitle","resourceTitleMarker","resourceTitleString")(n):l(n)}function s(n){return v(n)?X(e,l)(n):l(n)}function l(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),n):t(r)}}},ve={tokenize:function(e,n,t){const r=this;return function(n){return G.call(r,e,i,u,"reference","referenceMarker","referenceString")(n)};function i(e){return r.parser.defined.includes(ee(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?n(e):t(e)}function u(e){return t(e)}}},be={tokenize:function(e,n,t){return function(n){return e.enter("reference"),e.enter("referenceMarker"),e.consume(n),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),n):t(r)}}};function Se(e){return null===e||v(e)||E(e)?1:S(e)?2:void 0}const Ee={name:"attention",tokenize:function(e,n){const t=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Se(r);let u;return function(n){return u=n,e.enter("attentionSequence"),o(n)};function o(c){if(c===u)return e.consume(c),o;const s=e.exit("attentionSequence"),l=Se(c),a=!l||2===l&&i||t.includes(c),f=!i||2===i&&l||t.includes(r);return s._open=Boolean(42===u?a:a&&(i||!f)),s._close=Boolean(42===u?f:f&&(l||!a)),n(c)}},resolveAll:function(e,n){let t,r,i,u,o,c,a,f,d=-1;for(;++d<e.length;)if("enter"===e[d][0]&&"attentionSequence"===e[d][1].type&&e[d][1]._close)for(t=d;t--;)if("exit"===e[t][0]&&"attentionSequence"===e[t][1].type&&e[t][1]._open&&n.sliceSerialize(e[t][1]).charCodeAt(0)===n.sliceSerialize(e[d][1]).charCodeAt(0)){if((e[t][1]._close||e[d][1]._open)&&(e[d][1].end.offset-e[d][1].start.offset)%3&&!((e[t][1].end.offset-e[t][1].start.offset+e[d][1].end.offset-e[d][1].start.offset)%3))continue;c=e[t][1].end.offset-e[t][1].start.offset>1&&e[d][1].end.offset-e[d][1].start.offset>1?2:1;const h=Object.assign({},e[t][1].end),p=Object.assign({},e[d][1].start);Ae(h,-c),Ae(p,c),u={type:c>1?"strongSequence":"emphasisSequence",start:h,end:Object.assign({},e[t][1].end)},o={type:c>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[d][1].start),end:p},i={type:c>1?"strongText":"emphasisText",start:Object.assign({},e[t][1].end),end:Object.assign({},e[d][1].start)},r={type:c>1?"strong":"emphasis",start:Object.assign({},u.start),end:Object.assign({},o.end)},e[t][1].end=Object.assign({},u.start),e[d][1].start=Object.assign({},o.end),a=[],e[t][1].end.offset-e[t][1].start.offset&&(a=l(a,[["enter",e[t][1],n],["exit",e[t][1],n]])),a=l(a,[["enter",r,n],["enter",u,n],["exit",u,n],["enter",i,n]]),a=l(a,Q(n.parser.constructs.insideSpan.null,e.slice(t+1,d),n)),a=l(a,[["exit",i,n],["enter",o,n],["exit",o,n],["exit",r,n]]),e[d][1].end.offset-e[d][1].start.offset?(f=2,a=l(a,[["enter",e[d][1],n],["exit",e[d][1],n]])):f=0,s(e,t-1,d-t+3,a),d=t+a.length-f-2;break}d=-1;for(;++d<e.length;)"attentionSequence"===e[d][1].type&&(e[d][1].type="data");return e}};function Ae(e,n){e.column+=n,e.offset+=n,e._bufferIndex+=n}const Ie={name:"htmlText",tokenize:function(e,n,t){const r=this;let i,u,o;return function(n){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(n),c};function c(n){return 33===n?(e.consume(n),s):47===n?(e.consume(n),A):63===n?(e.consume(n),S):h(n)?(e.consume(n),T):t(n)}function s(n){return 45===n?(e.consume(n),l):91===n?(e.consume(n),u=0,m):h(n)?(e.consume(n),y):t(n)}function l(n){return 45===n?(e.consume(n),d):t(n)}function a(n){return null===n?t(n):45===n?(e.consume(n),f):F(n)?(o=a,j(n)):(e.consume(n),a)}function f(n){return 45===n?(e.consume(n),d):a(n)}function d(e){return 62===e?O(e):45===e?f(e):a(e)}function m(n){const r="CDATA[";return n===r.charCodeAt(u++)?(e.consume(n),6===u?g:m):t(n)}function g(n){return null===n?t(n):93===n?(e.consume(n),x):F(n)?(o=g,j(n)):(e.consume(n),g)}function x(n){return 93===n?(e.consume(n),k):g(n)}function k(n){return 62===n?O(n):93===n?(e.consume(n),k):g(n)}function y(n){return null===n||62===n?O(n):F(n)?(o=y,j(n)):(e.consume(n),y)}function S(n){return null===n?t(n):63===n?(e.consume(n),E):F(n)?(o=S,j(n)):(e.consume(n),S)}function E(e){return 62===e?O(e):S(e)}function A(n){return h(n)?(e.consume(n),w):t(n)}function w(n){return 45===n||p(n)?(e.consume(n),w):C(n)}function C(n){return F(n)?(o=C,j(n)):b(n)?(e.consume(n),C):O(n)}function T(n){return 45===n||p(n)?(e.consume(n),T):47===n||62===n||v(n)?z(n):t(n)}function z(n){return 47===n?(e.consume(n),O):58===n||95===n||h(n)?(e.consume(n),D):F(n)?(o=z,j(n)):b(n)?(e.consume(n),z):O(n)}function D(n){return 45===n||46===n||58===n||95===n||p(n)?(e.consume(n),D):B(n)}function B(n){return 61===n?(e.consume(n),_):F(n)?(o=B,j(n)):b(n)?(e.consume(n),B):z(n)}function _(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),i=n,L):F(n)?(o=_,j(n)):b(n)?(e.consume(n),_):(e.consume(n),M)}function L(n){return n===i?(e.consume(n),i=void 0,P):null===n?t(n):F(n)?(o=L,j(n)):(e.consume(n),L)}function M(n){return null===n||34===n||39===n||60===n||61===n||96===n?t(n):47===n||62===n||v(n)?z(n):(e.consume(n),M)}function P(e){return 47===e||62===e||v(e)?z(e):t(e)}function O(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),n):t(r)}function j(n){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),H}function H(n){return b(n)?I(e,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):R(n)}function R(n){return e.enter("htmlTextData"),o(n)}}};const we={name:"codeText",tokenize:function(e,n,t){let r,i,u=0;return function(n){return e.enter("codeText"),e.enter("codeTextSequence"),o(n)};function o(n){return 96===n?(e.consume(n),u++,o):(e.exit("codeTextSequence"),c(n))}function c(n){return null===n?t(n):32===n?(e.enter("space"),e.consume(n),e.exit("space"),c):96===n?(i=e.enter("codeTextSequence"),r=0,l(n)):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),c):(e.enter("codeTextData"),s(n))}function s(n){return null===n||32===n||96===n||F(n)?(e.exit("codeTextData"),c(n)):(e.consume(n),s)}function l(t){return 96===t?(e.consume(t),r++,l):r===u?(e.exit("codeTextSequence"),e.exit("codeText"),n(t)):(i.type="codeTextData",s(t))}},resolve:function(e){let n,t,r=e.length-4,i=3;if(!("lineEnding"!==e[i][1].type&&"space"!==e[i][1].type||"lineEnding"!==e[r][1].type&&"space"!==e[r][1].type))for(n=i;++n<r;)if("codeTextData"===e[n][1].type){e[i][1].type="codeTextPadding",e[r][1].type="codeTextPadding",i+=2,r-=2;break}n=i-1,r++;for(;++n<=r;)void 0===t?n!==r&&"lineEnding"!==e[n][1].type&&(t=n):n!==r&&"lineEnding"!==e[n][1].type||(e[t][1].type="codeTextData",n!==t+2&&(e[t][1].end=e[n-1][1].end,e.splice(t+2,n-t-2),r-=n-t-2,n=t+2),t=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}};const Ce={42:$,43:$,45:$,48:$,49:$,50:$,51:$,52:$,53:$,54:$,55:$,56:$,57:$,62:Y},Te={91:ne},ze={[-2]:re,[-1]:re,32:re},De={35:ue,42:U,45:[oe,U],60:le,61:oe,95:U,96:he,126:he},Be={38:ge,92:xe},_e={[-5]:ke,[-4]:ke,[-3]:ke,33:{name:"labelStartImage",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(n),e.exit("labelImageMarker"),i};function i(n){return 91===n?(e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelImage"),u):t(n)}function u(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?t(e):n(e)}},resolveAll:ye.resolveAll},38:ge,42:Ee,60:[{name:"autolink",tokenize:function(e,n,t){let r=0;return function(n){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(n){return h(n)?(e.consume(n),u):s(n)}function u(e){return 43===e||45===e||46===e||p(e)?(r=1,o(e)):s(e)}function o(n){return 58===n?(e.consume(n),r=0,c):(43===n||45===n||46===n||p(n))&&r++<32?(e.consume(n),o):(r=0,s(n))}function c(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),n):null===r||32===r||60===r||g(r)?t(r):(e.consume(r),c)}function s(n){return 64===n?(e.consume(n),l):m(n)?(e.consume(n),s):t(n)}function l(e){return p(e)?a(e):t(e)}function a(t){return 46===t?(e.consume(t),r=0,l):62===t?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.exit("autolink"),n):f(t)}function f(n){if((45===n||p(n))&&r++<63){const t=45===n?f:a;return e.consume(n),t}return t(n)}}},Ie],91:{name:"labelStartLink",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelLink"),i};function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?t(e):n(e)}},resolveAll:ye.resolveAll},92:[{name:"hardBreakEscape",tokenize:function(e,n,t){return function(n){return e.enter("hardBreakEscape"),e.consume(n),r};function r(r){return F(r)?(e.exit("hardBreakEscape"),n(r)):t(r)}}},xe],93:ye,95:Ee,96:we},Le={null:[Ee,O]},Me={null:[42,95]},Pe={null:[]};function Oe(e){const n=function(e){const n={};let t=-1;for(;++t<e.length;)f(n,e[t]);return n}([r,...(e||{}).extensions||[]]),t={defined:[],lazy:{},constructs:n,content:i(w),document:i(C),flow:i(P),string:i(j),text:i(H)};return t;function i(e){return function(n){return N(t,e,n)}}}const je=/[\0\t\n\r]/g;function He(e,n){const t=Number.parseInt(e,n);return t<9||11===t||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||65535==(65535&t)||65534==(65535&t)||t>1114111?"\ufffd":String.fromCharCode(t)}const Re=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function qe(e,n,t){if(n)return n;if(35===t.charCodeAt(0)){const e=t.charCodeAt(1),n=120===e||88===e;return He(t.slice(n?2:1),n?16:10)}return me(t)||e}function Ve(e){return e&&"object"==typeof e?"position"in e||"type"in e?Ne(e.position):"start"in e||"end"in e?Ne(e):"line"in e||"column"in e?Qe(e):"":""}function Qe(e){return Ue(e&&e.line)+":"+Ue(e&&e.column)}function Ne(e){return Qe(e&&e.start)+"-"+Qe(e&&e.end)}function Ue(e){return e&&"number"==typeof e?e:1}const $e={}.hasOwnProperty,We=function(e,n,t){return"string"!=typeof n&&(t=n,n=void 0),function(e){const n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(ue),autolinkProtocol:T,autolinkEmail:T,atxHeading:l(ne),blockQuote:l(Y),characterEscape:T,characterReference:T,codeFenced:l(J),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:l(J,a),codeText:l(G,a),codeTextData:T,data:T,codeFlowValue:T,definition:l(K),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:l(X),hardBreakEscape:l(te),hardBreakTrailing:l(te),htmlFlow:l(re,a),htmlFlowData:T,htmlText:l(re,a),htmlTextData:T,image:l(ie),label:a,link:l(ue),listItem:l(ce),listItemValue:g,listOrdered:l(oe,m),listUnordered:l(oe),paragraph:l(se),reference:Q,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:l(ne),strong:l(le),thematicBreak:l(fe)},exit:{atxHeading:d(),atxHeadingSequence:A,autolink:d(),autolinkEmail:Z,autolinkProtocol:W,blockQuote:d(),characterEscapeValue:z,characterReferenceMarkerHexadecimal:U,characterReferenceMarkerNumeric:U,characterReferenceValue:$,codeFenced:d(F),codeFencedFence:y,codeFencedFenceInfo:x,codeFencedFenceMeta:k,codeFlowValue:z,codeIndented:d(v),codeText:d(M),codeTextData:z,data:z,definition:d(),definitionDestinationString:E,definitionLabelString:b,definitionTitleString:S,emphasis:d(),hardBreakEscape:d(B),hardBreakTrailing:d(B),htmlFlow:d(_),htmlFlowData:z,htmlText:d(L),htmlTextData:z,image:d(O),label:H,labelText:j,lineEnding:D,link:d(P),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:N,resourceDestinationString:R,resourceTitleString:q,resource:V,setextHeading:d(C),setextHeadingLineSequence:w,setextHeadingText:I,strong:d(),thematicBreak:d()}};Ye(n,(e||{}).mdastExtensions||[]);const t={};return r;function r(e){let t={type:"root",children:[]};const r={stack:[t],tokenStack:[],config:n,enter:f,exit:h,buffer:a,resume:p,setData:c,getData:s},u=[];let o=-1;for(;++o<e.length;)if("listOrdered"===e[o][1].type||"listUnordered"===e[o][1].type)if("enter"===e[o][0])u.push(o);else{o=i(e,u.pop(),o)}for(o=-1;++o<e.length;){const t=n[e[o][0]];$e.call(t,e[o][1].type)&&t[e[o][1].type].call(Object.assign({sliceSerialize:e[o][2].sliceSerialize},r),e[o][1])}if(r.tokenStack.length>0){const e=r.tokenStack[r.tokenStack.length-1];(e[1]||Ge).call(r,void 0,e[0])}for(t.position={start:Ze(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Ze(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},o=-1;++o<n.transforms.length;)t=n.transforms[o](t)||t;return t}function i(e,n,t){let r,i,u,o,c=n-1,s=-1,l=!1;for(;++c<=t;){const n=e[c];if("listUnordered"===n[1].type||"listOrdered"===n[1].type||"blockQuote"===n[1].type?("enter"===n[0]?s++:s--,o=void 0):"lineEndingBlank"===n[1].type?"enter"===n[0]&&(!r||o||s||u||(u=c),o=void 0):"linePrefix"===n[1].type||"listItemValue"===n[1].type||"listItemMarker"===n[1].type||"listItemPrefix"===n[1].type||"listItemPrefixWhitespace"===n[1].type||(o=void 0),!s&&"enter"===n[0]&&"listItemPrefix"===n[1].type||-1===s&&"exit"===n[0]&&("listUnordered"===n[1].type||"listOrdered"===n[1].type)){if(r){let o=c;for(i=void 0;o--;){const n=e[o];if("lineEnding"===n[1].type||"lineEndingBlank"===n[1].type){if("exit"===n[0])continue;i&&(e[i][1].type="lineEndingBlank",l=!0),n[1].type="lineEnding",i=o}else if("linePrefix"!==n[1].type&&"blockQuotePrefix"!==n[1].type&&"blockQuotePrefixWhitespace"!==n[1].type&&"blockQuoteMarker"!==n[1].type&&"listItemIndent"!==n[1].type)break}u&&(!i||u<i)&&(r._spread=!0),r.end=Object.assign({},i?e[i][1].start:n[1].end),e.splice(i||c,0,["exit",r,n[2]]),c++,t++}"listItemPrefix"===n[1].type&&(r={type:"listItem",_spread:!1,start:Object.assign({},n[1].start),end:void 0},e.splice(c,0,["enter",r,n[2]]),c++,t++,u=void 0,o=!0)}}return e[n][1]._spread=l,t}function c(e,n){t[e]=n}function s(e){return t[e]}function l(e,n){return t;function t(t){f.call(this,e(t),t),n&&n.call(this,t)}}function a(){this.stack.push({type:"fragment",children:[]})}function f(e,n,t){return this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([n,t]),e.position={start:Ze(n.start)},e}function d(e){return n;function n(n){e&&e.call(this,n),h.call(this,n)}}function h(e,n){const t=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw new Error("Cannot close `"+e.type+"` ("+Ve({start:e.start,end:e.end})+"): it\u2019s not open");if(r[0].type!==e.type)if(n)n.call(this,e,r[0]);else{(r[1]||Ge).call(this,e,r[0])}return t.position.end=Ze(e.end),t}function p(){return function(e,n){const t=n||u;return o(e,"boolean"!=typeof t.includeImageAlt||t.includeImageAlt,"boolean"!=typeof t.includeHtml||t.includeHtml)}(this.stack.pop())}function m(){c("expectingFirstListItemValue",!0)}function g(e){if(s("expectingFirstListItemValue")){this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),c("expectingFirstListItemValue")}}function x(){const e=this.resume();this.stack[this.stack.length-1].lang=e}function k(){const e=this.resume();this.stack[this.stack.length-1].meta=e}function y(){s("flowCodeInside")||(this.buffer(),c("flowCodeInside",!0))}function F(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),c("flowCodeInside")}function v(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}function b(e){const n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=ee(this.sliceSerialize(e)).toLowerCase()}function S(){const e=this.resume();this.stack[this.stack.length-1].title=e}function E(){const e=this.resume();this.stack[this.stack.length-1].url=e}function A(e){const n=this.stack[this.stack.length-1];if(!n.depth){const t=this.sliceSerialize(e).length;n.depth=t}}function I(){c("setextHeadingSlurpLineEnding",!0)}function w(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2}function C(){c("setextHeadingSlurpLineEnding")}function T(e){const n=this.stack[this.stack.length-1];let t=n.children[n.children.length-1];t&&"text"===t.type||(t=ae(),t.position={start:Ze(e.start)},n.children.push(t)),this.stack.push(t)}function z(e){const n=this.stack.pop();n.value+=this.sliceSerialize(e),n.position.end=Ze(e.end)}function D(e){const t=this.stack[this.stack.length-1];if(s("atHardBreak")){return t.children[t.children.length-1].position.end=Ze(e.end),void c("atHardBreak")}!s("setextHeadingSlurpLineEnding")&&n.canContainEols.includes(t.type)&&(T.call(this,e),z.call(this,e))}function B(){c("atHardBreak",!0)}function _(){const e=this.resume();this.stack[this.stack.length-1].value=e}function L(){const e=this.resume();this.stack[this.stack.length-1].value=e}function M(){const e=this.resume();this.stack[this.stack.length-1].value=e}function P(){const e=this.stack[this.stack.length-1];if(s("inReference")){const n=s("referenceType")||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;c("referenceType")}function O(){const e=this.stack[this.stack.length-1];if(s("inReference")){const n=s("referenceType")||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;c("referenceType")}function j(e){const n=this.sliceSerialize(e),t=this.stack[this.stack.length-2];t.label=function(e){return e.replace(Re,qe)}(n),t.identifier=ee(n).toLowerCase()}function H(){const e=this.stack[this.stack.length-1],n=this.resume(),t=this.stack[this.stack.length-1];if(c("inReference",!0),"link"===t.type){const n=e.children;t.children=n}else t.alt=n}function R(){const e=this.resume();this.stack[this.stack.length-1].url=e}function q(){const e=this.resume();this.stack[this.stack.length-1].title=e}function V(){c("inReference")}function Q(){c("referenceType","collapsed")}function N(e){const n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=ee(this.sliceSerialize(e)).toLowerCase(),c("referenceType","full")}function U(e){c("characterReferenceType",e.type)}function $(e){const n=this.sliceSerialize(e),t=s("characterReferenceType");let r;if(t)r=He(n,"characterReferenceMarkerNumeric"===t?10:16),c("characterReferenceType");else{r=me(n)}const i=this.stack.pop();i.value+=r,i.position.end=Ze(e.end)}function W(e){z.call(this,e);this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function Z(e){z.call(this,e);this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function Y(){return{type:"blockquote",children:[]}}function J(){return{type:"code",lang:null,meta:null,value:""}}function G(){return{type:"inlineCode",value:""}}function K(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function X(){return{type:"emphasis",children:[]}}function ne(){return{type:"heading",depth:void 0,children:[]}}function te(){return{type:"break"}}function re(){return{type:"html",value:""}}function ie(){return{type:"image",title:null,url:"",alt:null}}function ue(){return{type:"link",title:null,url:"",children:[]}}function oe(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function ce(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function se(){return{type:"paragraph",children:[]}}function le(){return{type:"strong",children:[]}}function ae(){return{type:"text",value:""}}function fe(){return{type:"thematicBreak"}}}(t)(function(e){for(;!B(e););return e}(Oe(t).document().write(function(){let e,n=1,t="",r=!0;return function(i,u,o){const c=[];let s,l,a,f,d;for(i=t+i.toString(u),a=0,t="",r&&(65279===i.charCodeAt(0)&&a++,r=void 0);a<i.length;){if(je.lastIndex=a,s=je.exec(i),f=s&&void 0!==s.index?s.index:i.length,d=i.charCodeAt(f),!s){t=i.slice(a);break}if(10===d&&a===f&&e)c.push(-3),e=void 0;else switch(e&&(c.push(-5),e=void 0),a<f&&(c.push(i.slice(a,f)),n+=f-a),d){case 0:c.push(65533),n++;break;case 9:for(l=4*Math.ceil(n/4),c.push(-2);n++<l;)c.push(-1);break;case 10:c.push(-4),n=1;break;default:e=!0,n=1}a=f+1}return o&&(e&&c.push(-5),t&&c.push(t),c.push(null)),c}}()(e,n,!0))))};function Ze(e){return{line:e.line,column:e.column,offset:e.offset}}function Ye(e,n){let t=-1;for(;++t<n.length;){const r=n[t];Array.isArray(r)?Ye(e,r):Je(e,r)}}function Je(e,n){let t;for(t in n)if($e.call(n,t))if("canContainEols"===t){const r=n[t];r&&e[t].push(...r)}else if("transforms"===t){const r=n[t];r&&e[t].push(...r)}else if("enter"===t||"exit"===t){const r=n[t];r&&Object.assign(e[t],r)}}function Ge(e,n){throw e?new Error("Cannot close `"+e.type+"` ("+Ve({start:e.start,end:e.end})+"): a different token (`"+n.type+"`, "+Ve({start:n.start,end:n.end})+") is open"):new Error("Cannot close document, a token (`"+n.type+"`, "+Ve({start:n.start,end:n.end})+") is still open")}var Ke=t(18464);function Xe(e){const n=function(e){const n=e.replace(/\n{2,}/g,"\n");return(0,Ke.Z)(n)}(e),{children:t}=We(n),r=[[]];let i=0;function u(e,n="normal"){if("text"===e.type){e.value.split("\n").forEach(((e,t)=>{0!==t&&(i++,r.push([])),e.split(" ").forEach((e=>{e&&r[i].push({content:e,type:n})}))}))}else"strong"!==e.type&&"emphasis"!==e.type||e.children.forEach((n=>{u(n,e.type)}))}return t.forEach((e=>{"paragraph"===e.type&&e.children.forEach((e=>{u(e)}))})),r}function en(e,n){var t;return nn(e,[],(t=n.content,Intl.Segmenter?[...(new Intl.Segmenter).segment(t)].map((e=>e.segment)):[...t]),n.type)}function nn(e,n,t,r){if(0===t.length)return[{content:n.join(""),type:r},{content:"",type:r}];const[i,...u]=t,o=[...n,i];return e([{content:o.join(""),type:r}])?nn(e,o,u,r):(0===n.length&&i&&(n.push(i),t.shift()),[{content:n.join(""),type:r},{content:t.join(""),type:r}])}function tn(e,n){if(e.some((({content:e})=>e.includes("\n"))))throw new Error("splitLineToFitWidth does not support newlines in the line");return rn(e,n)}function rn(e,n,t=[],r=[]){if(0===e.length)return r.length>0&&t.push(r),t.length>0?t:[];let i="";" "===e[0].content&&(i=" ",e.shift());const u=e.shift()??{content:" ",type:"normal"},o=[...r];if(""!==i&&o.push({content:i,type:"normal"}),o.push(u),n(o))return rn(e,n,t,o);if(r.length>0)t.push(r),e.unshift(u);else if(u.content){const[r,i]=en(n,u);t.push([r]),i.content&&e.unshift(i)}return rn(e,n,t)}function un(e,n,t){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",n*t-.1+"em").attr("dy",t+"em")}function on(e,n,t){const r=e.append("text"),i=un(r,1,n);sn(i,t);const u=i.node().getComputedTextLength();return r.remove(),u}function cn(e,n,t){var r;const i=e.append("text"),u=un(i,1,n);sn(u,[{content:t,type:"normal"}]);const o=null==(r=u.node())?void 0:r.getBoundingClientRect();return o&&i.remove(),o}function sn(e,n){e.text(""),n.forEach(((n,t)=>{const r=e.append("tspan").attr("font-style","emphasis"===n.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===n.type?"bold":"normal");0===t?r.text(n.content):r.text(" "+n.content)}))}const ln=(e,n="",{style:t="",isTitle:r=!1,classes:u="",useHtmlLabels:o=!0,isNode:c=!0,width:s=200,addSvgBackground:l=!1}={})=>{if(i.l.info("createText",n,t,r,u,o,c,l),o){const r=function(e){const{children:n}=We(e);return n.map((function e(n){return"text"===n.type?n.value.replace(/\n/g,"<br/>"):"strong"===n.type?`<strong>${n.children.map(e).join("")}</strong>`:"emphasis"===n.type?`<em>${n.children.map(e).join("")}</em>`:"paragraph"===n.type?`<p>${n.children.map(e).join("")}</p>`:`Unsupported markdown: ${n.type}`})).join("")}(n),o=function(e,n,t,r,i=!1){const u=e.append("foreignObject"),o=u.append("xhtml:div"),c=n.label,s=n.isNode?"nodeLabel":"edgeLabel";var l,a;o.html(`\n <span class="${s} ${r}" `+(n.labelStyle?'style="'+n.labelStyle+'"':"")+">"+c+"</span>"),l=o,(a=n.labelStyle)&&l.attr("style",a),o.style("display","table-cell"),o.style("white-space","nowrap"),o.style("max-width",t+"px"),o.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&o.attr("class","labelBkg");let f=o.node().getBoundingClientRect();return f.width===t&&(o.style("display","table"),o.style("white-space","break-spaces"),o.style("width",t+"px"),f=o.node().getBoundingClientRect()),u.style("width",f.width),u.style("height",f.height),u.node()}(e,{isNode:c,label:(0,i.J)(r).replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`)),labelStyle:t.replace("fill:","color:")},s,u,l);return o}{const t=function(e,n,t,r=!1){const i=n.append("g"),u=i.insert("rect").attr("class","background"),o=i.append("text").attr("y","-10.1");let c=0;for(const s of t){const n=n=>on(i,1.1,n)<=e,t=n(s)?[s]:tn(s,n);for(const e of t)sn(un(o,c,1.1),e),c++}if(r){const e=o.node().getBBox(),n=2;return u.attr("x",-n).attr("y",-n).attr("width",e.width+2*n).attr("height",e.height+2*n),i.node()}return o.node()}(s,e,Xe(n),l);return t}}}}]); \ No newline at end of file diff --git a/assets/js/3076.35f30829.js b/assets/js/3076.35f30829.js deleted file mode 100644 index e660081..0000000 --- a/assets/js/3076.35f30829.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3076],{6042:(e,n,t)=>{t.d(n,{a:()=>ln,c:()=>cn});var r={};t.r(r),t.d(r,{attentionMarkers:()=>Me,contentInitial:()=>Te,disable:()=>Pe,document:()=>Ce,flow:()=>De,flowInitial:()=>ze,insideSpan:()=>Le,string:()=>Be,text:()=>_e});var i=t(5322);const u={};function o(e,n,t){if(function(e){return Boolean(e&&"object"==typeof e)}(e)){if("value"in e)return"html"!==e.type||t?e.value:"";if(n&&"alt"in e&&e.alt)return e.alt;if("children"in e)return c(e.children,n,t)}return Array.isArray(e)?c(e,n,t):""}function c(e,n,t){const r=[];let i=-1;for(;++i<e.length;)r[i]=o(e[i],n,t);return r.join("")}function s(e,n,t,r){const i=e.length;let u,o=0;if(n=n<0?-n>i?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)u=Array.from(r),u.unshift(n,t),e.splice(...u);else for(t&&e.splice(n,t);o<r.length;)u=r.slice(o,o+1e4),u.unshift(n,0),e.splice(...u),o+=1e4,n+=1e4}function l(e,n){return e.length>0?(s(e,e.length,0,n),e):n}const a={}.hasOwnProperty;function f(e,n){let t;for(t in n){const r=(a.call(e,t)?e[t]:void 0)||(e[t]={}),i=n[t];let u;if(i)for(u in i){a.call(r,u)||(r[u]=[]);const e=i[u];d(r[u],Array.isArray(e)?e:e?[e]:[])}}}function d(e,n){let t=-1;const r=[];for(;++t<n.length;)("after"===n[t].add?e:r).push(n[t]);s(e,0,0,r)}const h=A(/[A-Za-z]/),p=A(/[\dA-Za-z]/),m=A(/[#-'*+\--9=?A-Z^-~]/);function g(e){return null!==e&&(e<32||127===e)}const x=A(/\d/),k=A(/[\dA-Fa-f]/),y=A(/[!-/:-@[-`{-~]/);function F(e){return null!==e&&e<-2}function v(e){return null!==e&&(e<0||32===e)}function b(e){return-2===e||-1===e||32===e}const S=A(/[!-\/:-@\[-`\{-~\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]/),E=A(/\s/);function A(e){return function(n){return null!==n&&e.test(String.fromCharCode(n))}}function I(e,n,t,r){const i=r?r-1:Number.POSITIVE_INFINITY;let u=0;return function(r){if(b(r))return e.enter(t),o(r);return n(r)};function o(r){return b(r)&&u++<i?(e.consume(r),o):(e.exit(t),n(r))}}const w={tokenize:function(e){const n=e.attempt(this.parser.constructs.contentInitial,(function(t){if(null===t)return void e.consume(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I(e,n,"linePrefix")}),(function(n){return e.enter("paragraph"),r(n)}));let t;return n;function r(n){const r=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=r),t=r,i(n)}function i(n){return null===n?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(n)):F(n)?(e.consume(n),e.exit("chunkText"),r):(e.consume(n),i)}}};const C={tokenize:function(e){const n=this,t=[];let r,i,u,o=0;return c;function c(r){if(o<t.length){const i=t[o];return n.containerState=i[1],e.attempt(i[0].continuation,l,a)(r)}return a(r)}function l(e){if(o++,n.containerState._closeFlow){n.containerState._closeFlow=void 0,r&&y();const t=n.events.length;let i,u=t;for(;u--;)if("exit"===n.events[u][0]&&"chunkFlow"===n.events[u][1].type){i=n.events[u][1].end;break}k(o);let c=t;for(;c<n.events.length;)n.events[c][1].end=Object.assign({},i),c++;return s(n.events,u+1,0,n.events.slice(t)),n.events.length=c,a(e)}return c(e)}function a(i){if(o===t.length){if(!r)return h(i);if(r.currentConstruct&&r.currentConstruct.concrete)return m(i);n.interrupt=Boolean(r.currentConstruct&&!r._gfmTableDynamicInterruptHack)}return n.containerState={},e.check(T,f,d)(i)}function f(e){return r&&y(),k(o),h(e)}function d(e){return n.parser.lazy[n.now().line]=o!==t.length,u=n.now().offset,m(e)}function h(t){return n.containerState={},e.attempt(T,p,m)(t)}function p(e){return o++,t.push([n.currentConstruct,n.containerState]),h(e)}function m(t){return null===t?(r&&y(),k(0),void e.consume(t)):(r=r||n.parser.flow(n.now()),e.enter("chunkFlow",{contentType:"flow",previous:i,_tokenizer:r}),g(t))}function g(t){return null===t?(x(e.exit("chunkFlow"),!0),k(0),void e.consume(t)):F(t)?(e.consume(t),x(e.exit("chunkFlow")),o=0,n.interrupt=void 0,c):(e.consume(t),g)}function x(e,t){const c=n.sliceStream(e);if(t&&c.push(null),e.previous=i,i&&(i.next=e),i=e,r.defineSkip(e.start),r.write(c),n.parser.lazy[e.start.line]){let e=r.events.length;for(;e--;)if(r.events[e][1].start.offset<u&&(!r.events[e][1].end||r.events[e][1].end.offset>u))return;const t=n.events.length;let i,c,l=t;for(;l--;)if("exit"===n.events[l][0]&&"chunkFlow"===n.events[l][1].type){if(i){c=n.events[l][1].end;break}i=!0}for(k(o),e=t;e<n.events.length;)n.events[e][1].end=Object.assign({},c),e++;s(n.events,l+1,0,n.events.slice(t)),n.events.length=e}}function k(r){let i=t.length;for(;i-- >r;){const r=t[i];n.containerState=r[1],r[0].exit.call(n,e)}t.length=r}function y(){r.write([null]),i=void 0,r=void 0,n.containerState._closeFlow=void 0}}},T={tokenize:function(e,n,t){return I(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const z={tokenize:function(e,n,t){return function(n){return b(n)?I(e,r,"linePrefix")(n):r(n)};function r(e){return null===e||F(e)?n(e):t(e)}},partial:!0};function D(e,n,t,r){const i=e.length;let u,o=0;if(n=n<0?-n>i?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)u=Array.from(r),u.unshift(n,t),e.splice(...u);else for(t&&e.splice(n,t);o<r.length;)u=r.slice(o,o+1e4),u.unshift(n,0),e.splice(...u),o+=1e4,n+=1e4}function B(e){const n={};let t,r,i,u,o,c,s,l=-1;for(;++l<e.length;){for(;l in n;)l=n[l];if(t=e[l],l&&"chunkFlow"===t[1].type&&"listItemPrefix"===e[l-1][1].type&&(c=t[1]._tokenizer.events,i=0,i<c.length&&"lineEndingBlank"===c[i][1].type&&(i+=2),i<c.length&&"content"===c[i][1].type))for(;++i<c.length&&"content"!==c[i][1].type;)"chunkText"===c[i][1].type&&(c[i][1]._isInFirstContentOfListItem=!0,i++);if("enter"===t[0])t[1].contentType&&(Object.assign(n,_(e,l)),l=n[l],s=!0);else if(t[1]._container){for(i=l,r=void 0;i--&&(u=e[i],"lineEnding"===u[1].type||"lineEndingBlank"===u[1].type);)"enter"===u[0]&&(r&&(e[r][1].type="lineEndingBlank"),u[1].type="lineEnding",r=i);r&&(t[1].end=Object.assign({},e[r][1].start),o=e.slice(r,l),o.unshift(t),D(e,r,l-r+1,o))}}return!s}function _(e,n){const t=e[n][1],r=e[n][2];let i=n-1;const u=[],o=t._tokenizer||r.parser[t.contentType](t.start),c=o.events,s=[],l={};let a,f,d=-1,h=t,p=0,m=0;const g=[m];for(;h;){for(;e[++i][1]!==h;);u.push(i),h._tokenizer||(a=r.sliceStream(h),h.next||a.push(null),f&&o.defineSkip(h.start),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(a),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),f=h,h=h.next}for(h=t;++d<c.length;)"exit"===c[d][0]&&"enter"===c[d-1][0]&&c[d][1].type===c[d-1][1].type&&c[d][1].start.line!==c[d][1].end.line&&(m=d+1,g.push(m),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(o.events=[],h?(h._tokenizer=void 0,h.previous=void 0):g.pop(),d=g.length;d--;){const n=c.slice(g[d],g[d+1]),t=u.pop();s.unshift([t,t+n.length-1]),D(e,t,2,n)}for(d=-1;++d<s.length;)l[p+s[d][0]]=p+s[d][1],p+=s[d][1]-s[d][0]-1;return l}const L={tokenize:function(e,n){let t;return function(n){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),r(n)};function r(n){return null===n?i(n):F(n)?e.check(M,u,i)(n):(e.consume(n),r)}function i(t){return e.exit("chunkContent"),e.exit("content"),n(t)}function u(n){return e.consume(n),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,r}},resolve:function(e){return B(e),e}},M={tokenize:function(e,n,t){const r=this;return function(n){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),I(e,i,"linePrefix")};function i(i){if(null===i||F(i))return t(i);const u=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?n(i):e.interrupt(r.parser.constructs.flow,t,n)(i)}},partial:!0};const P={tokenize:function(e){const n=this,t=e.attempt(z,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t}),e.attempt(this.parser.constructs.flowInitial,r,I(e,e.attempt(this.parser.constructs.flow,r,e.attempt(L,r)),"linePrefix")));return t;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n.currentConstruct=void 0,t;e.consume(r)}}};const O={resolveAll:q()},j=R("string"),H=R("text");function R(e){return{tokenize:function(n){const t=this,r=this.parser.constructs[e],i=n.attempt(r,u,o);return u;function u(e){return s(e)?i(e):o(e)}function o(e){if(null!==e)return n.enter("data"),n.consume(e),c;n.consume(e)}function c(e){return s(e)?(n.exit("data"),i(e)):(n.consume(e),c)}function s(e){if(null===e)return!0;const n=r[e];let i=-1;if(n)for(;++i<n.length;){const e=n[i];if(!e.previous||e.previous.call(t,t.previous))return!0}return!1}},resolveAll:q("text"===e?V:void 0)}}function q(e){return function(n,t){let r,i=-1;for(;++i<=n.length;)void 0===r?n[i]&&"data"===n[i][1].type&&(r=i,i++):n[i]&&"data"===n[i][1].type||(i!==r+2&&(n[r][1].end=n[i-1][1].end,n.splice(r+2,i-r-2),i=r+2),r=void 0);return e?e(n,t):n}}function V(e,n){let t=0;for(;++t<=e.length;)if((t===e.length||"lineEnding"===e[t][1].type)&&"data"===e[t-1][1].type){const r=e[t-1][1],i=n.sliceStream(r);let u,o=i.length,c=-1,s=0;for(;o--;){const e=i[o];if("string"==typeof e){for(c=e.length;32===e.charCodeAt(c-1);)s++,c--;if(c)break;c=-1}else if(-2===e)u=!0,s++;else if(-1!==e){o++;break}}if(s){const i={type:t===e.length||u||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+o,_bufferIndex:o?c:r.start._bufferIndex+c},end:Object.assign({},r.end)};r.end=Object.assign({},i.start),r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(t,0,["enter",i,n],["exit",i,n]),t+=2)}t++}return e}function Q(e,n,t){const r=[];let i=-1;for(;++i<e.length;){const u=e[i].resolveAll;u&&!r.includes(u)&&(n=u(n,t),r.push(u))}return n}function N(e,n,t){let r=Object.assign(t?Object.assign({},t):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},u=[];let o=[],c=[],a=!0;const f={consume:function(e){F(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,S()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++));d.previous=e,a=!0},enter:function(e,n){const t=n||{};return t.type=e,t.start=g(),d.events.push(["enter",t,d]),c.push(t),t},exit:function(e){const n=c.pop();return n.end=g(),d.events.push(["exit",n,d]),n},attempt:v((function(e,n){b(e,n.from)})),check:v(y),interrupt:v(y,{interrupt:!0})},d={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:m,sliceSerialize:function(e,n){return function(e,n){let t=-1;const r=[];let i;for(;++t<e.length;){const u=e[t];let o;if("string"==typeof u)o=u;else switch(u){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=n?" ":"\t";break;case-1:if(!n&&i)continue;o=" ";break;default:o=String.fromCharCode(u)}i=-2===u,r.push(o)}return r.join("")}(m(e),n)},now:g,defineSkip:function(e){i[e.line]=e.column,S()},write:function(e){if(o=l(o,e),x(),null!==o[o.length-1])return[];return b(n,0),d.events=Q(u,d.events,d),d.events}};let h,p=n.tokenize.call(d,f);return n.resolveAll&&u.push(n),d;function m(e){return function(e,n){const t=n.start._index,r=n.start._bufferIndex,i=n.end._index,u=n.end._bufferIndex;let o;if(t===i)o=[e[t].slice(r,u)];else{if(o=e.slice(t,i),r>-1){const e=o[0];"string"==typeof e?o[0]=e.slice(r):o.shift()}u>0&&o.push(e[i].slice(0,u))}return o}(o,e)}function g(){const{line:e,column:n,offset:t,_index:i,_bufferIndex:u}=r;return{line:e,column:n,offset:t,_index:i,_bufferIndex:u}}function x(){let e;for(;r._index<o.length;){const n=o[r._index];if("string"==typeof n)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<n.length;)k(n.charCodeAt(r._bufferIndex));else k(n)}}function k(e){a=void 0,h=e,p=p(e)}function y(e,n){n.restore()}function v(e,n){return function(t,i,u){let o,s,l,h;return Array.isArray(t)?p(t):"tokenize"in t?p([t]):function(e){return n;function n(n){const t=null!==n&&e[n],r=null!==n&&e.null;return p([...Array.isArray(t)?t:t?[t]:[],...Array.isArray(r)?r:r?[r]:[]])(n)}}(t);function p(e){return o=e,s=0,0===e.length?u:m(e[s])}function m(e){return function(t){h=function(){const e=g(),n=d.previous,t=d.currentConstruct,i=d.events.length,u=Array.from(c);return{restore:o,from:i};function o(){r=e,d.previous=n,d.currentConstruct=t,d.events.length=i,c=u,S()}}(),l=e,e.partial||(d.currentConstruct=e);if(e.name&&d.parser.constructs.disable.null.includes(e.name))return k(t);return e.tokenize.call(n?Object.assign(Object.create(d),n):d,f,x,k)(t)}}function x(n){return a=!0,e(l,h),i}function k(e){return a=!0,h.restore(),++s<o.length?m(o[s]):u}}}function b(e,n){e.resolveAll&&!u.includes(e)&&u.push(e),e.resolve&&s(d.events,n,d.events.length-n,e.resolve(d.events.slice(n),d)),e.resolveTo&&(d.events=e.resolveTo(d.events,d))}function S(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}const U={name:"thematicBreak",tokenize:function(e,n,t){let r,i=0;return function(n){return e.enter("thematicBreak"),function(e){return r=e,u(e)}(n)};function u(u){return u===r?(e.enter("thematicBreakSequence"),o(u)):i>=3&&(null===u||F(u))?(e.exit("thematicBreak"),n(u)):t(u)}function o(n){return n===r?(e.consume(n),i++,o):(e.exit("thematicBreakSequence"),b(n)?I(e,u,"whitespace")(n):u(n))}}};const $={name:"list",tokenize:function(e,n,t){const r=this,i=r.events[r.events.length-1];let u=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,o=0;return function(n){const i=r.containerState.type||(42===n||43===n||45===n?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||n===r.containerState.marker:x(n)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===n||45===n?e.check(U,t,s)(n):s(n);if(!r.interrupt||49===n)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(n)}return t(n)};function c(n){return x(n)&&++o<10?(e.consume(n),c):(!r.interrupt||o<2)&&(r.containerState.marker?n===r.containerState.marker:41===n||46===n)?(e.exit("listItemValue"),s(n)):t(n)}function s(n){return e.enter("listItemMarker"),e.consume(n),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||n,e.check(z,r.interrupt?t:l,e.attempt(W,f,a))}function l(e){return r.containerState.initialBlankLine=!0,u++,f(e)}function a(n){return b(n)?(e.enter("listItemPrefixWhitespace"),e.consume(n),e.exit("listItemPrefixWhitespace"),f):t(n)}function f(t){return r.containerState.size=u+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(t)}},continuation:{tokenize:function(e,n,t){const r=this;return r.containerState._closeFlow=void 0,e.check(z,(function(t){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,I(e,n,"listItemIndent",r.containerState.size+1)(t)}),(function(t){if(r.containerState.furtherBlankLines||!b(t))return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(t);return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Z,n,i)(t)}));function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,I(e,e.attempt($,n,t),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)}},W={tokenize:function(e,n,t){const r=this;return I(e,(function(e){const i=r.events[r.events.length-1];return!b(e)&&i&&"listItemPrefixWhitespace"===i[1].type?n(e):t(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},Z={tokenize:function(e,n,t){const r=this;return I(e,(function(e){const i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?n(e):t(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};const Y={name:"blockQuote",tokenize:function(e,n,t){const r=this;return function(n){if(62===n){const t=r.containerState;return t.open||(e.enter("blockQuote",{_container:!0}),t.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(n),e.exit("blockQuoteMarker"),i}return t(n)};function i(t){return b(t)?(e.enter("blockQuotePrefixWhitespace"),e.consume(t),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),n):(e.exit("blockQuotePrefix"),n(t))}},continuation:{tokenize:function(e,n,t){const r=this;return function(n){if(b(n))return I(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n);return i(n)};function i(r){return e.attempt(Y,n,t)(r)}}},exit:function(e){e.exit("blockQuote")}};function J(e,n,t,r,i,u,o,c,s){const l=s||Number.POSITIVE_INFINITY;let a=0;return function(n){if(60===n)return e.enter(r),e.enter(i),e.enter(u),e.consume(n),e.exit(u),f;if(null===n||32===n||41===n||g(n))return t(n);return e.enter(r),e.enter(o),e.enter(c),e.enter("chunkString",{contentType:"string"}),p(n)};function f(t){return 62===t?(e.enter(u),e.consume(t),e.exit(u),e.exit(i),e.exit(r),n):(e.enter(c),e.enter("chunkString",{contentType:"string"}),d(t))}function d(n){return 62===n?(e.exit("chunkString"),e.exit(c),f(n)):null===n||60===n||F(n)?t(n):(e.consume(n),92===n?h:d)}function h(n){return 60===n||62===n||92===n?(e.consume(n),d):d(n)}function p(i){return a||null!==i&&41!==i&&!v(i)?a<l&&40===i?(e.consume(i),a++,p):41===i?(e.consume(i),a--,p):null===i||32===i||40===i||g(i)?t(i):(e.consume(i),92===i?m:p):(e.exit("chunkString"),e.exit(c),e.exit(o),e.exit(r),n(i))}function m(n){return 40===n||41===n||92===n?(e.consume(n),p):p(n)}}function G(e,n,t,r,i,u){const o=this;let c,s=0;return function(n){return e.enter(r),e.enter(i),e.consume(n),e.exit(i),e.enter(u),l};function l(f){return s>999||null===f||91===f||93===f&&!c||94===f&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs?t(f):93===f?(e.exit(u),e.enter(i),e.consume(f),e.exit(i),e.exit(r),n):F(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),a(f))}function a(n){return null===n||91===n||93===n||F(n)||s++>999?(e.exit("chunkString"),l(n)):(e.consume(n),c||(c=!b(n)),92===n?f:a)}function f(n){return 91===n||92===n||93===n?(e.consume(n),s++,a):a(n)}}function K(e,n,t,r,i,u){let o;return function(n){if(34===n||39===n||40===n)return e.enter(r),e.enter(i),e.consume(n),e.exit(i),o=40===n?41:n,c;return t(n)};function c(t){return t===o?(e.enter(i),e.consume(t),e.exit(i),e.exit(r),n):(e.enter(u),s(t))}function s(n){return n===o?(e.exit(u),c(o)):null===n?t(n):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),I(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(n))}function l(n){return n===o||null===n||F(n)?(e.exit("chunkString"),s(n)):(e.consume(n),92===n?a:l)}function a(n){return n===o||92===n?(e.consume(n),l):l(n)}}function X(e,n){let t;return function r(i){if(F(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t=!0,r;if(b(i))return I(e,r,t?"linePrefix":"lineSuffix")(i);return n(i)}}function ee(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ne={name:"definition",tokenize:function(e,n,t){const r=this;let i;return function(n){return e.enter("definition"),function(n){return G.call(r,e,u,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(n)}(n)};function u(n){return i=ee(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===n?(e.enter("definitionMarker"),e.consume(n),e.exit("definitionMarker"),o):t(n)}function o(n){return v(n)?X(e,c)(n):c(n)}function c(n){return J(e,s,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(n)}function s(n){return e.attempt(te,l,l)(n)}function l(n){return b(n)?I(e,a,"whitespace")(n):a(n)}function a(u){return null===u||F(u)?(e.exit("definition"),r.parser.defined.push(i),n(u)):t(u)}}},te={tokenize:function(e,n,t){return function(n){return v(n)?X(e,r)(n):t(n)};function r(n){return K(e,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(n)}function i(n){return b(n)?I(e,u,"whitespace")(n):u(n)}function u(e){return null===e||F(e)?n(e):t(e)}},partial:!0};const re={name:"codeIndented",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("codeIndented"),I(e,i,"linePrefix",5)(n)};function i(e){const n=r.events[r.events.length-1];return n&&"linePrefix"===n[1].type&&n[2].sliceSerialize(n[1],!0).length>=4?u(e):t(e)}function u(n){return null===n?c(n):F(n)?e.attempt(ie,u,c)(n):(e.enter("codeFlowValue"),o(n))}function o(n){return null===n||F(n)?(e.exit("codeFlowValue"),u(n)):(e.consume(n),o)}function c(t){return e.exit("codeIndented"),n(t)}}},ie={tokenize:function(e,n,t){const r=this;return i;function i(n){return r.parser.lazy[r.now().line]?t(n):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i):I(e,u,"linePrefix",5)(n)}function u(e){const u=r.events[r.events.length-1];return u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?n(e):F(e)?i(e):t(e)}},partial:!0};const ue={name:"headingAtx",tokenize:function(e,n,t){let r=0;return function(n){return e.enter("atxHeading"),function(n){return e.enter("atxHeadingSequence"),i(n)}(n)};function i(n){return 35===n&&r++<6?(e.consume(n),i):null===n||v(n)?(e.exit("atxHeadingSequence"),u(n)):t(n)}function u(t){return 35===t?(e.enter("atxHeadingSequence"),o(t)):null===t||F(t)?(e.exit("atxHeading"),n(t)):b(t)?I(e,u,"whitespace")(t):(e.enter("atxHeadingText"),c(t))}function o(n){return 35===n?(e.consume(n),o):(e.exit("atxHeadingSequence"),u(n))}function c(n){return null===n||35===n||v(n)?(e.exit("atxHeadingText"),u(n)):(e.consume(n),c)}},resolve:function(e,n){let t,r,i=e.length-2,u=3;"whitespace"===e[u][1].type&&(u+=2);i-2>u&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(u===i-1||i-4>u&&"whitespace"===e[i-2][1].type)&&(i-=u+1===i?2:4);i>u&&(t={type:"atxHeadingText",start:e[u][1].start,end:e[i][1].end},r={type:"chunkText",start:e[u][1].start,end:e[i][1].end,contentType:"text"},s(e,u,i-u+1,[["enter",t,n],["enter",r,n],["exit",r,n],["exit",t,n]]));return e}};const oe={name:"setextUnderline",tokenize:function(e,n,t){const r=this;let i;return function(n){let o,c=r.events.length;for(;c--;)if("lineEnding"!==r.events[c][1].type&&"linePrefix"!==r.events[c][1].type&&"content"!==r.events[c][1].type){o="paragraph"===r.events[c][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||o))return e.enter("setextHeadingLine"),i=n,function(n){return e.enter("setextHeadingLineSequence"),u(n)}(n);return t(n)};function u(n){return n===i?(e.consume(n),u):(e.exit("setextHeadingLineSequence"),b(n)?I(e,o,"lineSuffix")(n):o(n))}function o(r){return null===r||F(r)?(e.exit("setextHeadingLine"),n(r)):t(r)}},resolveTo:function(e,n){let t,r,i,u=e.length;for(;u--;)if("enter"===e[u][0]){if("content"===e[u][1].type){t=u;break}"paragraph"===e[u][1].type&&(r=u)}else"content"===e[u][1].type&&e.splice(u,1),i||"definition"!==e[u][1].type||(i=u);const o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",o,n]),e.splice(i+1,0,["exit",e[t][1],n]),e[t][1].end=Object.assign({},e[i][1].end)):e[t][1]=o;return e.push(["exit",o,n]),e}};const ce=["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"],se=["pre","script","style","textarea"],le={name:"htmlFlow",tokenize:function(e,n,t){const r=this;let i,u,o,c,s;return function(n){return function(n){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(n),l}(n)};function l(c){return 33===c?(e.consume(c),a):47===c?(e.consume(c),u=!0,m):63===c?(e.consume(c),i=3,r.interrupt?n:H):h(c)?(e.consume(c),o=String.fromCharCode(c),g):t(c)}function a(u){return 45===u?(e.consume(u),i=2,f):91===u?(e.consume(u),i=5,c=0,d):h(u)?(e.consume(u),i=4,r.interrupt?n:H):t(u)}function f(i){return 45===i?(e.consume(i),r.interrupt?n:H):t(i)}function d(i){const u="CDATA[";return i===u.charCodeAt(c++)?(e.consume(i),6===c?r.interrupt?n:D:d):t(i)}function m(n){return h(n)?(e.consume(n),o=String.fromCharCode(n),g):t(n)}function g(c){if(null===c||47===c||62===c||v(c)){const s=47===c,l=o.toLowerCase();return s||u||!se.includes(l)?ce.includes(o.toLowerCase())?(i=6,s?(e.consume(c),x):r.interrupt?n(c):D(c)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?t(c):u?k(c):y(c)):(i=1,r.interrupt?n(c):D(c))}return 45===c||p(c)?(e.consume(c),o+=String.fromCharCode(c),g):t(c)}function x(i){return 62===i?(e.consume(i),r.interrupt?n:D):t(i)}function k(n){return b(n)?(e.consume(n),k):T(n)}function y(n){return 47===n?(e.consume(n),T):58===n||95===n||h(n)?(e.consume(n),S):b(n)?(e.consume(n),y):T(n)}function S(n){return 45===n||46===n||58===n||95===n||p(n)?(e.consume(n),S):E(n)}function E(n){return 61===n?(e.consume(n),A):b(n)?(e.consume(n),E):y(n)}function A(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),s=n,I):b(n)?(e.consume(n),A):w(n)}function I(n){return n===s?(e.consume(n),s=null,C):null===n||F(n)?t(n):(e.consume(n),I)}function w(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||v(n)?E(n):(e.consume(n),w)}function C(e){return 47===e||62===e||b(e)?y(e):t(e)}function T(n){return 62===n?(e.consume(n),z):t(n)}function z(n){return null===n||F(n)?D(n):b(n)?(e.consume(n),z):t(n)}function D(n){return 45===n&&2===i?(e.consume(n),M):60===n&&1===i?(e.consume(n),P):62===n&&4===i?(e.consume(n),R):63===n&&3===i?(e.consume(n),H):93===n&&5===i?(e.consume(n),j):!F(n)||6!==i&&7!==i?null===n||F(n)?(e.exit("htmlFlowData"),B(n)):(e.consume(n),D):(e.exit("htmlFlowData"),e.check(ae,q,B)(n))}function B(n){return e.check(fe,_,q)(n)}function _(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),L}function L(n){return null===n||F(n)?B(n):(e.enter("htmlFlowData"),D(n))}function M(n){return 45===n?(e.consume(n),H):D(n)}function P(n){return 47===n?(e.consume(n),o="",O):D(n)}function O(n){if(62===n){const t=o.toLowerCase();return se.includes(t)?(e.consume(n),R):D(n)}return h(n)&&o.length<8?(e.consume(n),o+=String.fromCharCode(n),O):D(n)}function j(n){return 93===n?(e.consume(n),H):D(n)}function H(n){return 62===n?(e.consume(n),R):45===n&&2===i?(e.consume(n),H):D(n)}function R(n){return null===n||F(n)?(e.exit("htmlFlowData"),q(n)):(e.consume(n),R)}function q(t){return e.exit("htmlFlow"),n(t)}},resolveTo:function(e){let n=e.length;for(;n--&&("enter"!==e[n][0]||"htmlFlow"!==e[n][1].type););n>1&&"linePrefix"===e[n-2][1].type&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2));return e},concrete:!0},ae={tokenize:function(e,n,t){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(z,n,t)}},partial:!0},fe={tokenize:function(e,n,t){const r=this;return function(n){if(F(n))return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i;return t(n)};function i(e){return r.parser.lazy[r.now().line]?t(e):n(e)}},partial:!0};const de={tokenize:function(e,n,t){const r=this;return function(n){if(null===n)return t(n);return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),i};function i(e){return r.parser.lazy[r.now().line]?t(e):n(e)}},partial:!0},he={name:"codeFenced",tokenize:function(e,n,t){const r=this,i={tokenize:function(e,n,t){let i=0;return o;function o(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),s}function s(n){return e.enter("codeFencedFence"),b(n)?I(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):l(n)}function l(n){return n===u?(e.enter("codeFencedFenceSequence"),a(n)):t(n)}function a(n){return n===u?(i++,e.consume(n),a):i>=c?(e.exit("codeFencedFenceSequence"),b(n)?I(e,f,"whitespace")(n):f(n)):t(n)}function f(r){return null===r||F(r)?(e.exit("codeFencedFence"),n(r)):t(r)}},partial:!0};let u,o=0,c=0;return function(n){return function(n){const t=r.events[r.events.length-1];return o=t&&"linePrefix"===t[1].type?t[2].sliceSerialize(t[1],!0).length:0,u=n,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(n)}(n)};function s(n){return n===u?(c++,e.consume(n),s):c<3?t(n):(e.exit("codeFencedFenceSequence"),b(n)?I(e,l,"whitespace")(n):l(n))}function l(t){return null===t||F(t)?(e.exit("codeFencedFence"),r.interrupt?n(t):e.check(de,h,k)(t)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),a(t))}function a(n){return null===n||F(n)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(n)):b(n)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),I(e,f,"whitespace")(n)):96===n&&n===u?t(n):(e.consume(n),a)}function f(n){return null===n||F(n)?l(n):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),d(n))}function d(n){return null===n||F(n)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(n)):96===n&&n===u?t(n):(e.consume(n),d)}function h(n){return e.attempt(i,k,p)(n)}function p(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),m}function m(n){return o>0&&b(n)?I(e,g,"linePrefix",o+1)(n):g(n)}function g(n){return null===n||F(n)?e.check(de,h,k)(n):(e.enter("codeFlowValue"),x(n))}function x(n){return null===n||F(n)?(e.exit("codeFlowValue"),g(n)):(e.consume(n),x)}function k(t){return e.exit("codeFenced"),n(t)}},concrete:!0};const pe=document.createElement("i");function me(e){const n="&"+e+";";pe.innerHTML=n;const t=pe.textContent;return(59!==t.charCodeAt(t.length-1)||"semi"===e)&&(t!==n&&t)}const ge={name:"characterReference",tokenize:function(e,n,t){const r=this;let i,u,o=0;return function(n){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(n),e.exit("characterReferenceMarker"),c};function c(n){return 35===n?(e.enter("characterReferenceMarkerNumeric"),e.consume(n),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),i=31,u=p,l(n))}function s(n){return 88===n||120===n?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(n),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,u=k,l):(e.enter("characterReferenceValue"),i=7,u=x,l(n))}function l(c){if(59===c&&o){const i=e.exit("characterReferenceValue");return u!==p||me(r.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),n):t(c)}return u(c)&&o++<i?(e.consume(c),l):t(c)}}};const xe={name:"characterEscape",tokenize:function(e,n,t){return function(n){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(n),e.exit("escapeMarker"),r};function r(r){return y(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),n):t(r)}}};const ke={name:"lineEnding",tokenize:function(e,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),I(e,n,"linePrefix")}}};const ye={name:"labelEnd",tokenize:function(e,n,t){const r=this;let i,u,o=r.events.length;for(;o--;)if(("labelImage"===r.events[o][1].type||"labelLink"===r.events[o][1].type)&&!r.events[o][1]._balanced){i=r.events[o][1];break}return function(n){if(!i)return t(n);if(i._inactive)return a(n);return u=r.parser.defined.includes(ee(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelEnd"),c};function c(n){return 40===n?e.attempt(Fe,l,u?l:a)(n):91===n?e.attempt(ve,l,u?s:a)(n):u?l(n):a(n)}function s(n){return e.attempt(be,l,a)(n)}function l(e){return n(e)}function a(e){return i._balanced=!0,t(e)}},resolveTo:function(e,n){let t,r,i,u,o=e.length,c=0;for(;o--;)if(t=e[o][1],r){if("link"===t.type||"labelLink"===t.type&&t._inactive)break;"enter"===e[o][0]&&"labelLink"===t.type&&(t._inactive=!0)}else if(i){if("enter"===e[o][0]&&("labelImage"===t.type||"labelLink"===t.type)&&!t._balanced&&(r=o,"labelLink"!==t.type)){c=2;break}}else"labelEnd"===t.type&&(i=o);const a={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},f={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[i][1].end)},d={type:"labelText",start:Object.assign({},e[r+c+2][1].end),end:Object.assign({},e[i-2][1].start)};return u=[["enter",a,n],["enter",f,n]],u=l(u,e.slice(r+1,r+c+3)),u=l(u,[["enter",d,n]]),u=l(u,Q(n.parser.constructs.insideSpan.null,e.slice(r+c+4,i-3),n)),u=l(u,[["exit",d,n],e[i-2],e[i-1],["exit",f,n]]),u=l(u,e.slice(i+1)),u=l(u,[["exit",a,n]]),s(e,r,e.length,u),e},resolveAll:function(e){let n=-1;for(;++n<e.length;){const t=e[n][1];"labelImage"!==t.type&&"labelLink"!==t.type&&"labelEnd"!==t.type||(e.splice(n+1,"labelImage"===t.type?4:2),t.type="data",n++)}return e}},Fe={tokenize:function(e,n,t){return function(n){return e.enter("resource"),e.enter("resourceMarker"),e.consume(n),e.exit("resourceMarker"),r};function r(n){return v(n)?X(e,i)(n):i(n)}function i(n){return 41===n?l(n):J(e,u,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(n)}function u(n){return v(n)?X(e,c)(n):l(n)}function o(e){return t(e)}function c(n){return 34===n||39===n||40===n?K(e,s,t,"resourceTitle","resourceTitleMarker","resourceTitleString")(n):l(n)}function s(n){return v(n)?X(e,l)(n):l(n)}function l(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),n):t(r)}}},ve={tokenize:function(e,n,t){const r=this;return function(n){return G.call(r,e,i,u,"reference","referenceMarker","referenceString")(n)};function i(e){return r.parser.defined.includes(ee(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?n(e):t(e)}function u(e){return t(e)}}},be={tokenize:function(e,n,t){return function(n){return e.enter("reference"),e.enter("referenceMarker"),e.consume(n),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),n):t(r)}}};function Se(e){return null===e||v(e)||E(e)?1:S(e)?2:void 0}const Ee={name:"attention",tokenize:function(e,n){const t=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Se(r);let u;return function(n){return u=n,e.enter("attentionSequence"),o(n)};function o(c){if(c===u)return e.consume(c),o;const s=e.exit("attentionSequence"),l=Se(c),a=!l||2===l&&i||t.includes(c),f=!i||2===i&&l||t.includes(r);return s._open=Boolean(42===u?a:a&&(i||!f)),s._close=Boolean(42===u?f:f&&(l||!a)),n(c)}},resolveAll:function(e,n){let t,r,i,u,o,c,a,f,d=-1;for(;++d<e.length;)if("enter"===e[d][0]&&"attentionSequence"===e[d][1].type&&e[d][1]._close)for(t=d;t--;)if("exit"===e[t][0]&&"attentionSequence"===e[t][1].type&&e[t][1]._open&&n.sliceSerialize(e[t][1]).charCodeAt(0)===n.sliceSerialize(e[d][1]).charCodeAt(0)){if((e[t][1]._close||e[d][1]._open)&&(e[d][1].end.offset-e[d][1].start.offset)%3&&!((e[t][1].end.offset-e[t][1].start.offset+e[d][1].end.offset-e[d][1].start.offset)%3))continue;c=e[t][1].end.offset-e[t][1].start.offset>1&&e[d][1].end.offset-e[d][1].start.offset>1?2:1;const h=Object.assign({},e[t][1].end),p=Object.assign({},e[d][1].start);Ae(h,-c),Ae(p,c),u={type:c>1?"strongSequence":"emphasisSequence",start:h,end:Object.assign({},e[t][1].end)},o={type:c>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[d][1].start),end:p},i={type:c>1?"strongText":"emphasisText",start:Object.assign({},e[t][1].end),end:Object.assign({},e[d][1].start)},r={type:c>1?"strong":"emphasis",start:Object.assign({},u.start),end:Object.assign({},o.end)},e[t][1].end=Object.assign({},u.start),e[d][1].start=Object.assign({},o.end),a=[],e[t][1].end.offset-e[t][1].start.offset&&(a=l(a,[["enter",e[t][1],n],["exit",e[t][1],n]])),a=l(a,[["enter",r,n],["enter",u,n],["exit",u,n],["enter",i,n]]),a=l(a,Q(n.parser.constructs.insideSpan.null,e.slice(t+1,d),n)),a=l(a,[["exit",i,n],["enter",o,n],["exit",o,n],["exit",r,n]]),e[d][1].end.offset-e[d][1].start.offset?(f=2,a=l(a,[["enter",e[d][1],n],["exit",e[d][1],n]])):f=0,s(e,t-1,d-t+3,a),d=t+a.length-f-2;break}d=-1;for(;++d<e.length;)"attentionSequence"===e[d][1].type&&(e[d][1].type="data");return e}};function Ae(e,n){e.column+=n,e.offset+=n,e._bufferIndex+=n}const Ie={name:"htmlText",tokenize:function(e,n,t){const r=this;let i,u,o;return function(n){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(n),c};function c(n){return 33===n?(e.consume(n),s):47===n?(e.consume(n),A):63===n?(e.consume(n),S):h(n)?(e.consume(n),T):t(n)}function s(n){return 45===n?(e.consume(n),l):91===n?(e.consume(n),u=0,m):h(n)?(e.consume(n),y):t(n)}function l(n){return 45===n?(e.consume(n),d):t(n)}function a(n){return null===n?t(n):45===n?(e.consume(n),f):F(n)?(o=a,j(n)):(e.consume(n),a)}function f(n){return 45===n?(e.consume(n),d):a(n)}function d(e){return 62===e?O(e):45===e?f(e):a(e)}function m(n){const r="CDATA[";return n===r.charCodeAt(u++)?(e.consume(n),6===u?g:m):t(n)}function g(n){return null===n?t(n):93===n?(e.consume(n),x):F(n)?(o=g,j(n)):(e.consume(n),g)}function x(n){return 93===n?(e.consume(n),k):g(n)}function k(n){return 62===n?O(n):93===n?(e.consume(n),k):g(n)}function y(n){return null===n||62===n?O(n):F(n)?(o=y,j(n)):(e.consume(n),y)}function S(n){return null===n?t(n):63===n?(e.consume(n),E):F(n)?(o=S,j(n)):(e.consume(n),S)}function E(e){return 62===e?O(e):S(e)}function A(n){return h(n)?(e.consume(n),w):t(n)}function w(n){return 45===n||p(n)?(e.consume(n),w):C(n)}function C(n){return F(n)?(o=C,j(n)):b(n)?(e.consume(n),C):O(n)}function T(n){return 45===n||p(n)?(e.consume(n),T):47===n||62===n||v(n)?z(n):t(n)}function z(n){return 47===n?(e.consume(n),O):58===n||95===n||h(n)?(e.consume(n),D):F(n)?(o=z,j(n)):b(n)?(e.consume(n),z):O(n)}function D(n){return 45===n||46===n||58===n||95===n||p(n)?(e.consume(n),D):B(n)}function B(n){return 61===n?(e.consume(n),_):F(n)?(o=B,j(n)):b(n)?(e.consume(n),B):z(n)}function _(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),i=n,L):F(n)?(o=_,j(n)):b(n)?(e.consume(n),_):(e.consume(n),M)}function L(n){return n===i?(e.consume(n),i=void 0,P):null===n?t(n):F(n)?(o=L,j(n)):(e.consume(n),L)}function M(n){return null===n||34===n||39===n||60===n||61===n||96===n?t(n):47===n||62===n||v(n)?z(n):(e.consume(n),M)}function P(e){return 47===e||62===e||v(e)?z(e):t(e)}function O(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),n):t(r)}function j(n){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),H}function H(n){return b(n)?I(e,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):R(n)}function R(n){return e.enter("htmlTextData"),o(n)}}};const we={name:"codeText",tokenize:function(e,n,t){let r,i,u=0;return function(n){return e.enter("codeText"),e.enter("codeTextSequence"),o(n)};function o(n){return 96===n?(e.consume(n),u++,o):(e.exit("codeTextSequence"),c(n))}function c(n){return null===n?t(n):32===n?(e.enter("space"),e.consume(n),e.exit("space"),c):96===n?(i=e.enter("codeTextSequence"),r=0,l(n)):F(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),c):(e.enter("codeTextData"),s(n))}function s(n){return null===n||32===n||96===n||F(n)?(e.exit("codeTextData"),c(n)):(e.consume(n),s)}function l(t){return 96===t?(e.consume(t),r++,l):r===u?(e.exit("codeTextSequence"),e.exit("codeText"),n(t)):(i.type="codeTextData",s(t))}},resolve:function(e){let n,t,r=e.length-4,i=3;if(!("lineEnding"!==e[i][1].type&&"space"!==e[i][1].type||"lineEnding"!==e[r][1].type&&"space"!==e[r][1].type))for(n=i;++n<r;)if("codeTextData"===e[n][1].type){e[i][1].type="codeTextPadding",e[r][1].type="codeTextPadding",i+=2,r-=2;break}n=i-1,r++;for(;++n<=r;)void 0===t?n!==r&&"lineEnding"!==e[n][1].type&&(t=n):n!==r&&"lineEnding"!==e[n][1].type||(e[t][1].type="codeTextData",n!==t+2&&(e[t][1].end=e[n-1][1].end,e.splice(t+2,n-t-2),r-=n-t-2,n=t+2),t=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}};const Ce={42:$,43:$,45:$,48:$,49:$,50:$,51:$,52:$,53:$,54:$,55:$,56:$,57:$,62:Y},Te={91:ne},ze={[-2]:re,[-1]:re,32:re},De={35:ue,42:U,45:[oe,U],60:le,61:oe,95:U,96:he,126:he},Be={38:ge,92:xe},_e={[-5]:ke,[-4]:ke,[-3]:ke,33:{name:"labelStartImage",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(n),e.exit("labelImageMarker"),i};function i(n){return 91===n?(e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelImage"),u):t(n)}function u(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?t(e):n(e)}},resolveAll:ye.resolveAll},38:ge,42:Ee,60:[{name:"autolink",tokenize:function(e,n,t){let r=0;return function(n){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(n){return h(n)?(e.consume(n),u):s(n)}function u(e){return 43===e||45===e||46===e||p(e)?(r=1,o(e)):s(e)}function o(n){return 58===n?(e.consume(n),r=0,c):(43===n||45===n||46===n||p(n))&&r++<32?(e.consume(n),o):(r=0,s(n))}function c(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),n):null===r||32===r||60===r||g(r)?t(r):(e.consume(r),c)}function s(n){return 64===n?(e.consume(n),l):m(n)?(e.consume(n),s):t(n)}function l(e){return p(e)?a(e):t(e)}function a(t){return 46===t?(e.consume(t),r=0,l):62===t?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.exit("autolink"),n):f(t)}function f(n){if((45===n||p(n))&&r++<63){const t=45===n?f:a;return e.consume(n),t}return t(n)}}},Ie],91:{name:"labelStartLink",tokenize:function(e,n,t){const r=this;return function(n){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(n),e.exit("labelMarker"),e.exit("labelLink"),i};function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?t(e):n(e)}},resolveAll:ye.resolveAll},92:[{name:"hardBreakEscape",tokenize:function(e,n,t){return function(n){return e.enter("hardBreakEscape"),e.consume(n),r};function r(r){return F(r)?(e.exit("hardBreakEscape"),n(r)):t(r)}}},xe],93:ye,95:Ee,96:we},Le={null:[Ee,O]},Me={null:[42,95]},Pe={null:[]};function Oe(e){const n=function(e){const n={};let t=-1;for(;++t<e.length;)f(n,e[t]);return n}([r,...(e||{}).extensions||[]]),t={defined:[],lazy:{},constructs:n,content:i(w),document:i(C),flow:i(P),string:i(j),text:i(H)};return t;function i(e){return function(n){return N(t,e,n)}}}const je=/[\0\t\n\r]/g;function He(e,n){const t=Number.parseInt(e,n);return t<9||11===t||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||65535==(65535&t)||65534==(65535&t)||t>1114111?"\ufffd":String.fromCharCode(t)}const Re=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function qe(e,n,t){if(n)return n;if(35===t.charCodeAt(0)){const e=t.charCodeAt(1),n=120===e||88===e;return He(t.slice(n?2:1),n?16:10)}return me(t)||e}function Ve(e){return e&&"object"==typeof e?"position"in e||"type"in e?Ne(e.position):"start"in e||"end"in e?Ne(e):"line"in e||"column"in e?Qe(e):"":""}function Qe(e){return Ue(e&&e.line)+":"+Ue(e&&e.column)}function Ne(e){return Qe(e&&e.start)+"-"+Qe(e&&e.end)}function Ue(e){return e&&"number"==typeof e?e:1}const $e={}.hasOwnProperty,We=function(e,n,t){return"string"!=typeof n&&(t=n,n=void 0),function(e){const n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(ue),autolinkProtocol:T,autolinkEmail:T,atxHeading:l(ne),blockQuote:l(Y),characterEscape:T,characterReference:T,codeFenced:l(J),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:l(J,a),codeText:l(G,a),codeTextData:T,data:T,codeFlowValue:T,definition:l(K),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:l(X),hardBreakEscape:l(te),hardBreakTrailing:l(te),htmlFlow:l(re,a),htmlFlowData:T,htmlText:l(re,a),htmlTextData:T,image:l(ie),label:a,link:l(ue),listItem:l(ce),listItemValue:g,listOrdered:l(oe,m),listUnordered:l(oe),paragraph:l(se),reference:Q,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:l(ne),strong:l(le),thematicBreak:l(fe)},exit:{atxHeading:d(),atxHeadingSequence:A,autolink:d(),autolinkEmail:Z,autolinkProtocol:W,blockQuote:d(),characterEscapeValue:z,characterReferenceMarkerHexadecimal:U,characterReferenceMarkerNumeric:U,characterReferenceValue:$,codeFenced:d(F),codeFencedFence:y,codeFencedFenceInfo:x,codeFencedFenceMeta:k,codeFlowValue:z,codeIndented:d(v),codeText:d(M),codeTextData:z,data:z,definition:d(),definitionDestinationString:E,definitionLabelString:b,definitionTitleString:S,emphasis:d(),hardBreakEscape:d(B),hardBreakTrailing:d(B),htmlFlow:d(_),htmlFlowData:z,htmlText:d(L),htmlTextData:z,image:d(O),label:H,labelText:j,lineEnding:D,link:d(P),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:N,resourceDestinationString:R,resourceTitleString:q,resource:V,setextHeading:d(C),setextHeadingLineSequence:w,setextHeadingText:I,strong:d(),thematicBreak:d()}};Ye(n,(e||{}).mdastExtensions||[]);const t={};return r;function r(e){let t={type:"root",children:[]};const r={stack:[t],tokenStack:[],config:n,enter:f,exit:h,buffer:a,resume:p,setData:c,getData:s},u=[];let o=-1;for(;++o<e.length;)if("listOrdered"===e[o][1].type||"listUnordered"===e[o][1].type)if("enter"===e[o][0])u.push(o);else{o=i(e,u.pop(),o)}for(o=-1;++o<e.length;){const t=n[e[o][0]];$e.call(t,e[o][1].type)&&t[e[o][1].type].call(Object.assign({sliceSerialize:e[o][2].sliceSerialize},r),e[o][1])}if(r.tokenStack.length>0){const e=r.tokenStack[r.tokenStack.length-1];(e[1]||Ge).call(r,void 0,e[0])}for(t.position={start:Ze(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Ze(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},o=-1;++o<n.transforms.length;)t=n.transforms[o](t)||t;return t}function i(e,n,t){let r,i,u,o,c=n-1,s=-1,l=!1;for(;++c<=t;){const n=e[c];if("listUnordered"===n[1].type||"listOrdered"===n[1].type||"blockQuote"===n[1].type?("enter"===n[0]?s++:s--,o=void 0):"lineEndingBlank"===n[1].type?"enter"===n[0]&&(!r||o||s||u||(u=c),o=void 0):"linePrefix"===n[1].type||"listItemValue"===n[1].type||"listItemMarker"===n[1].type||"listItemPrefix"===n[1].type||"listItemPrefixWhitespace"===n[1].type||(o=void 0),!s&&"enter"===n[0]&&"listItemPrefix"===n[1].type||-1===s&&"exit"===n[0]&&("listUnordered"===n[1].type||"listOrdered"===n[1].type)){if(r){let o=c;for(i=void 0;o--;){const n=e[o];if("lineEnding"===n[1].type||"lineEndingBlank"===n[1].type){if("exit"===n[0])continue;i&&(e[i][1].type="lineEndingBlank",l=!0),n[1].type="lineEnding",i=o}else if("linePrefix"!==n[1].type&&"blockQuotePrefix"!==n[1].type&&"blockQuotePrefixWhitespace"!==n[1].type&&"blockQuoteMarker"!==n[1].type&&"listItemIndent"!==n[1].type)break}u&&(!i||u<i)&&(r._spread=!0),r.end=Object.assign({},i?e[i][1].start:n[1].end),e.splice(i||c,0,["exit",r,n[2]]),c++,t++}"listItemPrefix"===n[1].type&&(r={type:"listItem",_spread:!1,start:Object.assign({},n[1].start),end:void 0},e.splice(c,0,["enter",r,n[2]]),c++,t++,u=void 0,o=!0)}}return e[n][1]._spread=l,t}function c(e,n){t[e]=n}function s(e){return t[e]}function l(e,n){return t;function t(t){f.call(this,e(t),t),n&&n.call(this,t)}}function a(){this.stack.push({type:"fragment",children:[]})}function f(e,n,t){return this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([n,t]),e.position={start:Ze(n.start)},e}function d(e){return n;function n(n){e&&e.call(this,n),h.call(this,n)}}function h(e,n){const t=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw new Error("Cannot close `"+e.type+"` ("+Ve({start:e.start,end:e.end})+"): it\u2019s not open");if(r[0].type!==e.type)if(n)n.call(this,e,r[0]);else{(r[1]||Ge).call(this,e,r[0])}return t.position.end=Ze(e.end),t}function p(){return function(e,n){const t=n||u;return o(e,"boolean"!=typeof t.includeImageAlt||t.includeImageAlt,"boolean"!=typeof t.includeHtml||t.includeHtml)}(this.stack.pop())}function m(){c("expectingFirstListItemValue",!0)}function g(e){if(s("expectingFirstListItemValue")){this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),c("expectingFirstListItemValue")}}function x(){const e=this.resume();this.stack[this.stack.length-1].lang=e}function k(){const e=this.resume();this.stack[this.stack.length-1].meta=e}function y(){s("flowCodeInside")||(this.buffer(),c("flowCodeInside",!0))}function F(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),c("flowCodeInside")}function v(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}function b(e){const n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=ee(this.sliceSerialize(e)).toLowerCase()}function S(){const e=this.resume();this.stack[this.stack.length-1].title=e}function E(){const e=this.resume();this.stack[this.stack.length-1].url=e}function A(e){const n=this.stack[this.stack.length-1];if(!n.depth){const t=this.sliceSerialize(e).length;n.depth=t}}function I(){c("setextHeadingSlurpLineEnding",!0)}function w(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2}function C(){c("setextHeadingSlurpLineEnding")}function T(e){const n=this.stack[this.stack.length-1];let t=n.children[n.children.length-1];t&&"text"===t.type||(t=ae(),t.position={start:Ze(e.start)},n.children.push(t)),this.stack.push(t)}function z(e){const n=this.stack.pop();n.value+=this.sliceSerialize(e),n.position.end=Ze(e.end)}function D(e){const t=this.stack[this.stack.length-1];if(s("atHardBreak")){return t.children[t.children.length-1].position.end=Ze(e.end),void c("atHardBreak")}!s("setextHeadingSlurpLineEnding")&&n.canContainEols.includes(t.type)&&(T.call(this,e),z.call(this,e))}function B(){c("atHardBreak",!0)}function _(){const e=this.resume();this.stack[this.stack.length-1].value=e}function L(){const e=this.resume();this.stack[this.stack.length-1].value=e}function M(){const e=this.resume();this.stack[this.stack.length-1].value=e}function P(){const e=this.stack[this.stack.length-1];if(s("inReference")){const n=s("referenceType")||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;c("referenceType")}function O(){const e=this.stack[this.stack.length-1];if(s("inReference")){const n=s("referenceType")||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;c("referenceType")}function j(e){const n=this.sliceSerialize(e),t=this.stack[this.stack.length-2];t.label=function(e){return e.replace(Re,qe)}(n),t.identifier=ee(n).toLowerCase()}function H(){const e=this.stack[this.stack.length-1],n=this.resume(),t=this.stack[this.stack.length-1];if(c("inReference",!0),"link"===t.type){const n=e.children;t.children=n}else t.alt=n}function R(){const e=this.resume();this.stack[this.stack.length-1].url=e}function q(){const e=this.resume();this.stack[this.stack.length-1].title=e}function V(){c("inReference")}function Q(){c("referenceType","collapsed")}function N(e){const n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=ee(this.sliceSerialize(e)).toLowerCase(),c("referenceType","full")}function U(e){c("characterReferenceType",e.type)}function $(e){const n=this.sliceSerialize(e),t=s("characterReferenceType");let r;if(t)r=He(n,"characterReferenceMarkerNumeric"===t?10:16),c("characterReferenceType");else{r=me(n)}const i=this.stack.pop();i.value+=r,i.position.end=Ze(e.end)}function W(e){z.call(this,e);this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function Z(e){z.call(this,e);this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function Y(){return{type:"blockquote",children:[]}}function J(){return{type:"code",lang:null,meta:null,value:""}}function G(){return{type:"inlineCode",value:""}}function K(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function X(){return{type:"emphasis",children:[]}}function ne(){return{type:"heading",depth:void 0,children:[]}}function te(){return{type:"break"}}function re(){return{type:"html",value:""}}function ie(){return{type:"image",title:null,url:"",alt:null}}function ue(){return{type:"link",title:null,url:"",children:[]}}function oe(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function ce(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function se(){return{type:"paragraph",children:[]}}function le(){return{type:"strong",children:[]}}function ae(){return{type:"text",value:""}}function fe(){return{type:"thematicBreak"}}}(t)(function(e){for(;!B(e););return e}(Oe(t).document().write(function(){let e,n=1,t="",r=!0;return function(i,u,o){const c=[];let s,l,a,f,d;for(i=t+i.toString(u),a=0,t="",r&&(65279===i.charCodeAt(0)&&a++,r=void 0);a<i.length;){if(je.lastIndex=a,s=je.exec(i),f=s&&void 0!==s.index?s.index:i.length,d=i.charCodeAt(f),!s){t=i.slice(a);break}if(10===d&&a===f&&e)c.push(-3),e=void 0;else switch(e&&(c.push(-5),e=void 0),a<f&&(c.push(i.slice(a,f)),n+=f-a),d){case 0:c.push(65533),n++;break;case 9:for(l=4*Math.ceil(n/4),c.push(-2);n++<l;)c.push(-1);break;case 10:c.push(-4),n=1;break;default:e=!0,n=1}a=f+1}return o&&(e&&c.push(-5),t&&c.push(t),c.push(null)),c}}()(e,n,!0))))};function Ze(e){return{line:e.line,column:e.column,offset:e.offset}}function Ye(e,n){let t=-1;for(;++t<n.length;){const r=n[t];Array.isArray(r)?Ye(e,r):Je(e,r)}}function Je(e,n){let t;for(t in n)if($e.call(n,t))if("canContainEols"===t){const r=n[t];r&&e[t].push(...r)}else if("transforms"===t){const r=n[t];r&&e[t].push(...r)}else if("enter"===t||"exit"===t){const r=n[t];r&&Object.assign(e[t],r)}}function Ge(e,n){throw e?new Error("Cannot close `"+e.type+"` ("+Ve({start:e.start,end:e.end})+"): a different token (`"+n.type+"`, "+Ve({start:n.start,end:n.end})+") is open"):new Error("Cannot close document, a token (`"+n.type+"`, "+Ve({start:n.start,end:n.end})+") is still open")}var Ke=t(8464);function Xe(e){const n=function(e){const n=e.replace(/\n{2,}/g,"\n");return(0,Ke.Z)(n)}(e),{children:t}=We(n),r=[[]];let i=0;function u(e,n="normal"){if("text"===e.type){e.value.split("\n").forEach(((e,t)=>{0!==t&&(i++,r.push([])),e.split(" ").forEach((e=>{e&&r[i].push({content:e,type:n})}))}))}else"strong"!==e.type&&"emphasis"!==e.type||e.children.forEach((n=>{u(n,e.type)}))}return t.forEach((e=>{"paragraph"===e.type&&e.children.forEach((e=>{u(e)}))})),r}function en(e,n){var t;return nn(e,[],(t=n.content,Intl.Segmenter?[...(new Intl.Segmenter).segment(t)].map((e=>e.segment)):[...t]),n.type)}function nn(e,n,t,r){if(0===t.length)return[{content:n.join(""),type:r},{content:"",type:r}];const[i,...u]=t,o=[...n,i];return e([{content:o.join(""),type:r}])?nn(e,o,u,r):(0===n.length&&i&&(n.push(i),t.shift()),[{content:n.join(""),type:r},{content:t.join(""),type:r}])}function tn(e,n){if(e.some((({content:e})=>e.includes("\n"))))throw new Error("splitLineToFitWidth does not support newlines in the line");return rn(e,n)}function rn(e,n,t=[],r=[]){if(0===e.length)return r.length>0&&t.push(r),t.length>0?t:[];let i="";" "===e[0].content&&(i=" ",e.shift());const u=e.shift()??{content:" ",type:"normal"},o=[...r];if(""!==i&&o.push({content:i,type:"normal"}),o.push(u),n(o))return rn(e,n,t,o);if(r.length>0)t.push(r),e.unshift(u);else if(u.content){const[r,i]=en(n,u);t.push([r]),i.content&&e.unshift(i)}return rn(e,n,t)}function un(e,n,t){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",n*t-.1+"em").attr("dy",t+"em")}function on(e,n,t){const r=e.append("text"),i=un(r,1,n);sn(i,t);const u=i.node().getComputedTextLength();return r.remove(),u}function cn(e,n,t){var r;const i=e.append("text"),u=un(i,1,n);sn(u,[{content:t,type:"normal"}]);const o=null==(r=u.node())?void 0:r.getBoundingClientRect();return o&&i.remove(),o}function sn(e,n){e.text(""),n.forEach(((n,t)=>{const r=e.append("tspan").attr("font-style","emphasis"===n.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===n.type?"bold":"normal");0===t?r.text(n.content):r.text(" "+n.content)}))}const ln=(e,n="",{style:t="",isTitle:r=!1,classes:u="",useHtmlLabels:o=!0,isNode:c=!0,width:s=200,addSvgBackground:l=!1}={})=>{if(i.l.info("createText",n,t,r,u,o,c,l),o){const r=function(e){const{children:n}=We(e);return n.map((function e(n){return"text"===n.type?n.value.replace(/\n/g,"<br/>"):"strong"===n.type?`<strong>${n.children.map(e).join("")}</strong>`:"emphasis"===n.type?`<em>${n.children.map(e).join("")}</em>`:"paragraph"===n.type?`<p>${n.children.map(e).join("")}</p>`:`Unsupported markdown: ${n.type}`})).join("")}(n),o=function(e,n,t,r,i=!1){const u=e.append("foreignObject"),o=u.append("xhtml:div"),c=n.label,s=n.isNode?"nodeLabel":"edgeLabel";var l,a;o.html(`\n <span class="${s} ${r}" `+(n.labelStyle?'style="'+n.labelStyle+'"':"")+">"+c+"</span>"),l=o,(a=n.labelStyle)&&l.attr("style",a),o.style("display","table-cell"),o.style("white-space","nowrap"),o.style("max-width",t+"px"),o.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&o.attr("class","labelBkg");let f=o.node().getBoundingClientRect();return f.width===t&&(o.style("display","table"),o.style("white-space","break-spaces"),o.style("width",t+"px"),f=o.node().getBoundingClientRect()),u.style("width",f.width),u.style("height",f.height),u.node()}(e,{isNode:c,label:(0,i.J)(r).replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`)),labelStyle:t.replace("fill:","color:")},s,u,l);return o}{const t=function(e,n,t,r=!1){const i=n.append("g"),u=i.insert("rect").attr("class","background"),o=i.append("text").attr("y","-10.1");let c=0;for(const s of t){const n=n=>on(i,1.1,n)<=e,t=n(s)?[s]:tn(s,n);for(const e of t)sn(un(o,c,1.1),e),c++}if(r){const e=o.node().getBBox(),n=2;return u.attr("x",-n).attr("y",-n).attr("width",e.width+2*n).attr("height",e.height+2*n),i.node()}return o.node()}(s,e,Xe(n),l);return t}}}}]); \ No newline at end of file diff --git a/assets/js/3343.1f48b29f.js b/assets/js/3343.1f48b29f.js deleted file mode 100644 index 05a780d..0000000 --- a/assets/js/3343.1f48b29f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3343],{3343:(t,e,r)=>{r.d(e,{diagram:()=>D});var i=r(5322),a=r(5625),n=r(4218),s=r(1644);const o=[];for(let S=0;S<256;++S)o.push((S+256).toString(16).slice(1));function c(t,e=0){return o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]}const l=/^(?:[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 h=function(t){return"string"==typeof t&&l.test(t)};const d=function(t){if(!h(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r};function y(t,e,r,i){switch(t){case 0:return e&r^~e&i;case 1:case 3:return e^r^i;case 2:return e&r^e&i^r&i}}function u(t,e){return t<<e|t>>>32-e}const p=function(t,e,r){function i(t,i,a,n){var s;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}(t)),"string"==typeof i&&(i=d(i)),16!==(null===(s=i)||void 0===s?void 0:s.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let o=new Uint8Array(16+t.length);if(o.set(i),o.set(t,i.length),o=r(o),o[6]=15&o[6]|e,o[8]=63&o[8]|128,a){n=n||0;for(let t=0;t<16;++t)a[n+t]=o[t];return a}return c(o)}try{i.name=t}catch(a){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}("v5",80,(function(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),n=new Array(a);for(let s=0;s<a;++s){const e=new Uint32Array(16);for(let r=0;r<16;++r)e[r]=t[64*s+4*r]<<24|t[64*s+4*r+1]<<16|t[64*s+4*r+2]<<8|t[64*s+4*r+3];n[s]=e}n[a-1][14]=8*(t.length-1)/Math.pow(2,32),n[a-1][14]=Math.floor(n[a-1][14]),n[a-1][15]=8*(t.length-1)&4294967295;for(let s=0;s<a;++s){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=n[s][e];for(let e=16;e<80;++e)t[e]=u(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=r[0],a=r[1],o=r[2],c=r[3],l=r[4];for(let r=0;r<80;++r){const n=Math.floor(r/20),s=u(i,5)+y(n,a,o,c)+l+e[n]+t[r]>>>0;l=c,c=o,o=u(a,30)>>>0,a=i,i=s}r[0]=r[0]+i>>>0,r[1]=r[1]+a>>>0,r[2]=r[2]+o>>>0,r[3]=r[3]+c>>>0,r[4]=r[4]+l>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]}));r(7484),r(7967),r(7856);var _=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[6,8,10,20,22,24,26,27,28],r=[1,10],i=[1,11],a=[1,12],n=[1,13],s=[1,14],o=[1,15],c=[1,21],l=[1,22],h=[1,23],d=[1,24],y=[1,25],u=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],p=[1,34],_=[27,28,46,47],f=[41,42,43,44,45],m=[17,34],E=[1,54],g=[1,53],O=[17,34,36,38],b={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(t,e,r,i,a,n,s){var o=n.length-1;switch(a){case 1:break;case 2:case 6:case 7:this.$=[];break;case 3:n[o-1].push(n[o]),this.$=n[o-1];break;case 4:case 5:case 19:case 43:case 27:case 28:case 31:this.$=n[o];break;case 8:i.addEntity(n[o-4]),i.addEntity(n[o-2]),i.addRelationship(n[o-4],n[o],n[o-2],n[o-3]);break;case 9:i.addEntity(n[o-3]),i.addAttributes(n[o-3],n[o-1]);break;case 10:i.addEntity(n[o-2]);break;case 11:i.addEntity(n[o]);break;case 12:i.addEntity(n[o-6],n[o-4]),i.addAttributes(n[o-6],n[o-1]);break;case 13:i.addEntity(n[o-5],n[o-3]);break;case 14:i.addEntity(n[o-3],n[o-1]);break;case 15:case 16:this.$=n[o].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=n[o].trim(),i.setAccDescription(this.$);break;case 20:case 41:case 42:case 32:this.$=n[o].replace(/"/g,"");break;case 21:case 29:this.$=[n[o]];break;case 22:n[o].push(n[o-1]),this.$=n[o];break;case 23:this.$={attributeType:n[o-1],attributeName:n[o]};break;case 24:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeKeyTypeList:n[o]};break;case 25:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeComment:n[o]};break;case 26:this.$={attributeType:n[o-3],attributeName:n[o-2],attributeKeyTypeList:n[o-1],attributeComment:n[o]};break;case 30:n[o-2].push(n[o]),this.$=n[o-2];break;case 33:this.$={cardA:n[o],relType:n[o-1],cardB:n[o-2]};break;case 34:this.$=i.Cardinality.ZERO_OR_ONE;break;case 35:this.$=i.Cardinality.ZERO_OR_MORE;break;case 36:this.$=i.Cardinality.ONE_OR_MORE;break;case 37:this.$=i.Cardinality.ONLY_ONE;break;case 38:this.$=i.Cardinality.MD_PARENT;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:i,24:a,26:n,27:s,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:i,24:a,26:n,27:s,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:c,42:l,43:h,44:d,45:y}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(u,[2,19]),t(u,[2,20]),t(e,[2,4]),{11:29,27:s,28:o},{16:30,17:[1,31],29:32,30:33,34:p},{11:35,27:s,28:o},{40:36,46:[1,37],47:[1,38]},t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),t(_,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:p},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:c,42:l,43:h,44:d,45:y},t(f,[2,39]),t(f,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(m,[2,23],{32:50,33:51,35:52,37:E,38:g}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(m,[2,24],{33:56,36:[1,57],38:g}),t(m,[2,25]),t(O,[2,29]),t(m,[2,32]),t(O,[2,31]),{16:58,17:[1,59],29:32,30:33,34:p},t(m,[2,26]),{35:60,37:E},{17:[1,61]},t(e,[2,13]),t(O,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],a=[null],n=[],s=this.table,o="",c=0,l=0,h=n.slice.call(arguments,1),d=Object.create(this.lexer),y={yy:{}};for(var u in this.yy)Object.prototype.hasOwnProperty.call(this.yy,u)&&(y.yy[u]=this.yy[u]);d.setInput(t,y.yy),y.yy.lexer=d,y.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var p=d.yylloc;n.push(p);var _=d.options&&d.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,m,E,g,O,b,k,R,N,T={};;){if(m=r[r.length-1],this.defaultActions[m]?E=this.defaultActions[m]:(null==f&&(N=void 0,"number"!=typeof(N=i.pop()||d.lex()||1)&&(N instanceof Array&&(N=(i=N).pop()),N=e.symbols_[N]||N),f=N),E=s[m]&&s[m][f]),void 0===E||!E.length||!E[0]){var x="";for(O in R=[],s[m])this.terminals_[O]&&O>2&&R.push("'"+this.terminals_[O]+"'");x=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(x,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:p,expected:R})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(E[0]){case 1:r.push(f),a.push(d.yytext),n.push(d.yylloc),r.push(E[1]),f=null,l=d.yyleng,o=d.yytext,c=d.yylineno,p=d.yylloc;break;case 2:if(b=this.productions_[E[1]][1],T.$=a[a.length-b],T._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},_&&(T._$.range=[n[n.length-(b||1)].range[0],n[n.length-1].range[1]]),void 0!==(g=this.performAction.apply(T,[o,l,c,y.yy,E[1],a,n].concat(h))))return g;b&&(r=r.slice(0,-1*b*2),a=a.slice(0,-1*b),n=n.slice(0,-1*b)),r.push(this.productions_[E[1]][0]),a.push(T.$),n.push(T._$),k=s[r[r.length-2]][r[r.length-1]],r.push(k);break;case 3:return!0}}return!0}},k={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,r=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),r.length-1&&(this.yylineno-=r.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:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[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 r,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],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var n in a)this[n]=a[n];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),n=0;n<a.length;n++)if((r=this._input.match(this.rules[a[n]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,a[n])))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,r,i){switch(r){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;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 10;case 8:case 15:case 20:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 16:return 37;case 17:case 18:return 34;case 19:return 38;case 21:return this.popState(),17;case 22:case 54:return e.yytext[0];case 23:return 18;case 24:return 19;case 25:case 29:case 30:case 43:return 41;case 26:case 27:case 28:case 36:case 38:case 45:return 43;case 31:case 32:case 33:case 34:case 35:case 37:case 44:return 42;case 39:case 40:case 41:case 42:return 44;case 46:return 45;case 47:case 50:case 51:case 52:return 46;case 48:case 49:return 47;case 53:return 27;case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/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,/^(?:\[)/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,/^(?:\s*u\b)/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},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,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],inclusive:!0}}};function R(){this.yy={}}return b.lexer=k,R.prototype=b,b.Parser=R,new R}();_.parser=_;const f=_;let m={},E=[];const g=function(t,e=void 0){return void 0===m[t]?(m[t]={attributes:[],alias:e},i.l.info("Added new entity :",t)):m[t]&&!m[t].alias&&e&&(m[t].alias=e,i.l.info(`Add alias '${e}' to entity '${t}'`)),m[t]},O={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},getConfig:()=>(0,i.c)().er,addEntity:g,addAttributes:function(t,e){let r,a=g(t);for(r=e.length-1;r>=0;r--)a.attributes.push(e[r]),i.l.debug("Added attribute ",e[r].attributeName)},getEntities:()=>m,addRelationship:function(t,e,r,a){let n={entityA:t,roleA:e,entityB:r,relSpec:a};E.push(n),i.l.debug("Added new relationship :",n)},getRelationships:()=>E,clear:function(){m={},E=[],(0,i.t)()},setAccTitle:i.s,getAccTitle:i.g,setAccDescription:i.b,getAccDescription:i.a,setDiagramTitle:i.q,getDiagramTitle:i.r},b={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",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},k=b,R=function(t,e){let r;t.append("defs").append("marker").attr("id",b.MD_PARENT_START).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",b.MD_PARENT_END).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",b.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",b.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"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",b.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",b.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"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},N=/[^\dA-Za-z](\W)*/g;let T={},x=new Map;const A=function(t,e,r){let a;return Object.keys(e).forEach((function(n){const s=function(t="",e=""){const r=t.replace(N,"");return`${v(e)}${v(r)}${p(t,I)}`}(n,"entity");x.set(n,s);const o=t.append("g").attr("id",s);a=void 0===a?s:a;const c="text-"+s,l=o.append("text").classed("er entityLabel",!0).attr("id",c).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",T.fontSize+"px").text(e[n].alias??n),{width:h,height:d}=((t,e,r)=>{const a=T.entityPadding/3,n=T.entityPadding/3,s=.85*T.fontSize,o=e.node().getBBox(),c=[];let l=!1,h=!1,d=0,y=0,u=0,p=0,_=o.height+2*a,f=1;r.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(l=!0),void 0!==t.attributeComment&&(h=!0)})),r.forEach((r=>{const n=`${e.node().id}-attr-${f}`;let o=0;const m=(0,i.v)(r.attributeType),E=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(m),g=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeName),O={};O.tn=E,O.nn=g;const b=E.node().getBBox(),k=g.node().getBBox();if(d=Math.max(d,b.width),y=Math.max(y,k.width),o=Math.max(b.height,k.height),l){const e=void 0!==r.attributeKeyTypeList?r.attributeKeyTypeList.join(","):"",a=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(e);O.kn=a;const c=a.node().getBBox();u=Math.max(u,c.width),o=Math.max(o,c.height)}if(h){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeComment||"");O.cn=e;const a=e.node().getBBox();p=Math.max(p,a.width),o=Math.max(o,a.height)}O.height=o,c.push(O),_+=o+2*a,f+=1}));let m=4;l&&(m+=2),h&&(m+=2);const E=d+y+u+p,g={width:Math.max(T.minEntityWidth,Math.max(o.width+2*T.entityPadding,E+n*m)),height:r.length>0?_:Math.max(T.minEntityHeight,o.height+2*T.entityPadding)};if(r.length>0){const r=Math.max(0,(g.width-E-n*m)/(m/2));e.attr("transform","translate("+g.width/2+","+(a+o.height/2)+")");let i=o.height+2*a,s="attributeBoxOdd";c.forEach((e=>{const o=i+a+e.height/2;e.tn.attr("transform","translate("+n+","+o+")");const c=t.insert("rect","#"+e.tn.node().id).classed(`er ${s}`,!0).attr("x",0).attr("y",i).attr("width",d+2*n+r).attr("height",e.height+2*a),_=parseFloat(c.attr("x"))+parseFloat(c.attr("width"));e.nn.attr("transform","translate("+(_+n)+","+o+")");const f=t.insert("rect","#"+e.nn.node().id).classed(`er ${s}`,!0).attr("x",_).attr("y",i).attr("width",y+2*n+r).attr("height",e.height+2*a);let m=parseFloat(f.attr("x"))+parseFloat(f.attr("width"));if(l){e.kn.attr("transform","translate("+(m+n)+","+o+")");const c=t.insert("rect","#"+e.kn.node().id).classed(`er ${s}`,!0).attr("x",m).attr("y",i).attr("width",u+2*n+r).attr("height",e.height+2*a);m=parseFloat(c.attr("x"))+parseFloat(c.attr("width"))}h&&(e.cn.attr("transform","translate("+(m+n)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${s}`,"true").attr("x",m).attr("y",i).attr("width",p+2*n+r).attr("height",e.height+2*a)),i+=e.height+2*a,s="attributeBoxOdd"===s?"attributeBoxEven":"attributeBoxOdd"}))}else g.height=Math.max(T.minEntityHeight,_),e.attr("transform","translate("+g.width/2+","+g.height/2+")");return g})(o,l,e[n].attributes),y=o.insert("rect","#"+c).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",h).attr("height",d).node().getBBox();r.setNode(s,{width:y.width,height:y.height,shape:"rect",id:s})})),a},M=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")};let w=0;const I="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function v(t=""){return t.length>0?`${t}-`:""}const D={parser:f,db:O,renderer:{setConf:function(t){const e=Object.keys(t);for(const r of e)T[r]=t[r]},draw:function(t,e,r,o){T=(0,i.c)().er,i.l.info("Drawing ER diagram");const c=(0,i.c)().securityLevel;let l;"sandbox"===c&&(l=(0,n.Ys)("#i"+e));const h=("sandbox"===c?(0,n.Ys)(l.nodes()[0].contentDocument.body):(0,n.Ys)("body")).select(`[id='${e}']`);let d;R(h,T),d=new a.k({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:T.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const y=A(h,o.db.getEntities(),d),u=function(t,e){return t.forEach((function(t){e.setEdge(x.get(t.entityA),x.get(t.entityB),{relationship:t},M(t))})),t}(o.db.getRelationships(),d);var p,_;(0,s.bK)(d),p=h,(_=d).nodes().forEach((function(t){void 0!==t&&void 0!==_.node(t)&&p.select("#"+t).attr("transform","translate("+(_.node(t).x-_.node(t).width/2)+","+(_.node(t).y-_.node(t).height/2)+" )")})),u.forEach((function(t){!function(t,e,r,a,s){w++;const o=r.edge(x.get(e.entityA),x.get(e.entityB),M(e)),c=(0,n.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(n.$0Z),l=t.insert("path","#"+a).classed("er relationshipLine",!0).attr("d",c(o.points)).style("stroke",T.stroke).style("fill","none");e.relSpec.relType===s.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let h="";switch(T.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),e.relSpec.cardA){case s.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+h+"#"+k.ZERO_OR_ONE_END+")");break;case s.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+h+"#"+k.ZERO_OR_MORE_END+")");break;case s.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+h+"#"+k.ONE_OR_MORE_END+")");break;case s.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+h+"#"+k.ONLY_ONE_END+")");break;case s.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+h+"#"+k.MD_PARENT_END+")")}switch(e.relSpec.cardB){case s.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+h+"#"+k.ZERO_OR_ONE_START+")");break;case s.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+h+"#"+k.ZERO_OR_MORE_START+")");break;case s.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+h+"#"+k.ONE_OR_MORE_START+")");break;case s.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+h+"#"+k.ONLY_ONE_START+")");break;case s.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+h+"#"+k.MD_PARENT_START+")")}const d=l.node().getTotalLength(),y=l.node().getPointAtLength(.5*d),u="rel"+w,p=t.append("text").classed("er relationshipLabel",!0).attr("id",u).attr("x",y.x).attr("y",y.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",T.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+u).classed("er relationshipLabelBox",!0).attr("x",y.x-p.width/2).attr("y",y.y-p.height/2).attr("width",p.width).attr("height",p.height)}(h,t,d,y,o)}));const f=T.diagramPadding;i.u.insertTitle(h,"entityTitleText",T.titleTopMargin,o.db.getDiagramTitle());const m=h.node().getBBox(),E=m.width+2*f,g=m.height+2*f;(0,i.i)(h,g,E,T.useMaxWidth),h.attr("viewBox",`${m.x-f} ${m.y-f} ${E} ${g}`)}},styles: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 #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n \n`}}}]); \ No newline at end of file diff --git a/assets/js/3343.c68ed9e0.js b/assets/js/3343.c68ed9e0.js new file mode 100644 index 0000000..370a3cf --- /dev/null +++ b/assets/js/3343.c68ed9e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3343],{13343:(t,e,r)=>{r.d(e,{diagram:()=>D});var i=r(85322),a=r(45625),n=r(64218),s=r(41644);const o=[];for(let S=0;S<256;++S)o.push((S+256).toString(16).slice(1));function c(t,e=0){return o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]}const l=/^(?:[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 h=function(t){return"string"==typeof t&&l.test(t)};const d=function(t){if(!h(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r};function y(t,e,r,i){switch(t){case 0:return e&r^~e&i;case 1:case 3:return e^r^i;case 2:return e&r^e&i^r&i}}function u(t,e){return t<<e|t>>>32-e}const p=function(t,e,r){function i(t,i,a,n){var s;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}(t)),"string"==typeof i&&(i=d(i)),16!==(null===(s=i)||void 0===s?void 0:s.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let o=new Uint8Array(16+t.length);if(o.set(i),o.set(t,i.length),o=r(o),o[6]=15&o[6]|e,o[8]=63&o[8]|128,a){n=n||0;for(let t=0;t<16;++t)a[n+t]=o[t];return a}return c(o)}try{i.name=t}catch(a){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}("v5",80,(function(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),n=new Array(a);for(let s=0;s<a;++s){const e=new Uint32Array(16);for(let r=0;r<16;++r)e[r]=t[64*s+4*r]<<24|t[64*s+4*r+1]<<16|t[64*s+4*r+2]<<8|t[64*s+4*r+3];n[s]=e}n[a-1][14]=8*(t.length-1)/Math.pow(2,32),n[a-1][14]=Math.floor(n[a-1][14]),n[a-1][15]=8*(t.length-1)&4294967295;for(let s=0;s<a;++s){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=n[s][e];for(let e=16;e<80;++e)t[e]=u(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=r[0],a=r[1],o=r[2],c=r[3],l=r[4];for(let r=0;r<80;++r){const n=Math.floor(r/20),s=u(i,5)+y(n,a,o,c)+l+e[n]+t[r]>>>0;l=c,c=o,o=u(a,30)>>>0,a=i,i=s}r[0]=r[0]+i>>>0,r[1]=r[1]+a>>>0,r[2]=r[2]+o>>>0,r[3]=r[3]+c>>>0,r[4]=r[4]+l>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]}));r(27484),r(17967),r(27856);var _=function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[6,8,10,20,22,24,26,27,28],r=[1,10],i=[1,11],a=[1,12],n=[1,13],s=[1,14],o=[1,15],c=[1,21],l=[1,22],h=[1,23],d=[1,24],y=[1,25],u=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],p=[1,34],_=[27,28,46,47],f=[41,42,43,44,45],m=[17,34],E=[1,54],g=[1,53],O=[17,34,36,38],b={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(t,e,r,i,a,n,s){var o=n.length-1;switch(a){case 1:break;case 2:case 6:case 7:this.$=[];break;case 3:n[o-1].push(n[o]),this.$=n[o-1];break;case 4:case 5:case 19:case 43:case 27:case 28:case 31:this.$=n[o];break;case 8:i.addEntity(n[o-4]),i.addEntity(n[o-2]),i.addRelationship(n[o-4],n[o],n[o-2],n[o-3]);break;case 9:i.addEntity(n[o-3]),i.addAttributes(n[o-3],n[o-1]);break;case 10:i.addEntity(n[o-2]);break;case 11:i.addEntity(n[o]);break;case 12:i.addEntity(n[o-6],n[o-4]),i.addAttributes(n[o-6],n[o-1]);break;case 13:i.addEntity(n[o-5],n[o-3]);break;case 14:i.addEntity(n[o-3],n[o-1]);break;case 15:case 16:this.$=n[o].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=n[o].trim(),i.setAccDescription(this.$);break;case 20:case 41:case 42:case 32:this.$=n[o].replace(/"/g,"");break;case 21:case 29:this.$=[n[o]];break;case 22:n[o].push(n[o-1]),this.$=n[o];break;case 23:this.$={attributeType:n[o-1],attributeName:n[o]};break;case 24:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeKeyTypeList:n[o]};break;case 25:this.$={attributeType:n[o-2],attributeName:n[o-1],attributeComment:n[o]};break;case 26:this.$={attributeType:n[o-3],attributeName:n[o-2],attributeKeyTypeList:n[o-1],attributeComment:n[o]};break;case 30:n[o-2].push(n[o]),this.$=n[o-2];break;case 33:this.$={cardA:n[o],relType:n[o-1],cardB:n[o-2]};break;case 34:this.$=i.Cardinality.ZERO_OR_ONE;break;case 35:this.$=i.Cardinality.ZERO_OR_MORE;break;case 36:this.$=i.Cardinality.ONE_OR_MORE;break;case 37:this.$=i.Cardinality.ONLY_ONE;break;case 38:this.$=i.Cardinality.MD_PARENT;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:i,24:a,26:n,27:s,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:i,24:a,26:n,27:s,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:c,42:l,43:h,44:d,45:y}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(u,[2,19]),t(u,[2,20]),t(e,[2,4]),{11:29,27:s,28:o},{16:30,17:[1,31],29:32,30:33,34:p},{11:35,27:s,28:o},{40:36,46:[1,37],47:[1,38]},t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),t(_,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:p},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:c,42:l,43:h,44:d,45:y},t(f,[2,39]),t(f,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(m,[2,23],{32:50,33:51,35:52,37:E,38:g}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(m,[2,24],{33:56,36:[1,57],38:g}),t(m,[2,25]),t(O,[2,29]),t(m,[2,32]),t(O,[2,31]),{16:58,17:[1,59],29:32,30:33,34:p},t(m,[2,26]),{35:60,37:E},{17:[1,61]},t(e,[2,13]),t(O,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],a=[null],n=[],s=this.table,o="",c=0,l=0,h=n.slice.call(arguments,1),d=Object.create(this.lexer),y={yy:{}};for(var u in this.yy)Object.prototype.hasOwnProperty.call(this.yy,u)&&(y.yy[u]=this.yy[u]);d.setInput(t,y.yy),y.yy.lexer=d,y.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var p=d.yylloc;n.push(p);var _=d.options&&d.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var f,m,E,g,O,b,k,R,N,T={};;){if(m=r[r.length-1],this.defaultActions[m]?E=this.defaultActions[m]:(null==f&&(N=void 0,"number"!=typeof(N=i.pop()||d.lex()||1)&&(N instanceof Array&&(N=(i=N).pop()),N=e.symbols_[N]||N),f=N),E=s[m]&&s[m][f]),void 0===E||!E.length||!E[0]){var x="";for(O in R=[],s[m])this.terminals_[O]&&O>2&&R.push("'"+this.terminals_[O]+"'");x=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(x,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:p,expected:R})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(E[0]){case 1:r.push(f),a.push(d.yytext),n.push(d.yylloc),r.push(E[1]),f=null,l=d.yyleng,o=d.yytext,c=d.yylineno,p=d.yylloc;break;case 2:if(b=this.productions_[E[1]][1],T.$=a[a.length-b],T._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},_&&(T._$.range=[n[n.length-(b||1)].range[0],n[n.length-1].range[1]]),void 0!==(g=this.performAction.apply(T,[o,l,c,y.yy,E[1],a,n].concat(h))))return g;b&&(r=r.slice(0,-1*b*2),a=a.slice(0,-1*b),n=n.slice(0,-1*b)),r.push(this.productions_[E[1]][0]),a.push(T.$),n.push(T._$),k=s[r[r.length-2]][r[r.length-1]],r.push(k);break;case 3:return!0}}return!0}},k={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,r=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),r.length-1&&(this.yylineno-=r.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:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[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 r,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],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var n in a)this[n]=a[n];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),n=0;n<a.length;n++)if((r=this._input.match(this.rules[a[n]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,a[n])))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,r,i){switch(r){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;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 10;case 8:case 15:case 20:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 16:return 37;case 17:case 18:return 34;case 19:return 38;case 21:return this.popState(),17;case 22:case 54:return e.yytext[0];case 23:return 18;case 24:return 19;case 25:case 29:case 30:case 43:return 41;case 26:case 27:case 28:case 36:case 38:case 45:return 43;case 31:case 32:case 33:case 34:case 35:case 37:case 44:return 42;case 39:case 40:case 41:case 42:return 44;case 46:return 45;case 47:case 50:case 51:case 52:return 46;case 48:case 49:return 47;case 53:return 27;case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/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,/^(?:\[)/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,/^(?:\s*u\b)/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},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,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],inclusive:!0}}};function R(){this.yy={}}return b.lexer=k,R.prototype=b,b.Parser=R,new R}();_.parser=_;const f=_;let m={},E=[];const g=function(t,e=void 0){return void 0===m[t]?(m[t]={attributes:[],alias:e},i.l.info("Added new entity :",t)):m[t]&&!m[t].alias&&e&&(m[t].alias=e,i.l.info(`Add alias '${e}' to entity '${t}'`)),m[t]},O={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},getConfig:()=>(0,i.c)().er,addEntity:g,addAttributes:function(t,e){let r,a=g(t);for(r=e.length-1;r>=0;r--)a.attributes.push(e[r]),i.l.debug("Added attribute ",e[r].attributeName)},getEntities:()=>m,addRelationship:function(t,e,r,a){let n={entityA:t,roleA:e,entityB:r,relSpec:a};E.push(n),i.l.debug("Added new relationship :",n)},getRelationships:()=>E,clear:function(){m={},E=[],(0,i.t)()},setAccTitle:i.s,getAccTitle:i.g,setAccDescription:i.b,getAccDescription:i.a,setDiagramTitle:i.q,getDiagramTitle:i.r},b={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",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},k=b,R=function(t,e){let r;t.append("defs").append("marker").attr("id",b.MD_PARENT_START).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",b.MD_PARENT_END).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",b.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",b.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"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",b.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",b.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"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",b.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},N=/[^\dA-Za-z](\W)*/g;let T={},x=new Map;const A=function(t,e,r){let a;return Object.keys(e).forEach((function(n){const s=function(t="",e=""){const r=t.replace(N,"");return`${v(e)}${v(r)}${p(t,I)}`}(n,"entity");x.set(n,s);const o=t.append("g").attr("id",s);a=void 0===a?s:a;const c="text-"+s,l=o.append("text").classed("er entityLabel",!0).attr("id",c).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",T.fontSize+"px").text(e[n].alias??n),{width:h,height:d}=((t,e,r)=>{const a=T.entityPadding/3,n=T.entityPadding/3,s=.85*T.fontSize,o=e.node().getBBox(),c=[];let l=!1,h=!1,d=0,y=0,u=0,p=0,_=o.height+2*a,f=1;r.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(l=!0),void 0!==t.attributeComment&&(h=!0)})),r.forEach((r=>{const n=`${e.node().id}-attr-${f}`;let o=0;const m=(0,i.v)(r.attributeType),E=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(m),g=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeName),O={};O.tn=E,O.nn=g;const b=E.node().getBBox(),k=g.node().getBBox();if(d=Math.max(d,b.width),y=Math.max(y,k.width),o=Math.max(b.height,k.height),l){const e=void 0!==r.attributeKeyTypeList?r.attributeKeyTypeList.join(","):"",a=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(e);O.kn=a;const c=a.node().getBBox();u=Math.max(u,c.width),o=Math.max(o,c.height)}if(h){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${n}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",(0,i.c)().fontFamily).style("font-size",s+"px").text(r.attributeComment||"");O.cn=e;const a=e.node().getBBox();p=Math.max(p,a.width),o=Math.max(o,a.height)}O.height=o,c.push(O),_+=o+2*a,f+=1}));let m=4;l&&(m+=2),h&&(m+=2);const E=d+y+u+p,g={width:Math.max(T.minEntityWidth,Math.max(o.width+2*T.entityPadding,E+n*m)),height:r.length>0?_:Math.max(T.minEntityHeight,o.height+2*T.entityPadding)};if(r.length>0){const r=Math.max(0,(g.width-E-n*m)/(m/2));e.attr("transform","translate("+g.width/2+","+(a+o.height/2)+")");let i=o.height+2*a,s="attributeBoxOdd";c.forEach((e=>{const o=i+a+e.height/2;e.tn.attr("transform","translate("+n+","+o+")");const c=t.insert("rect","#"+e.tn.node().id).classed(`er ${s}`,!0).attr("x",0).attr("y",i).attr("width",d+2*n+r).attr("height",e.height+2*a),_=parseFloat(c.attr("x"))+parseFloat(c.attr("width"));e.nn.attr("transform","translate("+(_+n)+","+o+")");const f=t.insert("rect","#"+e.nn.node().id).classed(`er ${s}`,!0).attr("x",_).attr("y",i).attr("width",y+2*n+r).attr("height",e.height+2*a);let m=parseFloat(f.attr("x"))+parseFloat(f.attr("width"));if(l){e.kn.attr("transform","translate("+(m+n)+","+o+")");const c=t.insert("rect","#"+e.kn.node().id).classed(`er ${s}`,!0).attr("x",m).attr("y",i).attr("width",u+2*n+r).attr("height",e.height+2*a);m=parseFloat(c.attr("x"))+parseFloat(c.attr("width"))}h&&(e.cn.attr("transform","translate("+(m+n)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${s}`,"true").attr("x",m).attr("y",i).attr("width",p+2*n+r).attr("height",e.height+2*a)),i+=e.height+2*a,s="attributeBoxOdd"===s?"attributeBoxEven":"attributeBoxOdd"}))}else g.height=Math.max(T.minEntityHeight,_),e.attr("transform","translate("+g.width/2+","+g.height/2+")");return g})(o,l,e[n].attributes),y=o.insert("rect","#"+c).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",h).attr("height",d).node().getBBox();r.setNode(s,{width:y.width,height:y.height,shape:"rect",id:s})})),a},M=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")};let w=0;const I="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function v(t=""){return t.length>0?`${t}-`:""}const D={parser:f,db:O,renderer:{setConf:function(t){const e=Object.keys(t);for(const r of e)T[r]=t[r]},draw:function(t,e,r,o){T=(0,i.c)().er,i.l.info("Drawing ER diagram");const c=(0,i.c)().securityLevel;let l;"sandbox"===c&&(l=(0,n.Ys)("#i"+e));const h=("sandbox"===c?(0,n.Ys)(l.nodes()[0].contentDocument.body):(0,n.Ys)("body")).select(`[id='${e}']`);let d;R(h,T),d=new a.k({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:T.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const y=A(h,o.db.getEntities(),d),u=function(t,e){return t.forEach((function(t){e.setEdge(x.get(t.entityA),x.get(t.entityB),{relationship:t},M(t))})),t}(o.db.getRelationships(),d);var p,_;(0,s.bK)(d),p=h,(_=d).nodes().forEach((function(t){void 0!==t&&void 0!==_.node(t)&&p.select("#"+t).attr("transform","translate("+(_.node(t).x-_.node(t).width/2)+","+(_.node(t).y-_.node(t).height/2)+" )")})),u.forEach((function(t){!function(t,e,r,a,s){w++;const o=r.edge(x.get(e.entityA),x.get(e.entityB),M(e)),c=(0,n.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(n.$0Z),l=t.insert("path","#"+a).classed("er relationshipLine",!0).attr("d",c(o.points)).style("stroke",T.stroke).style("fill","none");e.relSpec.relType===s.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let h="";switch(T.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),e.relSpec.cardA){case s.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+h+"#"+k.ZERO_OR_ONE_END+")");break;case s.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+h+"#"+k.ZERO_OR_MORE_END+")");break;case s.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+h+"#"+k.ONE_OR_MORE_END+")");break;case s.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+h+"#"+k.ONLY_ONE_END+")");break;case s.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+h+"#"+k.MD_PARENT_END+")")}switch(e.relSpec.cardB){case s.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+h+"#"+k.ZERO_OR_ONE_START+")");break;case s.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+h+"#"+k.ZERO_OR_MORE_START+")");break;case s.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+h+"#"+k.ONE_OR_MORE_START+")");break;case s.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+h+"#"+k.ONLY_ONE_START+")");break;case s.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+h+"#"+k.MD_PARENT_START+")")}const d=l.node().getTotalLength(),y=l.node().getPointAtLength(.5*d),u="rel"+w,p=t.append("text").classed("er relationshipLabel",!0).attr("id",u).attr("x",y.x).attr("y",y.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",(0,i.c)().fontFamily).style("font-size",T.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+u).classed("er relationshipLabelBox",!0).attr("x",y.x-p.width/2).attr("y",y.y-p.height/2).attr("width",p.width).attr("height",p.height)}(h,t,d,y,o)}));const f=T.diagramPadding;i.u.insertTitle(h,"entityTitleText",T.titleTopMargin,o.db.getDiagramTitle());const m=h.node().getBBox(),E=m.width+2*f,g=m.height+2*f;(0,i.i)(h,g,E,T.useMaxWidth),h.attr("viewBox",`${m.x-f} ${m.y-f} ${E} ${g}`)}},styles: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 #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n \n`}}}]); \ No newline at end of file diff --git a/assets/js/34ab65f4.580faa9a.js b/assets/js/34ab65f4.580faa9a.js deleted file mode 100644 index 418fb7f..0000000 --- a/assets/js/34ab65f4.580faa9a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3220],{8865:i=>{i.exports=JSON.parse('{"label":"postconditions","permalink":"/algorithms/tags/postconditions","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/34ab65f4.5fa3179c.js b/assets/js/34ab65f4.5fa3179c.js new file mode 100644 index 0000000..b27c254 --- /dev/null +++ b/assets/js/34ab65f4.5fa3179c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3220],{28865:i=>{i.exports=JSON.parse('{"label":"postconditions","permalink":"/algorithms/tags/postconditions","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/354a7b72.19370e22.js b/assets/js/354a7b72.19370e22.js deleted file mode 100644 index bdbb814..0000000 --- a/assets/js/354a7b72.19370e22.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9414],{6617:(I,i,l)=>{l.r(i),l.d(i,{assets:()=>j,contentTitle:()=>g,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>Z});var s=l(5893),m=l(1151);const a={id:"bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",tags:["graphs","bfs"],last_update:{date:new Date("2022-04-30T00:00:00.000Z")}},g=void 0,c={id:"graphs/bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",source:"@site/algorithms/10-graphs/2022-04-30-bfs-tree.md",sourceDirName:"10-graphs",slug:"/graphs/bfs-tree",permalink:"/algorithms/graphs/bfs-tree",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/10-graphs/2022-04-30-bfs-tree.md",tags:[{label:"graphs",permalink:"/algorithms/tags/graphs"},{label:"bfs",permalink:"/algorithms/tags/bfs"}],version:"current",lastUpdatedAt:1651276800,formattedLastUpdatedAt:"Apr 30, 2022",frontMatter:{id:"bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",tags:["graphs","bfs"],last_update:{date:"2022-04-30T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Iterative algorithms via iterators",permalink:"/algorithms/graphs/iterative-and-iterators"}},j={},Z=[{value:"Introduction",id:"introduction",level:2},{value:"Lower bound",id:"lower-bound",level:2},{value:"Proof by contradiction",id:"proof-by-contradiction",level:2}];function n(I){const i={admonition:"admonition",annotation:"annotation",em:"em",h2:"h2",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",p:"p",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,m.a)(),...I.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(i.p,{children:["As we have talked on the seminar, if we construct from some vertex ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"u"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"u"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"u"})]})})]})," BFS tree on an undirected graph, we can obtain:"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["lower bound of length of the shortest path between 2 vertices from the ",(0,s.jsx)(i.em,{children:"height difference"})]}),"\n",(0,s.jsxs)(i.li,{children:["upper bound of length of the shortest path between 2 vertices from the ",(0,s.jsx)(i.em,{children:"path through the root"})]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"lower-bound",children:"Lower bound"}),"\n",(0,s.jsx)(i.p,{children:"Consider the following graph:"}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(9968).Z+"#gh-light-mode-only",width:"252",height:"539"}),"\n",(0,s.jsx)(i.img,{src:l(1949).Z+"#gh-dark-mode-only",width:"252",height:"539"})]}),"\n",(0,s.jsxs)(i.p,{children:["We run BFS from the vertex ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"a"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"a"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"a"})]})})]})," and obtain the following BFS tree:"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(2843).Z+"#gh-light-mode-only",width:"275",height:"347"}),"\n",(0,s.jsx)(i.img,{src:l(3770).Z+"#gh-dark-mode-only",width:"275",height:"347"})]}),"\n",(0,s.jsxs)(i.p,{children:["Let's consider pair of vertices ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"e"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"})]})})]})," and ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"h"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),". For them we can safely lay, from the BFS tree, following properties:"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["lower bound: ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]})]}),"\n",(0,s.jsxs)(i.li,{children:["upper bound: ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"4"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"4"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"4"})]})})]})]}),"\n"]}),"\n",(0,s.jsxs)(i.p,{children:["By having a look at the graph we started from, we can see that we have a path \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"j"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, j, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",style:{marginRight:"0.05724em"},children:"j"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a that has a length 2. Apart from that we can also notice there is another path from ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"e"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"})]})})]})," to ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"h"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]})," and that is \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"a"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"c"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"i"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"d"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, a, c, i, d, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"a"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"c"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"i"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"d"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a. And that path has a length of ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"5"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"5"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"5"})]})})]}),". Doesn't this break our statements at the beginning? (",(0,s.jsx)(i.em,{children:"I'm leaving that as an exercise ;)"}),")"]}),"\n",(0,s.jsx)(i.h2,{id:"proof-by-contradiction",children:"Proof by contradiction"}),"\n",(0,s.jsxs)(i.p,{children:["Let's keep the same graph, but break the lower bound, i.e. I have gotten a lower bound ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),", but \u201cthere must be a shorter path\u201d! ;)"]}),"\n",(0,s.jsxs)(i.p,{children:["Now the more important question, is there a shorter path in that graph? The answer is no, there's no shorter path than the one with length ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),". So what can we do about it? We'll add an edge to have a shorter path. Now we have gotten a lower bound of ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),", which means the only shorter path we can construct has ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"1"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"1"})]})})]})," edge and that is \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a (no intermediary vertices). Let's do this!"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(50).Z+"#gh-light-mode-only",width:"252",height:"539"}),"\n",(0,s.jsx)(i.img,{src:l(7619).Z+"#gh-dark-mode-only",width:"252",height:"539"})]}),"\n",(0,s.jsx)(i.p,{children:"Okay, so we have a graph that breaks the rule we have laid. However, we need to run BFS to obtain the new BFS tree, since we have changed the graph."}),"\n",(0,s.jsxs)(i.admonition,{type:"tip",children:[(0,s.jsxs)(i.p,{children:["Do we need to run BFS after ",(0,s.jsx)(i.strong,{children:"every"})," change?"]}),(0,s.jsx)(i.p,{children:"\xadI am leaving that as an exercise ;)"})]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(9248).Z+"#gh-light-mode-only",width:"371",height:"347"}),"\n",(0,s.jsx)(i.img,{src:l(1350).Z+"#gh-dark-mode-only",width:"371",height:"347"})]}),"\n",(0,s.jsx)(i.p,{children:"Oops, we have gotten a new BFS tree, that has a height difference of 1."}),"\n",(0,s.jsx)(i.admonition,{type:"tip",children:(0,s.jsx)(i.p,{children:"Try to think about a way this can be generalized for shortening of minimal length 3 to minimal length 2 ;)"})})]})}function d(I={}){const{wrapper:i}={...(0,m.a)(),...I.components};return i?(0,s.jsx)(i,{...I,children:(0,s.jsx)(n,{...I})}):n(I)}},1949:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC00MDAgMTg1LC00MDAgMTg1LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMzc4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMjYiIHk9Ii0zNzQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7JiM0NTtjIC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyYjNDU7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMTkuNiwtMzYwLjQxQzExNS4zNiwtMzQ5LjQxIDEwOS44MSwtMzM1LjAzIDEwNS41NCwtMzIzLjk2Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTU0IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTU0IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyYjNDU7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmIzQ1O2U8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI5LjE0LC0zNTkuODVDMTMwLjk4LC0zNDkuNDkgMTMzLjI3LC0zMzYuMDEgMTM1LC0zMjQgMTQyLjQ5LC0yNzEuOSAxNDkuMTgsLTIxMC4wMSAxNTIuMjQsLTE4MC40MyIvPgo8L2c+CjwhLS0gaSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5pPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyYjNDU7YiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmIzQ1O2I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTI4Ny43Qzk5LC0yNzYuODUgOTksLTI2Mi45MiA5OSwtMjUyLjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEyNiIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTUwLjYyLC0xNDMuODdDMTQ1LjI0LC0xMTYuNTggMTM0Ljc4LC02My41MiAxMjkuMzksLTM2LjE5Ii8+CjwvZz4KPCEtLSBkIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzYiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzNiIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI5LjE4LC0yMTYuMDVDMzAuNTcsLTIwNS4yMSAzMi4zOCwtMTkxLjE4IDMzLjc4LC0xODAuMjgiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmIzQ1O2ggLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YiYjNDU7JiM0NTtoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0yMTUuODdDOTksLTE4OC41OCA5OSwtMTM1LjUyIDk5LC0xMDguMTkiLz4KPC9nPgo8IS0tIGQmIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5kJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDkuMzYsLTE0Ni4xNUM2MC4wNSwtMTM0LjI4IDc0Ljk3LC0xMTcuNyA4NS42NiwtMTA1LjgyIi8+CjwvZz4KPCEtLSBoJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aCYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEwNS40LC03Mi40MUMxMDkuNjQsLTYxLjQxIDExNS4xOSwtNDcuMDMgMTE5LjQ2LC0zNS45NiIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},9968:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtNDAwIDE4NSwtNDAwIDE4NSw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTI2IiBjeT0iLTM3OCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMzc0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtjPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTExOS42LC0zNjAuNDFDMTE1LjM2LC0zNDkuNDEgMTA5LjgxLC0zMzUuMDMgMTA1LjU0LC0zMjMuOTYiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNTQiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNTQiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2UgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEyOS4xNCwtMzU5Ljg1QzEzMC45OCwtMzQ5LjQ5IDEzMy4yNywtMzM2LjAxIDEzNSwtMzI0IDE0Mi40OSwtMjcxLjkgMTQ5LjE4LC0yMTAuMDEgMTUyLjI0LC0xODAuNDMiLz4KPC9nPgo8IS0tIGkgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5iPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtiIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7YjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMjg3LjdDOTksLTI3Ni44NSA5OSwtMjYyLjkyIDk5LC0yNTIuMSIvPgo8L2c+CjwhLS0gaiAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5qPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjEyNiIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE1MC42MiwtMTQzLjg3QzE0NS4yNCwtMTE2LjU4IDEzNC43OCwtNjMuNTIgMTI5LjM5LC0zNi4xOSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM2IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzYiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5LjE4LC0yMTYuMDVDMzAuNTcsLTIwNS4yMSAzMi4zOCwtMTkxLjE4IDMzLjc4LC0xODAuMjgiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+aDwvdGV4dD4KPC9nPgo8IS0tIGImIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTIxNS44N0M5OSwtMTg4LjU4IDk5LC0xMzUuNTIgOTksLTEwOC4xOSIvPgo8L2c+CjwhLS0gZCYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmQmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00OS4zNiwtMTQ2LjE1QzYwLjA1LC0xMzQuMjggNzQuOTcsLTExNy43IDg1LjY2LC0xMDUuODIiLz4KPC9nPgo8IS0tIGgmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5oJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTA1LjQsLTcyLjQxQzEwOS42NCwtNjEuNDEgMTE1LjE5LC00Ny4wMyAxMTkuNDYsLTM1Ljk2Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},7619:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC00MDAgMTg1LC00MDAgMTg1LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMzc4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMjYiIHk9Ii0zNzQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7JiM0NTtjIC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyYjNDU7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMTkuNiwtMzYwLjQxQzExNS4zNiwtMzQ5LjQxIDEwOS44MSwtMzM1LjAzIDEwNS41NCwtMzIzLjk2Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTU0IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTU0IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyYjNDU7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmIzQ1O2U8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI5LjE0LC0zNTkuODVDMTMwLjk4LC0zNDkuNDkgMTMzLjI3LC0zMzYuMDEgMTM1LC0zMjQgMTQyLjQ5LC0yNzEuOSAxNDkuMTgsLTIxMC4wMSAxNTIuMjQsLTE4MC40MyIvPgo8L2c+CjwhLS0gaSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5pPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyYjNDU7YiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmIzQ1O2I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTI4Ny43Qzk5LC0yNzYuODUgOTksLTI2Mi45MiA5OSwtMjUyLjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEyNiIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTUwLjYyLC0xNDMuODdDMTQ1LjI0LC0xMTYuNTggMTM0Ljc4LC02My41MiAxMjkuMzksLTM2LjE5Ii8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDIuMDcsLTE0NS44MUMxMzIuODQsLTEzNC4wNyAxMjAuMTMsLTExNy44OSAxMTAuOTEsLTEwNi4xNiIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5kPC90ZXh0Pgo8L2c+CjwhLS0gaSYjNDU7JiM0NTtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyYjNDU7ZDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yOC45OCwtMjE1LjdDMzAuMjIsLTIwNC44NSAzMS44MSwtMTkwLjkyIDMzLjA1LC0xODAuMSIvPgo8L2c+CjwhLS0gYiYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmImIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMjE1Ljg3Qzk5LC0xODguNTggOTksLTEzNS41MiA5OSwtMTA4LjE5Ii8+CjwvZz4KPCEtLSBoJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmgmIzQ1OyYjNDU7ajwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDUuNCwtNzIuNDFDMTA5LjY0LC02MS40MSAxMTUuMTksLTQ3LjAzIDExOS40NiwtMzUuOTYiLz4KPC9nPgo8IS0tIGQmIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5kJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDguNTcsLTE0Ni4xNUM1OS40MywtMTM0LjI4IDc0LjU5LC0xMTcuNyA4NS40NSwtMTA1LjgyIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},50:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtNDAwIDE4NSwtNDAwIDE4NSw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTI2IiBjeT0iLTM3OCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMzc0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtjPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTExOS42LC0zNjAuNDFDMTE1LjM2LC0zNDkuNDEgMTA5LjgxLC0zMzUuMDMgMTA1LjU0LC0zMjMuOTYiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNTQiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNTQiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2UgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEyOS4xNCwtMzU5Ljg1QzEzMC45OCwtMzQ5LjQ5IDEzMy4yNywtMzM2LjAxIDEzNSwtMzI0IDE0Mi40OSwtMjcxLjkgMTQ5LjE4LC0yMTAuMDEgMTUyLjI0LC0xODAuNDMiLz4KPC9nPgo8IS0tIGkgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5iPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtiIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7YjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMjg3LjdDOTksLTI3Ni44NSA5OSwtMjYyLjkyIDk5LC0yNTIuMSIvPgo8L2c+CjwhLS0gaiAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5qPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjEyNiIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE1MC42MiwtMTQzLjg3QzE0NS4yNCwtMTE2LjU4IDEzNC43OCwtNjMuNTIgMTI5LjM5LC0zNi4xOSIvPgo8L2c+CjwhLS0gaCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5oPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDIuMDcsLTE0NS44MUMxMzIuODQsLTEzNC4wNyAxMjAuMTMsLTExNy44OSAxMTAuOTEsLTEwNi4xNiIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI4Ljk4LC0yMTUuN0MzMC4yMiwtMjA0Ljg1IDMxLjgxLC0xOTAuOTIgMzMuMDUsLTE4MC4xIi8+CjwvZz4KPCEtLSBiJiM0NTsmIzQ1O2ggLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YiYjNDU7JiM0NTtoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0yMTUuODdDOTksLTE4OC41OCA5OSwtMTM1LjUyIDk5LC0xMDguMTkiLz4KPC9nPgo8IS0tIGgmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aCYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEwNS40LC03Mi40MUMxMDkuNjQsLTYxLjQxIDExNS4xOSwtNDcuMDMgMTE5LjQ2LC0zNS45NiIvPgo8L2c+CjwhLS0gZCYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmQmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00OC41NywtMTQ2LjE1QzU5LjQzLC0xMzQuMjggNzQuNTksLTExNy43IDg1LjQ1LC0xMDUuODIiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},3770:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjA2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjA2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMjAyLC0yNTYgMjAyLDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7Jmd0O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7Jmd0O2M8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyZndDtlIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyZndDtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gYiAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5iPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7Jmd0O2kgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YyYjNDU7Jmd0O2k8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBqIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmo8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmZ3Q7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmZ3Q7ajwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZDwvdGV4dD4KPC9nPgo8IS0tIGkmIzQ1OyZndDtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyZndDtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},2843:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjA2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjA2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDIwMiwtMjU2IDIwMiw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7YyAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmk8L3RleHQ+CjwvZz4KPCEtLSBjJiM0NTsmZ3Q7aSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmZ3Q7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5qPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7Jmd0O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7Jmd0O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5kPC90ZXh0Pgo8L2c+CjwhLS0gaSYjNDU7Jmd0O2QgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7Jmd0O2Q8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},1350:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjc4cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjc4LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMjc0LC0yNTYgMjc0LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7Jmd0O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7Jmd0O2M8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyZndDtlIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyZndDtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gYiAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5iPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7Jmd0O2kgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YyYjNDU7Jmd0O2k8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyZndDtqIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyZndDtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIGQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmZ3Q7ZCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5pJiM0NTsmZ3Q7ZDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtNzEuN0M5OSwtNjMuOTggOTksLTU0LjcxIDk5LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtNDYuMSA5OSwtMzYuMSA5NS41LC00Ni4xIDEwMi41LC00Ni4xIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},9248:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjc4cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjc4LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDI3NCwtMjU2IDI3NCw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7YyAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmk8L3RleHQ+CjwvZz4KPCEtLSBjJiM0NTsmZ3Q7aSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmZ3Q7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7Jmd0O2ggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7Jmd0O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBqIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmo8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyZndDtqIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyZndDtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIGQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ZDwvdGV4dD4KPC9nPgo8IS0tIGkmIzQ1OyZndDtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyZndDtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},1151:(I,i,l)=>{l.d(i,{Z:()=>c,a:()=>g});var s=l(7294);const m={},a=s.createContext(m);function g(I){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof I?I(i):{...i,...I}}),[i,I])}function c(I){let i;return i=I.disableParentContext?"function"==typeof I.components?I.components(m):I.components||m:g(I.components),s.createElement(a.Provider,{value:i},I.children)}}}]); \ No newline at end of file diff --git a/assets/js/354a7b72.257f6430.js b/assets/js/354a7b72.257f6430.js new file mode 100644 index 0000000..cdd441d --- /dev/null +++ b/assets/js/354a7b72.257f6430.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9414],{46617:(I,i,l)=>{l.r(i),l.d(i,{assets:()=>j,contentTitle:()=>g,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>Z});var s=l(85893),m=l(11151);const a={id:"bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",tags:["graphs","bfs"],last_update:{date:new Date("2022-04-30T00:00:00.000Z")}},g=void 0,c={id:"graphs/bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",source:"@site/algorithms/10-graphs/2022-04-30-bfs-tree.md",sourceDirName:"10-graphs",slug:"/graphs/bfs-tree",permalink:"/algorithms/graphs/bfs-tree",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/10-graphs/2022-04-30-bfs-tree.md",tags:[{label:"graphs",permalink:"/algorithms/tags/graphs"},{label:"bfs",permalink:"/algorithms/tags/bfs"}],version:"current",lastUpdatedAt:1651276800,formattedLastUpdatedAt:"Apr 30, 2022",frontMatter:{id:"bfs-tree",title:"Distance boundaries from BFS tree on undirected graphs",description:"Short explanation of distance boundaries deduced from a BFS tree.\n",tags:["graphs","bfs"],last_update:{date:"2022-04-30T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Iterative algorithms via iterators",permalink:"/algorithms/graphs/iterative-and-iterators"},next:{title:"Hash Tables",permalink:"/algorithms/category/hash-tables"}},j={},Z=[{value:"Introduction",id:"introduction",level:2},{value:"Lower bound",id:"lower-bound",level:2},{value:"Proof by contradiction",id:"proof-by-contradiction",level:2}];function n(I){const i={admonition:"admonition",annotation:"annotation",em:"em",h2:"h2",img:"img",li:"li",math:"math",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",p:"p",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,m.a)(),...I.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(i.p,{children:["As we have talked on the seminar, if we construct from some vertex ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"u"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"u"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"u"})]})})]})," BFS tree on an undirected graph, we can obtain:"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["lower bound of length of the shortest path between 2 vertices from the ",(0,s.jsx)(i.em,{children:"height difference"})]}),"\n",(0,s.jsxs)(i.li,{children:["upper bound of length of the shortest path between 2 vertices from the ",(0,s.jsx)(i.em,{children:"path through the root"})]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"lower-bound",children:"Lower bound"}),"\n",(0,s.jsx)(i.p,{children:"Consider the following graph:"}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(79968).Z+"#gh-light-mode-only",width:"252",height:"539"}),"\n",(0,s.jsx)(i.img,{src:l(21949).Z+"#gh-dark-mode-only",width:"252",height:"539"})]}),"\n",(0,s.jsxs)(i.p,{children:["We run BFS from the vertex ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"a"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"a"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"a"})]})})]})," and obtain the following BFS tree:"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(62843).Z+"#gh-light-mode-only",width:"275",height:"347"}),"\n",(0,s.jsx)(i.img,{src:l(43770).Z+"#gh-dark-mode-only",width:"275",height:"347"})]}),"\n",(0,s.jsxs)(i.p,{children:["Let's consider pair of vertices ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"e"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"})]})})]})," and ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"h"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),". For them we can safely lay, from the BFS tree, following properties:"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["lower bound: ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]})]}),"\n",(0,s.jsxs)(i.li,{children:["upper bound: ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"4"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"4"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"4"})]})})]})]}),"\n"]}),"\n",(0,s.jsxs)(i.p,{children:["By having a look at the graph we started from, we can see that we have a path \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"j"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, j, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",style:{marginRight:"0.05724em"},children:"j"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a that has a length 2. Apart from that we can also notice there is another path from ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"e"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"})]})})]})," to ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mi,{children:"h"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]})," and that is \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"a"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"c"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"i"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"d"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, a, c, i, d, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"a"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"c"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"i"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"d"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a. And that path has a length of ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"5"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"5"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"5"})]})})]}),". Doesn't this break our statements at the beginning? (",(0,s.jsx)(i.em,{children:"I'm leaving that as an exercise ;)"}),")"]}),"\n",(0,s.jsx)(i.h2,{id:"proof-by-contradiction",children:"Proof by contradiction"}),"\n",(0,s.jsxs)(i.p,{children:["Let's keep the same graph, but break the lower bound, i.e. I have gotten a lower bound ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),", but \u201cthere must be a shorter path\u201d! ;)"]}),"\n",(0,s.jsxs)(i.p,{children:["Now the more important question, is there a shorter path in that graph? The answer is no, there's no shorter path than the one with length ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),". So what can we do about it? We'll add an edge to have a shorter path. Now we have gotten a lower bound of ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"2"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"2"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"2"})]})})]}),", which means the only shorter path we can construct has ",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsx)(i.mrow,{children:(0,s.jsx)(i.mn,{children:"1"})}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.6444em"}}),(0,s.jsx)(i.span,{className:"mord",children:"1"})]})})]})," edge and that is \u2039",(0,s.jsxs)(i.span,{className:"katex",children:[(0,s.jsx)(i.span,{className:"katex-mathml",children:(0,s.jsx)(i.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(i.semantics,{children:[(0,s.jsxs)(i.mrow,{children:[(0,s.jsx)(i.mi,{children:"e"}),(0,s.jsx)(i.mo,{separator:"true",children:","}),(0,s.jsx)(i.mi,{children:"h"})]}),(0,s.jsx)(i.annotation,{encoding:"application/x-tex",children:"e, h"})]})})}),(0,s.jsx)(i.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(i.span,{className:"base",children:[(0,s.jsx)(i.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"e"}),(0,s.jsx)(i.span,{className:"mpunct",children:","}),(0,s.jsx)(i.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(i.span,{className:"mord mathnormal",children:"h"})]})})]}),"\u203a (no intermediary vertices). Let's do this!"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(40050).Z+"#gh-light-mode-only",width:"252",height:"539"}),"\n",(0,s.jsx)(i.img,{src:l(7619).Z+"#gh-dark-mode-only",width:"252",height:"539"})]}),"\n",(0,s.jsx)(i.p,{children:"Okay, so we have a graph that breaks the rule we have laid. However, we need to run BFS to obtain the new BFS tree, since we have changed the graph."}),"\n",(0,s.jsxs)(i.admonition,{type:"tip",children:[(0,s.jsxs)(i.p,{children:["Do we need to run BFS after ",(0,s.jsx)(i.strong,{children:"every"})," change?"]}),(0,s.jsx)(i.p,{children:"\xadI am leaving that as an exercise ;)"})]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.img,{src:l(9248).Z+"#gh-light-mode-only",width:"371",height:"347"}),"\n",(0,s.jsx)(i.img,{src:l(31350).Z+"#gh-dark-mode-only",width:"371",height:"347"})]}),"\n",(0,s.jsx)(i.p,{children:"Oops, we have gotten a new BFS tree, that has a height difference of 1."}),"\n",(0,s.jsx)(i.admonition,{type:"tip",children:(0,s.jsx)(i.p,{children:"Try to think about a way this can be generalized for shortening of minimal length 3 to minimal length 2 ;)"})})]})}function d(I={}){const{wrapper:i}={...(0,m.a)(),...I.components};return i?(0,s.jsx)(i,{...I,children:(0,s.jsx)(n,{...I})}):n(I)}},21949:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC00MDAgMTg1LC00MDAgMTg1LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMzc4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMjYiIHk9Ii0zNzQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7JiM0NTtjIC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyYjNDU7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMTkuNiwtMzYwLjQxQzExNS4zNiwtMzQ5LjQxIDEwOS44MSwtMzM1LjAzIDEwNS41NCwtMzIzLjk2Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTU0IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTU0IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyYjNDU7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmIzQ1O2U8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI5LjE0LC0zNTkuODVDMTMwLjk4LC0zNDkuNDkgMTMzLjI3LC0zMzYuMDEgMTM1LC0zMjQgMTQyLjQ5LC0yNzEuOSAxNDkuMTgsLTIxMC4wMSAxNTIuMjQsLTE4MC40MyIvPgo8L2c+CjwhLS0gaSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5pPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyYjNDU7YiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmIzQ1O2I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTI4Ny43Qzk5LC0yNzYuODUgOTksLTI2Mi45MiA5OSwtMjUyLjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEyNiIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTUwLjYyLC0xNDMuODdDMTQ1LjI0LC0xMTYuNTggMTM0Ljc4LC02My41MiAxMjkuMzksLTM2LjE5Ii8+CjwvZz4KPCEtLSBkIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzYiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzNiIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI5LjE4LC0yMTYuMDVDMzAuNTcsLTIwNS4yMSAzMi4zOCwtMTkxLjE4IDMzLjc4LC0xODAuMjgiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmIzQ1O2ggLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YiYjNDU7JiM0NTtoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0yMTUuODdDOTksLTE4OC41OCA5OSwtMTM1LjUyIDk5LC0xMDguMTkiLz4KPC9nPgo8IS0tIGQmIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5kJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDkuMzYsLTE0Ni4xNUM2MC4wNSwtMTM0LjI4IDc0Ljk3LC0xMTcuNyA4NS42NiwtMTA1LjgyIi8+CjwvZz4KPCEtLSBoJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aCYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEwNS40LC03Mi40MUMxMDkuNjQsLTYxLjQxIDExNS4xOSwtNDcuMDMgMTE5LjQ2LC0zNS45NiIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},79968:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtNDAwIDE4NSwtNDAwIDE4NSw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTI2IiBjeT0iLTM3OCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMzc0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtjPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTExOS42LC0zNjAuNDFDMTE1LjM2LC0zNDkuNDEgMTA5LjgxLC0zMzUuMDMgMTA1LjU0LC0zMjMuOTYiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNTQiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNTQiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2UgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEyOS4xNCwtMzU5Ljg1QzEzMC45OCwtMzQ5LjQ5IDEzMy4yNywtMzM2LjAxIDEzNSwtMzI0IDE0Mi40OSwtMjcxLjkgMTQ5LjE4LC0yMTAuMDEgMTUyLjI0LC0xODAuNDMiLz4KPC9nPgo8IS0tIGkgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5iPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtiIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7YjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMjg3LjdDOTksLTI3Ni44NSA5OSwtMjYyLjkyIDk5LC0yNTIuMSIvPgo8L2c+CjwhLS0gaiAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5qPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjEyNiIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE1MC42MiwtMTQzLjg3QzE0NS4yNCwtMTE2LjU4IDEzNC43OCwtNjMuNTIgMTI5LjM5LC0zNi4xOSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM2IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzYiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5LjE4LC0yMTYuMDVDMzAuNTcsLTIwNS4yMSAzMi4zOCwtMTkxLjE4IDMzLjc4LC0xODAuMjgiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+aDwvdGV4dD4KPC9nPgo8IS0tIGImIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTIxNS44N0M5OSwtMTg4LjU4IDk5LC0xMzUuNTIgOTksLTEwOC4xOSIvPgo8L2c+CjwhLS0gZCYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmQmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00OS4zNiwtMTQ2LjE1QzYwLjA1LC0xMzQuMjggNzQuOTcsLTExNy43IDg1LjY2LC0xMDUuODIiLz4KPC9nPgo8IS0tIGgmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5oJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTA1LjQsLTcyLjQxQzEwOS42NCwtNjEuNDEgMTE1LjE5LC00Ny4wMyAxMTkuNDYsLTM1Ljk2Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},7619:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC00MDAgMTg1LC00MDAgMTg1LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMzc4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMjYiIHk9Ii0zNzQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7JiM0NTtjIC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyYjNDU7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMTkuNiwtMzYwLjQxQzExNS4zNiwtMzQ5LjQxIDEwOS44MSwtMzM1LjAzIDEwNS41NCwtMzIzLjk2Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTU0IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTU0IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyYjNDU7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmIzQ1O2U8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI5LjE0LC0zNTkuODVDMTMwLjk4LC0zNDkuNDkgMTMzLjI3LC0zMzYuMDEgMTM1LC0zMjQgMTQyLjQ5LC0yNzEuOSAxNDkuMTgsLTIxMC4wMSAxNTIuMjQsLTE4MC40MyIvPgo8L2c+CjwhLS0gaSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5pPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyYjNDU7YiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmIzQ1O2I8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTI4Ny43Qzk5LC0yNzYuODUgOTksLTI2Mi45MiA5OSwtMjUyLjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMjYiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEyNiIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmIzQ1O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTUwLjYyLC0xNDMuODdDMTQ1LjI0LC0xMTYuNTggMTM0Ljc4LC02My41MiAxMjkuMzksLTM2LjE5Ii8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDIuMDcsLTE0NS44MUMxMzIuODQsLTEzNC4wNyAxMjAuMTMsLTExNy44OSAxMTAuOTEsLTEwNi4xNiIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5kPC90ZXh0Pgo8L2c+CjwhLS0gaSYjNDU7JiM0NTtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyYjNDU7ZDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yOC45OCwtMjE1LjdDMzAuMjIsLTIwNC44NSAzMS44MSwtMTkwLjkyIDMzLjA1LC0xODAuMSIvPgo8L2c+CjwhLS0gYiYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmImIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMjE1Ljg3Qzk5LC0xODguNTggOTksLTEzNS41MiA5OSwtMTA4LjE5Ii8+CjwvZz4KPCEtLSBoJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmgmIzQ1OyYjNDU7ajwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDUuNCwtNzIuNDFDMTA5LjY0LC02MS40MSAxMTUuMTksLTQ3LjAzIDExOS40NiwtMzUuOTYiLz4KPC9nPgo8IS0tIGQmIzQ1OyYjNDU7aCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5kJiM0NTsmIzQ1O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDguNTcsLTE0Ni4xNUM1OS40MywtMTM0LjI4IDc0LjU5LC0xMTcuNyA4NS40NSwtMTA1LjgyIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},40050:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMTg5cHQiIGhlaWdodD0iNDA0cHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMTg5LjAwIDQwNC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCA0MDApIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtNDAwIDE4NSwtNDAwIDE4NSw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTI2IiBjeT0iLTM3OCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMzc0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtjPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTExOS42LC0zNjAuNDFDMTE1LjM2LC0zNDkuNDEgMTA5LjgxLC0zMzUuMDMgMTA1LjU0LC0zMjMuOTYiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNTQiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNTQiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmIzQ1O2UgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7JiM0NTtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEyOS4xNCwtMzU5Ljg1QzEzMC45OCwtMzQ5LjQ5IDEzMy4yNywtMzM2LjAxIDEzNSwtMzI0IDE0Mi40OSwtMjcxLjkgMTQ5LjE4LC0yMTAuMDEgMTUyLjI0LC0xODAuNDMiLz4KPC9nPgo8IS0tIGkgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtpIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMjkwLjgzQzcyLjAyLC0yNzguNzcgNTQuMjcsLTI2MS41MSA0MS44LC0yNDkuMzgiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5iPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7JiM0NTtiIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyYjNDU7YjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMjg3LjdDOTksLTI3Ni44NSA5OSwtMjYyLjkyIDk5LC0yNTIuMSIvPgo8L2c+CjwhLS0gaiAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5qPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjEyNiIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTI2IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmIzQ1O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE1MC42MiwtMTQzLjg3QzE0NS4yNCwtMTE2LjU4IDEzNC43OCwtNjMuNTIgMTI5LjM5LC0zNi4xOSIvPgo8L2c+CjwhLS0gaCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5oPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDIuMDcsLTE0NS44MUMxMzIuODQsLTEzNC4wNyAxMjAuMTMsLTExNy44OSAxMTAuOTEsLTEwNi4xNiIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmIzQ1O2QgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7JiM0NTtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI4Ljk4LC0yMTUuN0MzMC4yMiwtMjA0Ljg1IDMxLjgxLC0xOTAuOTIgMzMuMDUsLTE4MC4xIi8+CjwvZz4KPCEtLSBiJiM0NTsmIzQ1O2ggLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YiYjNDU7JiM0NTtoPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0yMTUuODdDOTksLTE4OC41OCA5OSwtMTM1LjUyIDk5LC0xMDguMTkiLz4KPC9nPgo8IS0tIGgmIzQ1OyYjNDU7aiAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aCYjNDU7JiM0NTtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTEwNS40LC03Mi40MUMxMDkuNjQsLTYxLjQxIDExNS4xOSwtNDcuMDMgMTE5LjQ2LC0zNS45NiIvPgo8L2c+CjwhLS0gZCYjNDU7JiM0NTtoIC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmQmIzQ1OyYjNDU7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00OC41NywtMTQ2LjE1QzU5LjQzLC0xMzQuMjggNzQuNTksLTExNy43IDg1LjQ1LC0xMDUuODIiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},43770:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjA2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjA2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMjAyLC0yNTYgMjAyLDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7Jmd0O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7Jmd0O2M8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyZndDtlIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyZndDtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gYiAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5iPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7Jmd0O2kgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YyYjNDU7Jmd0O2k8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBqIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmo8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmo8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmZ3Q7aiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmZ3Q7ajwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZDwvdGV4dD4KPC9nPgo8IS0tIGkmIzQ1OyZndDtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyZndDtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},62843:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjA2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjA2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDIwMiwtMjU2IDIwMiw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7YyAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmk8L3RleHQ+CjwvZz4KPCEtLSBjJiM0NTsmZ3Q7aSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmZ3Q7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5qPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7Jmd0O2ogLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7Jmd0O2o8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItMTQuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmg8L3RleHQ+CjwvZz4KPCEtLSBiJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5iJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gZCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5kPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE0LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5kPC90ZXh0Pgo8L2c+CjwhLS0gaSYjNDU7Jmd0O2QgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+aSYjNDU7Jmd0O2Q8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},31350:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjc4cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjc4LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMjc0LC0yNTYgMjc0LDQgLTQsNCIvPgo8IS0tIGEgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5jPC90ZXh0Pgo8L2c+CjwhLS0gYSYjNDU7Jmd0O2MgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YSYjNDU7Jmd0O2M8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSBlIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmU8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ZTwvdGV4dD4KPC9nPgo8IS0tIGEmIzQ1OyZndDtlIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmEmIzQ1OyZndDtlPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gYiAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5iPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj5pPC90ZXh0Pgo8L2c+CjwhLS0gYyYjNDU7Jmd0O2kgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+YyYjNDU7Jmd0O2k8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBoIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmg8L3RleHQ+CjwvZz4KPCEtLSBlJiM0NTsmZ3Q7aCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5lJiM0NTsmZ3Q7aDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGogLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ajwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyZndDtqIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyZndDtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIGQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPmQ8L3RleHQ+CjwvZz4KPCEtLSBpJiM0NTsmZ3Q7ZCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5pJiM0NTsmZ3Q7ZDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtNzEuN0M5OSwtNjMuOTggOTksLTU0LjcxIDk5LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtNDYuMSA5OSwtMzYuMSA5NS41LC00Ni4xIDEwMi41LC00Ni4xIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},9248:(I,i,l)=>{l.d(i,{Z:()=>s});const s="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iMjc4cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgMjc4LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDI3NCwtMjU2IDI3NCw0IC00LDQiLz4KPCEtLSBhIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmE8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5hPC90ZXh0Pgo8L2c+CjwhLS0gYyAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5jPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9Ijk5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmM8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7YyAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7YzwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIGUgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmU8L3RleHQ+CjwvZz4KPCEtLSBhJiM0NTsmZ3Q7ZSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5hJiM0NTsmZ3Q7ZTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIGIgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+YjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+YjwvdGV4dD4KPC9nPgo8IS0tIGMmIzQ1OyZndDtiIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmMmIzQ1OyZndDtiPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBpIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPmk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPmk8L3RleHQ+CjwvZz4KPCEtLSBjJiM0NTsmZ3Q7aSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5jJiM0NTsmZ3Q7aTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIGggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+aDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj5oPC90ZXh0Pgo8L2c+CjwhLS0gZSYjNDU7Jmd0O2ggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+ZSYjNDU7Jmd0O2g8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBqIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPmo8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ajwvdGV4dD4KPC9nPgo8IS0tIGUmIzQ1OyZndDtqIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmUmIzQ1OyZndDtqPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIGQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ZDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii0xNC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ZDwvdGV4dD4KPC9nPgo8IS0tIGkmIzQ1OyZndDtkIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPmkmIzQ1OyZndDtkPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},11151:(I,i,l)=>{l.d(i,{Z:()=>c,a:()=>g});var s=l(67294);const m={},a=s.createContext(m);function g(I){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof I?I(i):{...i,...I}}),[i,I])}function c(I){let i;return i=I.disableParentContext?"function"==typeof I.components?I.components(m):I.components||m:g(I.components),s.createElement(a.Provider,{value:i},I.children)}}}]); \ No newline at end of file diff --git a/assets/js/3619.169a66d1.js b/assets/js/3619.169a66d1.js new file mode 100644 index 0000000..d1d3f2f --- /dev/null +++ b/assets/js/3619.169a66d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3619],{13619:(t,e,r)=>{r.d(e,{diagram:()=>H});var i=r(85322),n=r(64218),a=(r(27484),r(17967),r(27856),function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,6],i=[1,4],n=[1,5],a=[2,5],c=[1,12],s=[5,7,13,19,21,23,24,26,28,31,36,39,46],o=[7,13,19,21,23,24,26,28,31,36,39],l=[7,12,13,19,21,23,24,26,28,31,36,39],h=[7,13,46],m=[1,42],u=[1,41],y=[7,13,29,32,34,37,46],g=[1,55],p=[1,56],b=[1,57],d=[7,13,32,34,41,46],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,COMMIT_TAG:34,EMPTYSTR:35,MERGE:36,COMMIT_TYPE:37,commitType:38,COMMIT:39,commit_arg:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,ID:45,";":46,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"COMMIT_TAG",35:"EMPTYSTR",36:"MERGE",37:"COMMIT_TYPE",39:"COMMIT",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",45:"ID",46:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,5],[18,5],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[40,0],[40,1],[38,1],[38,1],[38,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(t,e,r,i,n,a,c){var s=a.length-1;switch(n){case 2:return a[s];case 3:return a[s-1];case 4:return i.setDirection(a[s-3]),a[s-1];case 6:i.setOptions(a[s-1]),this.$=a[s];break;case 7:a[s-1]+=a[s],this.$=a[s-1];break;case 9:this.$=[];break;case 10:a[s-1].push(a[s]),this.$=a[s-1];break;case 11:this.$=a[s-1];break;case 16:this.$=a[s].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),i.setAccDescription(this.$);break;case 19:i.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 21:i.checkout(a[s]);break;case 22:i.branch(a[s]);break;case 23:i.branch(a[s-2],a[s]);break;case 24:i.cherryPick(a[s],"",void 0);break;case 25:i.cherryPick(a[s-2],"",a[s]);break;case 26:case 28:i.cherryPick(a[s-2],"","");break;case 27:i.cherryPick(a[s],"",a[s-2]);break;case 29:i.merge(a[s],"","","");break;case 30:i.merge(a[s-2],a[s],"","");break;case 31:i.merge(a[s-2],"",a[s],"");break;case 32:i.merge(a[s-2],"","",a[s]);break;case 33:i.merge(a[s-4],a[s],"",a[s-2]);break;case 34:i.merge(a[s-4],"",a[s],a[s-2]);break;case 35:i.merge(a[s-4],"",a[s-2],a[s]);break;case 36:i.merge(a[s-4],a[s-2],a[s],"");break;case 37:i.merge(a[s-4],a[s-2],"",a[s]);break;case 38:i.merge(a[s-4],a[s],a[s-2],"");break;case 39:i.merge(a[s-6],a[s-4],a[s-2],a[s]);break;case 40:i.merge(a[s-6],a[s],a[s-4],a[s-2]);break;case 41:i.merge(a[s-6],a[s-4],a[s],a[s-2]);break;case 42:i.merge(a[s-6],a[s-2],a[s-4],a[s]);break;case 43:i.merge(a[s-6],a[s],a[s-2],a[s-4]);break;case 44:i.merge(a[s-6],a[s-2],a[s],a[s-4]);break;case 45:i.commit(a[s]);break;case 46:i.commit("","",i.commitType.NORMAL,a[s]);break;case 47:i.commit("","",a[s],"");break;case 48:i.commit("","",a[s],a[s-2]);break;case 49:i.commit("","",a[s-2],a[s]);break;case 50:i.commit("",a[s],i.commitType.NORMAL,"");break;case 51:i.commit("",a[s-2],i.commitType.NORMAL,a[s]);break;case 52:i.commit("",a[s],i.commitType.NORMAL,a[s-2]);break;case 53:i.commit("",a[s-2],a[s],"");break;case 54:i.commit("",a[s],a[s-2],"");break;case 55:i.commit("",a[s-4],a[s-2],a[s]);break;case 56:i.commit("",a[s-4],a[s],a[s-2]);break;case 57:i.commit("",a[s-2],a[s-4],a[s]);break;case 58:i.commit("",a[s],a[s-4],a[s-2]);break;case 59:i.commit("",a[s],a[s-2],a[s-4]);break;case 60:i.commit("",a[s-2],a[s],a[s-4]);break;case 61:i.commit(a[s],"",i.commitType.NORMAL,"");break;case 62:i.commit(a[s],"",i.commitType.NORMAL,a[s-2]);break;case 63:i.commit(a[s-2],"",i.commitType.NORMAL,a[s]);break;case 64:i.commit(a[s-2],"",a[s],"");break;case 65:i.commit(a[s],"",a[s-2],"");break;case 66:i.commit(a[s],a[s-2],i.commitType.NORMAL,"");break;case 67:i.commit(a[s-2],a[s],i.commitType.NORMAL,"");break;case 68:i.commit(a[s-4],"",a[s-2],a[s]);break;case 69:i.commit(a[s-4],"",a[s],a[s-2]);break;case 70:i.commit(a[s-2],"",a[s-4],a[s]);break;case 71:i.commit(a[s],"",a[s-4],a[s-2]);break;case 72:i.commit(a[s],"",a[s-2],a[s-4]);break;case 73:i.commit(a[s-2],"",a[s],a[s-4]);break;case 74:i.commit(a[s-4],a[s],a[s-2],"");break;case 75:i.commit(a[s-4],a[s-2],a[s],"");break;case 76:i.commit(a[s-2],a[s],a[s-4],"");break;case 77:i.commit(a[s],a[s-2],a[s-4],"");break;case 78:i.commit(a[s],a[s-4],a[s-2],"");break;case 79:i.commit(a[s-2],a[s-4],a[s],"");break;case 80:i.commit(a[s-4],a[s],i.commitType.NORMAL,a[s-2]);break;case 81:i.commit(a[s-4],a[s-2],i.commitType.NORMAL,a[s]);break;case 82:i.commit(a[s-2],a[s],i.commitType.NORMAL,a[s-4]);break;case 83:i.commit(a[s],a[s-2],i.commitType.NORMAL,a[s-4]);break;case 84:i.commit(a[s],a[s-4],i.commitType.NORMAL,a[s-2]);break;case 85:i.commit(a[s-2],a[s-4],i.commitType.NORMAL,a[s]);break;case 86:i.commit(a[s-6],a[s-4],a[s-2],a[s]);break;case 87:i.commit(a[s-6],a[s-4],a[s],a[s-2]);break;case 88:i.commit(a[s-6],a[s-2],a[s-4],a[s]);break;case 89:i.commit(a[s-6],a[s],a[s-4],a[s-2]);break;case 90:i.commit(a[s-6],a[s-2],a[s],a[s-4]);break;case 91:i.commit(a[s-6],a[s],a[s-2],a[s-4]);break;case 92:i.commit(a[s-4],a[s-6],a[s-2],a[s]);break;case 93:i.commit(a[s-4],a[s-6],a[s],a[s-2]);break;case 94:i.commit(a[s-2],a[s-6],a[s-4],a[s]);break;case 95:i.commit(a[s],a[s-6],a[s-4],a[s-2]);break;case 96:i.commit(a[s-2],a[s-6],a[s],a[s-4]);break;case 97:i.commit(a[s],a[s-6],a[s-2],a[s-4]);break;case 98:i.commit(a[s],a[s-4],a[s-2],a[s-6]);break;case 99:i.commit(a[s-2],a[s-4],a[s],a[s-6]);break;case 100:i.commit(a[s],a[s-2],a[s-4],a[s-6]);break;case 101:i.commit(a[s-2],a[s],a[s-4],a[s-6]);break;case 102:i.commit(a[s-4],a[s-2],a[s],a[s-6]);break;case 103:i.commit(a[s-4],a[s],a[s-2],a[s-6]);break;case 104:i.commit(a[s-2],a[s-4],a[s-6],a[s]);break;case 105:i.commit(a[s],a[s-4],a[s-6],a[s-2]);break;case 106:i.commit(a[s-2],a[s],a[s-6],a[s-4]);break;case 107:i.commit(a[s],a[s-2],a[s-6],a[s-4]);break;case 108:i.commit(a[s-4],a[s-2],a[s-6],a[s]);break;case 109:i.commit(a[s-4],a[s],a[s-6],a[s-2]);break;case 110:this.$="";break;case 111:this.$=a[s];break;case 112:this.$=i.commitType.NORMAL;break;case 113:this.$=i.commitType.REVERSE;break;case 114:this.$=i.commitType.HIGHLIGHT}},table:[{3:1,4:2,5:e,7:r,13:i,46:n},{1:[3]},{3:7,4:2,5:e,7:r,13:i,46:n},{6:8,7:a,8:[1,9],9:[1,10],10:11,13:c},t(s,[2,117]),t(s,[2,118]),t(s,[2,119]),{1:[2,1]},{7:[1,13]},{6:14,7:a,10:11,13:c},{8:[1,15]},t(o,[2,9],{11:16,12:[1,17]}),t(l,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:a,10:11,13:c},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],36:[1,33],39:[1,32]},t(l,[2,7]),{1:[2,3]},{7:[1,36]},t(o,[2,10]),{4:37,7:r,13:i,46:n},t(o,[2,12]),t(h,[2,13]),t(h,[2,14]),t(h,[2,15]),{20:[1,38]},{22:[1,39]},t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),{27:40,33:m,45:u},t(h,[2,110],{40:43,32:[1,46],33:[1,48],34:[1,44],37:[1,45],41:[1,47]}),{27:49,33:m,45:u},{32:[1,50],34:[1,51]},{27:52,33:m,45:u},{1:[2,4]},t(o,[2,11]),t(h,[2,16]),t(h,[2,17]),t(h,[2,21]),t(y,[2,115]),t(y,[2,116]),t(h,[2,45]),{33:[1,53]},{38:54,42:g,43:p,44:b},{33:[1,58]},{33:[1,59]},t(h,[2,111]),t(h,[2,29],{32:[1,60],34:[1,62],37:[1,61]}),{33:[1,63]},{33:[1,64],35:[1,65]},t(h,[2,22],{29:[1,66]}),t(h,[2,46],{32:[1,68],37:[1,67],41:[1,69]}),t(h,[2,47],{32:[1,71],34:[1,70],41:[1,72]}),t(d,[2,112]),t(d,[2,113]),t(d,[2,114]),t(h,[2,50],{34:[1,73],37:[1,74],41:[1,75]}),t(h,[2,61],{32:[1,78],34:[1,76],37:[1,77]}),{33:[1,79]},{38:80,42:g,43:p,44:b},{33:[1,81]},t(h,[2,24],{34:[1,82]}),{32:[1,83]},{32:[1,84]},{30:[1,85]},{38:86,42:g,43:p,44:b},{33:[1,87]},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{38:93,42:g,43:p,44:b},{33:[1,94]},{33:[1,95]},{38:96,42:g,43:p,44:b},{33:[1,97]},t(h,[2,30],{34:[1,99],37:[1,98]}),t(h,[2,31],{32:[1,101],34:[1,100]}),t(h,[2,32],{32:[1,102],37:[1,103]}),{33:[1,104],35:[1,105]},{33:[1,106]},{33:[1,107]},t(h,[2,23]),t(h,[2,48],{32:[1,108],41:[1,109]}),t(h,[2,52],{37:[1,110],41:[1,111]}),t(h,[2,62],{32:[1,113],37:[1,112]}),t(h,[2,49],{32:[1,114],41:[1,115]}),t(h,[2,54],{34:[1,116],41:[1,117]}),t(h,[2,65],{32:[1,119],34:[1,118]}),t(h,[2,51],{37:[1,120],41:[1,121]}),t(h,[2,53],{34:[1,122],41:[1,123]}),t(h,[2,66],{34:[1,125],37:[1,124]}),t(h,[2,63],{32:[1,127],37:[1,126]}),t(h,[2,64],{32:[1,129],34:[1,128]}),t(h,[2,67],{34:[1,131],37:[1,130]}),{38:132,42:g,43:p,44:b},{33:[1,133]},{33:[1,134]},{33:[1,135]},{33:[1,136]},{38:137,42:g,43:p,44:b},t(h,[2,25]),t(h,[2,26]),t(h,[2,27]),t(h,[2,28]),{33:[1,138]},{33:[1,139]},{38:140,42:g,43:p,44:b},{33:[1,141]},{38:142,42:g,43:p,44:b},{33:[1,143]},{33:[1,144]},{33:[1,145]},{33:[1,146]},{33:[1,147]},{33:[1,148]},{33:[1,149]},{38:150,42:g,43:p,44:b},{33:[1,151]},{33:[1,152]},{33:[1,153]},{38:154,42:g,43:p,44:b},{33:[1,155]},{38:156,42:g,43:p,44:b},{33:[1,157]},{33:[1,158]},{33:[1,159]},{38:160,42:g,43:p,44:b},{33:[1,161]},t(h,[2,36],{34:[1,162]}),t(h,[2,37],{37:[1,163]}),t(h,[2,35],{32:[1,164]}),t(h,[2,38],{34:[1,165]}),t(h,[2,33],{37:[1,166]}),t(h,[2,34],{32:[1,167]}),t(h,[2,59],{41:[1,168]}),t(h,[2,72],{32:[1,169]}),t(h,[2,60],{41:[1,170]}),t(h,[2,83],{37:[1,171]}),t(h,[2,73],{32:[1,172]}),t(h,[2,82],{37:[1,173]}),t(h,[2,58],{41:[1,174]}),t(h,[2,71],{32:[1,175]}),t(h,[2,57],{41:[1,176]}),t(h,[2,77],{34:[1,177]}),t(h,[2,70],{32:[1,178]}),t(h,[2,76],{34:[1,179]}),t(h,[2,56],{41:[1,180]}),t(h,[2,84],{37:[1,181]}),t(h,[2,55],{41:[1,182]}),t(h,[2,78],{34:[1,183]}),t(h,[2,79],{34:[1,184]}),t(h,[2,85],{37:[1,185]}),t(h,[2,69],{32:[1,186]}),t(h,[2,80],{37:[1,187]}),t(h,[2,68],{32:[1,188]}),t(h,[2,74],{34:[1,189]}),t(h,[2,75],{34:[1,190]}),t(h,[2,81],{37:[1,191]}),{33:[1,192]},{38:193,42:g,43:p,44:b},{33:[1,194]},{33:[1,195]},{38:196,42:g,43:p,44:b},{33:[1,197]},{33:[1,198]},{33:[1,199]},{33:[1,200]},{38:201,42:g,43:p,44:b},{33:[1,202]},{38:203,42:g,43:p,44:b},{33:[1,204]},{33:[1,205]},{33:[1,206]},{33:[1,207]},{33:[1,208]},{33:[1,209]},{33:[1,210]},{38:211,42:g,43:p,44:b},{33:[1,212]},{33:[1,213]},{33:[1,214]},{38:215,42:g,43:p,44:b},{33:[1,216]},{38:217,42:g,43:p,44:b},{33:[1,218]},{33:[1,219]},{33:[1,220]},{38:221,42:g,43:p,44:b},t(h,[2,39]),t(h,[2,41]),t(h,[2,40]),t(h,[2,42]),t(h,[2,44]),t(h,[2,43]),t(h,[2,100]),t(h,[2,101]),t(h,[2,98]),t(h,[2,99]),t(h,[2,103]),t(h,[2,102]),t(h,[2,107]),t(h,[2,106]),t(h,[2,105]),t(h,[2,104]),t(h,[2,109]),t(h,[2,108]),t(h,[2,97]),t(h,[2,96]),t(h,[2,95]),t(h,[2,94]),t(h,[2,92]),t(h,[2,93]),t(h,[2,91]),t(h,[2,90]),t(h,[2,89]),t(h,[2,88]),t(h,[2,86]),t(h,[2,87])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],c=this.table,s="",o=0,l=0,h=a.slice.call(arguments,1),m=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);m.setInput(t,u.yy),u.yy.lexer=m,u.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var g=m.yylloc;a.push(g);var p=m.options&&m.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,d,f,k,$,x,_,w,T,E={};;){if(d=r[r.length-1],this.defaultActions[d]?f=this.defaultActions[d]:(null==b&&(T=void 0,"number"!=typeof(T=i.pop()||m.lex()||1)&&(T instanceof Array&&(T=(i=T).pop()),T=e.symbols_[T]||T),b=T),f=c[d]&&c[d][b]),void 0===f||!f.length||!f[0]){var L="";for($ in w=[],c[d])this.terminals_[$]&&$>2&&w.push("'"+this.terminals_[$]+"'");L=m.showPosition?"Parse error on line "+(o+1)+":\n"+m.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:g,expected:w})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+d+", token: "+b);switch(f[0]){case 1:r.push(b),n.push(m.yytext),a.push(m.yylloc),r.push(f[1]),b=null,l=m.yyleng,s=m.yytext,o=m.yylineno,g=m.yylloc;break;case 2:if(x=this.productions_[f[1]][1],E.$=n[n.length-x],E._$={first_line:a[a.length-(x||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(x||1)].first_column,last_column:a[a.length-1].last_column},p&&(E._$.range=[a[a.length-(x||1)].range[0],a[a.length-1].range[1]]),void 0!==(k=this.performAction.apply(E,[s,l,o,u.yy,f[1],n,a].concat(h))))return k;x&&(r=r.slice(0,-1*x*2),n=n.slice(0,-1*x),a=a.slice(0,-1*x)),r.push(this.productions_[f[1]][0]),n.push(E.$),a.push(E._$),_=c[r[r.length-2]][r[r.length-1]],r.push(_);break;case 3:return!0}}return!0}},k={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,r=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),r.length-1&&(this.yylineno-=r.length-1);var n=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:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[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 r,i,n;if(this.options.backtrack_lexer&&(n={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&&(n.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],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;a<n.length;a++)if((r=this._input.match(this.rules[n[a]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[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,r,i){switch(r){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 29:case 33:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:case 9:break;case 10:return 5;case 11:return 39;case 12:return 32;case 13:return 37;case 14:return 41;case 15:return 42;case 16:return 43;case 17:return 44;case 18:return 34;case 19:return 28;case 20:return 29;case 21:return 36;case 22:return 31;case 23:return 26;case 24:case 25:return 9;case 26:return 8;case 27:return"CARET";case 28:this.begin("options");break;case 30:return 12;case 31:return 35;case 32:this.begin("string");break;case 34:return 33;case 35:return 30;case 36:return 45;case 37:return 7}},rules:[/^(?: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,/^(?:TB\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:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[29,30],inclusive:!1},string:{rules:[33,34],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,31,32,35,36,37,38],inclusive:!0}}};function $(){this.yy={}}return f.lexer=k,$.prototype=f,f.Parser=$,new $}());a.parser=a;const c=a;let s=(0,i.c)().gitGraph.mainBranchName,o=(0,i.c)().gitGraph.mainBranchOrder,l={},h=null,m={};m[s]={name:s,order:o};let u={};u[s]=h;let y=s,g="LR",p=0;function b(){return(0,i.x)({length:7})}let d={};const f=function(t){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0===u[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}{y=t;const e=u[y];h=l[e]}};function k(t,e,r){const i=t.indexOf(e);-1===i?t.push(r):t.splice(i,1,r)}function $(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let r="";t.forEach((function(t){r+=t===e?"\t*":"\t|"}));const n=[r,e.id,e.seq];for(let i in u)u[i]===e.id&&n.push(i);if(i.l.debug(n.join(" ")),e.parents&&2==e.parents.length){const r=l[e.parents[0]];k(t,e,r),t.push(l[e.parents[1]])}else{if(0==e.parents.length)return;{const r=l[e.parents];k(t,e,r)}}$(t=function(t,e){const r=Object.create(null);return t.reduce(((t,i)=>{const n=e(i);return r[n]||(r[n]=!0,t.push(i)),t}),[])}(t,(t=>t.id)))}const x=function(){const t=Object.keys(l).map((function(t){return l[t]}));return t.forEach((function(t){i.l.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},_={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},w={getConfig:()=>(0,i.c)().gitGraph,setDirection:function(t){g=t},setOptions:function(t){i.l.debug("options str",t),t=(t=t&&t.trim())||"{}";try{d=JSON.parse(t)}catch(e){i.l.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return d},commit:function(t,e,r,n){i.l.debug("Entering commit:",t,e,r,n),e=i.e.sanitizeText(e,(0,i.c)()),t=i.e.sanitizeText(t,(0,i.c)()),n=i.e.sanitizeText(n,(0,i.c)());const a={id:e||p+"-"+b(),message:t,seq:p++,type:r||_.NORMAL,tag:n||"",parents:null==h?[]:[h.id],branch:y};h=a,l[a.id]=a,u[y]=a.id,i.l.debug("in pushCommit "+a.id)},branch:function(t,e){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0!==u[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}u[t]=null!=h?h.id:null,m[t]={name:t,order:e?parseInt(e,10):null},f(t),i.l.debug("in createBranch")},merge:function(t,e,r,n){t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)());const a=l[u[y]],c=l[u[t]];if(y===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 ('+y+")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===u[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===c||!c){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===c){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!==l[e]){let i=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw i.hash={text:"merge "+t+e+r+n,token:"merge "+t+e+r+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+r+" "+n]},i}const s={id:e||p+"-"+b(),message:"merged branch "+t+" into "+y,seq:p++,parents:[null==h?null:h.id,u[t]],branch:y,type:_.MERGE,customType:r,customId:!!e,tag:n||""};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in mergeBranch")},cherryPick:function(t,e,r){if(i.l.debug("Entering cherryPick:",t,e,r),t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)()),r=i.e.sanitizeText(r,(0,i.c)()),!t||void 0===l[t]){let r=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw r.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"]},r}let n=l[t],a=n.branch;if(n.type===_.MERGE){let r=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw r.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"]},r}if(!e||void 0===l[e]){if(a===y){let r=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw r.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"]},r}const c=l[u[y]];if(void 0===c||!c){let r=new Error('Incorrect usage of "cherry-pick". Current branch ('+y+")has no commits");throw r.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"]},r}const s={id:p+"-"+b(),message:"cherry-picked "+n+" into "+y,seq:p++,parents:[null==h?null:h.id,n.id],branch:y,type:_.CHERRY_PICK,tag:r??"cherry-pick:"+n.id};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in cherryPick")}},checkout:f,prettyPrint:function(){i.l.debug(l);$([x()[0]])},clear:function(){l={},h=null;let t=(0,i.c)().gitGraph.mainBranchName,e=(0,i.c)().gitGraph.mainBranchOrder;u={},u[t]=null,m={},m[t]={name:t,order:e},y=t,p=0,(0,i.t)()},getBranchesAsObjArray:function(){return Object.values(m).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 u},getCommits:function(){return l},getCommitsArray:x,getCurrentBranch:function(){return y},getDirection:function(){return g},getHead:function(){return h},setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,setDiagramTitle:i.q,getDiagramTitle:i.r,commitType:_};let T={};const E=0,L=1,v=2,M=3,A=4;let I={},R={},O=[],C=0,S="LR";const B=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let r=[];r="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of r){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},P=(t,e,r)=>{const n=(0,i.c)().gitGraph,a=t.append("g").attr("class","commit-bullets"),c=t.append("g").attr("class","commit-labels");let s=0;"TB"===S&&(s=30);Object.keys(e).sort(((t,r)=>e[t].seq-e[r].seq)).forEach((t=>{const i=e[t],o="TB"===S?s+10:I[i.branch].pos,l="TB"===S?I[i.branch].pos:s+10;if(r){let t,e=void 0!==i.customType&&""!==i.customType?i.customType:i.type;switch(e){case E:t="commit-normal";break;case L:t="commit-reverse";break;case v:t="commit-highlight";break;case M:t="commit-merge";break;case A:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===v){const e=a.append("rect");e.attr("x",l-10),e.attr("y",o-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${i.id} commit-highlight${I[i.branch].index%8} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",o-6).attr("height",12).attr("width",12).attr("class",`commit ${i.id} commit${I[i.branch].index%8} ${t}-inner`)}else if(e===A)a.append("circle").attr("cx",l).attr("cy",o).attr("r",10).attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`);else{const r=a.append("circle");if(r.attr("cx",l),r.attr("cy",o),r.attr("r",i.type===M?9:10),r.attr("class",`commit ${i.id} commit${I[i.branch].index%8}`),e===M){const e=a.append("circle");e.attr("cx",l),e.attr("cy",o),e.attr("r",6),e.attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}if(e===L){a.append("path").attr("d",`M ${l-5},${o-5}L${l+5},${o+5}M${l-5},${o+5}L${l+5},${o-5}`).attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}}}if(R[i.id]="TB"===S?{x:l,y:s+10}:{x:s+10,y:o},r){const t=4,e=2;if(i.type!==A&&(i.customId&&i.type===M||i.type!==M)&&n.showCommitLabel){const r=c.append("g"),a=r.insert("rect").attr("class","commit-label-bkg"),h=r.append("text").attr("x",s).attr("y",o+25).attr("class","commit-label").text(i.id);let m=h.node().getBBox();if(a.attr("x",s+10-m.width/2-e).attr("y",o+13.5).attr("width",m.width+2*e).attr("height",m.height+2*e),"TB"===S&&(a.attr("x",l-(m.width+4*t+5)).attr("y",o-12),h.attr("x",l-(m.width+4*t)).attr("y",o+m.height-12)),"TB"!==S&&h.attr("x",s+10-m.width/2),n.rotateCommitLabel)if("TB"===S)h.attr("transform","rotate(-45, "+l+", "+o+")"),a.attr("transform","rotate(-45, "+l+", "+o+")");else{let t=-7.5-(m.width+10)/25*9.5,e=10+m.width/25*8.5;r.attr("transform","translate("+t+", "+e+") rotate(-45, "+s+", "+o+")")}}if(i.tag){const r=c.insert("polygon"),n=c.append("circle"),a=c.append("text").attr("y",o-16).attr("class","tag-label").text(i.tag);let h=a.node().getBBox();a.attr("x",s+10-h.width/2);const m=h.height/2,u=o-19.2;r.attr("class","tag-label-bkg").attr("points",`\n ${s-h.width/2-t/2},${u+e}\n ${s-h.width/2-t/2},${u-e}\n ${s+10-h.width/2-t},${u-m-e}\n ${s+10+h.width/2+t},${u-m-e}\n ${s+10+h.width/2+t},${u+m+e}\n ${s+10-h.width/2-t},${u+m+e}`),n.attr("cx",s-h.width/2+t/2).attr("cy",u).attr("r",1.5).attr("class","tag-hole"),"TB"===S&&(r.attr("class","tag-label-bkg").attr("points",`\n ${l},${s+e}\n ${l},${s-e}\n ${l+10},${s-m-e}\n ${l+10+h.width+t},${s-m-e}\n ${l+10+h.width+t},${s+m+e}\n ${l+10},${s+m+e}`).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),n.attr("cx",l+t/2).attr("cy",s).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),a.attr("x",l+5).attr("y",s+3).attr("transform","translate(14,14) rotate(45, "+l+","+s+")"))}}s+=50,s>C&&(C=s)}))},N=(t,e,r=0)=>{const i=t+Math.abs(t-e)/2;if(r>5)return i;if(O.every((t=>Math.abs(t-i)>=10)))return O.push(i),i;const n=Math.abs(t-e);return N(t,e-n/5,r+1)},G=(t,e,r,i)=>{const n=R[e.id],a=R[r.id],c=((t,e,r)=>Object.keys(r).filter((i=>r[i].branch===e.branch&&r[i].seq>t.seq&&r[i].seq<e.seq)).length>0)(e,r,i);let s,o="",l="",h=0,m=0,u=I[r.branch].index;if(c){o="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",h=10,m=10,u=I[r.branch].index;const t=n.y<a.y?N(n.y,a.y):N(a.y,n.y),e=n.x<a.x?N(n.x,a.x):N(a.x,n.x);s="TB"===S?n.x<a.x?`M ${n.x} ${n.y} L ${e-h} ${n.y} ${l} ${e} ${n.y+m} L ${e} ${a.y-h} ${o} ${e+m} ${a.y} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${e+h} ${n.y} ${o} ${e} ${n.y+m} L ${e} ${a.y-h} ${l} ${e-m} ${a.y} L ${a.x} ${a.y}`:n.y<a.y?`M ${n.x} ${n.y} L ${n.x} ${t-h} ${o} ${n.x+m} ${t} L ${a.x-h} ${t} ${l} ${a.x} ${t+m} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${n.x} ${t+h} ${l} ${n.x+m} ${t} L ${a.x-h} ${t} ${o} ${a.x} ${t-m} L ${a.x} ${a.y}`}else"TB"===S?(n.x<a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${l} ${a.x} ${n.y+m} L ${a.x} ${a.y}`),n.x>a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${l} ${n.x-m} ${a.y} L ${a.x} ${a.y}`),n.x===a.x&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x+h} ${n.y} ${o} ${n.x+m} ${a.y+h} L ${a.x} ${a.y}`)):(n.y<a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`),n.y>a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${o} ${a.x} ${n.y-m} L ${a.x} ${a.y}`),n.y===a.y&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`));t.append("path").attr("d",s).attr("class","arrow arrow"+u%8)},H={parser:c,db:w,renderer:{draw:function(t,e,r,a){I={},R={},T={},C=0,O=[],S="LR";const c=(0,i.c)(),s=c.gitGraph;i.l.debug("in gitgraph renderer",t+"\n","id:",e,r),T=a.db.getCommits();const o=a.db.getBranchesAsObjArray();S=a.db.getDirection();const l=(0,n.Ys)(`[id="${e}"]`);let h=0;o.forEach(((t,e)=>{const r=B(t.name),i=l.append("g"),n=i.insert("g").attr("class","branchLabel"),a=n.insert("g").attr("class","label branch-label");a.node().appendChild(r);let c=r.getBBox();I[t.name]={pos:h,index:e},h+=50+(s.rotateCommitLabel?40:0)+("TB"===S?c.width/2:0),a.remove(),n.remove(),i.remove()})),P(l,T,!1),s.showBranches&&((t,e)=>{const r=(0,i.c)().gitGraph,n=t.append("g");e.forEach(((t,e)=>{const i=e%8,a=I[t.name].pos,c=n.append("line");c.attr("x1",0),c.attr("y1",a),c.attr("x2",C),c.attr("y2",a),c.attr("class","branch branch"+i),"TB"===S&&(c.attr("y1",30),c.attr("x1",a),c.attr("y2",C),c.attr("x2",a)),O.push(a);let s=t.name;const o=B(s),l=n.insert("rect"),h=n.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);h.node().appendChild(o);let m=o.getBBox();l.attr("class","branchLabelBkg label"+i).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(!0===r.rotateCommitLabel?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),h.attr("transform","translate("+(-m.width-14-(!0===r.rotateCommitLabel?30:0))+", "+(a-m.height/2-1)+")"),"TB"===S&&(l.attr("x",a-m.width/2-10).attr("y",0),h.attr("transform","translate("+(a-m.width/2-5)+", 0)")),"TB"!==S&&l.attr("transform","translate(-19, "+(a-m.height/2)+")")}))})(l,o),((t,e)=>{const r=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=>{G(r,e[t],i,e)}))}))})(l,T),P(l,T,!0),i.u.insertTitle(l,"gitTitleText",s.titleTopMargin,a.db.getDiagramTitle()),(0,i.y)(void 0,l,s.diagramPadding,s.useMaxWidth??c.useMaxWidth)}},styles: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`}}}]); \ No newline at end of file diff --git a/assets/js/3619.ce647998.js b/assets/js/3619.ce647998.js deleted file mode 100644 index 17bb589..0000000 --- a/assets/js/3619.ce647998.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3619],{3619:(t,e,r)=>{r.d(e,{diagram:()=>H});var i=r(5322),n=r(4218),a=(r(7484),r(7967),r(7856),function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,6],i=[1,4],n=[1,5],a=[2,5],c=[1,12],s=[5,7,13,19,21,23,24,26,28,31,36,39,46],o=[7,13,19,21,23,24,26,28,31,36,39],l=[7,12,13,19,21,23,24,26,28,31,36,39],h=[7,13,46],m=[1,42],u=[1,41],y=[7,13,29,32,34,37,46],g=[1,55],p=[1,56],b=[1,57],d=[7,13,32,34,41,46],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,COMMIT_TAG:34,EMPTYSTR:35,MERGE:36,COMMIT_TYPE:37,commitType:38,COMMIT:39,commit_arg:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,ID:45,";":46,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"COMMIT_TAG",35:"EMPTYSTR",36:"MERGE",37:"COMMIT_TYPE",39:"COMMIT",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",45:"ID",46:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,5],[18,5],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[40,0],[40,1],[38,1],[38,1],[38,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(t,e,r,i,n,a,c){var s=a.length-1;switch(n){case 2:return a[s];case 3:return a[s-1];case 4:return i.setDirection(a[s-3]),a[s-1];case 6:i.setOptions(a[s-1]),this.$=a[s];break;case 7:a[s-1]+=a[s],this.$=a[s-1];break;case 9:this.$=[];break;case 10:a[s-1].push(a[s]),this.$=a[s-1];break;case 11:this.$=a[s-1];break;case 16:this.$=a[s].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),i.setAccDescription(this.$);break;case 19:i.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 21:i.checkout(a[s]);break;case 22:i.branch(a[s]);break;case 23:i.branch(a[s-2],a[s]);break;case 24:i.cherryPick(a[s],"",void 0);break;case 25:i.cherryPick(a[s-2],"",a[s]);break;case 26:case 28:i.cherryPick(a[s-2],"","");break;case 27:i.cherryPick(a[s],"",a[s-2]);break;case 29:i.merge(a[s],"","","");break;case 30:i.merge(a[s-2],a[s],"","");break;case 31:i.merge(a[s-2],"",a[s],"");break;case 32:i.merge(a[s-2],"","",a[s]);break;case 33:i.merge(a[s-4],a[s],"",a[s-2]);break;case 34:i.merge(a[s-4],"",a[s],a[s-2]);break;case 35:i.merge(a[s-4],"",a[s-2],a[s]);break;case 36:i.merge(a[s-4],a[s-2],a[s],"");break;case 37:i.merge(a[s-4],a[s-2],"",a[s]);break;case 38:i.merge(a[s-4],a[s],a[s-2],"");break;case 39:i.merge(a[s-6],a[s-4],a[s-2],a[s]);break;case 40:i.merge(a[s-6],a[s],a[s-4],a[s-2]);break;case 41:i.merge(a[s-6],a[s-4],a[s],a[s-2]);break;case 42:i.merge(a[s-6],a[s-2],a[s-4],a[s]);break;case 43:i.merge(a[s-6],a[s],a[s-2],a[s-4]);break;case 44:i.merge(a[s-6],a[s-2],a[s],a[s-4]);break;case 45:i.commit(a[s]);break;case 46:i.commit("","",i.commitType.NORMAL,a[s]);break;case 47:i.commit("","",a[s],"");break;case 48:i.commit("","",a[s],a[s-2]);break;case 49:i.commit("","",a[s-2],a[s]);break;case 50:i.commit("",a[s],i.commitType.NORMAL,"");break;case 51:i.commit("",a[s-2],i.commitType.NORMAL,a[s]);break;case 52:i.commit("",a[s],i.commitType.NORMAL,a[s-2]);break;case 53:i.commit("",a[s-2],a[s],"");break;case 54:i.commit("",a[s],a[s-2],"");break;case 55:i.commit("",a[s-4],a[s-2],a[s]);break;case 56:i.commit("",a[s-4],a[s],a[s-2]);break;case 57:i.commit("",a[s-2],a[s-4],a[s]);break;case 58:i.commit("",a[s],a[s-4],a[s-2]);break;case 59:i.commit("",a[s],a[s-2],a[s-4]);break;case 60:i.commit("",a[s-2],a[s],a[s-4]);break;case 61:i.commit(a[s],"",i.commitType.NORMAL,"");break;case 62:i.commit(a[s],"",i.commitType.NORMAL,a[s-2]);break;case 63:i.commit(a[s-2],"",i.commitType.NORMAL,a[s]);break;case 64:i.commit(a[s-2],"",a[s],"");break;case 65:i.commit(a[s],"",a[s-2],"");break;case 66:i.commit(a[s],a[s-2],i.commitType.NORMAL,"");break;case 67:i.commit(a[s-2],a[s],i.commitType.NORMAL,"");break;case 68:i.commit(a[s-4],"",a[s-2],a[s]);break;case 69:i.commit(a[s-4],"",a[s],a[s-2]);break;case 70:i.commit(a[s-2],"",a[s-4],a[s]);break;case 71:i.commit(a[s],"",a[s-4],a[s-2]);break;case 72:i.commit(a[s],"",a[s-2],a[s-4]);break;case 73:i.commit(a[s-2],"",a[s],a[s-4]);break;case 74:i.commit(a[s-4],a[s],a[s-2],"");break;case 75:i.commit(a[s-4],a[s-2],a[s],"");break;case 76:i.commit(a[s-2],a[s],a[s-4],"");break;case 77:i.commit(a[s],a[s-2],a[s-4],"");break;case 78:i.commit(a[s],a[s-4],a[s-2],"");break;case 79:i.commit(a[s-2],a[s-4],a[s],"");break;case 80:i.commit(a[s-4],a[s],i.commitType.NORMAL,a[s-2]);break;case 81:i.commit(a[s-4],a[s-2],i.commitType.NORMAL,a[s]);break;case 82:i.commit(a[s-2],a[s],i.commitType.NORMAL,a[s-4]);break;case 83:i.commit(a[s],a[s-2],i.commitType.NORMAL,a[s-4]);break;case 84:i.commit(a[s],a[s-4],i.commitType.NORMAL,a[s-2]);break;case 85:i.commit(a[s-2],a[s-4],i.commitType.NORMAL,a[s]);break;case 86:i.commit(a[s-6],a[s-4],a[s-2],a[s]);break;case 87:i.commit(a[s-6],a[s-4],a[s],a[s-2]);break;case 88:i.commit(a[s-6],a[s-2],a[s-4],a[s]);break;case 89:i.commit(a[s-6],a[s],a[s-4],a[s-2]);break;case 90:i.commit(a[s-6],a[s-2],a[s],a[s-4]);break;case 91:i.commit(a[s-6],a[s],a[s-2],a[s-4]);break;case 92:i.commit(a[s-4],a[s-6],a[s-2],a[s]);break;case 93:i.commit(a[s-4],a[s-6],a[s],a[s-2]);break;case 94:i.commit(a[s-2],a[s-6],a[s-4],a[s]);break;case 95:i.commit(a[s],a[s-6],a[s-4],a[s-2]);break;case 96:i.commit(a[s-2],a[s-6],a[s],a[s-4]);break;case 97:i.commit(a[s],a[s-6],a[s-2],a[s-4]);break;case 98:i.commit(a[s],a[s-4],a[s-2],a[s-6]);break;case 99:i.commit(a[s-2],a[s-4],a[s],a[s-6]);break;case 100:i.commit(a[s],a[s-2],a[s-4],a[s-6]);break;case 101:i.commit(a[s-2],a[s],a[s-4],a[s-6]);break;case 102:i.commit(a[s-4],a[s-2],a[s],a[s-6]);break;case 103:i.commit(a[s-4],a[s],a[s-2],a[s-6]);break;case 104:i.commit(a[s-2],a[s-4],a[s-6],a[s]);break;case 105:i.commit(a[s],a[s-4],a[s-6],a[s-2]);break;case 106:i.commit(a[s-2],a[s],a[s-6],a[s-4]);break;case 107:i.commit(a[s],a[s-2],a[s-6],a[s-4]);break;case 108:i.commit(a[s-4],a[s-2],a[s-6],a[s]);break;case 109:i.commit(a[s-4],a[s],a[s-6],a[s-2]);break;case 110:this.$="";break;case 111:this.$=a[s];break;case 112:this.$=i.commitType.NORMAL;break;case 113:this.$=i.commitType.REVERSE;break;case 114:this.$=i.commitType.HIGHLIGHT}},table:[{3:1,4:2,5:e,7:r,13:i,46:n},{1:[3]},{3:7,4:2,5:e,7:r,13:i,46:n},{6:8,7:a,8:[1,9],9:[1,10],10:11,13:c},t(s,[2,117]),t(s,[2,118]),t(s,[2,119]),{1:[2,1]},{7:[1,13]},{6:14,7:a,10:11,13:c},{8:[1,15]},t(o,[2,9],{11:16,12:[1,17]}),t(l,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:a,10:11,13:c},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],36:[1,33],39:[1,32]},t(l,[2,7]),{1:[2,3]},{7:[1,36]},t(o,[2,10]),{4:37,7:r,13:i,46:n},t(o,[2,12]),t(h,[2,13]),t(h,[2,14]),t(h,[2,15]),{20:[1,38]},{22:[1,39]},t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),{27:40,33:m,45:u},t(h,[2,110],{40:43,32:[1,46],33:[1,48],34:[1,44],37:[1,45],41:[1,47]}),{27:49,33:m,45:u},{32:[1,50],34:[1,51]},{27:52,33:m,45:u},{1:[2,4]},t(o,[2,11]),t(h,[2,16]),t(h,[2,17]),t(h,[2,21]),t(y,[2,115]),t(y,[2,116]),t(h,[2,45]),{33:[1,53]},{38:54,42:g,43:p,44:b},{33:[1,58]},{33:[1,59]},t(h,[2,111]),t(h,[2,29],{32:[1,60],34:[1,62],37:[1,61]}),{33:[1,63]},{33:[1,64],35:[1,65]},t(h,[2,22],{29:[1,66]}),t(h,[2,46],{32:[1,68],37:[1,67],41:[1,69]}),t(h,[2,47],{32:[1,71],34:[1,70],41:[1,72]}),t(d,[2,112]),t(d,[2,113]),t(d,[2,114]),t(h,[2,50],{34:[1,73],37:[1,74],41:[1,75]}),t(h,[2,61],{32:[1,78],34:[1,76],37:[1,77]}),{33:[1,79]},{38:80,42:g,43:p,44:b},{33:[1,81]},t(h,[2,24],{34:[1,82]}),{32:[1,83]},{32:[1,84]},{30:[1,85]},{38:86,42:g,43:p,44:b},{33:[1,87]},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{38:93,42:g,43:p,44:b},{33:[1,94]},{33:[1,95]},{38:96,42:g,43:p,44:b},{33:[1,97]},t(h,[2,30],{34:[1,99],37:[1,98]}),t(h,[2,31],{32:[1,101],34:[1,100]}),t(h,[2,32],{32:[1,102],37:[1,103]}),{33:[1,104],35:[1,105]},{33:[1,106]},{33:[1,107]},t(h,[2,23]),t(h,[2,48],{32:[1,108],41:[1,109]}),t(h,[2,52],{37:[1,110],41:[1,111]}),t(h,[2,62],{32:[1,113],37:[1,112]}),t(h,[2,49],{32:[1,114],41:[1,115]}),t(h,[2,54],{34:[1,116],41:[1,117]}),t(h,[2,65],{32:[1,119],34:[1,118]}),t(h,[2,51],{37:[1,120],41:[1,121]}),t(h,[2,53],{34:[1,122],41:[1,123]}),t(h,[2,66],{34:[1,125],37:[1,124]}),t(h,[2,63],{32:[1,127],37:[1,126]}),t(h,[2,64],{32:[1,129],34:[1,128]}),t(h,[2,67],{34:[1,131],37:[1,130]}),{38:132,42:g,43:p,44:b},{33:[1,133]},{33:[1,134]},{33:[1,135]},{33:[1,136]},{38:137,42:g,43:p,44:b},t(h,[2,25]),t(h,[2,26]),t(h,[2,27]),t(h,[2,28]),{33:[1,138]},{33:[1,139]},{38:140,42:g,43:p,44:b},{33:[1,141]},{38:142,42:g,43:p,44:b},{33:[1,143]},{33:[1,144]},{33:[1,145]},{33:[1,146]},{33:[1,147]},{33:[1,148]},{33:[1,149]},{38:150,42:g,43:p,44:b},{33:[1,151]},{33:[1,152]},{33:[1,153]},{38:154,42:g,43:p,44:b},{33:[1,155]},{38:156,42:g,43:p,44:b},{33:[1,157]},{33:[1,158]},{33:[1,159]},{38:160,42:g,43:p,44:b},{33:[1,161]},t(h,[2,36],{34:[1,162]}),t(h,[2,37],{37:[1,163]}),t(h,[2,35],{32:[1,164]}),t(h,[2,38],{34:[1,165]}),t(h,[2,33],{37:[1,166]}),t(h,[2,34],{32:[1,167]}),t(h,[2,59],{41:[1,168]}),t(h,[2,72],{32:[1,169]}),t(h,[2,60],{41:[1,170]}),t(h,[2,83],{37:[1,171]}),t(h,[2,73],{32:[1,172]}),t(h,[2,82],{37:[1,173]}),t(h,[2,58],{41:[1,174]}),t(h,[2,71],{32:[1,175]}),t(h,[2,57],{41:[1,176]}),t(h,[2,77],{34:[1,177]}),t(h,[2,70],{32:[1,178]}),t(h,[2,76],{34:[1,179]}),t(h,[2,56],{41:[1,180]}),t(h,[2,84],{37:[1,181]}),t(h,[2,55],{41:[1,182]}),t(h,[2,78],{34:[1,183]}),t(h,[2,79],{34:[1,184]}),t(h,[2,85],{37:[1,185]}),t(h,[2,69],{32:[1,186]}),t(h,[2,80],{37:[1,187]}),t(h,[2,68],{32:[1,188]}),t(h,[2,74],{34:[1,189]}),t(h,[2,75],{34:[1,190]}),t(h,[2,81],{37:[1,191]}),{33:[1,192]},{38:193,42:g,43:p,44:b},{33:[1,194]},{33:[1,195]},{38:196,42:g,43:p,44:b},{33:[1,197]},{33:[1,198]},{33:[1,199]},{33:[1,200]},{38:201,42:g,43:p,44:b},{33:[1,202]},{38:203,42:g,43:p,44:b},{33:[1,204]},{33:[1,205]},{33:[1,206]},{33:[1,207]},{33:[1,208]},{33:[1,209]},{33:[1,210]},{38:211,42:g,43:p,44:b},{33:[1,212]},{33:[1,213]},{33:[1,214]},{38:215,42:g,43:p,44:b},{33:[1,216]},{38:217,42:g,43:p,44:b},{33:[1,218]},{33:[1,219]},{33:[1,220]},{38:221,42:g,43:p,44:b},t(h,[2,39]),t(h,[2,41]),t(h,[2,40]),t(h,[2,42]),t(h,[2,44]),t(h,[2,43]),t(h,[2,100]),t(h,[2,101]),t(h,[2,98]),t(h,[2,99]),t(h,[2,103]),t(h,[2,102]),t(h,[2,107]),t(h,[2,106]),t(h,[2,105]),t(h,[2,104]),t(h,[2,109]),t(h,[2,108]),t(h,[2,97]),t(h,[2,96]),t(h,[2,95]),t(h,[2,94]),t(h,[2,92]),t(h,[2,93]),t(h,[2,91]),t(h,[2,90]),t(h,[2,89]),t(h,[2,88]),t(h,[2,86]),t(h,[2,87])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],c=this.table,s="",o=0,l=0,h=a.slice.call(arguments,1),m=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);m.setInput(t,u.yy),u.yy.lexer=m,u.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var g=m.yylloc;a.push(g);var p=m.options&&m.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,d,f,k,$,x,_,w,T,E={};;){if(d=r[r.length-1],this.defaultActions[d]?f=this.defaultActions[d]:(null==b&&(T=void 0,"number"!=typeof(T=i.pop()||m.lex()||1)&&(T instanceof Array&&(T=(i=T).pop()),T=e.symbols_[T]||T),b=T),f=c[d]&&c[d][b]),void 0===f||!f.length||!f[0]){var L="";for($ in w=[],c[d])this.terminals_[$]&&$>2&&w.push("'"+this.terminals_[$]+"'");L=m.showPosition?"Parse error on line "+(o+1)+":\n"+m.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:g,expected:w})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+d+", token: "+b);switch(f[0]){case 1:r.push(b),n.push(m.yytext),a.push(m.yylloc),r.push(f[1]),b=null,l=m.yyleng,s=m.yytext,o=m.yylineno,g=m.yylloc;break;case 2:if(x=this.productions_[f[1]][1],E.$=n[n.length-x],E._$={first_line:a[a.length-(x||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(x||1)].first_column,last_column:a[a.length-1].last_column},p&&(E._$.range=[a[a.length-(x||1)].range[0],a[a.length-1].range[1]]),void 0!==(k=this.performAction.apply(E,[s,l,o,u.yy,f[1],n,a].concat(h))))return k;x&&(r=r.slice(0,-1*x*2),n=n.slice(0,-1*x),a=a.slice(0,-1*x)),r.push(this.productions_[f[1]][0]),n.push(E.$),a.push(E._$),_=c[r[r.length-2]][r[r.length-1]],r.push(_);break;case 3:return!0}}return!0}},k={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,r=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),r.length-1&&(this.yylineno-=r.length-1);var n=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:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[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 r,i,n;if(this.options.backtrack_lexer&&(n={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&&(n.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],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;a<n.length;a++)if((r=this._input.match(this.rules[n[a]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[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,r,i){switch(r){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 29:case 33:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:case 9:break;case 10:return 5;case 11:return 39;case 12:return 32;case 13:return 37;case 14:return 41;case 15:return 42;case 16:return 43;case 17:return 44;case 18:return 34;case 19:return 28;case 20:return 29;case 21:return 36;case 22:return 31;case 23:return 26;case 24:case 25:return 9;case 26:return 8;case 27:return"CARET";case 28:this.begin("options");break;case 30:return 12;case 31:return 35;case 32:this.begin("string");break;case 34:return 33;case 35:return 30;case 36:return 45;case 37:return 7}},rules:[/^(?: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,/^(?:TB\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:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[29,30],inclusive:!1},string:{rules:[33,34],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,31,32,35,36,37,38],inclusive:!0}}};function $(){this.yy={}}return f.lexer=k,$.prototype=f,f.Parser=$,new $}());a.parser=a;const c=a;let s=(0,i.c)().gitGraph.mainBranchName,o=(0,i.c)().gitGraph.mainBranchOrder,l={},h=null,m={};m[s]={name:s,order:o};let u={};u[s]=h;let y=s,g="LR",p=0;function b(){return(0,i.x)({length:7})}let d={};const f=function(t){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0===u[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}{y=t;const e=u[y];h=l[e]}};function k(t,e,r){const i=t.indexOf(e);-1===i?t.push(r):t.splice(i,1,r)}function $(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let r="";t.forEach((function(t){r+=t===e?"\t*":"\t|"}));const n=[r,e.id,e.seq];for(let i in u)u[i]===e.id&&n.push(i);if(i.l.debug(n.join(" ")),e.parents&&2==e.parents.length){const r=l[e.parents[0]];k(t,e,r),t.push(l[e.parents[1]])}else{if(0==e.parents.length)return;{const r=l[e.parents];k(t,e,r)}}$(t=function(t,e){const r=Object.create(null);return t.reduce(((t,i)=>{const n=e(i);return r[n]||(r[n]=!0,t.push(i)),t}),[])}(t,(t=>t.id)))}const x=function(){const t=Object.keys(l).map((function(t){return l[t]}));return t.forEach((function(t){i.l.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},_={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},w={getConfig:()=>(0,i.c)().gitGraph,setDirection:function(t){g=t},setOptions:function(t){i.l.debug("options str",t),t=(t=t&&t.trim())||"{}";try{d=JSON.parse(t)}catch(e){i.l.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return d},commit:function(t,e,r,n){i.l.debug("Entering commit:",t,e,r,n),e=i.e.sanitizeText(e,(0,i.c)()),t=i.e.sanitizeText(t,(0,i.c)()),n=i.e.sanitizeText(n,(0,i.c)());const a={id:e||p+"-"+b(),message:t,seq:p++,type:r||_.NORMAL,tag:n||"",parents:null==h?[]:[h.id],branch:y};h=a,l[a.id]=a,u[y]=a.id,i.l.debug("in pushCommit "+a.id)},branch:function(t,e){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0!==u[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}u[t]=null!=h?h.id:null,m[t]={name:t,order:e?parseInt(e,10):null},f(t),i.l.debug("in createBranch")},merge:function(t,e,r,n){t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)());const a=l[u[y]],c=l[u[t]];if(y===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 ('+y+")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===u[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===c||!c){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===c){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!==l[e]){let i=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw i.hash={text:"merge "+t+e+r+n,token:"merge "+t+e+r+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+r+" "+n]},i}const s={id:e||p+"-"+b(),message:"merged branch "+t+" into "+y,seq:p++,parents:[null==h?null:h.id,u[t]],branch:y,type:_.MERGE,customType:r,customId:!!e,tag:n||""};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in mergeBranch")},cherryPick:function(t,e,r){if(i.l.debug("Entering cherryPick:",t,e,r),t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)()),r=i.e.sanitizeText(r,(0,i.c)()),!t||void 0===l[t]){let r=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw r.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"]},r}let n=l[t],a=n.branch;if(n.type===_.MERGE){let r=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw r.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"]},r}if(!e||void 0===l[e]){if(a===y){let r=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw r.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"]},r}const c=l[u[y]];if(void 0===c||!c){let r=new Error('Incorrect usage of "cherry-pick". Current branch ('+y+")has no commits");throw r.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"]},r}const s={id:p+"-"+b(),message:"cherry-picked "+n+" into "+y,seq:p++,parents:[null==h?null:h.id,n.id],branch:y,type:_.CHERRY_PICK,tag:r??"cherry-pick:"+n.id};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in cherryPick")}},checkout:f,prettyPrint:function(){i.l.debug(l);$([x()[0]])},clear:function(){l={},h=null;let t=(0,i.c)().gitGraph.mainBranchName,e=(0,i.c)().gitGraph.mainBranchOrder;u={},u[t]=null,m={},m[t]={name:t,order:e},y=t,p=0,(0,i.t)()},getBranchesAsObjArray:function(){return Object.values(m).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 u},getCommits:function(){return l},getCommitsArray:x,getCurrentBranch:function(){return y},getDirection:function(){return g},getHead:function(){return h},setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,setDiagramTitle:i.q,getDiagramTitle:i.r,commitType:_};let T={};const E=0,L=1,v=2,M=3,A=4;let I={},R={},O=[],C=0,S="LR";const B=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let r=[];r="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of r){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},P=(t,e,r)=>{const n=(0,i.c)().gitGraph,a=t.append("g").attr("class","commit-bullets"),c=t.append("g").attr("class","commit-labels");let s=0;"TB"===S&&(s=30);Object.keys(e).sort(((t,r)=>e[t].seq-e[r].seq)).forEach((t=>{const i=e[t],o="TB"===S?s+10:I[i.branch].pos,l="TB"===S?I[i.branch].pos:s+10;if(r){let t,e=void 0!==i.customType&&""!==i.customType?i.customType:i.type;switch(e){case E:t="commit-normal";break;case L:t="commit-reverse";break;case v:t="commit-highlight";break;case M:t="commit-merge";break;case A:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===v){const e=a.append("rect");e.attr("x",l-10),e.attr("y",o-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${i.id} commit-highlight${I[i.branch].index%8} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",o-6).attr("height",12).attr("width",12).attr("class",`commit ${i.id} commit${I[i.branch].index%8} ${t}-inner`)}else if(e===A)a.append("circle").attr("cx",l).attr("cy",o).attr("r",10).attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`);else{const r=a.append("circle");if(r.attr("cx",l),r.attr("cy",o),r.attr("r",i.type===M?9:10),r.attr("class",`commit ${i.id} commit${I[i.branch].index%8}`),e===M){const e=a.append("circle");e.attr("cx",l),e.attr("cy",o),e.attr("r",6),e.attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}if(e===L){a.append("path").attr("d",`M ${l-5},${o-5}L${l+5},${o+5}M${l-5},${o+5}L${l+5},${o-5}`).attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}}}if(R[i.id]="TB"===S?{x:l,y:s+10}:{x:s+10,y:o},r){const t=4,e=2;if(i.type!==A&&(i.customId&&i.type===M||i.type!==M)&&n.showCommitLabel){const r=c.append("g"),a=r.insert("rect").attr("class","commit-label-bkg"),h=r.append("text").attr("x",s).attr("y",o+25).attr("class","commit-label").text(i.id);let m=h.node().getBBox();if(a.attr("x",s+10-m.width/2-e).attr("y",o+13.5).attr("width",m.width+2*e).attr("height",m.height+2*e),"TB"===S&&(a.attr("x",l-(m.width+4*t+5)).attr("y",o-12),h.attr("x",l-(m.width+4*t)).attr("y",o+m.height-12)),"TB"!==S&&h.attr("x",s+10-m.width/2),n.rotateCommitLabel)if("TB"===S)h.attr("transform","rotate(-45, "+l+", "+o+")"),a.attr("transform","rotate(-45, "+l+", "+o+")");else{let t=-7.5-(m.width+10)/25*9.5,e=10+m.width/25*8.5;r.attr("transform","translate("+t+", "+e+") rotate(-45, "+s+", "+o+")")}}if(i.tag){const r=c.insert("polygon"),n=c.append("circle"),a=c.append("text").attr("y",o-16).attr("class","tag-label").text(i.tag);let h=a.node().getBBox();a.attr("x",s+10-h.width/2);const m=h.height/2,u=o-19.2;r.attr("class","tag-label-bkg").attr("points",`\n ${s-h.width/2-t/2},${u+e}\n ${s-h.width/2-t/2},${u-e}\n ${s+10-h.width/2-t},${u-m-e}\n ${s+10+h.width/2+t},${u-m-e}\n ${s+10+h.width/2+t},${u+m+e}\n ${s+10-h.width/2-t},${u+m+e}`),n.attr("cx",s-h.width/2+t/2).attr("cy",u).attr("r",1.5).attr("class","tag-hole"),"TB"===S&&(r.attr("class","tag-label-bkg").attr("points",`\n ${l},${s+e}\n ${l},${s-e}\n ${l+10},${s-m-e}\n ${l+10+h.width+t},${s-m-e}\n ${l+10+h.width+t},${s+m+e}\n ${l+10},${s+m+e}`).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),n.attr("cx",l+t/2).attr("cy",s).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),a.attr("x",l+5).attr("y",s+3).attr("transform","translate(14,14) rotate(45, "+l+","+s+")"))}}s+=50,s>C&&(C=s)}))},N=(t,e,r=0)=>{const i=t+Math.abs(t-e)/2;if(r>5)return i;if(O.every((t=>Math.abs(t-i)>=10)))return O.push(i),i;const n=Math.abs(t-e);return N(t,e-n/5,r+1)},G=(t,e,r,i)=>{const n=R[e.id],a=R[r.id],c=((t,e,r)=>Object.keys(r).filter((i=>r[i].branch===e.branch&&r[i].seq>t.seq&&r[i].seq<e.seq)).length>0)(e,r,i);let s,o="",l="",h=0,m=0,u=I[r.branch].index;if(c){o="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",h=10,m=10,u=I[r.branch].index;const t=n.y<a.y?N(n.y,a.y):N(a.y,n.y),e=n.x<a.x?N(n.x,a.x):N(a.x,n.x);s="TB"===S?n.x<a.x?`M ${n.x} ${n.y} L ${e-h} ${n.y} ${l} ${e} ${n.y+m} L ${e} ${a.y-h} ${o} ${e+m} ${a.y} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${e+h} ${n.y} ${o} ${e} ${n.y+m} L ${e} ${a.y-h} ${l} ${e-m} ${a.y} L ${a.x} ${a.y}`:n.y<a.y?`M ${n.x} ${n.y} L ${n.x} ${t-h} ${o} ${n.x+m} ${t} L ${a.x-h} ${t} ${l} ${a.x} ${t+m} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${n.x} ${t+h} ${l} ${n.x+m} ${t} L ${a.x-h} ${t} ${o} ${a.x} ${t-m} L ${a.x} ${a.y}`}else"TB"===S?(n.x<a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${l} ${a.x} ${n.y+m} L ${a.x} ${a.y}`),n.x>a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${l} ${n.x-m} ${a.y} L ${a.x} ${a.y}`),n.x===a.x&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x+h} ${n.y} ${o} ${n.x+m} ${a.y+h} L ${a.x} ${a.y}`)):(n.y<a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`),n.y>a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${o} ${a.x} ${n.y-m} L ${a.x} ${a.y}`),n.y===a.y&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`));t.append("path").attr("d",s).attr("class","arrow arrow"+u%8)},H={parser:c,db:w,renderer:{draw:function(t,e,r,a){I={},R={},T={},C=0,O=[],S="LR";const c=(0,i.c)(),s=c.gitGraph;i.l.debug("in gitgraph renderer",t+"\n","id:",e,r),T=a.db.getCommits();const o=a.db.getBranchesAsObjArray();S=a.db.getDirection();const l=(0,n.Ys)(`[id="${e}"]`);let h=0;o.forEach(((t,e)=>{const r=B(t.name),i=l.append("g"),n=i.insert("g").attr("class","branchLabel"),a=n.insert("g").attr("class","label branch-label");a.node().appendChild(r);let c=r.getBBox();I[t.name]={pos:h,index:e},h+=50+(s.rotateCommitLabel?40:0)+("TB"===S?c.width/2:0),a.remove(),n.remove(),i.remove()})),P(l,T,!1),s.showBranches&&((t,e)=>{const r=(0,i.c)().gitGraph,n=t.append("g");e.forEach(((t,e)=>{const i=e%8,a=I[t.name].pos,c=n.append("line");c.attr("x1",0),c.attr("y1",a),c.attr("x2",C),c.attr("y2",a),c.attr("class","branch branch"+i),"TB"===S&&(c.attr("y1",30),c.attr("x1",a),c.attr("y2",C),c.attr("x2",a)),O.push(a);let s=t.name;const o=B(s),l=n.insert("rect"),h=n.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);h.node().appendChild(o);let m=o.getBBox();l.attr("class","branchLabelBkg label"+i).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(!0===r.rotateCommitLabel?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),h.attr("transform","translate("+(-m.width-14-(!0===r.rotateCommitLabel?30:0))+", "+(a-m.height/2-1)+")"),"TB"===S&&(l.attr("x",a-m.width/2-10).attr("y",0),h.attr("transform","translate("+(a-m.width/2-5)+", 0)")),"TB"!==S&&l.attr("transform","translate(-19, "+(a-m.height/2)+")")}))})(l,o),((t,e)=>{const r=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=>{G(r,e[t],i,e)}))}))})(l,T),P(l,T,!0),i.u.insertTitle(l,"gitTitleText",s.titleTopMargin,a.db.getDiagramTitle()),(0,i.y)(void 0,l,s.diagramPadding,s.useMaxWidth??c.useMaxWidth)}},styles: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`}}}]); \ No newline at end of file diff --git a/assets/js/3720c009.e9eaf9f1.js b/assets/js/3720c009.e9eaf9f1.js deleted file mode 100644 index 3b45d4b..0000000 --- a/assets/js/3720c009.e9eaf9f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3751],{727:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});a(7294);var s=a(6010),r=a(833),l=a(5281),n=a(5155),c=a(6090),i=a(197),g=a(7955),o=a(5893);function u(t){let{title:e}=t;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.d,{title:e}),(0,o.jsx)(i.Z,{tag:"doc_tags_list"})]})}function h(t){let{tags:e,title:a}=t;return(0,o.jsx)(r.FG,{className:(0,s.Z)(l.k.page.docsTagsListPage),children:(0,o.jsx)("div",{className:"container margin-vert--lg",children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,o.jsx)(g.Z,{as:"h1",children:a}),(0,o.jsx)(c.Z,{tags:e})]})})})})}function d(t){const e=(0,n.M)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{...t,title:e}),(0,o.jsx)(h,{...t,title:e})]})}},3008:(t,e,a)=>{a.d(e,{Z:()=>c});a(7294);var s=a(6010),r=a(9960);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(5893);function c(t){let{permalink:e,label:a,count:c}=t;return(0,n.jsxs)(r.Z,{href:e,className:(0,s.Z)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},6090:(t,e,a)=>{a.d(e,{Z:()=>g});a(7294);var s=a(5155),r=a(3008),l=a(7955);const n={tag:"tag_Nnez"};var c=a(5893);function i(t){let{letterEntry:e}=t;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.Z,{as:"h2",id:e.letter,children:e.letter}),(0,c.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.Z,{...t})},t.permalink)))}),(0,c.jsx)("hr",{})]})}function g(t){let{tags:e}=t;const a=(0,s.P)(e);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((t=>(0,c.jsx)(i,{letterEntry:t},t.letter)))})}},5155:(t,e,a)=>{a.d(e,{M:()=>r,P:()=>l});var s=a(5999);const r=()=>(0,s.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(t){const e={};return Object.values(t).forEach((t=>{const a=function(t){return t[0].toUpperCase()}(t.label);e[a]??=[],e[a].push(t)})),Object.entries(e).sort(((t,e)=>{let[a]=t,[s]=e;return a.localeCompare(s)})).map((t=>{let[e,a]=t;return{letter:e,tags:a.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/3720c009.f4cf5d33.js b/assets/js/3720c009.f4cf5d33.js new file mode 100644 index 0000000..a619653 --- /dev/null +++ b/assets/js/3720c009.f4cf5d33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3751],{10727:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});a(67294);var s=a(86010),r=a(10833),l=a(35281),n=a(35155),c=a(26090),i=a(90197),g=a(92503),o=a(85893);function u(t){let{title:e}=t;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.d,{title:e}),(0,o.jsx)(i.Z,{tag:"doc_tags_list"})]})}function h(t){let{tags:e,title:a}=t;return(0,o.jsx)(r.FG,{className:(0,s.Z)(l.k.page.docsTagsListPage),children:(0,o.jsx)("div",{className:"container margin-vert--lg",children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,o.jsx)(g.Z,{as:"h1",children:a}),(0,o.jsx)(c.Z,{tags:e})]})})})})}function d(t){const e=(0,n.M)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{...t,title:e}),(0,o.jsx)(h,{...t,title:e})]})}},13008:(t,e,a)=>{a.d(e,{Z:()=>c});a(67294);var s=a(86010),r=a(39960);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(85893);function c(t){let{permalink:e,label:a,count:c}=t;return(0,n.jsxs)(r.Z,{href:e,className:(0,s.Z)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},26090:(t,e,a)=>{a.d(e,{Z:()=>g});a(67294);var s=a(35155),r=a(13008),l=a(92503);const n={tag:"tag_Nnez"};var c=a(85893);function i(t){let{letterEntry:e}=t;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.Z,{as:"h2",id:e.letter,children:e.letter}),(0,c.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.Z,{...t})},t.permalink)))}),(0,c.jsx)("hr",{})]})}function g(t){let{tags:e}=t;const a=(0,s.P)(e);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((t=>(0,c.jsx)(i,{letterEntry:t},t.letter)))})}},35155:(t,e,a)=>{a.d(e,{M:()=>r,P:()=>l});var s=a(95999);const r=()=>(0,s.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(t){const e={};return Object.values(t).forEach((t=>{const a=function(t){return t[0].toUpperCase()}(t.label);e[a]??=[],e[a].push(t)})),Object.entries(e).sort(((t,e)=>{let[a]=t,[s]=e;return a.localeCompare(s)})).map((t=>{let[e,a]=t;return{letter:e,tags:a.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/377f3aa1.4ebbc06f.js b/assets/js/377f3aa1.4ebbc06f.js new file mode 100644 index 0000000..102287d --- /dev/null +++ b/assets/js/377f3aa1.4ebbc06f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1011],{7582:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=t(85893),s=t(11151);const r={title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},o=void 0,a={permalink:"/blog/aoc-2022/2nd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md",source:"@site/blog/aoc-2022/02-week-2.md",title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15:00.000Z",formattedDate:"December 25, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:20.875,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"},nextItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},d={authorsImageUrls:[void 0]},l=[{value:"Day 8: Treetop Tree House",id:"day-8-treetop-tree-house",level:2},{value:"Swapping indices",id:"swapping-indices",level:4},{value:"Indexing <code>Vec</code>",id:"indexing-vec",level:4},{value:"Issues",id:"issues",level:5},{value:"Checking bounds",id:"checking-bounds",level:4},{value:"Solution",id:"solution",level:3},{value:"Day 9: Rope Bridge",id:"day-9-rope-bridge",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 10: Cathode-Ray Tube",id:"day-10-cathode-ray-tube",level:2},{value:"What does that mean though?",id:"what-does-that-mean-though",level:6},{value:"Solution",id:"solution-2",level:3},{value:"Day 11: Monkey in the Middle",id:"day-11-monkey-in-the-middle",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 12: Hill Climbing Algorithm",id:"day-12-hill-climbing-algorithm",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 13: Distress Signal",id:"day-13-distress-signal",level:2},{value:"Solution",id:"solution-5",level:3},{value:"Day 14: Regolith Reservoir",id:"day-14-regolith-reservoir",level:2},{value:"Solution",id:"solution-6",level:3},{value:"Post Mortem",id:"post-mortem",level:2},{value:"Indexing",id:"indexing",level:3},{value:"Cause of the problem",id:"cause-of-the-problem",level:4}];function c(e){const n={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",li:"li",math:"math",mdxAdmonitionTitle:"mdxAdmonitionTitle",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Let's go through the second week of ",(0,i.jsx)(n.a,{href:"https://adventofcode.com",children:(0,i.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(n.h2,{id:"day-8-treetop-tree-house",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/8",children:"Day 8: Treetop Tree House"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"We get a forest and we want to know how many trees are visible from the outside.\nApart from that we want to find the best view."})}),"\n",(0,i.jsxs)(n.p,{children:["Nothing interesting. We are moving around 2D map though. And indexing can get a\nbit painful when doing so, let's refactor it a bit ;) During the preparation for\nthe AoC, I have written ",(0,i.jsx)(n.code,{children:"Vector2D"})," and now it's time to extend it with indexing\nof ",(0,i.jsx)(n.code,{children:"Vec"})," of ",(0,i.jsx)(n.code,{children:"Vec"}),"s. In my solution I was manipulating with indices in the following\nway:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"swapping them"}),"\n",(0,i.jsxs)(n.li,{children:["checking whether they are correct indices for the ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"})]}),"\n",(0,i.jsxs)(n.li,{children:["indexing ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"})," with them"]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["I'm getting familiar with Rust and starting to \u201cabuse\u201d it\u2026 While doing so, I'm\nalso uncovering some \u201cfeatures\u201d that I don't really like. Therefore I will mark\nall of my rants with ",(0,i.jsx)(n.em,{children:"thicc"})," ",(0,i.jsx)(n.strong,{children:"\xab\u21af\xbb"})," mark and will try to \u201clock\u201d them into their\nown \u201cbox of hell\u201d."]})}),"\n",(0,i.jsx)(n.h4,{id:"swapping-indices",children:"Swapping indices"}),"\n",(0,i.jsx)(n.p,{children:"Relatively simple implementation, just take the values, swap them and return new\nvector."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<T: Copy> Vector2D<T> {\n pub fn swap(&self) -> Self {\n Self {\n x: self.y,\n y: self.x,\n }\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Pretty straight-forward implementation, but let's talk about the ",(0,i.jsx)(n.code,{children:"T: Copy"}),". We\nneed to use it, since we are returning a ",(0,i.jsx)(n.strong,{children:"new"})," vector, with swapped ",(0,i.jsx)(n.strong,{children:"values"}),".\nIf we had values that cannot be copied, the only thing we could do, would be a\nvector of references (and it would also introduce a lifetime, to which we'll get\nlater on). This is pretty similar with the operations on sets from the first week."]}),"\n",(0,i.jsxs)(n.h4,{id:"indexing-vec",children:["Indexing ",(0,i.jsx)(n.code,{children:"Vec"})]}),"\n",(0,i.jsx)(n.p,{children:"I will start with the indexing, cause bound-checking is a bit more\u2026 complicated\nthan I would like to."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index<'a, T, U>(v: &'a [Vec<U>], idx: &Vector2D<T>) -> &'a U\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Let's talk about this mess\u2026 Body of the function is probably the most easy part\nand should not be hard to understand, we just take the ",(0,i.jsx)(n.code,{children:"x"})," and ",(0,i.jsx)(n.code,{children:"y"})," and convert\nthem both to ",(0,i.jsx)(n.code,{children:"usize"})," type that can be used later on for indexing."]}),"\n",(0,i.jsxs)(n.p,{children:["The type signature of the function is where the fun is at ","\ud83d\ude09"," We are trying\nto convert unknown type to ",(0,i.jsx)(n.code,{children:"usize"}),", so we must bound the ",(0,i.jsx)(n.code,{children:"T"})," as a type that can\nbe converted to ",(0,i.jsx)(n.code,{children:"usize"}),", that's how we got ",(0,i.jsx)(n.code,{children:"usize: TryFrom<T>"})," which basically\nsays that ",(0,i.jsx)(n.code,{children:"usize"})," must implement ",(0,i.jsx)(n.code,{children:"TryFrom<T>"})," trait and therefore allows us to\nconvert the indices to actual ",(0,i.jsx)(n.code,{children:"usize"})," indices. Using ",(0,i.jsx)(n.code,{children:".unwrap()"})," also forces us\nto bound the error that can occur when converting ",(0,i.jsx)(n.code,{children:"T"})," into ",(0,i.jsx)(n.code,{children:"usize"}),", that's how\nwe get ",(0,i.jsx)(n.code,{children:"<usize as TryFrom<T>>::Error: Debug"})," which loosely means"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["error during conversion of ",(0,i.jsx)(n.code,{children:"T"})," into ",(0,i.jsx)(n.code,{children:"usize"})," must implement ",(0,i.jsx)(n.code,{children:"Debug"}),",\ni.e. can be printed in some way or other"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"T: Copy"})," is required by ",(0,i.jsx)(n.code,{children:".try_into()"})," which takes ",(0,i.jsx)(n.code,{children:"T"})," by-value."]}),"\n",(0,i.jsx)(n.p,{children:"And now we are left only with the first line of the definition."}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsx)(n.p,{children:"Skilled Rustaceans might notice that this implementation is rather flaky and can\nbreak in multiple places at once. I'll get back to it\u2026"})}),"\n",(0,i.jsx)(n.p,{children:"Let's split it in multiple parts:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"v: &'a [Vec<U>]"})," represents the 2D ",(0,i.jsx)(n.code,{children:"Vec"}),", we are indexing, ",(0,i.jsx)(n.code,{children:"Vec"})," implements\n",(0,i.jsx)(n.code,{children:"Slice"})," trait and ",(0,i.jsx)(n.em,{children:"clippy"})," recommends using ",(0,i.jsx)(n.code,{children:"&[T]"})," to ",(0,i.jsx)(n.code,{children:"&Vec<T>"}),", exact details\nare unknown to me"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"idx: &Vector2D<T>"})," represents the ",(0,i.jsx)(n.em,{children:"indices"})," which we use, we take them by\nreference to avoid an unnecessary copy"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-> &'a U"})," means that we are returning a ",(0,i.jsx)(n.em,{children:"reference"})," to some value of type ",(0,i.jsx)(n.code,{children:"U"}),".\nNow the question is what does the ",(0,i.jsx)(n.code,{children:"'a"})," mean, we can also see it as a generic\ntype declared along ",(0,i.jsx)(n.code,{children:"T"})," and ",(0,i.jsx)(n.code,{children:"U"}),". And the answer is ",(0,i.jsx)(n.em,{children:"relatively"})," simple, ",(0,i.jsx)(n.code,{children:"'a"}),"\nrepresents a ",(0,i.jsx)(n.em,{children:"lifetime"}),". We take the ",(0,i.jsx)(n.code,{children:"v"})," by a reference and return a reference,\nborrow checker validates all of the ",(0,i.jsx)(n.em,{children:"borrows"})," (or references), so we need to\nspecify that our returned value has ",(0,i.jsx)(n.em,{children:"the same lifetime"})," as the vector we have\ntaken by a reference, i.e. returned reference must live at least as long as the\n",(0,i.jsx)(n.code,{children:"v"}),". This way we can \u201cbe sure\u201d that the returned reference is valid."]}),"\n"]}),"\n",(0,i.jsx)(n.h5,{id:"issues",children:"Issues"}),"\n",(0,i.jsxs)(n.p,{children:["First issue that our implementation has is the fact that we cannot get a mutable\nreference out of that function. This could be easily resolved by introducing new\nfunction, e.g. ",(0,i.jsx)(n.code,{children:"index_mut"}),". Which I have actually done while writing this part:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index_mut<'a, T, U>(v: &'a mut [Vec<U>], idx: &Vector2D<T>) -> &'a mut U\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &mut v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"caution",children:[(0,i.jsxs)(n.mdxAdmonitionTitle,{children:[(0,i.jsx)(n.strong,{children:"\xab\u21af\xbb"})," Why can't we use one function?"]}),(0,i.jsxs)(n.p,{children:["When we consider a ",(0,i.jsx)(n.code,{children:"Vec<T>"}),", we don't need to consider containers as ",(0,i.jsx)(n.code,{children:"T"}),", Rust\nimplements indexing as traits ",(0,i.jsx)(n.code,{children:"Index<T>"})," and ",(0,i.jsx)(n.code,{children:"IndexMut<T>"})," that do the dirty work\nbehind syntactic sugar of ",(0,i.jsx)(n.code,{children:"container[idx]"}),"."]}),(0,i.jsxs)(n.p,{children:["However, implementing of traits is not allowed for ",(0,i.jsx)(n.em,{children:"external"})," types, i.e. types\nthat you haven't defined yourself. This means that you can implement indexing\nover containers that you have implemented yourself, but you cannot use your own\ntypes for indexing \u201cbuilt-in\u201d types."]}),(0,i.jsxs)(n.p,{children:["Another part of this rabbit hole is trait ",(0,i.jsx)(n.code,{children:"SliceIndex<T>"})," that is of a relevance\nbecause of"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<T, I> Index<I> for [T]\nwhere\n I: SliceIndex<[T]>\n\nimpl<T, I, A> Index<I> for Vec<T, A>\nwhere\n I: SliceIndex<[T]>,\n A: Allocator\n\nimpl<T, I, const N: usize> Index<I> for [T; N]\nwhere\n [T]: Index<I>\n"})}),(0,i.jsxs)(n.p,{children:["In other words, if your type implements ",(0,i.jsx)(n.code,{children:"SliceIndex<T>"})," trait, it can be used\nfor indexing. As of now, this trait has all of its required methods experimental\nand is marked as ",(0,i.jsx)(n.code,{children:"unsafe"}),"."]})]}),"\n",(0,i.jsxs)(n.p,{children:["Another problem is a requirement for indexing either ",(0,i.jsx)(n.code,{children:"[Vec<T>]"})," or ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"}),".\nThis requirement could be countered by removing inner type ",(0,i.jsx)(n.code,{children:"Vec<T>"})," and constraining\nit by a trait ",(0,i.jsx)(n.code,{children:"Index"})," (or ",(0,i.jsx)(n.code,{children:"IndexMut"})," respectively) in a following way"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index<'a, C, T>(v: &'a [C], idx: &Vector2D<T>) -> &'a C::Output\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n C: Index<usize>\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Given this, we can also give a more meaningful typename for indexing type, such\nas ",(0,i.jsx)(n.code,{children:"I"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"checking-bounds",children:"Checking bounds"}),"\n",(0,i.jsxs)(n.p,{children:["Now we can get to the boundary checks, it is very similar, but a more\u2026 dirty.\nFirst approach that came up was to convert the indices in ",(0,i.jsx)(n.code,{children:"Vector2D"})," to ",(0,i.jsx)(n.code,{children:"usize"}),",\nbut when you add the indices up, e.g. when checking the neighbors, you can end\nup with negative values which, unlike in C++, causes an error (instead of underflow\nthat you can use to your advantage; you can easily guess how)."]}),"\n",(0,i.jsx)(n.p,{children:"So how can we approach this then? Well\u2026 we will convert the bounds instead of\nthe indices and that lead us to:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\nwhere\n usize: TryInto<T>,\n <usize as TryInto<T>>::Error: Debug,\n T: PartialOrd + Copy,\n{\n idx.y >= 0.try_into().unwrap()\n && idx.y < v.len().try_into().unwrap()\n && idx.x >= 0.try_into().unwrap()\n && idx.x\n < v[TryInto::<usize>::try_into(idx.y).unwrap()]\n .len()\n .try_into()\n .unwrap()\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You can tell that it's definitely a shitty code. Let's improve it now! We will\nget back to the original idea, but do it better. We know that we cannot convert\nnegative values into ",(0,i.jsx)(n.code,{children:"usize"}),", ",(0,i.jsx)(n.strong,{children:"but"})," we also know that conversion like that\nreturns a ",(0,i.jsx)(n.code,{children:"Result<T, E>"})," which we can use to our advantage."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\nwhere\n T: Copy,\n usize: TryFrom<T>,\n{\n usize::try_from(idx.y)\n .and_then(|y| usize::try_from(idx.x).map(|x| y < v.len() && x < v[y].len()))\n .unwrap_or(false)\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Result<T, E>"})," is a type similar to ",(0,i.jsx)(n.code,{children:"Either"})," in Haskell and it allows us to chain\nmultiple operations on correct results or propagate the original error without\ndoing anything. Let's dissect it one-by-one."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"try_from"})," is a method implemented in ",(0,i.jsx)(n.code,{children:"TryFrom"})," trait, that allows you to convert\ntypes and either successfully convert them or fail (with a reasonable error). This\nmethod returns ",(0,i.jsx)(n.code,{children:"Result<T, E>"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["We call ",(0,i.jsx)(n.code,{children:"and_then"})," on that ",(0,i.jsx)(n.em,{children:"result"}),", let's have a look at the type signature of\n",(0,i.jsx)(n.code,{children:"and_then"}),", IMO it explains more than enough:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn and_then<U, F>(self, op: F) -> Result<U, E>\nwhere\n F: FnOnce(T) -> Result<U, E>\n"})}),"\n",(0,i.jsx)(n.p,{children:"OK\u2026 So it takes the result and a function and returns another result with\ndifferent value and different error. However we can see that the function, which\nrepresents an operation on a result, takes just the value, i.e. it doesn't care\nabout any previous error. To make it short:"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"and_then"})," allows us to run an operation, which can fail, on the correct result"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["We parsed a ",(0,i.jsx)(n.code,{children:"y"})," index and now we try to convert the ",(0,i.jsx)(n.code,{children:"x"})," index with ",(0,i.jsx)(n.code,{children:"try_from"}),"\nagain, but on that result we use ",(0,i.jsx)(n.code,{children:"map"})," rather than ",(0,i.jsx)(n.code,{children:"and_then"}),", why would that be?"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn map<U, F>(self, op: F) -> Result<U, E>\nwhere\n F: FnOnce(T) -> U\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Huh\u2026 ",(0,i.jsx)(n.code,{children:"map"})," performs an operation that ",(0,i.jsx)(n.strong,{children:"cannot"})," fail. And finally we use\n",(0,i.jsx)(n.code,{children:"unwrap_or"})," which takes the value from result, or in case of an error returns the\ndefault that we define."]}),"\n",(0,i.jsxs)(n.p,{children:["How does this work then? If ",(0,i.jsx)(n.code,{children:"y"})," is negative, the conversion fails and the error\npropagates all the way to ",(0,i.jsx)(n.code,{children:"unwrap_or"}),", if ",(0,i.jsx)(n.code,{children:"y"})," can be a correct ",(0,i.jsx)(n.code,{children:"usize"})," value, then\nwe do the same with ",(0,i.jsx)(n.code,{children:"x"}),". If ",(0,i.jsx)(n.code,{children:"x"})," is negative, we propagate the error as with ",(0,i.jsx)(n.code,{children:"y"}),",\nand if it's not, then we check whether it exceeds the higher bounds or not."]}),"\n",(0,i.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Relatively simple, you just need follow the rules and not get too smart, otherwise\nit will get back at you."}),"\n",(0,i.jsx)(n.h2,{id:"day-9-rope-bridge",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/9",children:"Day 9: Rope Bridge"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"We get a rope with knots and we want to track how many different positions are\nvisited with the rope's tail."})}),"\n",(0,i.jsx)(n.p,{children:"By this day, I have come to a conclusion that current skeleton for each day\ngenerates a lot of boilerplate. And even though it can be easily copied, it's\njust a waste of space and unnecessary code. Let's \u201csimplify\u201d this (on one end\nwhile creating monster on the other end). I've gone through what we need in the\npreparations for the AoC. Let's sum up our requirements:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"parsing"}),"\n",(0,i.jsx)(n.li,{children:"part 1 & 2"}),"\n",(0,i.jsx)(n.li,{children:"running on sample / input"}),"\n",(0,i.jsx)(n.li,{children:"tests"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Parsing and implementation of both parts is code that changes each day and we\ncannot do anything about it. However running and testing can be simplified!"}),"\n",(0,i.jsxs)(n.p,{children:["Let's introduce and export a new module ",(0,i.jsx)(n.code,{children:"solution"})," that will take care of all of\nthis. We will start by introducing a trait for each day."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub trait Solution<Input, Output: Display> {\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input;\n\n fn part_1(input: &Input) -> Output;\n fn part_2(input: &Input) -> Output;\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["This does a lot of work for us already, we have defined a trait and for each day\nwe will create a structure representing a specific day. That structure will also\nimplement the ",(0,i.jsx)(n.code,{children:"Solution"})," trait."]}),"\n",(0,i.jsxs)(n.p,{children:["Now we need to get rid of the boilerplate, we can't get rid of the ",(0,i.jsx)(n.code,{children:"main"})," function,\nbut we can at least move out the functionality."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn run(type_of_input: &str) -> Result<()>\nwhere\n Self: Sized,\n{\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = Self::parse_input(format!("{}s/{}.txt", type_of_input, Self::day()));\n\n info!("Part 1: {}", Self::part_1(&input));\n info!("Part 2: {}", Self::part_2(&input));\n\n Ok(())\n}\n\nfn main() -> Result<()>\nwhere\n Self: Sized,\n{\n Self::run("input")\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["This is all part of the ",(0,i.jsx)(n.code,{children:"Solution"})," trait, which can implement methods while being\ndependent on what is provided by the implementing types. In this case, we just\nneed to bound the ",(0,i.jsx)(n.code,{children:"Output"})," type to implement ",(0,i.jsx)(n.code,{children:"Display"})," that is necessary for the\n",(0,i.jsx)(n.code,{children:"info!"})," and format string there."]}),"\n",(0,i.jsxs)(n.p,{children:["Now we can get to first of the nasty things we are going to do\u2026 And it is the\n",(0,i.jsx)(n.code,{children:"day()"})," method that you can see being used when constructing path to the input\nfile. That method will generate a name of the file, e.g. ",(0,i.jsx)(n.code,{children:"day01"})," and we know that\nwe can ",(0,i.jsx)(n.em,{children:"somehow"})," deduce it from the structure name, given we name it reasonably."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn day() -> String {\n let mut day = String::from(type_name::<Self>().split("::").next().unwrap());\n day.make_ascii_lowercase();\n\n day.to_string()\n}\n'})}),"\n",(0,i.jsxs)(n.admonition,{type:"caution",children:[(0,i.jsx)(n.mdxAdmonitionTitle,{children:(0,i.jsx)(n.code,{children:"type_name"})}),(0,i.jsx)(n.p,{children:"This feature is still experimental and considered to be internal, it is not\nadvised to use it any production code."})]}),"\n",(0,i.jsxs)(n.p,{children:["And now we can get to the nastiest stuff ","\ud83d\ude29"," We will ",(0,i.jsx)(n.strong,{children:"generate"})," the tests!"]}),"\n",(0,i.jsx)(n.p,{children:"We want to be able to generate tests for sample input in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"test_sample!(day_01, Day01, 42, 69);\n"})}),"\n",(0,i.jsx)(n.p,{children:"There's not much we can do, so we will write a macro to generate the tests for us."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'#[macro_export]\nmacro_rules! test_sample {\n ($mod_name:ident, $day_struct:tt, $part_1:expr, $part_2:expr) => {\n #[cfg(test)]\n mod $mod_name {\n use super::*;\n\n #[test]\n fn test_part_1() {\n let sample =\n $day_struct::parse_input(&format!("samples/{}.txt", $day_struct::day()));\n assert_eq!($day_struct::part_1(&sample), $part_1);\n }\n\n #[test]\n fn test_part_2() {\n let sample =\n $day_struct::parse_input(&format!("samples/{}.txt", $day_struct::day()));\n assert_eq!($day_struct::part_2(&sample), $part_2);\n }\n }\n };\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["We have used it in a similar way as macros in C/C++, one of the things that we\ncan use to our advantage is defining \u201ctype\u201d of the parameters for the macro. All\nparameters have their name prefixed with ",(0,i.jsx)(n.code,{children:"$"})," sign and you can define various \u201cforms\u201d\nof your macro. Let's go through it!"]}),"\n",(0,i.jsx)(n.p,{children:"We have following parameters:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$mod_name"})," which represents the name for the module with tests, it is typed\nwith ",(0,i.jsx)(n.code,{children:"ident"})," which means that we want a valid identifier to be passed in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$day_struct"})," represents the structure that will be used for tests, it is typed\nwith ",(0,i.jsx)(n.code,{children:"tt"})," which represents a ",(0,i.jsx)(n.em,{children:"token tree"}),", in our case it is a type."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$part_X"})," represents the expected output for the ",(0,i.jsx)(n.code,{children:"X"}),"th part and is of type ",(0,i.jsx)(n.code,{children:"expr"}),"\nwhich literally means an ",(0,i.jsx)(n.em,{children:"expression"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Apart from that we need to use ",(0,i.jsx)(n.code,{children:"#[macro_export]"})," to mark the macro as exported\nfor usage outside of the module. Now our skeleton looks like:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'use aoc_2022::*;\n\ntype Input = String;\ntype Output = String;\n\nstruct DayXX;\nimpl Solution<Input, Output> for DayXX {\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\n file_to_string(pathname)\n }\n\n fn part_1(input: &Input) -> Output {\n todo!()\n }\n\n fn part_2(input: &Input) -> Output {\n todo!()\n }\n}\n\nfn main() -> Result<()> {\n // DayXX::run("sample")\n DayXX::main()\n}\n\n// test_sample!(day_XX, DayXX, , );\n'})}),"\n",(0,i.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Not much to talk about, it is relatively easy to simulate."}),"\n",(0,i.jsx)(n.h2,{id:"day-10-cathode-ray-tube",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/10",children:"Day 10: Cathode-Ray Tube"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Emulating basic arithmetic operations on a CPU and drawing on CRT based on the\nCPU's accumulator."})}),"\n",(0,i.jsxs)(n.p,{children:["In this day I have discovered an issue with my design of the ",(0,i.jsx)(n.code,{children:"Solution"})," trait.\nAnd the issue is caused by different types of ",(0,i.jsx)(n.code,{children:"Output"})," for the part 1 and part 2."]}),"\n",(0,i.jsx)(n.p,{children:"Problem is relatively simple and consists of simulating a CPU, I have approached\nit in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn evaluate_instructions(instructions: &[Instruction], mut out: Output) -> Output {\n instructions\n .iter()\n .fold(State::new(), |state, instruction| {\n state.execute(instruction, &mut out)\n });\n\n out\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We just take the instructions, we have some state of the CPU and we execute the\ninstructions one-by-one. Perfect usage of the ",(0,i.jsx)(n.code,{children:"fold"})," (or ",(0,i.jsx)(n.code,{children:"reduce"})," as you may know\nit from other languages)."]}),"\n",(0,i.jsxs)(n.p,{children:["You can also see that we have an ",(0,i.jsx)(n.code,{children:"Output"})," type, so the question is how can we fix\nthat problem. And the answer is very simple and ",(0,i.jsx)(n.em,{children:"functional"}),". Rust allows you to\nhave an ",(0,i.jsx)(n.code,{children:"enumeration"})," that can ",(0,i.jsx)(n.em,{children:"bear"})," some other values apart from the type itself."]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["We could've seen something like this with the ",(0,i.jsx)(n.code,{children:"Result<T, E>"})," type that can be\ndefined as"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"enum Result<T, E> {\n Ok(T),\n Err(E)\n}\n"})}),(0,i.jsx)(n.h6,{id:"what-does-that-mean-though",children:"What does that mean though?"}),(0,i.jsxs)(n.p,{children:["When we have an ",(0,i.jsx)(n.code,{children:"Ok"})," value, it has the result itself, and when we get an ",(0,i.jsx)(n.code,{children:"Err"}),"\nvalue, it has the error. This also allows us to handle ",(0,i.jsx)(n.em,{children:"results"})," in a rather\npretty way:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'match do_something(x) {\n Ok(y) => {\n println!("SUCCESS: {}", y);\n },\n Err(y) => {\n eprintln!("ERROR: {}", y);\n }\n}\n'})})]}),"\n",(0,i.jsx)(n.p,{children:"My solution has a following outline:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn execute(&self, i: &Instruction, output: &mut Output) -> State {\n // execute the instruction\n\n // collect results if necessary\n match output {\n Output::Part1(x) => self.execute_part_1(y, x),\n Output::Part2(x) => self.execute_part_2(y, x),\n }\n\n // return the obtained state\n new_state\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You might think that it's a perfectly reasonable thing to do. Yes, ",(0,i.jsx)(n.strong,{children:"but"})," notice\nthat the ",(0,i.jsx)(n.code,{children:"match"})," statement doesn't ",(0,i.jsx)(n.em,{children:"collect"})," the changes in any way and also we\npass ",(0,i.jsx)(n.code,{children:"output"})," by ",(0,i.jsx)(n.code,{children:"&mut"}),", so it is shared across each ",(0,i.jsx)(n.em,{children:"iteration"})," of the ",(0,i.jsx)(n.code,{children:"fold"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The dirty and ingenious thing is that ",(0,i.jsx)(n.code,{children:"x"}),"s are passed by ",(0,i.jsx)(n.code,{children:"&mut"})," too and therefore\nthey are directly modified by the helper functions. To sum it up and let it sit"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["We are ",(0,i.jsx)(n.strong,{children:"collecting"})," the result ",(0,i.jsx)(n.strong,{children:"into"})," an ",(0,i.jsx)(n.strong,{children:"enumeration"})," that is ",(0,i.jsx)(n.strong,{children:"shared"}),"\nacross ",(0,i.jsx)(n.strong,{children:"all"})," iterations of ",(0,i.jsx)(n.code,{children:"fold"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Similar to ",(0,i.jsx)(n.em,{children:"Day 9"}),", but there are some technical details that can get you."]}),"\n",(0,i.jsx)(n.h2,{id:"day-11-monkey-in-the-middle",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/11",children:"Day 11: Monkey in the Middle"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulation of monkeys throwing stuff around and measuring your stress levels\nwhile your stuff is being passed around."})}),"\n",(0,i.jsx)(n.p,{children:"I think I decided to use regular expressions here for the first time, cause\nparsing the input was a pain."}),"\n",(0,i.jsx)(n.p,{children:"Also I didn't expect to implement Euclidean algorithm in Rust\u2026"}),"\n",(0,i.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Again, we're just running a simulation. Though I must admit it was very easy to\nmake a small technical mistakes that could affect the final results very late."}),"\n",(0,i.jsx)(n.h2,{id:"day-12-hill-climbing-algorithm",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/12",children:"Day 12: Hill Climbing Algorithm"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Finding shortest path up the hill and also shortest path down to the ground while\nalso rolling down the hill\u2026"})}),"\n",(0,i.jsxs)(n.p,{children:["As I have said in the ",(0,i.jsx)(n.em,{children:"tl;dr"}),", we are looking for the shortest path, but the start\nand goal differ for the part 1 and 2. So I have decided to refactor my solution\nto a BFS algorithm that takes necessary parameters via functions:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn bfs<F, G>(\n graph: &[Vec<char>], start: &Position, has_edge: F, is_target: G\n) -> Option<usize>\nwhere\n F: Fn(&[Vec<char>], &Position, &Position) -> bool,\n G: Fn(&[Vec<char>], &Position) -> bool\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We pass the initial vertex from the caller and everything else is left to the BFS\nalgorithm, based on the ",(0,i.jsx)(n.code,{children:"has_edge"})," and ",(0,i.jsx)(n.code,{children:"is_target"})," functions."]}),"\n",(0,i.jsxs)(n.p,{children:["This was easy! And that is not very usual in Rust once you want to pass around\nfunctions. ","\ud83d\udc40"]}),"\n",(0,i.jsx)(n.h3,{id:"solution-4",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Looking for the shortest path\u2026 Must be Dijkstra, right? ",(0,i.jsx)(n.strong,{children:"Nope!"})," Half of the\nReddit got jebaited though. In all fairness, nothing stops you from implementing\nthe Dijkstra's algorithm for finding the shortest path, ",(0,i.jsx)(n.strong,{children:"but"})," if you know that\nall connected vertices are in a unit (actually ",(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{children:"d"}),(0,i.jsx)(n.mo,{children:"="}),(0,i.jsx)(n.mn,{children:"1"})]}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"d = 1"})]})})}),(0,i.jsxs)(n.span,{className:"katex-html","aria-hidden":"true",children:[(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.6944em"}}),(0,i.jsx)(n.span,{className:"mord mathnormal",children:"d"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,i.jsx)(n.span,{className:"mrel",children:"="}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.6444em"}}),(0,i.jsx)(n.span,{className:"mord",children:"1"})]})]})]}),") distance from each other,\nthen you know that running Dijkstra is equivalent to running BFS, only with worse\ntime complexity, because of the priority heap instead of the queue."]}),"\n",(0,i.jsx)(n.h2,{id:"day-13-distress-signal",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/13",children:"Day 13: Distress Signal"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Processing packets with structured data from the distress signal."})}),"\n",(0,i.jsxs)(n.p,{children:["You can implement a lot of traits if you want to. It is ",(0,i.jsx)(n.em,{children:"imperative"})," to implement\nordering on the packets. I had a typo, so I also proceeded to implement a ",(0,i.jsx)(n.code,{children:"Display"}),"\ntrait for debugging purposes:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'impl Display for Packet {\n fn fmt(&self, f: &mut std::fmt::Formatter<\'_>) -> std::fmt::Result {\n match self {\n Packet::Integer(x) => write!(f, "{x}"),\n Packet::List(lst) => write!(f, "[{}]", lst.iter().map(|p| format!("{p}")).join(",")),\n }\n }\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"solution-5",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"A lot of technical details\u2026 Parsing is nasty too\u2026"}),"\n",(0,i.jsx)(n.h2,{id:"day-14-regolith-reservoir",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/14",children:"Day 14: Regolith Reservoir"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Let's simulate falling sand grain-by-grain."})}),"\n",(0,i.jsxs)(n.p,{children:["Again, both parts are relatively similar with minimal changes, so it is a good\nidea to refactor it a bit. Similar approach to the ",(0,i.jsx)(n.a,{href:"#day-12-hill-climbing-algorithm",children:"BFS above"}),". Also this is the\nfirst day where I ran into efficiency issues and had to redo my solution to speed\nit up just a bit."]}),"\n",(0,i.jsx)(n.h3,{id:"solution-6",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Tedious."}),"\n",(0,i.jsx)(n.h2,{id:"post-mortem",children:"Post Mortem"}),"\n",(0,i.jsx)(n.h3,{id:"indexing",children:"Indexing"}),"\n",(0,i.jsxs)(n.p,{children:["I was asked about the indexing after publishing the blog. And truly it is rather\ncomplicated topic, especially after releasing ",(0,i.jsx)(n.code,{children:"SliceIndex<I>"})," trait. I couldn't\nleave it be, so I tried to implement the ",(0,i.jsx)(n.code,{children:"Index"})," and ",(0,i.jsx)(n.code,{children:"IndexMut"})," trait."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["I have also mentioned that the ",(0,i.jsx)(n.code,{children:"SliceIndex"})," trait is ",(0,i.jsx)(n.code,{children:"unsafe"}),", but truth be told,\nonly ",(0,i.jsx)(n.em,{children:"unsafe"})," part are the 2 methods that are named ",(0,i.jsx)(n.code,{children:"*unchecked*"}),". Anyways, I will\nbe implementing the ",(0,i.jsx)(n.code,{children:"Index*"})," traits for now, rather than the ",(0,i.jsx)(n.code,{children:"SliceIndex"}),"."]})}),"\n",(0,i.jsx)(n.p,{children:"It's relatively straightforward\u2026"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<I, C> Index<Vector2D<I>> for [C]\nwhere\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: Index<usize>,\n{\n type Output = C::Output;\n\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &self[y][x]\n }\n}\n\nimpl<I, C> IndexMut<Vector2D<I>> for [C]\nwhere\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: IndexMut<usize>,\n{\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &mut self[y][x]\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We can see a lot of similarities to the implementation of ",(0,i.jsx)(n.code,{children:"index"})," and ",(0,i.jsx)(n.code,{children:"index_mut"}),"\nfunctions. In the end, they are 1:1, just wrapped in the trait that provides a\nsyntax sugar for ",(0,i.jsx)(n.code,{children:"container[idx]"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["I have also switched from using the ",(0,i.jsx)(n.code,{children:"TryFrom"})," to ",(0,i.jsx)(n.code,{children:"TryInto"})," trait, since it better\nmatches what we are using, the ",(0,i.jsx)(n.code,{children:".try_into"})," rather than ",(0,i.jsx)(n.code,{children:"usize::try_from"}),"."]}),(0,i.jsxs)(n.p,{children:["Also implementing ",(0,i.jsx)(n.code,{children:"TryFrom"})," automatically provides you with a ",(0,i.jsx)(n.code,{children:"TryInto"})," trait,\nsince it is relatively easy to implement. Just compare the following:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub trait TryFrom<T>: Sized {\n type Error;\n\n fn try_from(value: T) -> Result<Self, Self::Error>;\n}\n\npub trait TryInto<T>: Sized {\n type Error;\n\n fn try_into(self) -> Result<T, Self::Error>;\n}\n"})})]}),"\n",(0,i.jsxs)(n.p,{children:["OK, so we have our trait implemented, we should be able to use ",(0,i.jsx)(n.code,{children:"container[index]"}),",\nright? Yes\u2026 but actually no ","\ud83d\ude26"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"error[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\n --\x3e src/bin/day08.rs:26:18\n |\n26 | if trees[pos] > tallest {\n | ^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\n\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\n --\x3e src/bin/day08.rs:30:28\n |\n30 | max(tallest, trees[pos])\n | ^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\n\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<isize>`\n --\x3e src/bin/day08.rs:52:28\n |\n52 | let max_height = trees[position];\n | ^^^^^^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<isize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<isize>>`\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Why? We have it implemented for the slices (",(0,i.jsx)(n.code,{children:"[C]"}),"), why doesn't it work? Well,\nthe fun part consists of the fact that in other place, where we were using it,\nwe were passing the ",(0,i.jsx)(n.code,{children:"&[Vec<T>]"}),", but this is coming from a helper functions that\ntake ",(0,i.jsx)(n.code,{children:"&Vec<Vec<T>>"})," instead. And\u2026 we don't implement ",(0,i.jsx)(n.code,{children:"Index"})," and ",(0,i.jsx)(n.code,{children:"IndexMut"})," for\nthose. Just for the slices. ","\ud83e\udd2f"," ",(0,i.jsx)(n.em,{children:"What are we going to do about it?"})]}),"\n",(0,i.jsxs)(n.p,{children:["We can either start copy-pasting or be smarter about it\u2026 I choose to be smarter,\nso let's implement a macro! The only difference across the implementations are\nthe types of the outer containers. Implementation doesn't differ ",(0,i.jsx)(n.strong,{children:"at all"}),"!"]}),"\n",(0,i.jsx)(n.p,{children:"Implementing the macro can be done in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"macro_rules! generate_indices {\n ($container:ty) => {\n impl<I, C> Index<Vector2D<I>> for $container\n where\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: Index<usize>,\n {\n type Output = C::Output;\n\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &self[y][x]\n }\n }\n\n impl<I, C> IndexMut<Vector2D<I>> for $container\n where\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: IndexMut<usize>,\n {\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &mut self[y][x]\n }\n }\n };\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"And now we can simply do"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"generate_indices!(VecDeque<C>);\ngenerate_indices!([C]);\ngenerate_indices!(Vec<C>);\n// generate_indices!([C; N], const N: usize);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The last type (I took the inspiration from the implementations of the ",(0,i.jsx)(n.code,{children:"Index"})," and\n",(0,i.jsx)(n.code,{children:"IndexMut"})," traits) is a bit problematic, because of the ",(0,i.jsx)(n.code,{children:"const N: usize"})," part,\nwhich I haven't managed to be able to parse. And that's how I got rid of the error."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["If I were to use 2D-indexing over ",(0,i.jsx)(n.code,{children:"[C; N]"})," slices, I'd probably just go with the\ncopy-paste, cause the cost of this \u201cmonstrosity\u201d outweighs the benefits of no DRY."]})}),"\n",(0,i.jsx)(n.h4,{id:"cause-of-the-problem",children:"Cause of the problem"}),"\n",(0,i.jsxs)(n.p,{children:["This issue is relatively funny. If you don't use any type aliases, just the raw\ntypes, you'll get suggested certain changes by the ",(0,i.jsx)(n.em,{children:"clippy"}),". For example if you\nconsider the following piece of code"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn get_sum(nums: &Vec<i32>) -> i32 {\n nums.iter().sum()\n}\n\nfn main() {\n let nums = vec![1, 2, 3];\n println!("Sum: {}", get_sum(&nums));\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["and you run ",(0,i.jsx)(n.em,{children:"clippy"})," on it, you will get"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'Checking playground v0.0.1 (/playground)\nwarning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do\n --\x3e src/main.rs:1:18\n |\n1 | fn get_sum(nums: &Vec<i32>) -> i32 {\n | ^^^^^^^^^ help: change this to: `&[i32]`\n |\n = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg\n = note: `#[warn(clippy::ptr_arg)]` on by default\n\nwarning: `playground` (bin "playground") generated 1 warning\n Finished dev [unoptimized + debuginfo] target(s) in 0.61s\n'})}),"\n",(0,i.jsx)(n.p,{children:"However, if you introduce a type alias, such as"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"type Numbers = Vec<i32>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Then ",(0,i.jsx)(n.em,{children:"clippy"})," won't say anything, cause there is literally nothing to suggest.\nHowever the outcome is not the same\u2026"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var i=t(67294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/377f3aa1.965374c1.js b/assets/js/377f3aa1.965374c1.js deleted file mode 100644 index 4a60361..0000000 --- a/assets/js/377f3aa1.965374c1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1011],{7582:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=t(5893),s=t(1151);const r={title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},o=void 0,a={permalink:"/blog/aoc-2022/2nd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md",source:"@site/blog/aoc-2022/02-week-2.md",title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15:00.000Z",formattedDate:"December 25, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:20.875,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"},nextItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},d={authorsImageUrls:[void 0]},l=[{value:"Day 8: Treetop Tree House",id:"day-8-treetop-tree-house",level:2},{value:"Swapping indices",id:"swapping-indices",level:4},{value:"Indexing <code>Vec</code>",id:"indexing-vec",level:4},{value:"Issues",id:"issues",level:5},{value:"Checking bounds",id:"checking-bounds",level:4},{value:"Solution",id:"solution",level:3},{value:"Day 9: Rope Bridge",id:"day-9-rope-bridge",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 10: Cathode-Ray Tube",id:"day-10-cathode-ray-tube",level:2},{value:"What does that mean though?",id:"what-does-that-mean-though",level:6},{value:"Solution",id:"solution-2",level:3},{value:"Day 11: Monkey in the Middle",id:"day-11-monkey-in-the-middle",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 12: Hill Climbing Algorithm",id:"day-12-hill-climbing-algorithm",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 13: Distress Signal",id:"day-13-distress-signal",level:2},{value:"Solution",id:"solution-5",level:3},{value:"Day 14: Regolith Reservoir",id:"day-14-regolith-reservoir",level:2},{value:"Solution",id:"solution-6",level:3},{value:"Post Mortem",id:"post-mortem",level:2},{value:"Indexing",id:"indexing",level:3},{value:"Cause of the problem",id:"cause-of-the-problem",level:4}];function c(e){const n={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",li:"li",math:"math",mdxAdmonitionTitle:"mdxAdmonitionTitle",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Let's go through the second week of ",(0,i.jsx)(n.a,{href:"https://adventofcode.com",children:(0,i.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(n.h2,{id:"day-8-treetop-tree-house",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/8",children:"Day 8: Treetop Tree House"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"We get a forest and we want to know how many trees are visible from the outside.\nApart from that we want to find the best view."})}),"\n",(0,i.jsxs)(n.p,{children:["Nothing interesting. We are moving around 2D map though. And indexing can get a\nbit painful when doing so, let's refactor it a bit ;) During the preparation for\nthe AoC, I have written ",(0,i.jsx)(n.code,{children:"Vector2D"})," and now it's time to extend it with indexing\nof ",(0,i.jsx)(n.code,{children:"Vec"})," of ",(0,i.jsx)(n.code,{children:"Vec"}),"s. In my solution I was manipulating with indices in the following\nway:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"swapping them"}),"\n",(0,i.jsxs)(n.li,{children:["checking whether they are correct indices for the ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"})]}),"\n",(0,i.jsxs)(n.li,{children:["indexing ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"})," with them"]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["I'm getting familiar with Rust and starting to \u201cabuse\u201d it\u2026 While doing so, I'm\nalso uncovering some \u201cfeatures\u201d that I don't really like. Therefore I will mark\nall of my rants with ",(0,i.jsx)(n.em,{children:"thicc"})," ",(0,i.jsx)(n.strong,{children:"\xab\u21af\xbb"})," mark and will try to \u201clock\u201d them into their\nown \u201cbox of hell\u201d."]})}),"\n",(0,i.jsx)(n.h4,{id:"swapping-indices",children:"Swapping indices"}),"\n",(0,i.jsx)(n.p,{children:"Relatively simple implementation, just take the values, swap them and return new\nvector."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<T: Copy> Vector2D<T> {\n pub fn swap(&self) -> Self {\n Self {\n x: self.y,\n y: self.x,\n }\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Pretty straight-forward implementation, but let's talk about the ",(0,i.jsx)(n.code,{children:"T: Copy"}),". We\nneed to use it, since we are returning a ",(0,i.jsx)(n.strong,{children:"new"})," vector, with swapped ",(0,i.jsx)(n.strong,{children:"values"}),".\nIf we had values that cannot be copied, the only thing we could do, would be a\nvector of references (and it would also introduce a lifetime, to which we'll get\nlater on). This is pretty similar with the operations on sets from the first week."]}),"\n",(0,i.jsxs)(n.h4,{id:"indexing-vec",children:["Indexing ",(0,i.jsx)(n.code,{children:"Vec"})]}),"\n",(0,i.jsx)(n.p,{children:"I will start with the indexing, cause bound-checking is a bit more\u2026 complicated\nthan I would like to."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index<'a, T, U>(v: &'a [Vec<U>], idx: &Vector2D<T>) -> &'a U\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Let's talk about this mess\u2026 Body of the function is probably the most easy part\nand should not be hard to understand, we just take the ",(0,i.jsx)(n.code,{children:"x"})," and ",(0,i.jsx)(n.code,{children:"y"})," and convert\nthem both to ",(0,i.jsx)(n.code,{children:"usize"})," type that can be used later on for indexing."]}),"\n",(0,i.jsxs)(n.p,{children:["The type signature of the function is where the fun is at ","\ud83d\ude09"," We are trying\nto convert unknown type to ",(0,i.jsx)(n.code,{children:"usize"}),", so we must bound the ",(0,i.jsx)(n.code,{children:"T"})," as a type that can\nbe converted to ",(0,i.jsx)(n.code,{children:"usize"}),", that's how we got ",(0,i.jsx)(n.code,{children:"usize: TryFrom<T>"})," which basically\nsays that ",(0,i.jsx)(n.code,{children:"usize"})," must implement ",(0,i.jsx)(n.code,{children:"TryFrom<T>"})," trait and therefore allows us to\nconvert the indices to actual ",(0,i.jsx)(n.code,{children:"usize"})," indices. Using ",(0,i.jsx)(n.code,{children:".unwrap()"})," also forces us\nto bound the error that can occur when converting ",(0,i.jsx)(n.code,{children:"T"})," into ",(0,i.jsx)(n.code,{children:"usize"}),", that's how\nwe get ",(0,i.jsx)(n.code,{children:"<usize as TryFrom<T>>::Error: Debug"})," which loosely means"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["error during conversion of ",(0,i.jsx)(n.code,{children:"T"})," into ",(0,i.jsx)(n.code,{children:"usize"})," must implement ",(0,i.jsx)(n.code,{children:"Debug"}),",\ni.e. can be printed in some way or other"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"T: Copy"})," is required by ",(0,i.jsx)(n.code,{children:".try_into()"})," which takes ",(0,i.jsx)(n.code,{children:"T"})," by-value."]}),"\n",(0,i.jsx)(n.p,{children:"And now we are left only with the first line of the definition."}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsx)(n.p,{children:"Skilled Rustaceans might notice that this implementation is rather flaky and can\nbreak in multiple places at once. I'll get back to it\u2026"})}),"\n",(0,i.jsx)(n.p,{children:"Let's split it in multiple parts:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"v: &'a [Vec<U>]"})," represents the 2D ",(0,i.jsx)(n.code,{children:"Vec"}),", we are indexing, ",(0,i.jsx)(n.code,{children:"Vec"})," implements\n",(0,i.jsx)(n.code,{children:"Slice"})," trait and ",(0,i.jsx)(n.em,{children:"clippy"})," recommends using ",(0,i.jsx)(n.code,{children:"&[T]"})," to ",(0,i.jsx)(n.code,{children:"&Vec<T>"}),", exact details\nare unknown to me"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"idx: &Vector2D<T>"})," represents the ",(0,i.jsx)(n.em,{children:"indices"})," which we use, we take them by\nreference to avoid an unnecessary copy"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"-> &'a U"})," means that we are returning a ",(0,i.jsx)(n.em,{children:"reference"})," to some value of type ",(0,i.jsx)(n.code,{children:"U"}),".\nNow the question is what does the ",(0,i.jsx)(n.code,{children:"'a"})," mean, we can also see it as a generic\ntype declared along ",(0,i.jsx)(n.code,{children:"T"})," and ",(0,i.jsx)(n.code,{children:"U"}),". And the answer is ",(0,i.jsx)(n.em,{children:"relatively"})," simple, ",(0,i.jsx)(n.code,{children:"'a"}),"\nrepresents a ",(0,i.jsx)(n.em,{children:"lifetime"}),". We take the ",(0,i.jsx)(n.code,{children:"v"})," by a reference and return a reference,\nborrow checker validates all of the ",(0,i.jsx)(n.em,{children:"borrows"})," (or references), so we need to\nspecify that our returned value has ",(0,i.jsx)(n.em,{children:"the same lifetime"})," as the vector we have\ntaken by a reference, i.e. returned reference must live at least as long as the\n",(0,i.jsx)(n.code,{children:"v"}),". This way we can \u201cbe sure\u201d that the returned reference is valid."]}),"\n"]}),"\n",(0,i.jsx)(n.h5,{id:"issues",children:"Issues"}),"\n",(0,i.jsxs)(n.p,{children:["First issue that our implementation has is the fact that we cannot get a mutable\nreference out of that function. This could be easily resolved by introducing new\nfunction, e.g. ",(0,i.jsx)(n.code,{children:"index_mut"}),". Which I have actually done while writing this part:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index_mut<'a, T, U>(v: &'a mut [Vec<U>], idx: &Vector2D<T>) -> &'a mut U\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &mut v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.admonition,{type:"caution",children:[(0,i.jsxs)(n.mdxAdmonitionTitle,{children:[(0,i.jsx)(n.strong,{children:"\xab\u21af\xbb"})," Why can't we use one function?"]}),(0,i.jsxs)(n.p,{children:["When we consider a ",(0,i.jsx)(n.code,{children:"Vec<T>"}),", we don't need to consider containers as ",(0,i.jsx)(n.code,{children:"T"}),", Rust\nimplements indexing as traits ",(0,i.jsx)(n.code,{children:"Index<T>"})," and ",(0,i.jsx)(n.code,{children:"IndexMut<T>"})," that do the dirty work\nbehind syntactic sugar of ",(0,i.jsx)(n.code,{children:"container[idx]"}),"."]}),(0,i.jsxs)(n.p,{children:["However, implementing of traits is not allowed for ",(0,i.jsx)(n.em,{children:"external"})," types, i.e. types\nthat you haven't defined yourself. This means that you can implement indexing\nover containers that you have implemented yourself, but you cannot use your own\ntypes for indexing \u201cbuilt-in\u201d types."]}),(0,i.jsxs)(n.p,{children:["Another part of this rabbit hole is trait ",(0,i.jsx)(n.code,{children:"SliceIndex<T>"})," that is of a relevance\nbecause of"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<T, I> Index<I> for [T]\nwhere\n I: SliceIndex<[T]>\n\nimpl<T, I, A> Index<I> for Vec<T, A>\nwhere\n I: SliceIndex<[T]>,\n A: Allocator\n\nimpl<T, I, const N: usize> Index<I> for [T; N]\nwhere\n [T]: Index<I>\n"})}),(0,i.jsxs)(n.p,{children:["In other words, if your type implements ",(0,i.jsx)(n.code,{children:"SliceIndex<T>"})," trait, it can be used\nfor indexing. As of now, this trait has all of its required methods experimental\nand is marked as ",(0,i.jsx)(n.code,{children:"unsafe"}),"."]})]}),"\n",(0,i.jsxs)(n.p,{children:["Another problem is a requirement for indexing either ",(0,i.jsx)(n.code,{children:"[Vec<T>]"})," or ",(0,i.jsx)(n.code,{children:"Vec<Vec<T>>"}),".\nThis requirement could be countered by removing inner type ",(0,i.jsx)(n.code,{children:"Vec<T>"})," and constraining\nit by a trait ",(0,i.jsx)(n.code,{children:"Index"})," (or ",(0,i.jsx)(n.code,{children:"IndexMut"})," respectively) in a following way"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn index<'a, C, T>(v: &'a [C], idx: &Vector2D<T>) -> &'a C::Output\nwhere\n usize: TryFrom<T>,\n <usize as TryFrom<T>>::Error: Debug,\n T: Copy,\n C: Index<usize>\n{\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\n &v[y][x]\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Given this, we can also give a more meaningful typename for indexing type, such\nas ",(0,i.jsx)(n.code,{children:"I"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"checking-bounds",children:"Checking bounds"}),"\n",(0,i.jsxs)(n.p,{children:["Now we can get to the boundary checks, it is very similar, but a more\u2026 dirty.\nFirst approach that came up was to convert the indices in ",(0,i.jsx)(n.code,{children:"Vector2D"})," to ",(0,i.jsx)(n.code,{children:"usize"}),",\nbut when you add the indices up, e.g. when checking the neighbors, you can end\nup with negative values which, unlike in C++, causes an error (instead of underflow\nthat you can use to your advantage; you can easily guess how)."]}),"\n",(0,i.jsx)(n.p,{children:"So how can we approach this then? Well\u2026 we will convert the bounds instead of\nthe indices and that lead us to:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\nwhere\n usize: TryInto<T>,\n <usize as TryInto<T>>::Error: Debug,\n T: PartialOrd + Copy,\n{\n idx.y >= 0.try_into().unwrap()\n && idx.y < v.len().try_into().unwrap()\n && idx.x >= 0.try_into().unwrap()\n && idx.x\n < v[TryInto::<usize>::try_into(idx.y).unwrap()]\n .len()\n .try_into()\n .unwrap()\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You can tell that it's definitely a shitty code. Let's improve it now! We will\nget back to the original idea, but do it better. We know that we cannot convert\nnegative values into ",(0,i.jsx)(n.code,{children:"usize"}),", ",(0,i.jsx)(n.strong,{children:"but"})," we also know that conversion like that\nreturns a ",(0,i.jsx)(n.code,{children:"Result<T, E>"})," which we can use to our advantage."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\nwhere\n T: Copy,\n usize: TryFrom<T>,\n{\n usize::try_from(idx.y)\n .and_then(|y| usize::try_from(idx.x).map(|x| y < v.len() && x < v[y].len()))\n .unwrap_or(false)\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Result<T, E>"})," is a type similar to ",(0,i.jsx)(n.code,{children:"Either"})," in Haskell and it allows us to chain\nmultiple operations on correct results or propagate the original error without\ndoing anything. Let's dissect it one-by-one."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"try_from"})," is a method implemented in ",(0,i.jsx)(n.code,{children:"TryFrom"})," trait, that allows you to convert\ntypes and either successfully convert them or fail (with a reasonable error). This\nmethod returns ",(0,i.jsx)(n.code,{children:"Result<T, E>"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["We call ",(0,i.jsx)(n.code,{children:"and_then"})," on that ",(0,i.jsx)(n.em,{children:"result"}),", let's have a look at the type signature of\n",(0,i.jsx)(n.code,{children:"and_then"}),", IMO it explains more than enough:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn and_then<U, F>(self, op: F) -> Result<U, E>\nwhere\n F: FnOnce(T) -> Result<U, E>\n"})}),"\n",(0,i.jsx)(n.p,{children:"OK\u2026 So it takes the result and a function and returns another result with\ndifferent value and different error. However we can see that the function, which\nrepresents an operation on a result, takes just the value, i.e. it doesn't care\nabout any previous error. To make it short:"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"and_then"})," allows us to run an operation, which can fail, on the correct result"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["We parsed a ",(0,i.jsx)(n.code,{children:"y"})," index and now we try to convert the ",(0,i.jsx)(n.code,{children:"x"})," index with ",(0,i.jsx)(n.code,{children:"try_from"}),"\nagain, but on that result we use ",(0,i.jsx)(n.code,{children:"map"})," rather than ",(0,i.jsx)(n.code,{children:"and_then"}),", why would that be?"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub fn map<U, F>(self, op: F) -> Result<U, E>\nwhere\n F: FnOnce(T) -> U\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Huh\u2026 ",(0,i.jsx)(n.code,{children:"map"})," performs an operation that ",(0,i.jsx)(n.strong,{children:"cannot"})," fail. And finally we use\n",(0,i.jsx)(n.code,{children:"unwrap_or"})," which takes the value from result, or in case of an error returns the\ndefault that we define."]}),"\n",(0,i.jsxs)(n.p,{children:["How does this work then? If ",(0,i.jsx)(n.code,{children:"y"})," is negative, the conversion fails and the error\npropagates all the way to ",(0,i.jsx)(n.code,{children:"unwrap_or"}),", if ",(0,i.jsx)(n.code,{children:"y"})," can be a correct ",(0,i.jsx)(n.code,{children:"usize"})," value, then\nwe do the same with ",(0,i.jsx)(n.code,{children:"x"}),". If ",(0,i.jsx)(n.code,{children:"x"})," is negative, we propagate the error as with ",(0,i.jsx)(n.code,{children:"y"}),",\nand if it's not, then we check whether it exceeds the higher bounds or not."]}),"\n",(0,i.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Relatively simple, you just need follow the rules and not get too smart, otherwise\nit will get back at you."}),"\n",(0,i.jsx)(n.h2,{id:"day-9-rope-bridge",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/9",children:"Day 9: Rope Bridge"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"We get a rope with knots and we want to track how many different positions are\nvisited with the rope's tail."})}),"\n",(0,i.jsx)(n.p,{children:"By this day, I have come to a conclusion that current skeleton for each day\ngenerates a lot of boilerplate. And even though it can be easily copied, it's\njust a waste of space and unnecessary code. Let's \u201csimplify\u201d this (on one end\nwhile creating monster on the other end). I've gone through what we need in the\npreparations for the AoC. Let's sum up our requirements:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"parsing"}),"\n",(0,i.jsx)(n.li,{children:"part 1 & 2"}),"\n",(0,i.jsx)(n.li,{children:"running on sample / input"}),"\n",(0,i.jsx)(n.li,{children:"tests"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Parsing and implementation of both parts is code that changes each day and we\ncannot do anything about it. However running and testing can be simplified!"}),"\n",(0,i.jsxs)(n.p,{children:["Let's introduce and export a new module ",(0,i.jsx)(n.code,{children:"solution"})," that will take care of all of\nthis. We will start by introducing a trait for each day."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub trait Solution<Input, Output: Display> {\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input;\n\n fn part_1(input: &Input) -> Output;\n fn part_2(input: &Input) -> Output;\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["This does a lot of work for us already, we have defined a trait and for each day\nwe will create a structure representing a specific day. That structure will also\nimplement the ",(0,i.jsx)(n.code,{children:"Solution"})," trait."]}),"\n",(0,i.jsxs)(n.p,{children:["Now we need to get rid of the boilerplate, we can't get rid of the ",(0,i.jsx)(n.code,{children:"main"})," function,\nbut we can at least move out the functionality."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn run(type_of_input: &str) -> Result<()>\nwhere\n Self: Sized,\n{\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = Self::parse_input(format!("{}s/{}.txt", type_of_input, Self::day()));\n\n info!("Part 1: {}", Self::part_1(&input));\n info!("Part 2: {}", Self::part_2(&input));\n\n Ok(())\n}\n\nfn main() -> Result<()>\nwhere\n Self: Sized,\n{\n Self::run("input")\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["This is all part of the ",(0,i.jsx)(n.code,{children:"Solution"})," trait, which can implement methods while being\ndependent on what is provided by the implementing types. In this case, we just\nneed to bound the ",(0,i.jsx)(n.code,{children:"Output"})," type to implement ",(0,i.jsx)(n.code,{children:"Display"})," that is necessary for the\n",(0,i.jsx)(n.code,{children:"info!"})," and format string there."]}),"\n",(0,i.jsxs)(n.p,{children:["Now we can get to first of the nasty things we are going to do\u2026 And it is the\n",(0,i.jsx)(n.code,{children:"day()"})," method that you can see being used when constructing path to the input\nfile. That method will generate a name of the file, e.g. ",(0,i.jsx)(n.code,{children:"day01"})," and we know that\nwe can ",(0,i.jsx)(n.em,{children:"somehow"})," deduce it from the structure name, given we name it reasonably."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn day() -> String {\n let mut day = String::from(type_name::<Self>().split("::").next().unwrap());\n day.make_ascii_lowercase();\n\n day.to_string()\n}\n'})}),"\n",(0,i.jsxs)(n.admonition,{type:"caution",children:[(0,i.jsx)(n.mdxAdmonitionTitle,{children:(0,i.jsx)(n.code,{children:"type_name"})}),(0,i.jsx)(n.p,{children:"This feature is still experimental and considered to be internal, it is not\nadvised to use it any production code."})]}),"\n",(0,i.jsxs)(n.p,{children:["And now we can get to the nastiest stuff ","\ud83d\ude29"," We will ",(0,i.jsx)(n.strong,{children:"generate"})," the tests!"]}),"\n",(0,i.jsx)(n.p,{children:"We want to be able to generate tests for sample input in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"test_sample!(day_01, Day01, 42, 69);\n"})}),"\n",(0,i.jsx)(n.p,{children:"There's not much we can do, so we will write a macro to generate the tests for us."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'#[macro_export]\nmacro_rules! test_sample {\n ($mod_name:ident, $day_struct:tt, $part_1:expr, $part_2:expr) => {\n #[cfg(test)]\n mod $mod_name {\n use super::*;\n\n #[test]\n fn test_part_1() {\n let sample =\n $day_struct::parse_input(&format!("samples/{}.txt", $day_struct::day()));\n assert_eq!($day_struct::part_1(&sample), $part_1);\n }\n\n #[test]\n fn test_part_2() {\n let sample =\n $day_struct::parse_input(&format!("samples/{}.txt", $day_struct::day()));\n assert_eq!($day_struct::part_2(&sample), $part_2);\n }\n }\n };\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["We have used it in a similar way as macros in C/C++, one of the things that we\ncan use to our advantage is defining \u201ctype\u201d of the parameters for the macro. All\nparameters have their name prefixed with ",(0,i.jsx)(n.code,{children:"$"})," sign and you can define various \u201cforms\u201d\nof your macro. Let's go through it!"]}),"\n",(0,i.jsx)(n.p,{children:"We have following parameters:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$mod_name"})," which represents the name for the module with tests, it is typed\nwith ",(0,i.jsx)(n.code,{children:"ident"})," which means that we want a valid identifier to be passed in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$day_struct"})," represents the structure that will be used for tests, it is typed\nwith ",(0,i.jsx)(n.code,{children:"tt"})," which represents a ",(0,i.jsx)(n.em,{children:"token tree"}),", in our case it is a type."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"$part_X"})," represents the expected output for the ",(0,i.jsx)(n.code,{children:"X"}),"th part and is of type ",(0,i.jsx)(n.code,{children:"expr"}),"\nwhich literally means an ",(0,i.jsx)(n.em,{children:"expression"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Apart from that we need to use ",(0,i.jsx)(n.code,{children:"#[macro_export]"})," to mark the macro as exported\nfor usage outside of the module. Now our skeleton looks like:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'use aoc_2022::*;\n\ntype Input = String;\ntype Output = String;\n\nstruct DayXX;\nimpl Solution<Input, Output> for DayXX {\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\n file_to_string(pathname)\n }\n\n fn part_1(input: &Input) -> Output {\n todo!()\n }\n\n fn part_2(input: &Input) -> Output {\n todo!()\n }\n}\n\nfn main() -> Result<()> {\n // DayXX::run("sample")\n DayXX::main()\n}\n\n// test_sample!(day_XX, DayXX, , );\n'})}),"\n",(0,i.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Not much to talk about, it is relatively easy to simulate."}),"\n",(0,i.jsx)(n.h2,{id:"day-10-cathode-ray-tube",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/10",children:"Day 10: Cathode-Ray Tube"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Emulating basic arithmetic operations on a CPU and drawing on CRT based on the\nCPU's accumulator."})}),"\n",(0,i.jsxs)(n.p,{children:["In this day I have discovered an issue with my design of the ",(0,i.jsx)(n.code,{children:"Solution"})," trait.\nAnd the issue is caused by different types of ",(0,i.jsx)(n.code,{children:"Output"})," for the part 1 and part 2."]}),"\n",(0,i.jsx)(n.p,{children:"Problem is relatively simple and consists of simulating a CPU, I have approached\nit in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn evaluate_instructions(instructions: &[Instruction], mut out: Output) -> Output {\n instructions\n .iter()\n .fold(State::new(), |state, instruction| {\n state.execute(instruction, &mut out)\n });\n\n out\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We just take the instructions, we have some state of the CPU and we execute the\ninstructions one-by-one. Perfect usage of the ",(0,i.jsx)(n.code,{children:"fold"})," (or ",(0,i.jsx)(n.code,{children:"reduce"})," as you may know\nit from other languages)."]}),"\n",(0,i.jsxs)(n.p,{children:["You can also see that we have an ",(0,i.jsx)(n.code,{children:"Output"})," type, so the question is how can we fix\nthat problem. And the answer is very simple and ",(0,i.jsx)(n.em,{children:"functional"}),". Rust allows you to\nhave an ",(0,i.jsx)(n.code,{children:"enumeration"})," that can ",(0,i.jsx)(n.em,{children:"bear"})," some other values apart from the type itself."]}),"\n",(0,i.jsxs)(n.admonition,{type:"tip",children:[(0,i.jsxs)(n.p,{children:["We could've seen something like this with the ",(0,i.jsx)(n.code,{children:"Result<T, E>"})," type that can be\ndefined as"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"enum Result<T, E> {\n Ok(T),\n Err(E)\n}\n"})}),(0,i.jsx)(n.h6,{id:"what-does-that-mean-though",children:"What does that mean though?"}),(0,i.jsxs)(n.p,{children:["When we have an ",(0,i.jsx)(n.code,{children:"Ok"})," value, it has the result itself, and when we get an ",(0,i.jsx)(n.code,{children:"Err"}),"\nvalue, it has the error. This also allows us to handle ",(0,i.jsx)(n.em,{children:"results"})," in a rather\npretty way:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'match do_something(x) {\n Ok(y) => {\n println!("SUCCESS: {}", y);\n },\n Err(y) => {\n eprintln!("ERROR: {}", y);\n }\n}\n'})})]}),"\n",(0,i.jsx)(n.p,{children:"My solution has a following outline:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn execute(&self, i: &Instruction, output: &mut Output) -> State {\n // execute the instruction\n\n // collect results if necessary\n match output {\n Output::Part1(x) => self.execute_part_1(y, x),\n Output::Part2(x) => self.execute_part_2(y, x),\n }\n\n // return the obtained state\n new_state\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["You might think that it's a perfectly reasonable thing to do. Yes, ",(0,i.jsx)(n.strong,{children:"but"})," notice\nthat the ",(0,i.jsx)(n.code,{children:"match"})," statement doesn't ",(0,i.jsx)(n.em,{children:"collect"})," the changes in any way and also we\npass ",(0,i.jsx)(n.code,{children:"output"})," by ",(0,i.jsx)(n.code,{children:"&mut"}),", so it is shared across each ",(0,i.jsx)(n.em,{children:"iteration"})," of the ",(0,i.jsx)(n.code,{children:"fold"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The dirty and ingenious thing is that ",(0,i.jsx)(n.code,{children:"x"}),"s are passed by ",(0,i.jsx)(n.code,{children:"&mut"})," too and therefore\nthey are directly modified by the helper functions. To sum it up and let it sit"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["We are ",(0,i.jsx)(n.strong,{children:"collecting"})," the result ",(0,i.jsx)(n.strong,{children:"into"})," an ",(0,i.jsx)(n.strong,{children:"enumeration"})," that is ",(0,i.jsx)(n.strong,{children:"shared"}),"\nacross ",(0,i.jsx)(n.strong,{children:"all"})," iterations of ",(0,i.jsx)(n.code,{children:"fold"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Similar to ",(0,i.jsx)(n.em,{children:"Day 9"}),", but there are some technical details that can get you."]}),"\n",(0,i.jsx)(n.h2,{id:"day-11-monkey-in-the-middle",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/11",children:"Day 11: Monkey in the Middle"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulation of monkeys throwing stuff around and measuring your stress levels\nwhile your stuff is being passed around."})}),"\n",(0,i.jsx)(n.p,{children:"I think I decided to use regular expressions here for the first time, cause\nparsing the input was a pain."}),"\n",(0,i.jsx)(n.p,{children:"Also I didn't expect to implement Euclidean algorithm in Rust\u2026"}),"\n",(0,i.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Again, we're just running a simulation. Though I must admit it was very easy to\nmake a small technical mistakes that could affect the final results very late."}),"\n",(0,i.jsx)(n.h2,{id:"day-12-hill-climbing-algorithm",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/12",children:"Day 12: Hill Climbing Algorithm"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Finding shortest path up the hill and also shortest path down to the ground while\nalso rolling down the hill\u2026"})}),"\n",(0,i.jsxs)(n.p,{children:["As I have said in the ",(0,i.jsx)(n.em,{children:"tl;dr"}),", we are looking for the shortest path, but the start\nand goal differ for the part 1 and 2. So I have decided to refactor my solution\nto a BFS algorithm that takes necessary parameters via functions:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn bfs<F, G>(\n graph: &[Vec<char>], start: &Position, has_edge: F, is_target: G\n) -> Option<usize>\nwhere\n F: Fn(&[Vec<char>], &Position, &Position) -> bool,\n G: Fn(&[Vec<char>], &Position) -> bool\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We pass the initial vertex from the caller and everything else is left to the BFS\nalgorithm, based on the ",(0,i.jsx)(n.code,{children:"has_edge"})," and ",(0,i.jsx)(n.code,{children:"is_target"})," functions."]}),"\n",(0,i.jsxs)(n.p,{children:["This was easy! And that is not very usual in Rust once you want to pass around\nfunctions. ","\ud83d\udc40"]}),"\n",(0,i.jsx)(n.h3,{id:"solution-4",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Looking for the shortest path\u2026 Must be Dijkstra, right? ",(0,i.jsx)(n.strong,{children:"Nope!"})," Half of the\nReddit got jebaited though. In all fairness, nothing stops you from implementing\nthe Dijkstra's algorithm for finding the shortest path, ",(0,i.jsx)(n.strong,{children:"but"})," if you know that\nall connected vertices are in a unit (actually ",(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsxs)(n.mrow,{children:[(0,i.jsx)(n.mi,{children:"d"}),(0,i.jsx)(n.mo,{children:"="}),(0,i.jsx)(n.mn,{children:"1"})]}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"d = 1"})]})})}),(0,i.jsxs)(n.span,{className:"katex-html","aria-hidden":"true",children:[(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.6944em"}}),(0,i.jsx)(n.span,{className:"mord mathnormal",children:"d"}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,i.jsx)(n.span,{className:"mrel",children:"="}),(0,i.jsx)(n.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.6444em"}}),(0,i.jsx)(n.span,{className:"mord",children:"1"})]})]})]}),") distance from each other,\nthen you know that running Dijkstra is equivalent to running BFS, only with worse\ntime complexity, because of the priority heap instead of the queue."]}),"\n",(0,i.jsx)(n.h2,{id:"day-13-distress-signal",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/13",children:"Day 13: Distress Signal"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Processing packets with structured data from the distress signal."})}),"\n",(0,i.jsxs)(n.p,{children:["You can implement a lot of traits if you want to. It is ",(0,i.jsx)(n.em,{children:"imperative"})," to implement\nordering on the packets. I had a typo, so I also proceeded to implement a ",(0,i.jsx)(n.code,{children:"Display"}),"\ntrait for debugging purposes:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'impl Display for Packet {\n fn fmt(&self, f: &mut std::fmt::Formatter<\'_>) -> std::fmt::Result {\n match self {\n Packet::Integer(x) => write!(f, "{x}"),\n Packet::List(lst) => write!(f, "[{}]", lst.iter().map(|p| format!("{p}")).join(",")),\n }\n }\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"solution-5",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"A lot of technical details\u2026 Parsing is nasty too\u2026"}),"\n",(0,i.jsx)(n.h2,{id:"day-14-regolith-reservoir",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/14",children:"Day 14: Regolith Reservoir"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Let's simulate falling sand grain-by-grain."})}),"\n",(0,i.jsxs)(n.p,{children:["Again, both parts are relatively similar with minimal changes, so it is a good\nidea to refactor it a bit. Similar approach to the ",(0,i.jsx)(n.a,{href:"#day-12-hill-climbing-algorithm",children:"BFS above"}),". Also this is the\nfirst day where I ran into efficiency issues and had to redo my solution to speed\nit up just a bit."]}),"\n",(0,i.jsx)(n.h3,{id:"solution-6",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"Tedious."}),"\n",(0,i.jsx)(n.h2,{id:"post-mortem",children:"Post Mortem"}),"\n",(0,i.jsx)(n.h3,{id:"indexing",children:"Indexing"}),"\n",(0,i.jsxs)(n.p,{children:["I was asked about the indexing after publishing the blog. And truly it is rather\ncomplicated topic, especially after releasing ",(0,i.jsx)(n.code,{children:"SliceIndex<I>"})," trait. I couldn't\nleave it be, so I tried to implement the ",(0,i.jsx)(n.code,{children:"Index"})," and ",(0,i.jsx)(n.code,{children:"IndexMut"})," trait."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["I have also mentioned that the ",(0,i.jsx)(n.code,{children:"SliceIndex"})," trait is ",(0,i.jsx)(n.code,{children:"unsafe"}),", but truth be told,\nonly ",(0,i.jsx)(n.em,{children:"unsafe"})," part are the 2 methods that are named ",(0,i.jsx)(n.code,{children:"*unchecked*"}),". Anyways, I will\nbe implementing the ",(0,i.jsx)(n.code,{children:"Index*"})," traits for now, rather than the ",(0,i.jsx)(n.code,{children:"SliceIndex"}),"."]})}),"\n",(0,i.jsx)(n.p,{children:"It's relatively straightforward\u2026"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl<I, C> Index<Vector2D<I>> for [C]\nwhere\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: Index<usize>,\n{\n type Output = C::Output;\n\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &self[y][x]\n }\n}\n\nimpl<I, C> IndexMut<Vector2D<I>> for [C]\nwhere\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: IndexMut<usize>,\n{\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &mut self[y][x]\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["We can see a lot of similarities to the implementation of ",(0,i.jsx)(n.code,{children:"index"})," and ",(0,i.jsx)(n.code,{children:"index_mut"}),"\nfunctions. In the end, they are 1:1, just wrapped in the trait that provides a\nsyntax sugar for ",(0,i.jsx)(n.code,{children:"container[idx]"}),"."]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsxs)(n.p,{children:["I have also switched from using the ",(0,i.jsx)(n.code,{children:"TryFrom"})," to ",(0,i.jsx)(n.code,{children:"TryInto"})," trait, since it better\nmatches what we are using, the ",(0,i.jsx)(n.code,{children:".try_into"})," rather than ",(0,i.jsx)(n.code,{children:"usize::try_from"}),"."]}),(0,i.jsxs)(n.p,{children:["Also implementing ",(0,i.jsx)(n.code,{children:"TryFrom"})," automatically provides you with a ",(0,i.jsx)(n.code,{children:"TryInto"})," trait,\nsince it is relatively easy to implement. Just compare the following:"]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub trait TryFrom<T>: Sized {\n type Error;\n\n fn try_from(value: T) -> Result<Self, Self::Error>;\n}\n\npub trait TryInto<T>: Sized {\n type Error;\n\n fn try_into(self) -> Result<T, Self::Error>;\n}\n"})})]}),"\n",(0,i.jsxs)(n.p,{children:["OK, so we have our trait implemented, we should be able to use ",(0,i.jsx)(n.code,{children:"container[index]"}),",\nright? Yes\u2026 but actually no ","\ud83d\ude26"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"error[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\n --\x3e src/bin/day08.rs:26:18\n |\n26 | if trees[pos] > tallest {\n | ^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\n\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\n --\x3e src/bin/day08.rs:30:28\n |\n30 | max(tallest, trees[pos])\n | ^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\n\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<isize>`\n --\x3e src/bin/day08.rs:52:28\n |\n52 | let max_height = trees[position];\n | ^^^^^^^^ slice indices are of type `usize` or ranges of `usize`\n |\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<isize>`\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<isize>>`\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Why? We have it implemented for the slices (",(0,i.jsx)(n.code,{children:"[C]"}),"), why doesn't it work? Well,\nthe fun part consists of the fact that in other place, where we were using it,\nwe were passing the ",(0,i.jsx)(n.code,{children:"&[Vec<T>]"}),", but this is coming from a helper functions that\ntake ",(0,i.jsx)(n.code,{children:"&Vec<Vec<T>>"})," instead. And\u2026 we don't implement ",(0,i.jsx)(n.code,{children:"Index"})," and ",(0,i.jsx)(n.code,{children:"IndexMut"})," for\nthose. Just for the slices. ","\ud83e\udd2f"," ",(0,i.jsx)(n.em,{children:"What are we going to do about it?"})]}),"\n",(0,i.jsxs)(n.p,{children:["We can either start copy-pasting or be smarter about it\u2026 I choose to be smarter,\nso let's implement a macro! The only difference across the implementations are\nthe types of the outer containers. Implementation doesn't differ ",(0,i.jsx)(n.strong,{children:"at all"}),"!"]}),"\n",(0,i.jsx)(n.p,{children:"Implementing the macro can be done in a following way:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"macro_rules! generate_indices {\n ($container:ty) => {\n impl<I, C> Index<Vector2D<I>> for $container\n where\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: Index<usize>,\n {\n type Output = C::Output;\n\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &self[y][x]\n }\n }\n\n impl<I, C> IndexMut<Vector2D<I>> for $container\n where\n I: Copy + TryInto<usize>,\n <I as TryInto<usize>>::Error: Debug,\n C: IndexMut<usize>,\n {\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\n let (x, y): (usize, usize) =\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\n &mut self[y][x]\n }\n }\n };\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"And now we can simply do"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"generate_indices!(VecDeque<C>);\ngenerate_indices!([C]);\ngenerate_indices!(Vec<C>);\n// generate_indices!([C; N], const N: usize);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The last type (I took the inspiration from the implementations of the ",(0,i.jsx)(n.code,{children:"Index"})," and\n",(0,i.jsx)(n.code,{children:"IndexMut"})," traits) is a bit problematic, because of the ",(0,i.jsx)(n.code,{children:"const N: usize"})," part,\nwhich I haven't managed to be able to parse. And that's how I got rid of the error."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["If I were to use 2D-indexing over ",(0,i.jsx)(n.code,{children:"[C; N]"})," slices, I'd probably just go with the\ncopy-paste, cause the cost of this \u201cmonstrosity\u201d outweighs the benefits of no DRY."]})}),"\n",(0,i.jsx)(n.h4,{id:"cause-of-the-problem",children:"Cause of the problem"}),"\n",(0,i.jsxs)(n.p,{children:["This issue is relatively funny. If you don't use any type aliases, just the raw\ntypes, you'll get suggested certain changes by the ",(0,i.jsx)(n.em,{children:"clippy"}),". For example if you\nconsider the following piece of code"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:'fn get_sum(nums: &Vec<i32>) -> i32 {\n nums.iter().sum()\n}\n\nfn main() {\n let nums = vec![1, 2, 3];\n println!("Sum: {}", get_sum(&nums));\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["and you run ",(0,i.jsx)(n.em,{children:"clippy"})," on it, you will get"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'Checking playground v0.0.1 (/playground)\nwarning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do\n --\x3e src/main.rs:1:18\n |\n1 | fn get_sum(nums: &Vec<i32>) -> i32 {\n | ^^^^^^^^^ help: change this to: `&[i32]`\n |\n = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg\n = note: `#[warn(clippy::ptr_arg)]` on by default\n\nwarning: `playground` (bin "playground") generated 1 warning\n Finished dev [unoptimized + debuginfo] target(s) in 0.61s\n'})}),"\n",(0,i.jsx)(n.p,{children:"However, if you introduce a type alias, such as"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"type Numbers = Vec<i32>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Then ",(0,i.jsx)(n.em,{children:"clippy"})," won't say anything, cause there is literally nothing to suggest.\nHowever the outcome is not the same\u2026"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var i=t(7294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3da4b779.1354e52a.js b/assets/js/3da4b779.1354e52a.js new file mode 100644 index 0000000..bb12bc2 --- /dev/null +++ b/assets/js/3da4b779.1354e52a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2177],{28737:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=t(85893),s=t(11151);const o={title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,r={permalink:"/blog/aoc-2022/4th-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md",source:"@site/blog/aoc-2022/04-week-4.md",title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:15.175,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"How can Copr help with broken dependencies",permalink:"/blog/2023/08/02/copr"},nextItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"}},l={authorsImageUrls:[void 0]},d=[{value:"Day 22: Monkey Map",id:"day-22-monkey-map",level:2},{value:"Solution",id:"solution",level:3},{value:"Column iterator",id:"column-iterator",level:4},{value:"Walking around the map",id:"walking-around-the-map",level:4},{value:"Problems",id:"problems",level:4},{value:"Clippy",id:"clippy",level:4},{value:"Day 23: Unstable Diffusion",id:"day-23-unstable-diffusion",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 24: Blizzard Basin",id:"day-24-blizzard-basin",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Breakdown",id:"breakdown",level:4},{value:"Evaluating the blizzards",id:"evaluating-the-blizzards",level:4},{value:"Shortest-path algorithm",id:"shortest-path-algorithm",level:4},{value:"Min-heap",id:"min-heap",level:4},{value:"Day 25: Full of Hot Air",id:"day-25-full-of-hot-air",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Converting from <code>&str</code>",id:"converting-from-str",level:4},{value:"Converting to <code>String</code>",id:"converting-to-string",level:4},{value:"Adjusting the code",id:"adjusting-the-code",level:4},{value:"Summary",id:"summary",level:2},{value:"Advent of Code",id:"advent-of-code",level:3},{value:"with Rust",id:"with-rust",level:3}];function h(e){const n={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",math:"math",mi:"mi",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Let's go through the fourth week of ",(0,i.jsx)(n.a,{href:"https://adventofcode.com",children:(0,i.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(n.h2,{id:"day-22-monkey-map",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/22",children:"Day 22: Monkey Map"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulating a movement on a 2D map with given instructions. Map becomes a cube in\nthe 2nd part\u2026"})}),"\n",(0,i.jsx)(n.admonition,{title:"Rant",type:"caution",children:(0,i.jsx)(n.p,{children:"This was the most obnoxious problem of this year\u2026 and a lot of Rust issues have\nbeen hit."})}),"\n",(0,i.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"It seems like a very simple problem to solve, but with very obnoxious changes in\nthe 2nd part and also it's relatively hard to decompose \xbbproperly\xab."}),"\n",(0,i.jsx)(n.h4,{id:"column-iterator",children:"Column iterator"}),"\n",(0,i.jsxs)(n.p,{children:["In the first part of the problem it was needed to know the boundaries of each\nrow and column, since I stored them in ",(0,i.jsx)(n.code,{children:"Vec<Vec<char>>"})," and padded with spaces\nto ensure I have a rectangular 2D \u201carray\u201d. However when you wanted to go through\neach row and column to determine the boundaries, it was very easy to do for the\nrows (cause each row is a ",(0,i.jsx)(n.code,{children:"Vec"})," element), but not for the columns, since they\nspan multiple rows."]}),"\n",(0,i.jsxs)(n.p,{children:["For this use case I have implemented my own ",(0,i.jsx)(n.em,{children:"column iterator"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub struct ColumnIterator<'a, T> {\n map: &'a [Vec<T>],\n column: usize,\n\n i: usize,\n}\n\nimpl<'a, T> ColumnIterator<'a, T> {\n pub fn new(map: &'a [Vec<T>], column: usize) -> ColumnIterator<'a, T> {\n Self { map, column, i: 0 }\n }\n}\n\nimpl<'a, T> Iterator for ColumnIterator<'a, T> {\n type Item = &'a T;\n\n fn next(&mut self) -> Option<Self::Item> {\n if self.i >= self.map.len() {\n return None;\n }\n\n self.i += 1;\n Some(&self.map[self.i - 1][self.column])\n }\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Given this piece of an iterator, it is very easy to factor out the common\nfunctionality between the rows and columns into:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let mut find_boundaries = |constructor: fn(usize) -> Orientation,\n iterator: &mut dyn Iterator<Item = &char>,\n upper_bound,\n i| {\n let mut first_non_empty = iterator.enumerate().skip_while(|&(_, &c)| c == ' ');\n let start = first_non_empty.next().unwrap().0 as isize;\n\n let mut last_non_empty = first_non_empty.skip_while(|&(_, &c)| c != ' ');\n let end = last_non_empty.next().unwrap_or((upper_bound, &'_')).0 as isize;\n\n boundaries.insert(constructor(i), start..end);\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"And then use it as such:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"// construct all horizontal boundaries\n(0..map.len()).for_each(|row| {\n find_boundaries(\n Orientation::horizontal,\n &mut map[row].iter(),\n map[row].len(),\n row,\n );\n});\n\n// construct all vertical boundaries\n(0..map[0].len()).for_each(|col| {\n find_boundaries(\n Orientation::vertical,\n &mut ColumnIterator::new(&map, col),\n map.len(),\n col,\n );\n});\n"})}),"\n",(0,i.jsx)(n.h4,{id:"walking-around-the-map",children:"Walking around the map"}),"\n",(0,i.jsxs)(n.p,{children:["Once the 2nd part got introduced, you start to think about a way how not to\ncopy-paste a lot of stuff (I haven't avoided it anyways\u2026). In this problem, I've\nchosen to introduce a trait (i.e. ",(0,i.jsx)(n.em,{children:"interface"}),") for 2D and 3D walker."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"trait Wrap: Clone {\n type State;\n\n // simulation\n fn is_blocked(&self) -> bool;\n fn step(&mut self, steps: isize);\n fn turn_left(&mut self);\n fn turn_right(&mut self);\n\n // movement\n fn next(&self) -> (Self::State, Direction);\n\n // final answer\n fn answer(&self) -> Output;\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Each walker maintains its own state and also provides the functions that are\nused during the simulation. The \u201cpromised\u201d methods are separated into:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"simulation"}),"-related: that are used during the simulation from the ",(0,i.jsx)(n.code,{children:".fold()"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"movement"}),"-related: just a one method that holds most of the logic differences\nbetween 2D and 3D"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"final answer"}),": which extracts the ",(0,i.jsx)(n.em,{children:"proof of solution"})," from the\nimplementation-specific walker"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Both 2D and 3D versions borrow the original input and therefore you must\nannotate the lifetime of it:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"struct Wrap2D<'a> {\n input: &'a Input,\n position: Position,\n direction: Direction,\n}\nimpl<'a> Wrap2D<'a> {\n fn new(input: &'a Input) -> Wrap2D<'a> {\n// \u2026\n"})}),"\n",(0,i.jsx)(n.h4,{id:"problems",children:"Problems"}),"\n",(0,i.jsx)(n.p,{children:"I have used a lot of closures for this problem and once I introduced a parameter\nthat was of unknown type (apart from the fact it implements a specific trait), I\ngot suggested a \u201cfix\u201d for the compilation error that resulted in something that\nwas not possible to parse, cause it, more than likely, violated the grammar."}),"\n",(0,i.jsxs)(n.p,{children:["In a similar fashion, I have been suggested changes that led to a code that\ndidn't make sense by just looking at it (there was no need to try the changes),\nfor example one suggested change in the closure parameter caused disapperance of\nthe parameter name. ","\ud83d\ude04"]}),"\n",(0,i.jsx)(n.h4,{id:"clippy",children:"Clippy"}),"\n",(0,i.jsx)(n.p,{children:"I have to admit that Clippy was rather helpful here, I'll include two examples\nof rather smart suggestions."}),"\n",(0,i.jsxs)(n.p,{children:["When writing the parsing for this problem, the first thing I have spotted on the\n",(0,i.jsx)(n.code,{children:"char"})," was the ",(0,i.jsx)(n.code,{children:".is_digit()"})," function that takes a radix as a parameter. Clippy\nnoticed that I use ",(0,i.jsx)(n.code,{children:"radix = 10"})," and suggested switching to ",(0,i.jsx)(n.code,{children:".is_ascii_digit()"}),"\nthat does exactly the same thing:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- .take_while(|c| c.is_digit(10))\n+ .take_while(|c| c.is_ascii_digit())\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Another useful suggestion appeared when working with the iterators and I wanted\nto get the ",(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsx)(n.mrow,{children:(0,i.jsx)(n.mi,{children:"n"})}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,i.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.4306em"}}),(0,i.jsx)(n.span,{className:"mord mathnormal",children:"n"})]})})]}),"-th element from it. You know the ",(0,i.jsx)(n.code,{children:".skip()"}),", you know the\n",(0,i.jsx)(n.code,{children:".next()"}),", just \u201cslap\u201d them together and we're done for ","\ud83d\ude01"," Well, I got\nsuggested to use ",(0,i.jsx)(n.code,{children:".nth()"})," that does exactly the combination of the two mentioned\nmethods on iterators:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- match it.clone().skip(skip).next().unwrap() {\n+ match it.clone().nth(skip).unwrap() {\n"})}),"\n",(0,i.jsx)(n.h2,{id:"day-23-unstable-diffusion",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/23",children:"Day 23: Unstable Diffusion"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulating movement of elves around with a set of specific rules."})}),"\n",(0,i.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["There's not much to mention since it's just a cellular automaton simulation\n(even though the AoC rules for cellular automatons usually get out of hand\n","\ud83d\ude09",")."]}),"\n",(0,i.jsx)(n.p,{children:"Although I had a need to determine boundaries of the elves' positions and ended\nup with a nasty DRY violation. Knowing that you you're looking for maximum and\nminimum that are, of course, exactly the same except for initial values and\ncomparators, it looks like a rather simple fix, but typing in Rust is something\nelse, right? In the end I settled for a function that computes both boundaries\nwithout any duplication while using a closure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn get_bounds(positions: &Input) -> (Vector2D<isize>, Vector2D<isize>) {\n let f = |init, cmp: &dyn Fn(isize, isize) -> isize| {\n positions\n .iter()\n .fold(Vector2D::new(init, init), |acc, elf| {\n Vector2D::new(cmp(acc.x(), elf.x()), cmp(acc.y(), elf.y()))\n })\n };\n\n (f(isize::MAX, &min::<isize>), f(isize::MIN, &max::<isize>))\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"This function returns a pair of 2D vectors that represent opposite points of the\nbounding rectangle of all elves."}),"\n",(0,i.jsxs)(n.p,{children:["You might ask why would we need a closure and the answer is that ",(0,i.jsx)(n.code,{children:"positions"}),"\ncannot be captured from within the nested function, only via closure. One more\nfun fact on top of that is the type of the comparator"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"&dyn Fn(isize, isize) -> isize\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Once we remove the ",(0,i.jsx)(n.code,{children:"dyn"})," keyword, compiler yells at us and also includes a way\nhow to get a more thorough explanation of the error by running"]}),"\n",(0,i.jsx)(n.p,{children:"$ rustc --explain E0782"}),"\n",(0,i.jsx)(n.p,{children:"which shows us"}),"\n",(0,i.jsxs)(n.p,{children:["Trait objects must include the ",(0,i.jsx)(n.code,{children:"dyn"})," keyword."]}),"\n",(0,i.jsx)(n.p,{children:"Erroneous code example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"trait Foo {}\nfn test(arg: Box<Foo>) {} // error!\n"})}),"\n",(0,i.jsx)(n.p,{children:"Trait objects are a way to call methods on types that are not known until\nruntime but conform to some trait."}),"\n",(0,i.jsxs)(n.p,{children:["Trait objects should be formed with ",(0,i.jsx)(n.code,{children:"Box<dyn Foo>"}),", but in the code above\n",(0,i.jsx)(n.code,{children:"dyn"})," is left off."]}),"\n",(0,i.jsxs)(n.p,{children:["This makes it harder to see that ",(0,i.jsx)(n.code,{children:"arg"})," is a trait object and not a\nsimply a heap allocated type called ",(0,i.jsx)(n.code,{children:"Foo"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["To fix this issue, add ",(0,i.jsx)(n.code,{children:"dyn"})," before the trait name."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"trait Foo {}\nfn test(arg: Box<dyn Foo>) {} // ok!\n"})}),"\n",(0,i.jsx)(n.p,{children:"This used to be allowed before edition 2021, but is now an error."}),"\n",(0,i.jsxs)(n.admonition,{title:"Rant",type:"danger",children:[(0,i.jsxs)(n.p,{children:["Not all of the explanations are helpful though, in some cases they might be even\nmore confusing than helpful, since they address ",(0,i.jsx)(n.em,{children:"very simple"})," use cases."]}),(0,i.jsx)(n.p,{children:"As you can see, even in this case there are two sides to the explanations:"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["it explains why you need to use ",(0,i.jsx)(n.code,{children:"dyn"}),", but"]}),"\n",(0,i.jsxs)(n.li,{children:["it still mentions that trait objects need to be heap-allocated via ",(0,i.jsx)(n.code,{children:"Box<T>"}),"\nthat, as you can see in my snippet, ",(0,i.jsx)(n.strong,{children:"does not"})," apply here ","\ud83d\ude04"," IMO it's\ncaused by the fact that we are borrowing it and therefore we don't need to\ncare about the size or whereabouts of it."]}),"\n"]})]}),"\n",(0,i.jsxs)(n.admonition,{title:"C++ parallel",type:"info",children:[(0,i.jsxs)(n.p,{children:["If you dive into the explanation above, you can notice that the ",(0,i.jsx)(n.code,{children:"Box<dyn Trait>"}),"\npattern is very helpful for using types that are not known during compile-time.\nYou would use a very similar approach in C++ when parsing some data structure\nfrom input (let's say JSON for example)."]}),(0,i.jsxs)(n.p,{children:["On the other hand, in this case, it doesn't really make much sense, cause you\ncan clearly see that the types ",(0,i.jsx)(n.strong,{children:"are known"})," during the compile-time, which in\nC++ could be easily resolved by templating the helper function."]})]}),"\n",(0,i.jsx)(n.h2,{id:"day-24-blizzard-basin",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/24",children:"Day 24: Blizzard Basin"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Navigating your way through a basin with series of blizzards that move around\nyou as you move."})}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["It's second to last day and I went \u201c",(0,i.jsx)(n.em,{children:"bonkers"}),"\u201d on the Rust ","\ud83d\ude04"," Proceed to\nread ",(0,i.jsx)(n.em,{children:"Solution"})," part on your own risk."]})}),"\n",(0,i.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"You are given a map with blizzards all over the place and you're supposed to\nfind the minimum time it requires you to walk through the basin without getting\nin any of the blizzards."}),"\n",(0,i.jsx)(n.h4,{id:"breakdown",children:"Breakdown"}),"\n",(0,i.jsxs)(n.p,{children:["Relatively simple, yet a bit annoying, approach can be taken. It's technically\na shortest-path algorithm implementation with some relaxation restrictions and\nbeing able to stay on one position for some time, so each ",(0,i.jsx)(n.em,{children:"vertex"})," of the graph\nis determined by the position on the map and the ",(0,i.jsx)(n.em,{children:"timestamp"}),". I have chosen to\nuse ",(0,i.jsx)(n.code,{children:"Vector3D<usize>"}),", since ",(0,i.jsx)(n.code,{children:"x"})," and ",(0,i.jsx)(n.code,{children:"y"})," attributes can be used for the position\nand, well, let's use ",(0,i.jsx)(n.code,{children:"z"})," for a timestamp, cause why not, right? ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.h4,{id:"evaluating-the-blizzards",children:"Evaluating the blizzards"}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"I think that this is the most perverted abuse of the traits in the whole 4 weeks\nof AoC in Rust\u2026"})}),"\n",(0,i.jsxs)(n.p,{children:["The blizzards move along their respective directions in time and loop around in\ntheir respective row/column. Each vertex holds position ",(0,i.jsx)(n.strong,{children:"and"})," time, so we can\n",(0,i.jsx)(n.em,{children:"just"})," index the basin with the vertex itself, right? Yes, we can ","\ud83d\ude08"]}),"\n",(0,i.jsx)(n.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(n.p,{children:"While writing this part, I've recognized unnecessary verbosity in the code and\ncleaned it up a bit. The changed version is shown here and the original was just\nmore verbose."})}),"\n",(0,i.jsxs)(n.p,{children:["I'll skip the boring parts of checking bounds and entry/exit of the basin ","\ud83d\ude09","\nWe can easily calculate positions of the blizzards using a modular arithmetics:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl Index<Position> for Basin {\n type Output = char;\n\n fn index(&self, index: Position) -> &Self::Output {\n // \u2039skipped boring parts\u203a\n\n // We need to account for the loops of the blizzards\n let width = self.cols - 2;\n let height = self.rows - 2;\n\n let blizzard_origin = |size, d, t, i| ((i - 1 + size + d * (t % size)) % size + 1) as usize;\n [\n (\n index.y() as usize,\n blizzard_origin(width, -1, index.z(), index.x()),\n '>',\n ),\n (\n index.y() as usize,\n blizzard_origin(width, 1, index.z(), index.x()),\n '<',\n ),\n (\n blizzard_origin(height, -1, index.z(), index.y()),\n index.x() as usize,\n 'v',\n ),\n (\n blizzard_origin(height, 1, index.z(), index.y()),\n index.x() as usize,\n '^',\n ),\n ]\n .iter()\n .find_map(|&(y, x, direction)| {\n if self.map[y][x] == direction {\n Some(&self.map[y][x])\n } else {\n None\n }\n })\n .unwrap_or(&'.')\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["As you can see, there is an expression for calculating the original position and\nit's used multiple times, so why not take it out to a lambda, right? ","\ud83d\ude09"]}),"\n",(0,i.jsxs)(n.p,{children:["I couldn't get the ",(0,i.jsx)(n.code,{children:"rustfmt"})," to format the ",(0,i.jsx)(n.code,{children:"for"}),"-loop nicely, so I've just\ndecided to go with iterating over an elements of a slice. I have used, once\nagain, a combination of two functions (",(0,i.jsx)(n.code,{children:"find_map"})," in this case) to do 2 things\nat once and at the end, if we haven't found any blizzard, we just return the\nempty space."]}),"\n",(0,i.jsxs)(n.p,{children:["I think it's a very ",(0,i.jsx)(n.em,{children:"nice"})," (and naughty) way how to use the ",(0,i.jsx)(n.code,{children:"Index"})," trait, don't\nyou think?"]}),"\n",(0,i.jsx)(n.h4,{id:"shortest-path-algorithm",children:"Shortest-path algorithm"}),"\n",(0,i.jsxs)(n.p,{children:["For the shortest path you can choose and adjust any of the common shortest-path\nalgorithms, in my case, I have decided to use ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/A*_search_algorithm",children:(0,i.jsx)(n.em,{children:"A*"})})," instead of Dijkstra's\nalgorithm, since it better reflects the ",(0,i.jsx)(n.em,{children:"cost"})," function."]}),"\n",(0,i.jsxs)(n.admonition,{title:"Comparison of costs",type:"info",children:[(0,i.jsxs)(n.p,{children:["With the Dijkstra's algorithm I would proceed with the ",(0,i.jsx)(n.code,{children:"time"})," attribute used as\na priority for the queue."]}),(0,i.jsxs)(n.p,{children:["Whereas with the ",(0,i.jsx)(n.em,{children:"A*"}),", I have chosen to use both time and Manhattan distance\nthat promotes vertices closer to the exit ",(0,i.jsx)(n.strong,{children:"and"})," with a minimum time taken."]})]}),"\n",(0,i.jsxs)(n.p,{children:["Cost function is, of course, a closure ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let cost = |p: Position| p.z() as usize + exit.y().abs_diff(p.y()) + exit.x().abs_diff(p.x());\n"})}),"\n",(0,i.jsx)(n.p,{children:"And also for checking the possible moves from the current vertex, I have\nimplemented, yet another, closure that yields an iterator with the next moves:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let next_positions = |p| {\n [(0, 0, 1), (0, -1, 1), (0, 1, 1), (-1, 0, 1), (1, 0, 1)]\n .iter()\n .filter_map(move |&(x, y, t)| {\n let next_p = p + Vector3D::new(x, y, t);\n\n if basin[next_p] == '.' {\n Some(next_p)\n } else {\n None\n }\n })\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"min-heap",children:"Min-heap"}),"\n",(0,i.jsxs)(n.p,{children:["In this case I had a need to use the priority queue taking the elements with the\nlowest cost as the prioritized ones. Rust only offers you the ",(0,i.jsx)(n.a,{href:"https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html",children:(0,i.jsx)(n.code,{children:"BinaryHeap"})})," and\nthat is a max-heap. One of the ways how to achieve a min-heap is to put the\nelements in wrapped in a ",(0,i.jsx)(n.a,{href:"https://doc.rust-lang.org/std/cmp/struct.Reverse.html",children:(0,i.jsx)(n.code,{children:"Reverse"})})," (as is even showed in the linked ",(0,i.jsxs)(n.a,{href:"https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html#min-heap",children:["docs of\nthe ",(0,i.jsx)(n.code,{children:"BinaryHeap"})]}),"). However the wrapping affects the type of the heap and also\npopping the most prioritized elements yields values wrapped in the ",(0,i.jsx)(n.code,{children:"Reverse"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"For this purpose I have just taken the max-heap and wrapped it as a whole in a\nseparate structure providing just the desired methods:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"use std::cmp::{Ord, Reverse};\nuse std::collections::BinaryHeap;\n\npub struct MinHeap<T> {\n heap: BinaryHeap<Reverse<T>>,\n}\n\nimpl<T: Ord> MinHeap<T> {\n pub fn new() -> MinHeap<T> {\n MinHeap {\n heap: BinaryHeap::new(),\n }\n }\n\n pub fn push(&mut self, item: T) {\n self.heap.push(Reverse(item))\n }\n\n pub fn pop(&mut self) -> Option<T> {\n self.heap.pop().map(|Reverse(x)| x)\n }\n}\n\nimpl<T: Ord> Default for MinHeap<T> {\n fn default() -> Self {\n Self::new()\n }\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Rest is just the algorithm implementation which is not that interesting."}),"\n",(0,i.jsx)(n.h2,{id:"day-25-full-of-hot-air",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/25",children:"Day 25: Full of Hot Air"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(n.p,{children:["Playing around with a numbers in a ",(0,i.jsx)(n.em,{children:"special"})," base."]})}),"\n",(0,i.jsxs)(n.p,{children:["Getting flashbacks to the ",(0,i.jsx)(n.em,{children:"IB111 Foundations of Programming"}),"\u2026 Very nice \u201cproblem\u201d\nwith a rather easy solution, as the last day always seems to be."]}),"\n",(0,i.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Implementing 2 functions, converting from the ",(0,i.jsx)(n.em,{children:"SNAFU base"})," and back to the ",(0,i.jsx)(n.em,{children:"SNAFU"}),"\n",(0,i.jsx)(n.em,{children:"base"})," representation. Let's do a bit more though! I have implemented two functions:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"from_snafu"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"to_snafu"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Now it is apparent that all I do is number to string and string to number. Hmm\u2026\nthat sounds familiar, doesn't it? Let's introduce a structure for the SNAFU numbers\nand implement the traits that we need."}),"\n",(0,i.jsx)(n.p,{children:"Let's start with a structure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]\nstruct SNAFU {\n value: i64,\n}\n"})}),"\n",(0,i.jsxs)(n.h4,{id:"converting-from-str",children:["Converting from ",(0,i.jsx)(n.code,{children:"&str"})]}),"\n",(0,i.jsxs)(n.p,{children:["We will start by implementing the ",(0,i.jsx)(n.code,{children:"FromStr"})," trait that will help us parse our input.\nThis is rather simple, I can just take the ",(0,i.jsx)(n.code,{children:"from_snafu"})," function, copy-paste it\ninto the ",(0,i.jsx)(n.code,{children:"from_str"})," method and the number I get will be wrapped in ",(0,i.jsx)(n.code,{children:"Result"})," and\n",(0,i.jsx)(n.code,{children:"SNAFU"})," structure."]}),"\n",(0,i.jsxs)(n.h4,{id:"converting-to-string",children:["Converting to ",(0,i.jsx)(n.code,{children:"String"})]}),"\n",(0,i.jsxs)(n.p,{children:["This is more fun. In some cases you need to implement only one trait and others\nare automatically implemented using that one trait. In our case, if you look in\nthe documentation, you can see that ",(0,i.jsx)(n.code,{children:"ToString"})," trait is automatically implemented\nfor any type that implements ",(0,i.jsx)(n.code,{children:"Display"})," trait."]}),"\n",(0,i.jsxs)(n.p,{children:["Let's implement the ",(0,i.jsx)(n.code,{children:"Display"})," trait then. We should be able to use the ",(0,i.jsx)(n.code,{children:"to_snafu"}),"\nfunction and just take the ",(0,i.jsx)(n.code,{children:"self.value"})," from the ",(0,i.jsx)(n.code,{children:"SNAFU"})," structure."]}),"\n",(0,i.jsxs)(n.p,{children:["And for the convenience of tests, we can also implement a rather simple ",(0,i.jsx)(n.code,{children:"From<i64>"}),"\ntrait for the ",(0,i.jsx)(n.code,{children:"SNAFU"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"adjusting-the-code",children:"Adjusting the code"}),"\n",(0,i.jsx)(n.p,{children:"After those changes we need to adjust the code and tests."}),"\n",(0,i.jsx)(n.p,{children:"Parsing of the input is very easy, before we have used the lines, now we parse\neverything:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\n- file_to_lines(pathname)\n+ file_to_structs(pathname)\n }\n"})}),"\n",(0,i.jsx)(n.p,{children:"Part 1 needs to be adjusted a bit too:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" fn part_1(input: &Input) -> Output {\n- to_snafu(input.iter().map(|s| from_snafu(s)).sum())\n+ SNAFU::from(input.iter().map(|s| s.value).sum::<i64>()).to_string()\n }\n"})}),"\n",(0,i.jsx)(n.p,{children:"You can also see that it simplifies the meaning a bit and it is more explicit than\nthe previous versions."}),"\n",(0,i.jsx)(n.p,{children:"And for the tests:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" #[test]\n fn test_from() {\n- for (n, s) in EXAMPLES.iter() {\n- assert_eq!(from_snafu(s), *n);\n+ for (&n, s) in EXAMPLES.iter() {\n+ assert_eq!(s.parse::<SNAFU>().unwrap().value, n);\n }\n }\n \n #[test]\n fn test_to() {\n- for (n, s) in EXAMPLES.iter() {\n- assert_eq!(to_snafu(*n), s.to_string());\n+ for (&n, s) in EXAMPLES.iter() {\n+ assert_eq!(SNAFU::from(n).to_string(), s.to_string());\n }\n"})}),"\n",(0,i.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,i.jsx)(n.p,{children:"Let's wrap the whole thing up! Keeping in mind both AoC and the Rust\u2026"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Finished advent calendar :smile:",src:t(63321).Z+"",width:"2417",height:"1984"})}),"\n",(0,i.jsx)(n.h3,{id:"advent-of-code",children:"Advent of Code"}),"\n",(0,i.jsxs)(n.p,{children:["This year was quite fun, even though most of the solutions and posts came in\nlater on (",(0,i.jsx)(n.em,{children:"cough"})," in '23 ",(0,i.jsx)(n.em,{children:"cough"}),"). Day 22 was the most obnoxious one\u2026 And also\nit feels like I used priority queues and tree data structures ",(0,i.jsx)(n.strong,{children:"a lot"})," ","\ud83d\udc40"]}),"\n",(0,i.jsx)(n.h3,{id:"with-rust",children:"with Rust"}),"\n",(0,i.jsx)(n.p,{children:"I must admit that a lot of compiler warnings and errors were very useful. Even\nthough I still found some instances where they didn't help at all or cause even\nworse issues than I had. Compilation times have been addressed with the caching."}),"\n",(0,i.jsx)(n.p,{children:"Building my first tree data structure in Rust has been a very \u201cinteresting\u201d\njourney. Being able to write a more generic BFS algorithm that allows you to not\nduplicate code while still mantaining the desired functionality contributes to\na very readable code."}),"\n",(0,i.jsx)(n.p,{children:"I am definitely much more aware of the basic things that bloated Python is\nmissing, yet Rust has them\u2026"}),"\n",(0,i.jsxs)(n.p,{children:["Using explicit types and writing down placeholder functions with ",(0,i.jsx)(n.code,{children:"todo!()"}),"\nmacros is very pleasant, since it allows you to easily navigate the type system\nduring the development when you don't even need to be sure how are you going to\nput the smaller pieces together."]}),"\n",(0,i.jsx)(n.p,{children:"I have used a plethora of traits and also implemented some of them to either be\nidiomatic, or exploit the syntactic sugar they offer. Deriving the default trait\nimplementation is also very helpful in a lot of cases, e.g. debugging output,\ncopying, equality comparison, etc."}),"\n",(0,i.jsx)(n.p,{children:"I confess to touching more \u201ccursed\u201d parts of the Rust, such as macros to\ndeclutter the copy-paste for tests or writing my own structures that need to\ncarry a lifetime for their own fields."}),"\n",(0,i.jsxs)(n.p,{children:["tl;dr Relatively pleasant language until you hit brick wall ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.p,{children:["See you next year! Maybe in Rust, maybe not ","\ud83d\ude43"]})]})}function c(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},63321:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/calendar-f891b624f3e0efb34bba582100a7d8df.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(67294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3da4b779.c4673dc7.js b/assets/js/3da4b779.c4673dc7.js deleted file mode 100644 index 2ecdbf2..0000000 --- a/assets/js/3da4b779.c4673dc7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2177],{8737:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=t(5893),s=t(1151);const o={title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,r={permalink:"/blog/aoc-2022/4th-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md",source:"@site/blog/aoc-2022/04-week-4.md",title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:15.175,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"How can Copr help with broken dependencies",permalink:"/blog/2023/08/02/copr"},nextItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"}},l={authorsImageUrls:[void 0]},d=[{value:"Day 22: Monkey Map",id:"day-22-monkey-map",level:2},{value:"Solution",id:"solution",level:3},{value:"Column iterator",id:"column-iterator",level:4},{value:"Walking around the map",id:"walking-around-the-map",level:4},{value:"Problems",id:"problems",level:4},{value:"Clippy",id:"clippy",level:4},{value:"Day 23: Unstable Diffusion",id:"day-23-unstable-diffusion",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 24: Blizzard Basin",id:"day-24-blizzard-basin",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Breakdown",id:"breakdown",level:4},{value:"Evaluating the blizzards",id:"evaluating-the-blizzards",level:4},{value:"Shortest-path algorithm",id:"shortest-path-algorithm",level:4},{value:"Min-heap",id:"min-heap",level:4},{value:"Day 25: Full of Hot Air",id:"day-25-full-of-hot-air",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Converting from <code>&str</code>",id:"converting-from-str",level:4},{value:"Converting to <code>String</code>",id:"converting-to-string",level:4},{value:"Adjusting the code",id:"adjusting-the-code",level:4},{value:"Summary",id:"summary",level:2},{value:"Advent of Code",id:"advent-of-code",level:3},{value:"with Rust",id:"with-rust",level:3}];function h(e){const n={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",math:"math",mi:"mi",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Let's go through the fourth week of ",(0,i.jsx)(n.a,{href:"https://adventofcode.com",children:(0,i.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(n.h2,{id:"day-22-monkey-map",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/22",children:"Day 22: Monkey Map"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulating a movement on a 2D map with given instructions. Map becomes a cube in\nthe 2nd part\u2026"})}),"\n",(0,i.jsx)(n.admonition,{title:"Rant",type:"caution",children:(0,i.jsx)(n.p,{children:"This was the most obnoxious problem of this year\u2026 and a lot of Rust issues have\nbeen hit."})}),"\n",(0,i.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"It seems like a very simple problem to solve, but with very obnoxious changes in\nthe 2nd part and also it's relatively hard to decompose \xbbproperly\xab."}),"\n",(0,i.jsx)(n.h4,{id:"column-iterator",children:"Column iterator"}),"\n",(0,i.jsxs)(n.p,{children:["In the first part of the problem it was needed to know the boundaries of each\nrow and column, since I stored them in ",(0,i.jsx)(n.code,{children:"Vec<Vec<char>>"})," and padded with spaces\nto ensure I have a rectangular 2D \u201carray\u201d. However when you wanted to go through\neach row and column to determine the boundaries, it was very easy to do for the\nrows (cause each row is a ",(0,i.jsx)(n.code,{children:"Vec"})," element), but not for the columns, since they\nspan multiple rows."]}),"\n",(0,i.jsxs)(n.p,{children:["For this use case I have implemented my own ",(0,i.jsx)(n.em,{children:"column iterator"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"pub struct ColumnIterator<'a, T> {\n map: &'a [Vec<T>],\n column: usize,\n\n i: usize,\n}\n\nimpl<'a, T> ColumnIterator<'a, T> {\n pub fn new(map: &'a [Vec<T>], column: usize) -> ColumnIterator<'a, T> {\n Self { map, column, i: 0 }\n }\n}\n\nimpl<'a, T> Iterator for ColumnIterator<'a, T> {\n type Item = &'a T;\n\n fn next(&mut self) -> Option<Self::Item> {\n if self.i >= self.map.len() {\n return None;\n }\n\n self.i += 1;\n Some(&self.map[self.i - 1][self.column])\n }\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Given this piece of an iterator, it is very easy to factor out the common\nfunctionality between the rows and columns into:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let mut find_boundaries = |constructor: fn(usize) -> Orientation,\n iterator: &mut dyn Iterator<Item = &char>,\n upper_bound,\n i| {\n let mut first_non_empty = iterator.enumerate().skip_while(|&(_, &c)| c == ' ');\n let start = first_non_empty.next().unwrap().0 as isize;\n\n let mut last_non_empty = first_non_empty.skip_while(|&(_, &c)| c != ' ');\n let end = last_non_empty.next().unwrap_or((upper_bound, &'_')).0 as isize;\n\n boundaries.insert(constructor(i), start..end);\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"And then use it as such:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"// construct all horizontal boundaries\n(0..map.len()).for_each(|row| {\n find_boundaries(\n Orientation::horizontal,\n &mut map[row].iter(),\n map[row].len(),\n row,\n );\n});\n\n// construct all vertical boundaries\n(0..map[0].len()).for_each(|col| {\n find_boundaries(\n Orientation::vertical,\n &mut ColumnIterator::new(&map, col),\n map.len(),\n col,\n );\n});\n"})}),"\n",(0,i.jsx)(n.h4,{id:"walking-around-the-map",children:"Walking around the map"}),"\n",(0,i.jsxs)(n.p,{children:["Once the 2nd part got introduced, you start to think about a way how not to\ncopy-paste a lot of stuff (I haven't avoided it anyways\u2026). In this problem, I've\nchosen to introduce a trait (i.e. ",(0,i.jsx)(n.em,{children:"interface"}),") for 2D and 3D walker."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"trait Wrap: Clone {\n type State;\n\n // simulation\n fn is_blocked(&self) -> bool;\n fn step(&mut self, steps: isize);\n fn turn_left(&mut self);\n fn turn_right(&mut self);\n\n // movement\n fn next(&self) -> (Self::State, Direction);\n\n // final answer\n fn answer(&self) -> Output;\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Each walker maintains its own state and also provides the functions that are\nused during the simulation. The \u201cpromised\u201d methods are separated into:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"simulation"}),"-related: that are used during the simulation from the ",(0,i.jsx)(n.code,{children:".fold()"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"movement"}),"-related: just a one method that holds most of the logic differences\nbetween 2D and 3D"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"final answer"}),": which extracts the ",(0,i.jsx)(n.em,{children:"proof of solution"})," from the\nimplementation-specific walker"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Both 2D and 3D versions borrow the original input and therefore you must\nannotate the lifetime of it:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"struct Wrap2D<'a> {\n input: &'a Input,\n position: Position,\n direction: Direction,\n}\nimpl<'a> Wrap2D<'a> {\n fn new(input: &'a Input) -> Wrap2D<'a> {\n// \u2026\n"})}),"\n",(0,i.jsx)(n.h4,{id:"problems",children:"Problems"}),"\n",(0,i.jsx)(n.p,{children:"I have used a lot of closures for this problem and once I introduced a parameter\nthat was of unknown type (apart from the fact it implements a specific trait), I\ngot suggested a \u201cfix\u201d for the compilation error that resulted in something that\nwas not possible to parse, cause it, more than likely, violated the grammar."}),"\n",(0,i.jsxs)(n.p,{children:["In a similar fashion, I have been suggested changes that led to a code that\ndidn't make sense by just looking at it (there was no need to try the changes),\nfor example one suggested change in the closure parameter caused disapperance of\nthe parameter name. ","\ud83d\ude04"]}),"\n",(0,i.jsx)(n.h4,{id:"clippy",children:"Clippy"}),"\n",(0,i.jsx)(n.p,{children:"I have to admit that Clippy was rather helpful here, I'll include two examples\nof rather smart suggestions."}),"\n",(0,i.jsxs)(n.p,{children:["When writing the parsing for this problem, the first thing I have spotted on the\n",(0,i.jsx)(n.code,{children:"char"})," was the ",(0,i.jsx)(n.code,{children:".is_digit()"})," function that takes a radix as a parameter. Clippy\nnoticed that I use ",(0,i.jsx)(n.code,{children:"radix = 10"})," and suggested switching to ",(0,i.jsx)(n.code,{children:".is_ascii_digit()"}),"\nthat does exactly the same thing:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- .take_while(|c| c.is_digit(10))\n+ .take_while(|c| c.is_ascii_digit())\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Another useful suggestion appeared when working with the iterators and I wanted\nto get the ",(0,i.jsxs)(n.span,{className:"katex",children:[(0,i.jsx)(n.span,{className:"katex-mathml",children:(0,i.jsx)(n.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(n.semantics,{children:[(0,i.jsx)(n.mrow,{children:(0,i.jsx)(n.mi,{children:"n"})}),(0,i.jsx)(n.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,i.jsx)(n.span,{className:"katex-html","aria-hidden":"true",children:(0,i.jsxs)(n.span,{className:"base",children:[(0,i.jsx)(n.span,{className:"strut",style:{height:"0.4306em"}}),(0,i.jsx)(n.span,{className:"mord mathnormal",children:"n"})]})})]}),"-th element from it. You know the ",(0,i.jsx)(n.code,{children:".skip()"}),", you know the\n",(0,i.jsx)(n.code,{children:".next()"}),", just \u201cslap\u201d them together and we're done for ","\ud83d\ude01"," Well, I got\nsuggested to use ",(0,i.jsx)(n.code,{children:".nth()"})," that does exactly the combination of the two mentioned\nmethods on iterators:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:"- match it.clone().skip(skip).next().unwrap() {\n+ match it.clone().nth(skip).unwrap() {\n"})}),"\n",(0,i.jsx)(n.h2,{id:"day-23-unstable-diffusion",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/23",children:"Day 23: Unstable Diffusion"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Simulating movement of elves around with a set of specific rules."})}),"\n",(0,i.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["There's not much to mention since it's just a cellular automaton simulation\n(even though the AoC rules for cellular automatons usually get out of hand\n","\ud83d\ude09",")."]}),"\n",(0,i.jsx)(n.p,{children:"Although I had a need to determine boundaries of the elves' positions and ended\nup with a nasty DRY violation. Knowing that you you're looking for maximum and\nminimum that are, of course, exactly the same except for initial values and\ncomparators, it looks like a rather simple fix, but typing in Rust is something\nelse, right? In the end I settled for a function that computes both boundaries\nwithout any duplication while using a closure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"fn get_bounds(positions: &Input) -> (Vector2D<isize>, Vector2D<isize>) {\n let f = |init, cmp: &dyn Fn(isize, isize) -> isize| {\n positions\n .iter()\n .fold(Vector2D::new(init, init), |acc, elf| {\n Vector2D::new(cmp(acc.x(), elf.x()), cmp(acc.y(), elf.y()))\n })\n };\n\n (f(isize::MAX, &min::<isize>), f(isize::MIN, &max::<isize>))\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"This function returns a pair of 2D vectors that represent opposite points of the\nbounding rectangle of all elves."}),"\n",(0,i.jsxs)(n.p,{children:["You might ask why would we need a closure and the answer is that ",(0,i.jsx)(n.code,{children:"positions"}),"\ncannot be captured from within the nested function, only via closure. One more\nfun fact on top of that is the type of the comparator"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"&dyn Fn(isize, isize) -> isize\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Once we remove the ",(0,i.jsx)(n.code,{children:"dyn"})," keyword, compiler yells at us and also includes a way\nhow to get a more thorough explanation of the error by running"]}),"\n",(0,i.jsx)(n.p,{children:"$ rustc --explain E0782"}),"\n",(0,i.jsx)(n.p,{children:"which shows us"}),"\n",(0,i.jsxs)(n.p,{children:["Trait objects must include the ",(0,i.jsx)(n.code,{children:"dyn"})," keyword."]}),"\n",(0,i.jsx)(n.p,{children:"Erroneous code example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"trait Foo {}\nfn test(arg: Box<Foo>) {} // error!\n"})}),"\n",(0,i.jsx)(n.p,{children:"Trait objects are a way to call methods on types that are not known until\nruntime but conform to some trait."}),"\n",(0,i.jsxs)(n.p,{children:["Trait objects should be formed with ",(0,i.jsx)(n.code,{children:"Box<dyn Foo>"}),", but in the code above\n",(0,i.jsx)(n.code,{children:"dyn"})," is left off."]}),"\n",(0,i.jsxs)(n.p,{children:["This makes it harder to see that ",(0,i.jsx)(n.code,{children:"arg"})," is a trait object and not a\nsimply a heap allocated type called ",(0,i.jsx)(n.code,{children:"Foo"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["To fix this issue, add ",(0,i.jsx)(n.code,{children:"dyn"})," before the trait name."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"trait Foo {}\nfn test(arg: Box<dyn Foo>) {} // ok!\n"})}),"\n",(0,i.jsx)(n.p,{children:"This used to be allowed before edition 2021, but is now an error."}),"\n",(0,i.jsxs)(n.admonition,{title:"Rant",type:"danger",children:[(0,i.jsxs)(n.p,{children:["Not all of the explanations are helpful though, in some cases they might be even\nmore confusing than helpful, since they address ",(0,i.jsx)(n.em,{children:"very simple"})," use cases."]}),(0,i.jsx)(n.p,{children:"As you can see, even in this case there are two sides to the explanations:"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["it explains why you need to use ",(0,i.jsx)(n.code,{children:"dyn"}),", but"]}),"\n",(0,i.jsxs)(n.li,{children:["it still mentions that trait objects need to be heap-allocated via ",(0,i.jsx)(n.code,{children:"Box<T>"}),"\nthat, as you can see in my snippet, ",(0,i.jsx)(n.strong,{children:"does not"})," apply here ","\ud83d\ude04"," IMO it's\ncaused by the fact that we are borrowing it and therefore we don't need to\ncare about the size or whereabouts of it."]}),"\n"]})]}),"\n",(0,i.jsxs)(n.admonition,{title:"C++ parallel",type:"info",children:[(0,i.jsxs)(n.p,{children:["If you dive into the explanation above, you can notice that the ",(0,i.jsx)(n.code,{children:"Box<dyn Trait>"}),"\npattern is very helpful for using types that are not known during compile-time.\nYou would use a very similar approach in C++ when parsing some data structure\nfrom input (let's say JSON for example)."]}),(0,i.jsxs)(n.p,{children:["On the other hand, in this case, it doesn't really make much sense, cause you\ncan clearly see that the types ",(0,i.jsx)(n.strong,{children:"are known"})," during the compile-time, which in\nC++ could be easily resolved by templating the helper function."]})]}),"\n",(0,i.jsx)(n.h2,{id:"day-24-blizzard-basin",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/24",children:"Day 24: Blizzard Basin"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(n.p,{children:"Navigating your way through a basin with series of blizzards that move around\nyou as you move."})}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsxs)(n.p,{children:["It's second to last day and I went \u201c",(0,i.jsx)(n.em,{children:"bonkers"}),"\u201d on the Rust ","\ud83d\ude04"," Proceed to\nread ",(0,i.jsx)(n.em,{children:"Solution"})," part on your own risk."]})}),"\n",(0,i.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsx)(n.p,{children:"You are given a map with blizzards all over the place and you're supposed to\nfind the minimum time it requires you to walk through the basin without getting\nin any of the blizzards."}),"\n",(0,i.jsx)(n.h4,{id:"breakdown",children:"Breakdown"}),"\n",(0,i.jsxs)(n.p,{children:["Relatively simple, yet a bit annoying, approach can be taken. It's technically\na shortest-path algorithm implementation with some relaxation restrictions and\nbeing able to stay on one position for some time, so each ",(0,i.jsx)(n.em,{children:"vertex"})," of the graph\nis determined by the position on the map and the ",(0,i.jsx)(n.em,{children:"timestamp"}),". I have chosen to\nuse ",(0,i.jsx)(n.code,{children:"Vector3D<usize>"}),", since ",(0,i.jsx)(n.code,{children:"x"})," and ",(0,i.jsx)(n.code,{children:"y"})," attributes can be used for the position\nand, well, let's use ",(0,i.jsx)(n.code,{children:"z"})," for a timestamp, cause why not, right? ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.h4,{id:"evaluating-the-blizzards",children:"Evaluating the blizzards"}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"I think that this is the most perverted abuse of the traits in the whole 4 weeks\nof AoC in Rust\u2026"})}),"\n",(0,i.jsxs)(n.p,{children:["The blizzards move along their respective directions in time and loop around in\ntheir respective row/column. Each vertex holds position ",(0,i.jsx)(n.strong,{children:"and"})," time, so we can\n",(0,i.jsx)(n.em,{children:"just"})," index the basin with the vertex itself, right? Yes, we can ","\ud83d\ude08"]}),"\n",(0,i.jsx)(n.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(n.p,{children:"While writing this part, I've recognized unnecessary verbosity in the code and\ncleaned it up a bit. The changed version is shown here and the original was just\nmore verbose."})}),"\n",(0,i.jsxs)(n.p,{children:["I'll skip the boring parts of checking bounds and entry/exit of the basin ","\ud83d\ude09","\nWe can easily calculate positions of the blizzards using a modular arithmetics:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"impl Index<Position> for Basin {\n type Output = char;\n\n fn index(&self, index: Position) -> &Self::Output {\n // \u2039skipped boring parts\u203a\n\n // We need to account for the loops of the blizzards\n let width = self.cols - 2;\n let height = self.rows - 2;\n\n let blizzard_origin = |size, d, t, i| ((i - 1 + size + d * (t % size)) % size + 1) as usize;\n [\n (\n index.y() as usize,\n blizzard_origin(width, -1, index.z(), index.x()),\n '>',\n ),\n (\n index.y() as usize,\n blizzard_origin(width, 1, index.z(), index.x()),\n '<',\n ),\n (\n blizzard_origin(height, -1, index.z(), index.y()),\n index.x() as usize,\n 'v',\n ),\n (\n blizzard_origin(height, 1, index.z(), index.y()),\n index.x() as usize,\n '^',\n ),\n ]\n .iter()\n .find_map(|&(y, x, direction)| {\n if self.map[y][x] == direction {\n Some(&self.map[y][x])\n } else {\n None\n }\n })\n .unwrap_or(&'.')\n }\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["As you can see, there is an expression for calculating the original position and\nit's used multiple times, so why not take it out to a lambda, right? ","\ud83d\ude09"]}),"\n",(0,i.jsxs)(n.p,{children:["I couldn't get the ",(0,i.jsx)(n.code,{children:"rustfmt"})," to format the ",(0,i.jsx)(n.code,{children:"for"}),"-loop nicely, so I've just\ndecided to go with iterating over an elements of a slice. I have used, once\nagain, a combination of two functions (",(0,i.jsx)(n.code,{children:"find_map"})," in this case) to do 2 things\nat once and at the end, if we haven't found any blizzard, we just return the\nempty space."]}),"\n",(0,i.jsxs)(n.p,{children:["I think it's a very ",(0,i.jsx)(n.em,{children:"nice"})," (and naughty) way how to use the ",(0,i.jsx)(n.code,{children:"Index"})," trait, don't\nyou think?"]}),"\n",(0,i.jsx)(n.h4,{id:"shortest-path-algorithm",children:"Shortest-path algorithm"}),"\n",(0,i.jsxs)(n.p,{children:["For the shortest path you can choose and adjust any of the common shortest-path\nalgorithms, in my case, I have decided to use ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/A*_search_algorithm",children:(0,i.jsx)(n.em,{children:"A*"})})," instead of Dijkstra's\nalgorithm, since it better reflects the ",(0,i.jsx)(n.em,{children:"cost"})," function."]}),"\n",(0,i.jsxs)(n.admonition,{title:"Comparison of costs",type:"info",children:[(0,i.jsxs)(n.p,{children:["With the Dijkstra's algorithm I would proceed with the ",(0,i.jsx)(n.code,{children:"time"})," attribute used as\na priority for the queue."]}),(0,i.jsxs)(n.p,{children:["Whereas with the ",(0,i.jsx)(n.em,{children:"A*"}),", I have chosen to use both time and Manhattan distance\nthat promotes vertices closer to the exit ",(0,i.jsx)(n.strong,{children:"and"})," with a minimum time taken."]})]}),"\n",(0,i.jsxs)(n.p,{children:["Cost function is, of course, a closure ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let cost = |p: Position| p.z() as usize + exit.y().abs_diff(p.y()) + exit.x().abs_diff(p.x());\n"})}),"\n",(0,i.jsx)(n.p,{children:"And also for checking the possible moves from the current vertex, I have\nimplemented, yet another, closure that yields an iterator with the next moves:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"let next_positions = |p| {\n [(0, 0, 1), (0, -1, 1), (0, 1, 1), (-1, 0, 1), (1, 0, 1)]\n .iter()\n .filter_map(move |&(x, y, t)| {\n let next_p = p + Vector3D::new(x, y, t);\n\n if basin[next_p] == '.' {\n Some(next_p)\n } else {\n None\n }\n })\n};\n"})}),"\n",(0,i.jsx)(n.h4,{id:"min-heap",children:"Min-heap"}),"\n",(0,i.jsxs)(n.p,{children:["In this case I had a need to use the priority queue taking the elements with the\nlowest cost as the prioritized ones. Rust only offers you the ",(0,i.jsx)(n.a,{href:"https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html",children:(0,i.jsx)(n.code,{children:"BinaryHeap"})})," and\nthat is a max-heap. One of the ways how to achieve a min-heap is to put the\nelements in wrapped in a ",(0,i.jsx)(n.a,{href:"https://doc.rust-lang.org/std/cmp/struct.Reverse.html",children:(0,i.jsx)(n.code,{children:"Reverse"})})," (as is even showed in the linked ",(0,i.jsxs)(n.a,{href:"https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html#min-heap",children:["docs of\nthe ",(0,i.jsx)(n.code,{children:"BinaryHeap"})]}),"). However the wrapping affects the type of the heap and also\npopping the most prioritized elements yields values wrapped in the ",(0,i.jsx)(n.code,{children:"Reverse"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"For this purpose I have just taken the max-heap and wrapped it as a whole in a\nseparate structure providing just the desired methods:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"use std::cmp::{Ord, Reverse};\nuse std::collections::BinaryHeap;\n\npub struct MinHeap<T> {\n heap: BinaryHeap<Reverse<T>>,\n}\n\nimpl<T: Ord> MinHeap<T> {\n pub fn new() -> MinHeap<T> {\n MinHeap {\n heap: BinaryHeap::new(),\n }\n }\n\n pub fn push(&mut self, item: T) {\n self.heap.push(Reverse(item))\n }\n\n pub fn pop(&mut self) -> Option<T> {\n self.heap.pop().map(|Reverse(x)| x)\n }\n}\n\nimpl<T: Ord> Default for MinHeap<T> {\n fn default() -> Self {\n Self::new()\n }\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"Rest is just the algorithm implementation which is not that interesting."}),"\n",(0,i.jsx)(n.h2,{id:"day-25-full-of-hot-air",children:(0,i.jsx)(n.a,{href:"https://adventofcode.com/2022/day/25",children:"Day 25: Full of Hot Air"})}),"\n",(0,i.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(n.p,{children:["Playing around with a numbers in a ",(0,i.jsx)(n.em,{children:"special"})," base."]})}),"\n",(0,i.jsxs)(n.p,{children:["Getting flashbacks to the ",(0,i.jsx)(n.em,{children:"IB111 Foundations of Programming"}),"\u2026 Very nice \u201cproblem\u201d\nwith a rather easy solution, as the last day always seems to be."]}),"\n",(0,i.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsxs)(n.p,{children:["Implementing 2 functions, converting from the ",(0,i.jsx)(n.em,{children:"SNAFU base"})," and back to the ",(0,i.jsx)(n.em,{children:"SNAFU"}),"\n",(0,i.jsx)(n.em,{children:"base"})," representation. Let's do a bit more though! I have implemented two functions:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"from_snafu"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"to_snafu"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Now it is apparent that all I do is number to string and string to number. Hmm\u2026\nthat sounds familiar, doesn't it? Let's introduce a structure for the SNAFU numbers\nand implement the traits that we need."}),"\n",(0,i.jsx)(n.p,{children:"Let's start with a structure:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-rust",children:"#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]\nstruct SNAFU {\n value: i64,\n}\n"})}),"\n",(0,i.jsxs)(n.h4,{id:"converting-from-str",children:["Converting from ",(0,i.jsx)(n.code,{children:"&str"})]}),"\n",(0,i.jsxs)(n.p,{children:["We will start by implementing the ",(0,i.jsx)(n.code,{children:"FromStr"})," trait that will help us parse our input.\nThis is rather simple, I can just take the ",(0,i.jsx)(n.code,{children:"from_snafu"})," function, copy-paste it\ninto the ",(0,i.jsx)(n.code,{children:"from_str"})," method and the number I get will be wrapped in ",(0,i.jsx)(n.code,{children:"Result"})," and\n",(0,i.jsx)(n.code,{children:"SNAFU"})," structure."]}),"\n",(0,i.jsxs)(n.h4,{id:"converting-to-string",children:["Converting to ",(0,i.jsx)(n.code,{children:"String"})]}),"\n",(0,i.jsxs)(n.p,{children:["This is more fun. In some cases you need to implement only one trait and others\nare automatically implemented using that one trait. In our case, if you look in\nthe documentation, you can see that ",(0,i.jsx)(n.code,{children:"ToString"})," trait is automatically implemented\nfor any type that implements ",(0,i.jsx)(n.code,{children:"Display"})," trait."]}),"\n",(0,i.jsxs)(n.p,{children:["Let's implement the ",(0,i.jsx)(n.code,{children:"Display"})," trait then. We should be able to use the ",(0,i.jsx)(n.code,{children:"to_snafu"}),"\nfunction and just take the ",(0,i.jsx)(n.code,{children:"self.value"})," from the ",(0,i.jsx)(n.code,{children:"SNAFU"})," structure."]}),"\n",(0,i.jsxs)(n.p,{children:["And for the convenience of tests, we can also implement a rather simple ",(0,i.jsx)(n.code,{children:"From<i64>"}),"\ntrait for the ",(0,i.jsx)(n.code,{children:"SNAFU"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"adjusting-the-code",children:"Adjusting the code"}),"\n",(0,i.jsx)(n.p,{children:"After those changes we need to adjust the code and tests."}),"\n",(0,i.jsx)(n.p,{children:"Parsing of the input is very easy, before we have used the lines, now we parse\neverything:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\n- file_to_lines(pathname)\n+ file_to_structs(pathname)\n }\n"})}),"\n",(0,i.jsx)(n.p,{children:"Part 1 needs to be adjusted a bit too:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" fn part_1(input: &Input) -> Output {\n- to_snafu(input.iter().map(|s| from_snafu(s)).sum())\n+ SNAFU::from(input.iter().map(|s| s.value).sum::<i64>()).to_string()\n }\n"})}),"\n",(0,i.jsx)(n.p,{children:"You can also see that it simplifies the meaning a bit and it is more explicit than\nthe previous versions."}),"\n",(0,i.jsx)(n.p,{children:"And for the tests:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-diff",children:" #[test]\n fn test_from() {\n- for (n, s) in EXAMPLES.iter() {\n- assert_eq!(from_snafu(s), *n);\n+ for (&n, s) in EXAMPLES.iter() {\n+ assert_eq!(s.parse::<SNAFU>().unwrap().value, n);\n }\n }\n \n #[test]\n fn test_to() {\n- for (n, s) in EXAMPLES.iter() {\n- assert_eq!(to_snafu(*n), s.to_string());\n+ for (&n, s) in EXAMPLES.iter() {\n+ assert_eq!(SNAFU::from(n).to_string(), s.to_string());\n }\n"})}),"\n",(0,i.jsx)(n.h2,{id:"summary",children:"Summary"}),"\n",(0,i.jsx)(n.p,{children:"Let's wrap the whole thing up! Keeping in mind both AoC and the Rust\u2026"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Finished advent calendar :smile:",src:t(3321).Z+"",width:"2417",height:"1984"})}),"\n",(0,i.jsx)(n.h3,{id:"advent-of-code",children:"Advent of Code"}),"\n",(0,i.jsxs)(n.p,{children:["This year was quite fun, even though most of the solutions and posts came in\nlater on (",(0,i.jsx)(n.em,{children:"cough"})," in '23 ",(0,i.jsx)(n.em,{children:"cough"}),"). Day 22 was the most obnoxious one\u2026 And also\nit feels like I used priority queues and tree data structures ",(0,i.jsx)(n.strong,{children:"a lot"})," ","\ud83d\udc40"]}),"\n",(0,i.jsx)(n.h3,{id:"with-rust",children:"with Rust"}),"\n",(0,i.jsx)(n.p,{children:"I must admit that a lot of compiler warnings and errors were very useful. Even\nthough I still found some instances where they didn't help at all or cause even\nworse issues than I had. Compilation times have been addressed with the caching."}),"\n",(0,i.jsx)(n.p,{children:"Building my first tree data structure in Rust has been a very \u201cinteresting\u201d\njourney. Being able to write a more generic BFS algorithm that allows you to not\nduplicate code while still mantaining the desired functionality contributes to\na very readable code."}),"\n",(0,i.jsx)(n.p,{children:"I am definitely much more aware of the basic things that bloated Python is\nmissing, yet Rust has them\u2026"}),"\n",(0,i.jsxs)(n.p,{children:["Using explicit types and writing down placeholder functions with ",(0,i.jsx)(n.code,{children:"todo!()"}),"\nmacros is very pleasant, since it allows you to easily navigate the type system\nduring the development when you don't even need to be sure how are you going to\nput the smaller pieces together."]}),"\n",(0,i.jsx)(n.p,{children:"I have used a plethora of traits and also implemented some of them to either be\nidiomatic, or exploit the syntactic sugar they offer. Deriving the default trait\nimplementation is also very helpful in a lot of cases, e.g. debugging output,\ncopying, equality comparison, etc."}),"\n",(0,i.jsx)(n.p,{children:"I confess to touching more \u201ccursed\u201d parts of the Rust, such as macros to\ndeclutter the copy-paste for tests or writing my own structures that need to\ncarry a lifetime for their own fields."}),"\n",(0,i.jsxs)(n.p,{children:["tl;dr Relatively pleasant language until you hit brick wall ","\ud83d\ude09"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.p,{children:["See you next year! Maybe in Rust, maybe not ","\ud83d\ude43"]})]})}function c(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},3321:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/calendar-f891b624f3e0efb34bba582100a7d8df.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(7294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4200b1a9.3a444325.js b/assets/js/4200b1a9.3a444325.js deleted file mode 100644 index b9e1354..0000000 --- a/assets/js/4200b1a9.3a444325.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[866],{4612:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2023/08/02/copr","metadata":{"permalink":"/blog/2023/08/02/copr","editUrl":"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md","source":"@site/blog/2023-08-02-copr.md","title":"How can Copr help with broken dependencies","description":"Copr comes to save you when maintainer doesn\'t care.","date":"2023-08-02T00:00:00.000Z","formattedDate":"August 2, 2023","tags":[{"label":"\ud83c\udfed","permalink":"/blog/tags/\ud83c\udfed"},{"label":"red-hat","permalink":"/blog/tags/red-hat"},{"label":"copr","permalink":"/blog/tags/copr"},{"label":"admin","permalink":"/blog/tags/admin"},{"label":"vps","permalink":"/blog/tags/vps"}],"readingTime":3.44,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. your opinionated admin","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"How can Copr help with broken dependencies","description":"Copr comes to save you when maintainer doesn\'t care.","date":"2023-08-02T00:00:00.000Z","authors":[{"key":"mf","title":"a.k.a. your opinionated admin"}],"tags":["\ud83c\udfed","red-hat","copr","admin","vps"]},"unlisted":false,"nextItem":{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week"}},"content":"When you decide to run Fedora on your VPS, you might get screwed over by using\\nrandom repositories\u2026\\n\\n\x3c!--truncate--\x3e\\n\\nWhen I \u201creserved\u201d my VPS[^1] back in June \'20, I slapped Fedora on it without\\nthinking. I bet 99% of people would say that I\'m crazy for doing such thing[^2],\\n**BUT** I\'ve been using Fedora on my PCs for some time already and it felt very\\nstable and natural to just use, even for VPS.\\n\\nOne of the first things I\'ve done was setting up a mail server. You may guess\\nwhat\'s the fun part about having a mail server\u2026 Yes, it\'s all the spam you\\nreceive and only then you realize how much \u201ccrap\u201d gets filtered on free mail\\nservices. To battle this problem I chose to use\\n[rspamd](https://github.com/rspamd/rspamd) that had CentOS support, but someone\\nhad a [Copr](https://copr.fedorainfracloud.org/) repository that I used to\\ninstall it.\\n\\n## How does Copr repositories work?\\n\\nIf you have ever used Ubuntu, you might be familiar with the concept since it is\\nvery close to [PPAs](https://help.ubuntu.com/community/PPA).\\n\\ntl;dr of the whole process consists of\\n1. enabling the Copr repository, and\\n2. installing the desired package.\\n\\nSo in shell you would do\\n```\\n# dnf copr enable \u2039copr-repository\u203a\\n# dnf install \u2039package-from-the-repository\u203a\\n```\\n\\nAnd\u2026 that\'s it! Nothing else needed! Simple, right? And literally same process\\nas you would do for the PPA.\\n\\n:::tip AUR\\n\\nOn the other hand, if you are familiar with the archLinux, you definitely know\\nAUR and what it can do for you. Copr repository is pretty similar, but the\\npackages are prebuilt in Copr and Copr repositories can carry the required\\ndependencies for said packages, which simplifies the distribution, and can even\\nhelp with installing singular packages (when you just need the dependency, not\\neverything).\\n\\n:::\\n\\n## My issue\\n\\nNow you might wonder how would I use it on my VPS. It\'s rather simple, once in\\n6 months a new Fedora release comes out. And you need to upgrade to newer\\nrelease\u2026 You don\'t need to do it right away and for such setup it probably isn\'t\\neven recommended.\\n\\n:::tip\\n\\nFedora releases are supported for a year, i.e. they live 6 months till the next\\nrelease and then another 6 months till another release.\\n\\nSome people prefer to run one version \u201cbehind\u201d. If you ever decide to run it on\\nyour home server or in a similar setup, it might be a pretty good idea to\\nfollow. I\'m using the \u201clatest greatest\u201d, cause why not :smile:\\n\\nOne way or another, you still need to bump the release every six months, unless\\nyou\'d bump 2 releases at once every year, which would be a decision, since, at\\nleast I, cannot see any benefits in it\u2026 You don\'t go for \u201cstability\u201d, cause once\\na year you switch to the latest release and then, before you bump, you use one\\nyear old software, so you\'re not even using the latest.\\n\\n:::\\n\\nFast-forward 2 years in the future, new Fedora release came out (October \'22)\\nand I was doing an upgrade. Dependencies of the rspamd have been updated and\\nrspamd builds in Copr have failed and no one fixed it. Cool, so now I can\\nupgrade, but can either ignore the dependencies or uninstall the rspamd\u2026\\n\\n## How can Copr help?\\n\\nI have managed to find\\n[specfile](https://github.com/rspamd/rspamd/blob/master/rpm/rspamd.spec) for the\\nrspamd package that they use for CentOS. There were some files apart from the\\nspecfile, so I had to make an SRPM locally and then\u2026 I just uploaded the SRPM\\nto the Copr to\\n[build](https://copr.fedorainfracloud.org/coprs/mfocko/rspamd/build/5046567/)\\nan RPM.\\n\\nI have switched the previous Copr repository for rspamd with my own and happily\\nproceeded with the upgrade.\\n\\n## Conclusion\\n\\nCopr is heavily used for testing builds on the upstream with\\n[Packit](https://packit.dev). However, as you can see, it is possible to use it\\n**very well** for packaging your own stuff and avoiding issues (such as the one\\nI have described above), if need be.\\n\\n[^1]: [vpsFree.cz](https://vpsfree.cz)\\n[^2]: Even though I\'ve been running archLinux on some Raspberry Pi\'s and also\\n on one of my \u201chome servers\u201d, before getting the VPS. You could say I like\\n to live on the edge\u2026"},{"id":"aoc-2022/4th-week","metadata":{"permalink":"/blog/aoc-2022/4th-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md","source":"@site/blog/aoc-2022/04-week-4.md","title":"4th week of Advent of Code \'22 in Rust","description":"Surviving fourth week in Rust.","date":"2023-07-07T15:14:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":15.175,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"4th week of Advent of Code \'22 in Rust","description":"Surviving fourth week in Rust.","date":"2023-07-07T15:14","slug":"aoc-2022/4th-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"How can Copr help with broken dependencies","permalink":"/blog/2023/08/02/copr"},"nextItem":{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week"}},"content":"Let\'s go through the fourth week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 22: Monkey Map](https://adventofcode.com/2022/day/22)\\n\\n:::info tl;dr\\n\\nSimulating a movement on a 2D map with given instructions. Map becomes a cube in\\nthe 2nd part\u2026\\n\\n:::\\n\\n:::caution Rant\\n\\nThis was the most obnoxious problem of this year\u2026 and a lot of Rust issues have\\nbeen hit.\\n\\n:::\\n\\n### Solution\\n\\nIt seems like a very simple problem to solve, but with very obnoxious changes in\\nthe 2nd part and also it\'s relatively hard to decompose \xbbproperly\xab.\\n\\n#### Column iterator\\n\\nIn the first part of the problem it was needed to know the boundaries of each\\nrow and column, since I stored them in `Vec<Vec<char>>` and padded with spaces\\nto ensure I have a rectangular 2D \u201carray\u201d. However when you wanted to go through\\neach row and column to determine the boundaries, it was very easy to do for the\\nrows (cause each row is a `Vec` element), but not for the columns, since they\\nspan multiple rows.\\n\\nFor this use case I have implemented my own _column iterator_:\\n```rust\\npub struct ColumnIterator<\'a, T> {\\n map: &\'a [Vec<T>],\\n column: usize,\\n\\n i: usize,\\n}\\n\\nimpl<\'a, T> ColumnIterator<\'a, T> {\\n pub fn new(map: &\'a [Vec<T>], column: usize) -> ColumnIterator<\'a, T> {\\n Self { map, column, i: 0 }\\n }\\n}\\n\\nimpl<\'a, T> Iterator for ColumnIterator<\'a, T> {\\n type Item = &\'a T;\\n\\n fn next(&mut self) -> Option<Self::Item> {\\n if self.i >= self.map.len() {\\n return None;\\n }\\n\\n self.i += 1;\\n Some(&self.map[self.i - 1][self.column])\\n }\\n}\\n```\\n\\nGiven this piece of an iterator, it is very easy to factor out the common\\nfunctionality between the rows and columns into:\\n```rust\\nlet mut find_boundaries = |constructor: fn(usize) -> Orientation,\\n iterator: &mut dyn Iterator<Item = &char>,\\n upper_bound,\\n i| {\\n let mut first_non_empty = iterator.enumerate().skip_while(|&(_, &c)| c == \' \');\\n let start = first_non_empty.next().unwrap().0 as isize;\\n\\n let mut last_non_empty = first_non_empty.skip_while(|&(_, &c)| c != \' \');\\n let end = last_non_empty.next().unwrap_or((upper_bound, &\'_\')).0 as isize;\\n\\n boundaries.insert(constructor(i), start..end);\\n};\\n```\\n\\nAnd then use it as such:\\n```rust\\n// construct all horizontal boundaries\\n(0..map.len()).for_each(|row| {\\n find_boundaries(\\n Orientation::horizontal,\\n &mut map[row].iter(),\\n map[row].len(),\\n row,\\n );\\n});\\n\\n// construct all vertical boundaries\\n(0..map[0].len()).for_each(|col| {\\n find_boundaries(\\n Orientation::vertical,\\n &mut ColumnIterator::new(&map, col),\\n map.len(),\\n col,\\n );\\n});\\n```\\n\\n#### Walking around the map\\n\\nOnce the 2nd part got introduced, you start to think about a way how not to\\ncopy-paste a lot of stuff (I haven\'t avoided it anyways\u2026). In this problem, I\'ve\\nchosen to introduce a trait (i.e. _interface_) for 2D and 3D walker.\\n```rust\\ntrait Wrap: Clone {\\n type State;\\n\\n // simulation\\n fn is_blocked(&self) -> bool;\\n fn step(&mut self, steps: isize);\\n fn turn_left(&mut self);\\n fn turn_right(&mut self);\\n\\n // movement\\n fn next(&self) -> (Self::State, Direction);\\n\\n // final answer\\n fn answer(&self) -> Output;\\n}\\n```\\n\\nEach walker maintains its own state and also provides the functions that are\\nused during the simulation. The \u201cpromised\u201d methods are separated into:\\n* _simulation_-related: that are used during the simulation from the `.fold()`\\n* _movement_-related: just a one method that holds most of the logic differences\\n between 2D and 3D\\n* _final answer_: which extracts the _proof of solution_ from the\\n implementation-specific walker\\n\\nBoth 2D and 3D versions borrow the original input and therefore you must\\nannotate the lifetime of it:\\n```rust\\nstruct Wrap2D<\'a> {\\n input: &\'a Input,\\n position: Position,\\n direction: Direction,\\n}\\nimpl<\'a> Wrap2D<\'a> {\\n fn new(input: &\'a Input) -> Wrap2D<\'a> {\\n// \u2026\\n```\\n\\n#### Problems\\n\\nI have used a lot of closures for this problem and once I introduced a parameter\\nthat was of unknown type (apart from the fact it implements a specific trait), I\\ngot suggested a \u201cfix\u201d for the compilation error that resulted in something that\\nwas not possible to parse, cause it, more than likely, violated the grammar.\\n\\nIn a similar fashion, I have been suggested changes that led to a code that\\ndidn\'t make sense by just looking at it (there was no need to try the changes),\\nfor example one suggested change in the closure parameter caused disapperance of\\nthe parameter name. :smile:\\n\\n#### Clippy\\n\\nI have to admit that Clippy was rather helpful here, I\'ll include two examples\\nof rather smart suggestions.\\n\\nWhen writing the parsing for this problem, the first thing I have spotted on the\\n`char` was the `.is_digit()` function that takes a radix as a parameter. Clippy\\nnoticed that I use `radix = 10` and suggested switching to `.is_ascii_digit()`\\nthat does exactly the same thing:\\n```diff\\n- .take_while(|c| c.is_digit(10))\\n+ .take_while(|c| c.is_ascii_digit())\\n```\\n\\nAnother useful suggestion appeared when working with the iterators and I wanted\\nto get the $n$-th element from it. You know the `.skip()`, you know the\\n`.next()`, just \u201cslap\u201d them together and we\'re done for :grin: Well, I got\\nsuggested to use `.nth()` that does exactly the combination of the two mentioned\\nmethods on iterators:\\n```diff\\n- match it.clone().skip(skip).next().unwrap() {\\n+ match it.clone().nth(skip).unwrap() {\\n```\\n\\n## [Day 23: Unstable Diffusion](https://adventofcode.com/2022/day/23)\\n\\n:::info tl;dr\\n\\nSimulating movement of elves around with a set of specific rules.\\n\\n:::\\n\\n### Solution\\n\\nThere\'s not much to mention since it\'s just a cellular automaton simulation\\n(even though the AoC rules for cellular automatons usually get out of hand\\n:wink:).\\n\\nAlthough I had a need to determine boundaries of the elves\' positions and ended\\nup with a nasty DRY violation. Knowing that you you\'re looking for maximum and\\nminimum that are, of course, exactly the same except for initial values and\\ncomparators, it looks like a rather simple fix, but typing in Rust is something\\nelse, right? In the end I settled for a function that computes both boundaries\\nwithout any duplication while using a closure:\\n```rust\\nfn get_bounds(positions: &Input) -> (Vector2D<isize>, Vector2D<isize>) {\\n let f = |init, cmp: &dyn Fn(isize, isize) -> isize| {\\n positions\\n .iter()\\n .fold(Vector2D::new(init, init), |acc, elf| {\\n Vector2D::new(cmp(acc.x(), elf.x()), cmp(acc.y(), elf.y()))\\n })\\n };\\n\\n (f(isize::MAX, &min::<isize>), f(isize::MIN, &max::<isize>))\\n}\\n```\\n\\nThis function returns a pair of 2D vectors that represent opposite points of the\\nbounding rectangle of all elves.\\n\\nYou might ask why would we need a closure and the answer is that `positions`\\ncannot be captured from within the nested function, only via closure. One more\\nfun fact on top of that is the type of the comparator\\n```rust\\n&dyn Fn(isize, isize) -> isize\\n```\\nOnce we remove the `dyn` keyword, compiler yells at us and also includes a way\\nhow to get a more thorough explanation of the error by running\\n\\n $ rustc --explain E0782\\n\\nwhich shows us\\n\\n Trait objects must include the `dyn` keyword.\\n \\n Erroneous code example:\\n \\n ```\\n trait Foo {}\\n fn test(arg: Box<Foo>) {} // error!\\n ```\\n \\n Trait objects are a way to call methods on types that are not known until\\n runtime but conform to some trait.\\n \\n Trait objects should be formed with `Box<dyn Foo>`, but in the code above\\n `dyn` is left off.\\n \\n This makes it harder to see that `arg` is a trait object and not a\\n simply a heap allocated type called `Foo`.\\n \\n To fix this issue, add `dyn` before the trait name.\\n \\n ```\\n trait Foo {}\\n fn test(arg: Box<dyn Foo>) {} // ok!\\n ```\\n \\n This used to be allowed before edition 2021, but is now an error.\\n\\n:::danger Rant\\n\\nNot all of the explanations are helpful though, in some cases they might be even\\nmore confusing than helpful, since they address _very simple_ use cases.\\n\\nAs you can see, even in this case there are two sides to the explanations:\\n* it explains why you need to use `dyn`, but\\n* it still mentions that trait objects need to be heap-allocated via `Box<T>`\\n that, as you can see in my snippet, **does not** apply here :smile: IMO it\'s\\n caused by the fact that we are borrowing it and therefore we don\'t need to\\n care about the size or whereabouts of it.\\n\\n:::\\n\\n:::info C++ parallel\\n\\nIf you dive into the explanation above, you can notice that the `Box<dyn Trait>`\\npattern is very helpful for using types that are not known during compile-time.\\nYou would use a very similar approach in C++ when parsing some data structure\\nfrom input (let\'s say JSON for example).\\n\\nOn the other hand, in this case, it doesn\'t really make much sense, cause you\\ncan clearly see that the types **are known** during the compile-time, which in\\nC++ could be easily resolved by templating the helper function.\\n\\n:::\\n\\n## [Day 24: Blizzard Basin](https://adventofcode.com/2022/day/24)\\n\\n:::info tl;dr\\n\\nNavigating your way through a basin with series of blizzards that move around\\nyou as you move.\\n\\n:::\\n\\n:::caution\\n\\nIt\'s second to last day and I went \u201c_bonkers_\u201d on the Rust :smile: Proceed to\\nread _Solution_ part on your own risk.\\n\\n:::\\n\\n### Solution\\n\\nYou are given a map with blizzards all over the place and you\'re supposed to\\nfind the minimum time it requires you to walk through the basin without getting\\nin any of the blizzards.\\n\\n#### Breakdown\\n\\nRelatively simple, yet a bit annoying, approach can be taken. It\'s technically\\na shortest-path algorithm implementation with some relaxation restrictions and\\nbeing able to stay on one position for some time, so each _vertex_ of the graph\\nis determined by the position on the map and the _timestamp_. I have chosen to\\nuse `Vector3D<usize>`, since `x` and `y` attributes can be used for the position\\nand, well, let\'s use `z` for a timestamp, cause why not, right? :wink:\\n\\n#### Evaluating the blizzards\\n\\n:::caution\\n\\nI think that this is the most perverted abuse of the traits in the whole 4 weeks\\nof AoC in Rust\u2026\\n\\n:::\\n\\nThe blizzards move along their respective directions in time and loop around in\\ntheir respective row/column. Each vertex holds position **and** time, so we can\\n_just_ index the basin with the vertex itself, right? Yes, we can :smiling_imp:\\n\\n:::tip Fun fact\\n\\nWhile writing this part, I\'ve recognized unnecessary verbosity in the code and\\ncleaned it up a bit. The changed version is shown here and the original was just\\nmore verbose.\\n\\n:::\\n\\nI\'ll skip the boring parts of checking bounds and entry/exit of the basin :wink:\\nWe can easily calculate positions of the blizzards using a modular arithmetics:\\n```rust\\nimpl Index<Position> for Basin {\\n type Output = char;\\n\\n fn index(&self, index: Position) -> &Self::Output {\\n // \u2039skipped boring parts\u203a\\n\\n // We need to account for the loops of the blizzards\\n let width = self.cols - 2;\\n let height = self.rows - 2;\\n\\n let blizzard_origin = |size, d, t, i| ((i - 1 + size + d * (t % size)) % size + 1) as usize;\\n [\\n (\\n index.y() as usize,\\n blizzard_origin(width, -1, index.z(), index.x()),\\n \'>\',\\n ),\\n (\\n index.y() as usize,\\n blizzard_origin(width, 1, index.z(), index.x()),\\n \'<\',\\n ),\\n (\\n blizzard_origin(height, -1, index.z(), index.y()),\\n index.x() as usize,\\n \'v\',\\n ),\\n (\\n blizzard_origin(height, 1, index.z(), index.y()),\\n index.x() as usize,\\n \'^\',\\n ),\\n ]\\n .iter()\\n .find_map(|&(y, x, direction)| {\\n if self.map[y][x] == direction {\\n Some(&self.map[y][x])\\n } else {\\n None\\n }\\n })\\n .unwrap_or(&\'.\')\\n }\\n}\\n```\\n\\nAs you can see, there is an expression for calculating the original position and\\nit\'s used multiple times, so why not take it out to a lambda, right? :wink:\\n\\nI couldn\'t get the `rustfmt` to format the `for`-loop nicely, so I\'ve just\\ndecided to go with iterating over an elements of a slice. I have used, once\\nagain, a combination of two functions (`find_map` in this case) to do 2 things\\nat once and at the end, if we haven\'t found any blizzard, we just return the\\nempty space.\\n\\nI think it\'s a very _nice_ (and naughty) way how to use the `Index` trait, don\'t\\nyou think?\\n\\n#### Shortest-path algorithm\\n\\nFor the shortest path you can choose and adjust any of the common shortest-path\\nalgorithms, in my case, I have decided to use [_A\\\\*_] instead of Dijkstra\'s\\nalgorithm, since it better reflects the _cost_ function.\\n\\n:::info Comparison of costs\\n\\nWith the Dijkstra\'s algorithm I would proceed with the `time` attribute used as\\na priority for the queue.\\n\\nWhereas with the _A\\\\*_, I have chosen to use both time and Manhattan distance\\nthat promotes vertices closer to the exit **and** with a minimum time taken.\\n\\n:::\\n\\nCost function is, of course, a closure :wink:\\n```rust\\nlet cost = |p: Position| p.z() as usize + exit.y().abs_diff(p.y()) + exit.x().abs_diff(p.x());\\n```\\n\\nAnd also for checking the possible moves from the current vertex, I have\\nimplemented, yet another, closure that yields an iterator with the next moves:\\n```rust\\nlet next_positions = |p| {\\n [(0, 0, 1), (0, -1, 1), (0, 1, 1), (-1, 0, 1), (1, 0, 1)]\\n .iter()\\n .filter_map(move |&(x, y, t)| {\\n let next_p = p + Vector3D::new(x, y, t);\\n\\n if basin[next_p] == \'.\' {\\n Some(next_p)\\n } else {\\n None\\n }\\n })\\n};\\n```\\n\\n#### Min-heap\\n\\nIn this case I had a need to use the priority queue taking the elements with the\\nlowest cost as the prioritized ones. Rust only offers you the [`BinaryHeap`] and\\nthat is a max-heap. One of the ways how to achieve a min-heap is to put the\\nelements in wrapped in a [`Reverse`] (as is even showed in the linked [docs of\\nthe `BinaryHeap`]). However the wrapping affects the type of the heap and also\\npopping the most prioritized elements yields values wrapped in the `Reverse`.\\n\\nFor this purpose I have just taken the max-heap and wrapped it as a whole in a\\nseparate structure providing just the desired methods:\\n```rust\\nuse std::cmp::{Ord, Reverse};\\nuse std::collections::BinaryHeap;\\n\\npub struct MinHeap<T> {\\n heap: BinaryHeap<Reverse<T>>,\\n}\\n\\nimpl<T: Ord> MinHeap<T> {\\n pub fn new() -> MinHeap<T> {\\n MinHeap {\\n heap: BinaryHeap::new(),\\n }\\n }\\n\\n pub fn push(&mut self, item: T) {\\n self.heap.push(Reverse(item))\\n }\\n\\n pub fn pop(&mut self) -> Option<T> {\\n self.heap.pop().map(|Reverse(x)| x)\\n }\\n}\\n\\nimpl<T: Ord> Default for MinHeap<T> {\\n fn default() -> Self {\\n Self::new()\\n }\\n}\\n```\\n\\nRest is just the algorithm implementation which is not that interesting.\\n\\n## [Day 25: Full of Hot Air](https://adventofcode.com/2022/day/25)\\n\\n:::info tl;dr\\n\\nPlaying around with a numbers in a _special_ base.\\n\\n:::\\n\\nGetting flashbacks to the _IB111 Foundations of Programming_\u2026 Very nice \u201cproblem\u201d\\nwith a rather easy solution, as the last day always seems to be.\\n\\n### Solution\\n\\nImplementing 2 functions, converting from the _SNAFU base_ and back to the _SNAFU_\\n_base_ representation. Let\'s do a bit more though! I have implemented two functions:\\n* `from_snafu`\\n* `to_snafu`\\n\\nNow it is apparent that all I do is number to string and string to number. Hmm\u2026\\nthat sounds familiar, doesn\'t it? Let\'s introduce a structure for the SNAFU numbers\\nand implement the traits that we need.\\n\\nLet\'s start with a structure:\\n```rust\\n#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]\\nstruct SNAFU {\\n value: i64,\\n}\\n```\\n\\n#### Converting from `&str`\\n\\nWe will start by implementing the `FromStr` trait that will help us parse our input.\\nThis is rather simple, I can just take the `from_snafu` function, copy-paste it\\ninto the `from_str` method and the number I get will be wrapped in `Result` and\\n`SNAFU` structure.\\n\\n#### Converting to `String`\\n\\nThis is more fun. In some cases you need to implement only one trait and others\\nare automatically implemented using that one trait. In our case, if you look in\\nthe documentation, you can see that `ToString` trait is automatically implemented\\nfor any type that implements `Display` trait.\\n\\nLet\'s implement the `Display` trait then. We should be able to use the `to_snafu`\\nfunction and just take the `self.value` from the `SNAFU` structure.\\n\\nAnd for the convenience of tests, we can also implement a rather simple `From<i64>`\\ntrait for the `SNAFU`.\\n\\n#### Adjusting the code\\n\\nAfter those changes we need to adjust the code and tests.\\n\\nParsing of the input is very easy, before we have used the lines, now we parse\\neverything:\\n```diff\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\\n- file_to_lines(pathname)\\n+ file_to_structs(pathname)\\n }\\n```\\n\\nPart 1 needs to be adjusted a bit too:\\n```diff\\n fn part_1(input: &Input) -> Output {\\n- to_snafu(input.iter().map(|s| from_snafu(s)).sum())\\n+ SNAFU::from(input.iter().map(|s| s.value).sum::<i64>()).to_string()\\n }\\n```\\n\\nYou can also see that it simplifies the meaning a bit and it is more explicit than\\nthe previous versions.\\n\\nAnd for the tests:\\n```diff\\n #[test]\\n fn test_from() {\\n- for (n, s) in EXAMPLES.iter() {\\n- assert_eq!(from_snafu(s), *n);\\n+ for (&n, s) in EXAMPLES.iter() {\\n+ assert_eq!(s.parse::<SNAFU>().unwrap().value, n);\\n }\\n }\\n \\n #[test]\\n fn test_to() {\\n- for (n, s) in EXAMPLES.iter() {\\n- assert_eq!(to_snafu(*n), s.to_string());\\n+ for (&n, s) in EXAMPLES.iter() {\\n+ assert_eq!(SNAFU::from(n).to_string(), s.to_string());\\n }\\n```\\n\\n## Summary\\n\\nLet\'s wrap the whole thing up! Keeping in mind both AoC and the Rust\u2026\\n\\n![Finished advent calendar :smile:](/img/blog/aoc-2022/04-week-4/calendar.png)\\n\\n### Advent of Code\\n\\nThis year was quite fun, even though most of the solutions and posts came in\\nlater on (*cough* in \'23 *cough*). Day 22 was the most obnoxious one\u2026 And also\\nit feels like I used priority queues and tree data structures **a lot** :eyes:\\n\\n### with Rust\\n\\nI must admit that a lot of compiler warnings and errors were very useful. Even\\nthough I still found some instances where they didn\'t help at all or cause even\\nworse issues than I had. Compilation times have been addressed with the caching.\\n\\nBuilding my first tree data structure in Rust has been a very \u201cinteresting\u201d\\njourney. Being able to write a more generic BFS algorithm that allows you to not\\nduplicate code while still mantaining the desired functionality contributes to\\na very readable code.\\n\\nI am definitely much more aware of the basic things that bloated Python is\\nmissing, yet Rust has them\u2026\\n\\nUsing explicit types and writing down placeholder functions with `todo!()`\\nmacros is very pleasant, since it allows you to easily navigate the type system\\nduring the development when you don\'t even need to be sure how are you going to\\nput the smaller pieces together.\\n\\nI have used a plethora of traits and also implemented some of them to either be\\nidiomatic, or exploit the syntactic sugar they offer. Deriving the default trait\\nimplementation is also very helpful in a lot of cases, e.g. debugging output,\\ncopying, equality comparison, etc.\\n\\nI confess to touching more \u201ccursed\u201d parts of the Rust, such as macros to\\ndeclutter the copy-paste for tests or writing my own structures that need to\\ncarry a lifetime for their own fields.\\n\\ntl;dr Relatively pleasant language until you hit brick wall :wink:\\n\\n---\\n\\nSee you next year! Maybe in Rust, maybe not :upside_down_face:\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[_A\\\\*_]: https://en.wikipedia.org/wiki/A*_search_algorithm\\n[`BinaryHeap`]: https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html\\n[`Reverse`]: https://doc.rust-lang.org/std/cmp/struct.Reverse.html\\n[docs of the `BinaryHeap`]: https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html#min-heap"},{"id":"aoc-2022/3rd-week","metadata":{"permalink":"/blog/aoc-2022/3rd-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md","source":"@site/blog/aoc-2022/03-week-3.md","title":"3rd week of Advent of Code \'22 in Rust","description":"Surviving third week in Rust.","date":"2023-07-06T21:00:00.000Z","formattedDate":"July 6, 2023","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":11.565,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"3rd week of Advent of Code \'22 in Rust","description":"Surviving third week in Rust.","date":"2023-07-06T21:00","slug":"aoc-2022/3rd-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week"},"nextItem":{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally"}},"content":"Let\'s go through the third week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 15: Beacon Exclusion Zone](https://adventofcode.com/2022/day/15)\\n\\n:::info tl;dr\\n\\nTriangulating a distress beacon based on the information from the sensors.\\n\\n:::\\n\\n### Solution\\n\\nRelatively easy thing to implement, no major Rust issues hit.\\n\\n## [Day 16: Proboscidea Volcanium](https://adventofcode.com/2022/day/16)\\n\\n:::info tl;dr\\n\\nFinding a max flow in a graph given some time constraints.\\n\\n:::\\n\\n### Solution\\n\\nI have used some interesting things to implement this and make it easier for me.\\n\\n#### Indexing in graph\\n\\nI have come across a situation where I needed to keep more information regarding\\nthe graph\u2026 In that case you can, of course, create a structure and keep it in,\\nbut once you have multiple members in the structure it gets harder to work with\\nsince you need to address the fields in the structure. When you work with graph,\\nyou frequently need to access the vertices and in this case it felt a lot easier\\nto implement the indexing in a graph, rather than explicitly access the\\nunderlying data structure.\\n\\nHere you can see a rather short snippet from the solution that allows you to\\n\u201cindex\u201d the graph:\\n```rust\\nimpl Index<&str> for Graph {\\n type Output = Vertex;\\n\\n fn index(&self, index: &str) -> &Self::Output {\\n &self.g[index]\\n }\\n}\\n```\\n\\n#### Cartesian product\\n\\nDuring the implementation I had to utilize Floyd-Warshall algorithm for finding\\nthe shortest path between pairs of vertices and utilized the `iproduct!` macro\\nfrom the [`itertools`]. It is a very useful higher-order function that allows\\nyou to keep the nesting of the loops at a minimum level while still maintaining\\nthe same functionality.\\n\\n#### \u201cImplementing\u201d an iterator\\n\\nFor the second part, you get to split the work between 2 actors. That way you\\ncan achieve higher efficiency of the whole process that you\'re planning, but it\\nalso makes it harder to evaluate algorithmically, since you need to check the\\ndifferent ways the work can be split.\\n\\nBeing affected by _functional programming brain damage_:tm:, I have chosen to\\ndo this part by function that returns an iterator over the possible ways:\\n```rust\\nfn pairings(\\n valves: &BTreeSet<String>,\\n) -> impl Iterator<Item = (BTreeSet<String>, BTreeSet<String>)> + \'_ {\\n let mapping = valves.iter().collect_vec();\\n\\n let max_mask = 1 << (valves.len() - 1);\\n\\n (0..max_mask).map(move |mask| {\\n let mut elephant = BTreeSet::new();\\n let mut human = BTreeSet::new();\\n\\n for (i, &v) in mapping.iter().enumerate() {\\n if (mask & (1 << i)) == 0 {\\n human.insert(v.clone());\\n } else {\\n elephant.insert(v.clone());\\n }\\n }\\n\\n (human, elephant)\\n })\\n}\\n```\\n\\n## [Day 17: Pyroclastic Flow](https://adventofcode.com/2022/day/17)\\n\\n:::info tl;dr\\n\\nSimulating an autonomous Tetris where pieces get affected by a series of jets of\\nhot gas.\\n\\n:::\\n\\n### Solution\\n\\nSimilarly to the previous day I have created some iterators :smile:\\n\\n#### Collision detection\\n\\nOnce you need to check for collisions it is very helpful to be able to just\\niterate through the positions that can actually collide with the wall or other\\npiece.\\n\\nTo get the desired behaviour, you can just compose few smaller functions:\\n```rust\\nfn occupied(shape: &[Vec<char>]) -> impl Iterator<Item = Position> + \'_ {\\n shape.iter().enumerate().flat_map(|(y, row)| {\\n row.iter().enumerate().filter_map(move |(x, c)| {\\n if c == &\'#\' {\\n Some(Vector2D::new(x as isize, y as isize))\\n } else {\\n None\\n }\\n })\\n })\\n}\\n```\\n\\nIn the end, we get relative positions which we can adjust later when given the\\nspecific positions from iterator. You can see some interesting parts in this:\\n\\n* `.enumerate()` allows us to get both the indices (coordinates) and the line\\n or, later on, the character itself,\\n* `.flat_map()` flattens the iterator, i.e. when we return another iterator,\\n they just get chained instead of iterating over iterators (which sounds pretty\\n disturbing, doesn\'t it?),\\n* and finally `.filter_map()` which is pretty similar to the \u201cbasic\u201d `.map()`\\n with a one, key, difference that it expects the items of an iterator to be\\n mapped to an `Option<T>` from which it ignores nothing (as in `None` :wink:)\\n and also unwraps the values from `Some(\u2026)`.\\n\\n#### Infinite iterator\\n\\nIn the solution we cycle through both Tetris-like shapes that fall down and the\\njets that move our pieces around. Initially I have implemented my own infinite\\niterator that just yields the indices. It is a very simple, yet powerful, piece\\nof code:\\n```rust\\nstruct InfiniteIndex {\\n size: usize,\\n i: usize,\\n}\\n\\nimpl InfiniteIndex {\\n fn new(size: usize) -> InfiniteIndex {\\n InfiniteIndex { size, i: size - 1 }\\n }\\n}\\n\\nimpl Iterator for InfiniteIndex {\\n type Item = usize;\\n\\n fn next(&mut self) -> Option<Self::Item> {\\n self.i = (self.i + 1) % self.size;\\n Some(self.i)\\n }\\n}\\n```\\n\\nHowever when I\'m looking at the code now, it doesn\'t really make much sense\u2026\\nGuess what, we can use a built-in function that is implemented on iterators for\\nthat! The function is called `.cycle()`\\n\\nOn the other hand, I am not going to switch to that function, since it would\\nintroduce an another myriad of issues caused by the fact that I create iterators\\nright away in the constructor of my structure and the iterators would borrow\\nboth the jets and shapes which would introduce a lifetime dependency into the\\nstructure.\\n\\n## [Day 18: Boiling Boulders](https://adventofcode.com/2022/day/18) \\n\\n:::info tl;dr\\n\\nLet\'s compute a surface area of some obsidian approximated via coordinates of\\ncubes.\\n\\n:::\\n\\n### Solution\\n\\nThis day is kinda interesting, because it shows how easily you can complicate the\\nproblem and also how much can you screw yourself over with the optimization and\\n\u201csmart\u201d approach.\\n\\nFor the first part you need to find the surface area of an obsidian that is\\napproximated by cubes. Now, that is a very easy thing to do, just keep the track\\nof already added cubes, and check if the newly added cube touches any face of any\\nother cube. Simple, and with a `BTreeSet` relatively efficient way to do it.\\n\\nHowever the second part lets you on a secret that there may be some surface area\\nfrom the \u201cinside\u201d too and you want to know only the one from the outside of the\\nobsidian. I have seen some solutions later, but if you check your data, you might\\nnotice that the bounding box of all the cubes isn\'t that big at all. Therefore I\\nchose to pre-construct the box beforehand, fill in the cubes and then just run a\\nBFS turning all the lava on the outside into the air. Now you just need to check\\ncubes and count how many of their faces touch the air.\\n\\n## [Day 19: Not Enough Minerals](https://adventofcode.com/2022/day/19)\\n\\n:::info tl;dr\\n\\nFinding out the best strategy for building robots to collect geodes.\\n\\n:::\\n\\n### Solution\\n\\nNot much interesting stuff to mention apart from the suggestion to never believe\\nthat the default implementation given by `derive` macro is what you want, it\\ndoesn\'t have to be. :smile:\\n\\n## [Day 20: Grove Positioning System](https://adventofcode.com/2022/day/20)\\n\\n:::info tl;dr\\n\\nShuffling around the _circular linked list_ to find the coordinates.\\n\\n:::\\n\\nNow, small rant for this day is in place. They\'ve never mentioned that coordinates\\ncan repeat and therefore the values are non-unique. This is something that did\\nnot happen in the given sample, but was present in the user input. It took \xbba lot\xab\\nto realize that this is the issue.\\n\\n### Solution\\n\\nI have tried implementing a circular linked list for this\u2026 and I have failed\\nmiserably. To be fair, I still have no clue why. It was \u201cfun\u201d to play around with\\nthe `Rc<RefCell<T>>`. In the end I failed on _wrong answer_. I have also encountered\\na rather interesting issue with `.borrow_mut()` method being used on `Rc<RefCell<T>>`.\\n\\n#### `.borrow_mut()`\\n\\nConsider the following snippet of the code (taken from the documentation):\\n```rust\\nuse std::cell::{RefCell, RefMut};\\nuse std::collections::HashMap;\\nuse std::rc::Rc;\\n// use std::borrow::BorrowMut;\\n\\nfn main() {\\n let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));\\n // Create a new block to limit the scope of the dynamic borrow\\n {\\n let mut map: RefMut<_> = shared_map.borrow_mut();\\n map.insert(\\"africa\\", 92388);\\n map.insert(\\"kyoto\\", 11837);\\n map.insert(\\"piccadilly\\", 11826);\\n map.insert(\\"marbles\\", 38);\\n }\\n\\n // Note that if we had not let the previous borrow of the cache fall out\\n // of scope then the subsequent borrow would cause a dynamic thread panic.\\n // This is the major hazard of using `RefCell`.\\n let total: i32 = shared_map.borrow().values().sum();\\n println!(\\"{total}\\");\\n}\\n```\\n\\nWe allocate a hash map on the heap and then in the inner block, we borrow it as\\na mutable reference, so that we can use it.\\n\\n:::note\\n\\nIt is a very primitive example for `Rc<RefCell<T>>` and mutable borrow.\\n\\n:::\\n\\nIf you uncomment the 4th line with `use std::borrow::BorrowMut;`, you cannot\\ncompile the code anymore, because of\\n```\\n Compiling playground v0.0.1 (/playground)\\nerror[E0308]: mismatched types\\n --\x3e src/main.rs:10:34\\n |\\n10 | let mut map: RefMut<_> = shared_map.borrow_mut();\\n | --------- ^^^^^^^^^^^^^^^^^^^^^^^ expected struct `RefMut`, found mutable reference\\n | |\\n | expected due to this\\n |\\n = note: expected struct `RefMut<\'_, _>`\\n found mutable reference `&mut Rc<RefCell<HashMap<_, _>>>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:11:13\\n |\\n11 | map.insert(\\"africa\\", 92388);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:12:13\\n |\\n12 | map.insert(\\"kyoto\\", 11837);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:13:13\\n |\\n13 | map.insert(\\"piccadilly\\", 11826);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:14:13\\n |\\n14 | map.insert(\\"marbles\\", 38);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nSome errors have detailed explanations: E0308, E0599.\\nFor more information about an error, try `rustc --explain E0308`.\\nerror: could not compile `playground` due to 5 previous errors\\n```\\n\\nIt might seem **a bit** ridiculous. However, I got to a point where the compiler\\nsuggested `use std::borrow::BorrowMut;` and it resulted in breaking parts of the\\ncode that worked previously. I think it may be a good idea to go over what is\\nhappening here.\\n\\n##### `.borrow_mut()` on `Rc<RefCell<T>>`\\n\\nLet\'s consider a variable `x` of type `Rc<RefCell<T>>`. What happens when you\\ncall `.borrow_mut()` on it? We can look at the `Rc` type, and\u2026 hang on! There is\\nneither `.borrow_mut()` method or `BorrowMut` trait implemented. How can we do it\\nthen?\\n\\nLet\'s go further and we can see that `RefCell<T>` implements a `.borrow_mut()`\\nmethod. OK, but how can we call it on the `Rc<T>`? Easily! `Rc<T>` implements\\n`Deref<T>` and therefore you can call methods on `Rc<T>` objects as if they were\\n`T` objects. If we read on _`Deref` coercion_, we can see the following:\\n\\n> If `T` implements `Deref<Target = U>`, \u2026:\\n> * \u2026\\n> * `T` implicitly implements all the (immutable) methods of the type `U`.\\n\\nWhat is the requirement for the `.borrow_mut()` on `RefCell<T>`? Well, it needs\\n`&self`, so the `Deref` implements the `.borrow_mut()` for the `Rc<RefCell<T>>`.\\n\\n##### `BorrowMut` trait\\n\\nI have not been able to find a lot on this trait. My guess is that it provides a\\nmethod instead of a syntactic sugar (`&mut x`) for the mutable borrow. And also\\nit provides default implementations for the types:\\n```rust\\nimpl BorrowMut<str> for String\\n\\nimpl<T> BorrowMut<T> for &mut T\\nwhere\\n T: ?Sized,\\n\\nimpl<T> BorrowMut<T> for T\\nwhere\\n T: ?Sized,\\n\\nimpl<T, A> BorrowMut<[T]> for Vec<T, A>\\nwhere\\n A: Allocator,\\n\\nimpl<T, A> BorrowMut<T> for Box<T, A>\\nwhere\\n A: Allocator,\\n T: ?Sized,\\n\\nimpl<T, const N: usize> BorrowMut<[T]> for [T; N]\\n```\\n\\n##### Conflict\\n\\nNow the question is why did it break the code\u2026 My first take was that the type\\n`Rc<RefCell<T>>` has some _specialized_ implementation of the `.borrow_mut()` and\\nthe `use` overrides it with the default, which is true **in a sense**. However\\nthere is no _specialized_ implementation. Let\'s have a look at the trait and the\\ntype signature on the `RefCell<T>`:\\n```rust\\n// trait\\npub trait BorrowMut<Borrowed>: Borrow<Borrowed>\\nwhere\\n Borrowed: ?Sized,\\n{\\n fn borrow_mut(&mut self) -> &mut Borrowed;\\n}\\n\\n// \u2039RefCell<T>.borrow_mut()\u203a type signature\\npub fn borrow_mut(&self) -> RefMut<\'_, T>\\n```\\n\\nI think that we can definitely agree on the fact that `RefMut<\'_, T>` is not the\\n`RefCell<T>`.\\n\\n**In my opinion**, `RefCell<T>` implements a **separate** `.borrow_mut()` rather\\nthan implementing the interface, because it **cannot** satisfy the type requirements\\nof the trait.\\n\\n:::caution\\n\\nI wonder how are we expected to deal with this conflict, if and when, we need\\nboth the `.borrow_mut()` of the trait and `.borrow_mut()` of the `RefCell<T>`.\\n\\n:::\\n\\n:::tip Fun fact\\n\\nI was suggested by the compiler to do `use std::borrow::BorrowMut;` and break the\\ncode.\\n\\nSo much for the _almighty_ and _helpful_ compiler\u2026\\n\\n:::\\n\\n## [Day 21: Monkey Math](https://adventofcode.com/2022/day/21)\\n\\n:::info tl;dr\\n\\nComputing an expression tree and then also finding ideal value for a node.\\n\\n:::\\n\\n### Solution\\n\\nRelatively simple, until you get to the 2nd part where you start to practice\\na lot of the copy-paste. I have managed to sneak some perverted stuff in there\\nthough :) Let\'s go through the details.\\n\\n#### `Default` trait\\n\\nFor the first time and twice I had a need to have a default value for my types,\\nenumerations in this case. Rust offers a very nice trait[^1] that is described\\nas:\\n\\n> A trait for giving a type a useful default value.\\n\\nI guess it sums it up nicely. The more interesting part about this is the fact\\nthat you can use the _macro machinery_ to save yourself some typing. If you have\\nenumeration of which the default value doesn\'t bear any parameter, you can just\\ndo[^2]:\\n\\n```rust\\n#[derive(Default)]\\nenum Color {\\n #[default]\\n White,\\n Gray,\\n Black,\\n}\\n```\\n\\n#### Abusing negation\\n\\nIf you want to use a _unary minus_ operator on your own type, you can implement\\na `Neg` trait[^3]. I was dealing with a binary tree and needed a way how to look\\nat the other side, so I have just implemented the negation for flipping between\\nleft and right :smile:\\n\\n[^1]: [`Default`](https://doc.rust-lang.org/std/default/trait.Default.html) docs\\n[^2]: Pardon my example from the graph algorithms ;)\\n[^3]: [`Neg`](https://doc.rust-lang.org/std/ops/trait.Neg.html) docs\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[`itertools`]: https://crates.io/crates/itertools\\n[this Reddit post and the comment]: https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono"},{"id":"leetcode/sort-diagonally","metadata":{"permalink":"/blog/leetcode/sort-diagonally","editUrl":"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md","source":"@site/blog/leetcode/sort-matrix-diagonally.md","title":"Sort the matrix diagonally","description":"Compiler assisted development.","date":"2023-03-04T23:15:00.000Z","formattedDate":"March 4, 2023","tags":[{"label":"cpp","permalink":"/blog/tags/cpp"},{"label":"leetcode","permalink":"/blog/tags/leetcode"},{"label":"iterators","permalink":"/blog/tags/iterators"}],"readingTime":16.99,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"Sort the matrix diagonally","description":"Compiler assisted development.","date":"2023-03-04T23:15","slug":"leetcode/sort-diagonally","authors":"mf","tags":["cpp","leetcode","iterators"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week"},"nextItem":{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week"}},"content":"Let\'s try to solve one of the LeetCode challenges in easy and hard mode at the\\nsame time.\\n\\n\x3c!--truncate--\x3e\\n\\n* Link to the problem: https://leetcode.com/problems/sort-the-matrix-diagonally/\\n\\n## Problem description\\n\\nA **matrix diagonal** is a diagonal line of cells starting from some cell in\\neither the topmost row or leftmost column and going in the bottom-right direction\\nuntil reaching the matrix\'s end. For example, the **matrix diagonal** starting\\nfrom `mat[2][0]`, where `mat` is a `6 x 3` matrix, includes cells `mat[2][0]`,\\n`mat[3][1]`, and `mat[4][2]`.\\n\\nGiven an `m x n` matrix `mat` of integers, sort each matrix diagonal in ascending\\norder and return the resulting matrix.\\n\\n### Example\\n\\n![Image describing the problem](https://assets.leetcode.com/uploads/2020/01/21/1482_example_1_2.png)\\n\\n## Skeleton and initial adjustments\\n\\nWe are given the following skeleton for the C++ and the given challenge:\\n\\n```cpp\\nclass Solution {\\npublic:\\n vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {\\n \\n }\\n};\\n```\\n\\nThe task is to sort the passed matrix diagonally and then return it. First of all,\\nI don\'t like to solve this in a web browser, so we\'ll need to adjust it accordingly\\nfor running it locally. We\'ll start by including the `vector` header and using\\nfully-qualified namespaces[^1] and also adding few tests:\\n\\n```cpp\\n#include <cassert>\\n#include <vector>\\n\\nusing matrix = std::vector<std::vector<int>>;\\n\\nclass Solution {\\npublic:\\n matrix diagonalSort(matrix& mat)\\n {\\n }\\n};\\n\\nstatic void test_case_1()\\n{\\n // Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]\\n // Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]]\\n\\n Solution s;\\n assert((s.diagonalSort(std::vector { std::vector { 3, 3, 1, 1 },\\n std::vector { 2, 2, 1, 2 },\\n std::vector { 1, 1, 1, 2 } })\\n == std::vector { std::vector { 1, 1, 1, 1 },\\n std::vector { 1, 2, 2, 2 },\\n std::vector { 1, 2, 3, 3 } }));\\n}\\n\\nstatic void test_case_2()\\n{\\n // Input: mat =\\n // [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]\\n // Output:\\n // [[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]\\n\\n Solution s;\\n assert((s.diagonalSort(std::vector { std::vector { 11, 25, 66, 1, 69, 7 },\\n std::vector { 23, 55, 17, 45, 15, 52 },\\n std::vector { 75, 31, 36, 44, 58, 8 },\\n std::vector { 22, 27, 33, 25, 68, 4 },\\n std::vector { 84, 28, 14, 11, 5, 50 } })\\n == std::vector { std::vector { 5, 17, 4, 1, 52, 7 },\\n std::vector { 11, 11, 25, 45, 8, 69 },\\n std::vector { 14, 23, 25, 44, 58, 15 },\\n std::vector { 22, 27, 31, 36, 50, 66 },\\n std::vector { 84, 28, 75, 33, 55, 68 } }));\\n}\\n\\nint main()\\n{\\n test_case_1();\\n test_case_2();\\n\\n return 0;\\n}\\n```\\n\\nWe need to return the matrix, but we\'re given a reference to the input matrix. We\\ncan easily abuse the C++ here and just switch the reference to value, this way\\nthe matrix will be copied when passed to the function, we can sort the copy and\\njust return it back. And we also get yelled by the compiler for the fact that the\\nmethod doesn\'t return anything yet, so to make it \u201cshut up\u201d we will just return\\nthe input for now:\\n\\n```diff\\n- matrix diagonalSort(matrix& mat)\\n+ matrix diagonalSort(matrix mat)\\n {\\n+ return mat;\\n }\\n```\\n\\nNow, we get the copy and we\'re good to go.\\n\\n## Na\xefve solution\\n\\nAs you may know, C++ offers a plethora of functions that can be used to your\\nadvantage, given that you know how to \u201cbend\u201d the data structures accordingly.\\n\\nWhat does that mean for us? Well, we have an `std::sort`, we can use it, right?\\nLet\'s have a look at it:\\n```cpp\\ntemplate< class RandomIt >\\nvoid sort( RandomIt first, RandomIt last );\\n```\\n\\nThis overload is more than we need. What does it do? It just sorts the elements\\nin the range `[first, last)` using `operator<` on them. We can\'t sort the whole\\nmatrix using this, but\u2026 we can sort just \xbbone\xab diagonal without doing much work\\non our end.\\n\\nWhat is the `RandomIt` type though? If we look more into the documentation, we\\ncan easily find the requirements for it and also learn that it\'s a _random access_\\n_iterator_ and allows swapping its values at the same time.\\n\\n:::tip Random access iterator\\n\\nWhat is the _random access iterator_ though? We can find it in a documentation\\nand see the following description:\\n\\n> A **LegacyRandomAccessIterator** is a [LegacyBidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator)\\n> that can be moved to point to any element in constant time.\\n\\nAfter that we can see all the requirements for it being listed. I don\'t feel like\\nreading them right now, so we will just use it and see where the compilation blows\\nup, i.e. \u201c_compiler-assisted development_\u201d[^2] if you will ;)\\n\\n:::\\n\\nNow we know that we can use `std::sort` to sort the diagonal itself, but we also\\nneed to get the diagonals somehow. I\'m rather lazy, so I\'ll just delegate it to\\nsomeone else[^3]. And that way we get\\n```cpp\\nmatrix diagonalSort(matrix mat)\\n{\\n // we iterate over the diagonals\\n for (auto d : diagonals(mat)) {\\n // and we sort each diagonal\\n std::sort(d.begin(), d.end());\\n }\\n\\n // we take the matrix by copy, so we can sort in-situ and return the copy\\n // that we sorted\\n return mat;\\n}\\n```\\n\\nThis solution looks very simple, doesn\'t it? Well, cause it is.\\nLet\'s try compiling it:\\n```\\nmatrix-sort.cpp:11:23: error: use of undeclared identifier \'diagonals\' [clang-diagnostic-error]\\n for (auto d : diagonals(mat)) {\\n ^\\nFound compiler error(s).\\nmake: *** [makefile:14: tidy] Error 1\\n```\\n\\nOK, seems about right. We haven\'t implemented the `diagonals` yet. And based on\\nwhat we\'ve written so far, we need a function or a class `diagonals` that will\\ngive us the diagonals we need.\\n\\n## Implementing the `diagonals`\\n\\nCool, so we need the function that will let us go through each and every diagonal\\nin our matrix. We use the _for-range_ loop, so whatever we get back from the\\n`diagonals` must support `.begin()` and `.end()`. Since I am a masochist, we will\\ndo such functionality for a matrix of any type, not just the `int` from the challenge.\\n\\nAs I said, we need to be able to\\n* construct the object\\n* get the beginning\\n* get the end (the \u201csentinel\u201d)\\n\\n```cpp\\ntemplate <typename T>\\nclass diagonals {\\n using matrix_t = std::vector<std::vector<T>>;\\n\\n matrix_t& _matrix;\\n\\npublic:\\n diagonals(matrix_t& m)\\n : _matrix(m)\\n {\\n }\\n diagonals_iter begin()\\n {\\n /* TODO */\\n }\\n diagonals_iter end()\\n {\\n /* TODO */\\n }\\n};\\n```\\n\\nNow we have a `diagonals` that we can use to go through the diagonals. We haven\'t\\nimplemented the core of it yet. Let\'s go through what we have for now.\\n\\nWe have a templated class with templated `T` that is used as a placeholder for any\\ntype we would store in the matrix. Because I\'m lazy, I have defined the `matrix_t`\\ntype that is a \u201cshortcut\u201d for `std::vector<std::vector<T>>`, so I don\'t have to\\ntype it out all the time. Of course, we need to store the matrix, we are given,\\nas a private attribute. And then just have the constructor and the 2 methods we\\nneed for the _for-range_.\\n\\n### Iterating over diagonals\\n\\nNow that we have an object that will allow us to iterate through the diagonals,\\nwe need to implement the iterating itself. We need to go through all of them, so\\nwe have multiple options how to do so. I have decided to start from the \u201cmain\u201d\\ndiagonal that starts at `(0, 0)` index and then proceed with the diagonals starting\\nin the first row, followed by the rest of the diagonals in the first column.\\n\\nWe need to be able to tell that we\'ve iterated through all of them, and also we\\nneed to know which diagonal is next. For that purpose we will pass the indices\\nof the first cell on the diagonal. That way we can always tell how to move forward.\\n\\nWe will start by updating the `begin` and `end` to reflect our choice accordingly.\\n\\n```cpp\\ndiagonals_iter begin() { return diagonals_iter { _matrix, 0, 0 }; }\\ndiagonals_iter end() { return diagonals_iter { _matrix, 0, _matrix.size() }; }\\n```\\n\\nFor the `begin` we return the first diagonal that starts at `(0, 0)`. And because\\nwe have decided to do the diagonals in the first column at the end, the first\\ndiagonal that is not a valid one is the one at `(0, height)`. Apart from the\\nindices, we also need to pass reference to the matrix itself.\\n\\n:::note\\n\\nYou may have noticed that we also include the diagonals that have length 1,\\nspecifically the ones at `(0, height - 1)` and `(width - 1, 0)`. We are implementing\\nan iterator that **should not** care about the way it\'s being used. Therefore, we\\ndon\'t care about the fact they don\'t need to be sorted.\\n\\n:::\\n\\nCool, let\'s leave the iterator itself to someone else, right?[^4]\\n\\n### Implementing the iterator over diagonals\\n\\nWe can start with a simple skeleton based on the information that we pass from\\nthe `diagonals`. Also to utilize the `matrix_t` and also contain implementation\\ndetails hidden away, we will put this code into the `diagonals` class.\\n\\n```cpp\\nclass diagonals_iter {\\n matrix_t& m;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n};\\n```\\n\\nIn this case we will be implementing a \u201csimple\u201d forward iterator, so we don\'t\\nneed to implement a lot. Notably it will be:\\n* inequality operator (we need to know when we reach the end and have nothing to\\n iterate over)\\n* preincrementation operator (we need to be able to move around the iterable)\\n* dereference operator (we need to be able to retrieve the objects we iterate\\n over)\\n\\n```cpp\\nclass diagonals_iter {\\n matrix_t& m;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator!=(const diagonals_iter& rhs) const\\n {\\n // iterators are not equal if they reference different matrices, or\\n // their positions differ\\n return m != rhs.m || x != rhs.x || y != rhs.y;\\n }\\n\\n diagonals_iter& operator++()\\n {\\n if (y != 0) {\\n // iterating through diagonals down the first column\\n y++;\\n return *this;\\n }\\n\\n // iterating the diagonals along the first row\\n x++;\\n if (x == m.front().size()) {\\n // switching to diagonals in the first column\\n x = 0;\\n y++;\\n }\\n\\n return *this;\\n }\\n\\n diagonal<T> operator*() const { return diagonal { m, x, y }; }\\n};\\n```\\n\\nLet\'s go one-by-one. Inequality operator is rather simple, just compare iterator\'s\\nattributes field-by-field. If you think about it, checking inequality of two 2D\\nvectors may be a bit inefficient, therefore, we can swap around and check it as\\na last thing.\\n\\n```diff\\n- return m != rhs.m || x != rhs.x || y != rhs.y;\\n+ return x != rhs.x || y != rhs.y || m != rhs.m;\\n```\\n\\nPreincrementation is where the magic happens. If you have a better look, you can\\nsee two branches of this operation:\\n\\n1. When `y != 0` (we\'re iterating over the diagonals in the first column)\\n In this case, we just bump the row and we\'re done.\\n2. When `y == 0` (we\'re iterating over the diagonals in the first row)\\n In this case, we bump the column and check if we haven\'t gotten out of bounds,\\n i.e. the end of the first row. If we get out of the bounds, we\'re continuing\\n with the second diagonal in the first column.\\n\\nDereferencing the iterator must \u201cyield\u201d something. In our case it will be the\\ndiagonal that we want to sort. For sorting we need just the iterators that can\\nmove around said diagonal. The simplest thing, we can do, is to delegate it to\\nsomething else. In our case it will be a class called `diagonal`.\\n\\n## Implementing the `diagonal` itself\\n\\nAfter implementing the iterator over diagonals, we know that all we need to describe\\na diagonal is the matrix itself and the \u201cstart\u201d of the diagonal (row and column).\\nAnd we also know that the diagonal must provide some iterators for the `std::sort`\\nfunction. We can start with the following skeleton:\\n```cpp\\ntemplate <typename T>\\nclass diagonal {\\n using matrix_t = std::vector<std::vector<T>>;\\n\\n matrix_t& matrix;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonal(matrix_t& matrix, std::size_t x, std::size_t y)\\n : matrix(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n diagonal_iter begin() const { return diagonal_iter { matrix, x, y }; }\\n\\n diagonal_iter end() const\\n {\\n auto max_x = matrix[y].size();\\n auto max_y = matrix.size();\\n\\n // we need to find the distance in which we get out of bounds (either in\\n // column or row)\\n auto steps = std::min(max_x - x, max_y - y);\\n\\n return diagonal_iter { matrix, x + steps, y + steps };\\n }\\n};\\n```\\n\\nInitialization is rather simple, we just \u201ckeep\u201d the stuff we get, `begin` is the\\nsimplest, we just delegate.\\n\\nIn case of the `end`, it gets more complicated. We need to know where is the \u201cend\u201d\\nof the diagonal. Since `end` should point to the first element \u201cafter\u201d the iterable,\\nwe know that it\'s the first position of the iterator where either `y` becomes\\n`matrix.size()` or `x` becomes `matrix[y].size()`. Also we are moving along diagonal,\\nduh, therefore we can deduce the first \u201cposition\u201d afterwards by minimal amount of\\nsteps to get out of the any column or row, hence `std::min(max_x - x, max_y - y)`.\\nFinal position is then computed simply by adding the steps to the beginning of\\nthe diagonal.\\n\\nNow we just need to finish the iterator for the diagonal itself and we\'re done.\\n\\n### Implementing `diagonal_iter`\\n\\nThis part is the hardest from all we need to do. It\'s because of the requirements\\nof the `std::sort` that requires us to implement a _random access iterator_. I have\\nbriefly described it above, and \u201cin a nutshell\u201d it means that we need to implement\\nan iterator that can move in constant time along the diagonal in any amount of\\nsteps.\\n\\nLet\'s go through all of the functionality that our iterator needs to support to\\nbe used in `std::sort`. We need the usual operations like:\\n\\n* equality/inequality\\n* incrementation\\n* dereferencing\\n\\nWe will also add all the types that our iterator uses with the category of the\\niterator, i.e. what interface it supports:\\n```cpp\\nclass diagonal_iter {\\n // we need to keep reference to the matrix itself\\n matrix_t& m;\\n\\n // we need to be able to tell our current position\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n using difference_type = std::ptrdiff_t;\\n using value_type = T;\\n using pointer = T*;\\n using reference = T&;\\n using iterator_category = std::random_access_iterator_tag;\\n\\n diagonal_iter(matrix_t& matrix,\\n std::size_t x,\\n std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator==(const diagonal_iter& rhs) const\\n {\\n return x == rhs.x && y == rhs.y && m == rhs.m;\\n }\\n\\n diagonal_iter& operator++()\\n {\\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\\n // the same time\\n x++;\\n y++;\\n return *this;\\n }\\n\\n reference operator*() const { return m[y][x]; }\\n};\\n```\\n\\nThis is pretty similar to the previous iterator, but now we need to implement the\\nremaining requirements of the _random access iterator_. Let\'s see what those are:\\n\\n* decrementation - cause we need to be able to move backwards too, since _random _\\n _access iterator_ extends the interface of _bidirectional iterator_\\n* moving the iterator in either direction by steps given as an integer\\n* being able to tell the distance between two iterators\\n* define an ordering on the iterators\\n\\nLet\'s fill them in:\\n```cpp\\nclass diagonal_iter {\\n // we need to keep reference to the matrix itself\\n matrix_t& m;\\n\\n // we need to be able to tell our current position\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n using difference_type = std::ptrdiff_t;\\n using value_type = T;\\n using pointer = T*;\\n using reference = T&;\\n using iterator_category = std::random_access_iterator_tag;\\n\\n diagonal_iter(matrix_t& matrix,\\n std::size_t x,\\n std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator==(const diagonal_iter& rhs) const\\n {\\n return x == rhs.x && y == rhs.y && m == rhs.m;\\n }\\n\\n diagonal_iter& operator++()\\n {\\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\\n // the same time\\n x++;\\n y++;\\n return *this;\\n }\\n\\n reference operator*() const { return m[y][x]; }\\n\\n // exactly opposite to the incrementation\\n diagonal_iter operator--()\\n {\\n x--;\\n y--;\\n return *this;\\n }\\n\\n // moving \u2039n\u203a steps back is same as calling decrementation \u2039n\u203a-times, so we\\n // can just return a new iterator and subtract \u2039n\u203a from both coordinates in\\n // the matrix\\n diagonal_iter operator-(difference_type n) const\\n {\\n return diagonal_iter { m, x - n, y - n };\\n }\\n\\n // here we assume that we are given two iterators on the same diagonal\\n difference_type operator-(const diagonal_iter& rhs) const\\n {\\n assert(m == rhs.m);\\n return x - rhs.x;\\n }\\n\\n // counterpart of moving \u2039n\u203a steps backwards\\n diagonal_iter operator+(difference_type n) const\\n {\\n return diagonal_iter { m, x + n, y + n };\\n }\\n\\n // we compare the coordinates, and also assume that those 2 iterators are\\n // lying on the same diagonal\\n bool operator<(const diagonal_iter& rhs) const\\n {\\n assert(m == rhs.m);\\n return x < rhs.x && y < rhs.y;\\n }\\n};\\n```\\n\\nAt this point we could probably try and compile it, right? If we do so, we will\\nget yelled at by a compiler for the following reasons:\\n```\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n __last = __next;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1817:11: note: in instantiation of function template specialization \'std::__unguarded_linear_insert<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Val_less_iter>\' requested here\\n std::__unguarded_linear_insert(__i,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1849:9: note: in instantiation of function template specialization \'std::__insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__insertion_sort(__first, __first + int(_S_threshold), __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization \'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__final_insertion_sort(__first, __last, __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1830:2: error: no matching function for call to \'__unguarded_linear_insert\' [clang-diagnostic-error]\\n std::__unguarded_linear_insert(__i,\\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1850:9: note: in instantiation of function template specialization \'std::__unguarded_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization \'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__final_insertion_sort(__first, __last, __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1782:5: note: candidate template ignored: substitution failure [with _RandomAccessIterator = diagonal<int>::diagonal_iter, _Compare = __gnu_cxx::__ops::_Val_less_iter]\\n __unguarded_linear_insert(_RandomAccessIterator __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1923:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n __last = __cut;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1937:9: note: in instantiation of function template specialization \'std::__introsort_loop<diagonal<int>::diagonal_iter, long, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__introsort_loop(__first, __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n```\\n\\nThat\'s a lot of noise, isn\'t it? Let\'s focus on the important parts:\\n```\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n\u2026\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n```\\n\\nAh! We have a reference in our iterator, and this prevents us from having a copy\\nassignment operator (that is used \u201csomewhere\u201d in the sorting algorithm). Well\u2026\\nLet\'s just wrap it!\\n```diff\\n# we need to keep a different type than reference\\n- matrix_t& m;\\n+ std::reference_wrapper<matrix_t> m;\\n\\n# in comparison we need to get the reference out of the wrapper first\\n- return x == rhs.x && y == rhs.y && m == rhs.m;\\n+ return x == rhs.x && y == rhs.y && m.get() == rhs.m.get();\\n\\n# same when we return a reference to the \u201ccell\u201d in the matrix\\n- reference operator*() const { return m[y][x]; }\\n+ reference operator*() const { return m.get()[y][x]; }\\n\\n# and finally in the assertions that we set for the \u201cdistance\u201d and \u201cless than\u201d\\n- assert(m == rhs.m);\\n+ assert(m.get() == rhs.m.get());\\n```\\n\\nWe\'re done now! We have written an iterator over diagonals for a 2D `vector`. You can have a look at the final result [here](pathname:///files/blog/leetcode/sort-matrix-diagonally/matrix-sort.cpp).\\n\\n[^1]: just because I\'m used to it and don\'t care about your opinion ;)\\n[^2]: exercise at your own risk\\n[^3]: me in 5 minutes in fact, but don\'t make me scared\\n[^4]: me in the next section\u2026"},{"id":"aoc-2022/2nd-week","metadata":{"permalink":"/blog/aoc-2022/2nd-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md","source":"@site/blog/aoc-2022/02-week-2.md","title":"2nd week of Advent of Code \'22 in Rust","description":"Surviving second week in Rust.","date":"2022-12-25T23:15:00.000Z","formattedDate":"December 25, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":20.875,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"2nd week of Advent of Code \'22 in Rust","description":"Surviving second week in Rust.","date":"2022-12-25T23:15","slug":"aoc-2022/2nd-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally"},"nextItem":{"title":"1st week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/1st-week"}},"content":"Let\'s go through the second week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 8: Treetop Tree House](https://adventofcode.com/2022/day/8)\\n\\n:::info tl;dr\\n\\nWe get a forest and we want to know how many trees are visible from the outside.\\nApart from that we want to find the best view.\\n\\n:::\\n\\nNothing interesting. We are moving around 2D map though. And indexing can get a\\nbit painful when doing so, let\'s refactor it a bit ;) During the preparation for\\nthe AoC, I have written `Vector2D` and now it\'s time to extend it with indexing\\nof `Vec` of `Vec`s. In my solution I was manipulating with indices in the following\\nway:\\n\\n- swapping them\\n- checking whether they are correct indices for the `Vec<Vec<T>>`\\n- indexing `Vec<Vec<T>>` with them\\n\\n:::caution\\n\\nI\'m getting familiar with Rust and starting to \u201cabuse\u201d it\u2026 While doing so, I\'m\\nalso uncovering some \u201cfeatures\u201d that I don\'t really like. Therefore I will mark\\nall of my rants with _thicc_ **\xab\u21af\xbb** mark and will try to \u201clock\u201d them into their\\nown \u201cbox of hell\u201d.\\n\\n:::\\n\\n#### Swapping indices\\n\\nRelatively simple implementation, just take the values, swap them and return new\\nvector.\\n\\n```rust\\nimpl<T: Copy> Vector2D<T> {\\n pub fn swap(&self) -> Self {\\n Self {\\n x: self.y,\\n y: self.x,\\n }\\n }\\n}\\n```\\n\\nPretty straight-forward implementation, but let\'s talk about the `T: Copy`. We\\nneed to use it, since we are returning a **new** vector, with swapped **values**.\\nIf we had values that cannot be copied, the only thing we could do, would be a\\nvector of references (and it would also introduce a lifetime, to which we\'ll get\\nlater on). This is pretty similar with the operations on sets from the first week.\\n\\n#### Indexing `Vec`\\n\\nI will start with the indexing, cause bound-checking is a bit more\u2026 complicated\\nthan I would like to.\\n\\n```rust\\npub fn index<\'a, T, U>(v: &\'a [Vec<U>], idx: &Vector2D<T>) -> &\'a U\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &v[y][x]\\n}\\n```\\n\\nLet\'s talk about this mess\u2026 Body of the function is probably the most easy part\\nand should not be hard to understand, we just take the `x` and `y` and convert\\nthem both to `usize` type that can be used later on for indexing.\\n\\nThe type signature of the function is where the fun is at :wink: We are trying\\nto convert unknown type to `usize`, so we must bound the `T` as a type that can\\nbe converted to `usize`, that\'s how we got `usize: TryFrom<T>` which basically\\nsays that `usize` must implement `TryFrom<T>` trait and therefore allows us to\\nconvert the indices to actual `usize` indices. Using `.unwrap()` also forces us\\nto bound the error that can occur when converting `T` into `usize`, that\'s how\\nwe get `<usize as TryFrom<T>>::Error: Debug` which loosely means\\n\\n> error during conversion of `T` into `usize` must implement `Debug`,\\n> i.e. can be printed in some way or other\\n\\n`T: Copy` is required by `.try_into()` which takes `T` by-value.\\n\\nAnd now we are left only with the first line of the definition.\\n\\n:::note\\n\\nSkilled Rustaceans might notice that this implementation is rather flaky and can\\nbreak in multiple places at once. I\'ll get back to it\u2026\\n\\n:::\\n\\nLet\'s split it in multiple parts:\\n- `v: &\'a [Vec<U>]` represents the 2D `Vec`, we are indexing, `Vec` implements\\n `Slice` trait and _clippy_ recommends using `&[T]` to `&Vec<T>`, exact details\\n are unknown to me\\n- `idx: &Vector2D<T>` represents the _indices_ which we use, we take them by\\n reference to avoid an unnecessary copy\\n- `-> &\'a U` means that we are returning a _reference_ to some value of type `U`.\\n Now the question is what does the `\'a` mean, we can also see it as a generic\\n type declared along `T` and `U`. And the answer is _relatively_ simple, `\'a`\\n represents a _lifetime_. We take the `v` by a reference and return a reference,\\n borrow checker validates all of the _borrows_ (or references), so we need to\\n specify that our returned value has _the same lifetime_ as the vector we have\\n taken by a reference, i.e. returned reference must live at least as long as the\\n `v`. This way we can \u201cbe sure\u201d that the returned reference is valid.\\n\\n##### Issues\\n\\nFirst issue that our implementation has is the fact that we cannot get a mutable\\nreference out of that function. This could be easily resolved by introducing new\\nfunction, e.g. `index_mut`. Which I have actually done while writing this part:\\n```rust\\npub fn index_mut<\'a, T, U>(v: &\'a mut [Vec<U>], idx: &Vector2D<T>) -> &\'a mut U\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &mut v[y][x]\\n}\\n```\\n\\n:::caution **\xab\u21af\xbb** Why can\'t we use one function?\\n\\nWhen we consider a `Vec<T>`, we don\'t need to consider containers as `T`, Rust\\nimplements indexing as traits `Index<T>` and `IndexMut<T>` that do the dirty work\\nbehind syntactic sugar of `container[idx]`.\\n\\nHowever, implementing of traits is not allowed for _external_ types, i.e. types\\nthat you haven\'t defined yourself. This means that you can implement indexing\\nover containers that you have implemented yourself, but you cannot use your own\\ntypes for indexing \u201cbuilt-in\u201d types.\\n\\nAnother part of this rabbit hole is trait `SliceIndex<T>` that is of a relevance\\nbecause of\\n```rust\\nimpl<T, I> Index<I> for [T]\\nwhere\\n I: SliceIndex<[T]>\\n\\nimpl<T, I, A> Index<I> for Vec<T, A>\\nwhere\\n I: SliceIndex<[T]>,\\n A: Allocator\\n\\nimpl<T, I, const N: usize> Index<I> for [T; N]\\nwhere\\n [T]: Index<I>\\n```\\n\\nIn other words, if your type implements `SliceIndex<T>` trait, it can be used\\nfor indexing. As of now, this trait has all of its required methods experimental\\nand is marked as `unsafe`.\\n\\n:::\\n\\nAnother problem is a requirement for indexing either `[Vec<T>]` or `Vec<Vec<T>>`.\\nThis requirement could be countered by removing inner type `Vec<T>` and constraining\\nit by a trait `Index` (or `IndexMut` respectively) in a following way\\n```rust\\npub fn index<\'a, C, T>(v: &\'a [C], idx: &Vector2D<T>) -> &\'a C::Output\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n C: Index<usize>\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &v[y][x]\\n}\\n```\\n\\nGiven this, we can also give a more meaningful typename for indexing type, such\\nas `I`.\\n\\n#### Checking bounds\\n\\nNow we can get to the boundary checks, it is very similar, but a more\u2026 dirty.\\nFirst approach that came up was to convert the indices in `Vector2D` to `usize`,\\nbut when you add the indices up, e.g. when checking the neighbors, you can end\\nup with negative values which, unlike in C++, causes an error (instead of underflow\\nthat you can use to your advantage; you can easily guess how).\\n\\nSo how can we approach this then? Well\u2026 we will convert the bounds instead of\\nthe indices and that lead us to:\\n```rust\\npub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\\nwhere\\n usize: TryInto<T>,\\n <usize as TryInto<T>>::Error: Debug,\\n T: PartialOrd + Copy,\\n{\\n idx.y >= 0.try_into().unwrap()\\n && idx.y < v.len().try_into().unwrap()\\n && idx.x >= 0.try_into().unwrap()\\n && idx.x\\n < v[TryInto::<usize>::try_into(idx.y).unwrap()]\\n .len()\\n .try_into()\\n .unwrap()\\n}\\n```\\n\\nYou can tell that it\'s definitely a shitty code. Let\'s improve it now! We will\\nget back to the original idea, but do it better. We know that we cannot convert\\nnegative values into `usize`, **but** we also know that conversion like that\\nreturns a `Result<T, E>` which we can use to our advantage.\\n```rust\\npub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\\nwhere\\n T: Copy,\\n usize: TryFrom<T>,\\n{\\n usize::try_from(idx.y)\\n .and_then(|y| usize::try_from(idx.x).map(|x| y < v.len() && x < v[y].len()))\\n .unwrap_or(false)\\n}\\n```\\n\\n`Result<T, E>` is a type similar to `Either` in Haskell and it allows us to chain\\nmultiple operations on correct results or propagate the original error without\\ndoing anything. Let\'s dissect it one-by-one.\\n\\n`try_from` is a method implemented in `TryFrom` trait, that allows you to convert\\ntypes and either successfully convert them or fail (with a reasonable error). This\\nmethod returns `Result<T, E>`.\\n\\nWe call `and_then` on that _result_, let\'s have a look at the type signature of\\n`and_then`, IMO it explains more than enough:\\n```rust\\npub fn and_then<U, F>(self, op: F) -> Result<U, E>\\nwhere\\n F: FnOnce(T) -> Result<U, E>\\n```\\n\\nOK\u2026 So it takes the result and a function and returns another result with\\ndifferent value and different error. However we can see that the function, which\\nrepresents an operation on a result, takes just the value, i.e. it doesn\'t care\\nabout any previous error. To make it short:\\n\\n> `and_then` allows us to run an operation, which can fail, on the correct result\\n\\nWe parsed a `y` index and now we try to convert the `x` index with `try_from`\\nagain, but on that result we use `map` rather than `and_then`, why would that be?\\n\\n```rust\\npub fn map<U, F>(self, op: F) -> Result<U, E>\\nwhere\\n F: FnOnce(T) -> U\\n```\\n\\nHuh\u2026 `map` performs an operation that **cannot** fail. And finally we use\\n`unwrap_or` which takes the value from result, or in case of an error returns the\\ndefault that we define.\\n\\nHow does this work then? If `y` is negative, the conversion fails and the error\\npropagates all the way to `unwrap_or`, if `y` can be a correct `usize` value, then\\nwe do the same with `x`. If `x` is negative, we propagate the error as with `y`,\\nand if it\'s not, then we check whether it exceeds the higher bounds or not.\\n\\n### Solution\\n\\nRelatively simple, you just need follow the rules and not get too smart, otherwise\\nit will get back at you.\\n\\n## [Day 9: Rope Bridge](https://adventofcode.com/2022/day/9)\\n\\n:::info tl;dr\\n\\nWe get a rope with knots and we want to track how many different positions are\\nvisited with the rope\'s tail.\\n\\n:::\\n\\nBy this day, I have come to a conclusion that current skeleton for each day\\ngenerates a lot of boilerplate. And even though it can be easily copied, it\'s\\njust a waste of space and unnecessary code. Let\'s \u201csimplify\u201d this (on one end\\nwhile creating monster on the other end). I\'ve gone through what we need in the\\npreparations for the AoC. Let\'s sum up our requirements:\\n- parsing\\n- part 1 & 2\\n- running on sample / input\\n- tests\\n\\nParsing and implementation of both parts is code that changes each day and we\\ncannot do anything about it. However running and testing can be simplified!\\n\\nLet\'s introduce and export a new module `solution` that will take care of all of\\nthis. We will start by introducing a trait for each day.\\n```rust\\npub trait Solution<Input, Output: Display> {\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input;\\n\\n fn part_1(input: &Input) -> Output;\\n fn part_2(input: &Input) -> Output;\\n}\\n```\\n\\nThis does a lot of work for us already, we have defined a trait and for each day\\nwe will create a structure representing a specific day. That structure will also\\nimplement the `Solution` trait.\\n\\nNow we need to get rid of the boilerplate, we can\'t get rid of the `main` function,\\nbut we can at least move out the functionality.\\n```rust\\nfn run(type_of_input: &str) -> Result<()>\\nwhere\\n Self: Sized,\\n{\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = Self::parse_input(format!(\\"{}s/{}.txt\\", type_of_input, Self::day()));\\n\\n info!(\\"Part 1: {}\\", Self::part_1(&input));\\n info!(\\"Part 2: {}\\", Self::part_2(&input));\\n\\n Ok(())\\n}\\n\\nfn main() -> Result<()>\\nwhere\\n Self: Sized,\\n{\\n Self::run(\\"input\\")\\n}\\n```\\n\\nThis is all part of the `Solution` trait, which can implement methods while being\\ndependent on what is provided by the implementing types. In this case, we just\\nneed to bound the `Output` type to implement `Display` that is necessary for the\\n`info!` and format string there.\\n\\nNow we can get to first of the nasty things we are going to do\u2026 And it is the\\n`day()` method that you can see being used when constructing path to the input\\nfile. That method will generate a name of the file, e.g. `day01` and we know that\\nwe can _somehow_ deduce it from the structure name, given we name it reasonably.\\n\\n```rust\\nfn day() -> String {\\n let mut day = String::from(type_name::<Self>().split(\\"::\\").next().unwrap());\\n day.make_ascii_lowercase();\\n\\n day.to_string()\\n}\\n```\\n\\n:::caution `type_name`\\n\\nThis feature is still experimental and considered to be internal, it is not\\nadvised to use it any production code.\\n\\n:::\\n\\nAnd now we can get to the nastiest stuff :weary: We will **generate** the tests!\\n\\nWe want to be able to generate tests for sample input in a following way:\\n```rust\\ntest_sample!(day_01, Day01, 42, 69);\\n```\\n\\nThere\'s not much we can do, so we will write a macro to generate the tests for us.\\n\\n```rust\\n#[macro_export]\\nmacro_rules! test_sample {\\n ($mod_name:ident, $day_struct:tt, $part_1:expr, $part_2:expr) => {\\n #[cfg(test)]\\n mod $mod_name {\\n use super::*;\\n\\n #[test]\\n fn test_part_1() {\\n let sample =\\n $day_struct::parse_input(&format!(\\"samples/{}.txt\\", $day_struct::day()));\\n assert_eq!($day_struct::part_1(&sample), $part_1);\\n }\\n\\n #[test]\\n fn test_part_2() {\\n let sample =\\n $day_struct::parse_input(&format!(\\"samples/{}.txt\\", $day_struct::day()));\\n assert_eq!($day_struct::part_2(&sample), $part_2);\\n }\\n }\\n };\\n}\\n```\\n\\nWe have used it in a similar way as macros in C/C++, one of the things that we\\ncan use to our advantage is defining \u201ctype\u201d of the parameters for the macro. All\\nparameters have their name prefixed with `$` sign and you can define various \u201cforms\u201d\\nof your macro. Let\'s go through it!\\n\\nWe have following parameters:\\n- `$mod_name` which represents the name for the module with tests, it is typed\\n with `ident` which means that we want a valid identifier to be passed in.\\n- `$day_struct` represents the structure that will be used for tests, it is typed\\n with `tt` which represents a _token tree_, in our case it is a type.\\n- `$part_X` represents the expected output for the `X`th part and is of type `expr`\\n which literally means an _expression_.\\n\\nApart from that we need to use `#[macro_export]` to mark the macro as exported\\nfor usage outside of the module. Now our skeleton looks like:\\n```rust\\nuse aoc_2022::*;\\n\\ntype Input = String;\\ntype Output = String;\\n\\nstruct DayXX;\\nimpl Solution<Input, Output> for DayXX {\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\\n file_to_string(pathname)\\n }\\n\\n fn part_1(input: &Input) -> Output {\\n todo!()\\n }\\n\\n fn part_2(input: &Input) -> Output {\\n todo!()\\n }\\n}\\n\\nfn main() -> Result<()> {\\n // DayXX::run(\\"sample\\")\\n DayXX::main()\\n}\\n\\n// test_sample!(day_XX, DayXX, , );\\n```\\n\\n### Solution\\n\\nNot much to talk about, it is relatively easy to simulate.\\n\\n## [Day 10: Cathode-Ray Tube](https://adventofcode.com/2022/day/10)\\n\\n:::info tl;dr\\n\\nEmulating basic arithmetic operations on a CPU and drawing on CRT based on the\\nCPU\'s accumulator.\\n\\n:::\\n\\nIn this day I have discovered an issue with my design of the `Solution` trait.\\nAnd the issue is caused by different types of `Output` for the part 1 and part 2.\\n\\nProblem is relatively simple and consists of simulating a CPU, I have approached\\nit in a following way:\\n```rust\\nfn evaluate_instructions(instructions: &[Instruction], mut out: Output) -> Output {\\n instructions\\n .iter()\\n .fold(State::new(), |state, instruction| {\\n state.execute(instruction, &mut out)\\n });\\n\\n out\\n}\\n```\\n\\nWe just take the instructions, we have some state of the CPU and we execute the\\ninstructions one-by-one. Perfect usage of the `fold` (or `reduce` as you may know\\nit from other languages).\\n\\nYou can also see that we have an `Output` type, so the question is how can we fix\\nthat problem. And the answer is very simple and _functional_. Rust allows you to\\nhave an `enumeration` that can _bear_ some other values apart from the type itself.\\n\\n:::tip\\n\\nWe could\'ve seen something like this with the `Result<T, E>` type that can be\\ndefined as\\n```rust\\nenum Result<T, E> {\\n Ok(T),\\n Err(E)\\n}\\n```\\n\\n###### What does that mean though?\\n\\nWhen we have an `Ok` value, it has the result itself, and when we get an `Err`\\nvalue, it has the error. This also allows us to handle _results_ in a rather\\npretty way:\\n```rust\\nmatch do_something(x) {\\n Ok(y) => {\\n println!(\\"SUCCESS: {}\\", y);\\n },\\n Err(y) => {\\n eprintln!(\\"ERROR: {}\\", y);\\n }\\n}\\n```\\n\\n:::\\n\\nMy solution has a following outline:\\n```rust\\nfn execute(&self, i: &Instruction, output: &mut Output) -> State {\\n // execute the instruction\\n\\n // collect results if necessary\\n match output {\\n Output::Part1(x) => self.execute_part_1(y, x),\\n Output::Part2(x) => self.execute_part_2(y, x),\\n }\\n\\n // return the obtained state\\n new_state\\n}\\n```\\n\\nYou might think that it\'s a perfectly reasonable thing to do. Yes, **but** notice\\nthat the `match` statement doesn\'t _collect_ the changes in any way and also we\\npass `output` by `&mut`, so it is shared across each _iteration_ of the `fold`.\\n\\nThe dirty and ingenious thing is that `x`s are passed by `&mut` too and therefore\\nthey are directly modified by the helper functions. To sum it up and let it sit\\n\\n> We are **collecting** the result **into** an **enumeration** that is **shared**\\n> across **all** iterations of `fold`.\\n\\n### Solution\\n\\nSimilar to _Day 9_, but there are some technical details that can get you.\\n\\n## [Day 11: Monkey in the Middle](https://adventofcode.com/2022/day/11)\\n\\n:::info tl;dr\\n\\nSimulation of monkeys throwing stuff around and measuring your stress levels\\nwhile your stuff is being passed around.\\n\\n:::\\n\\nI think I decided to use regular expressions here for the first time, cause\\nparsing the input was a pain.\\n\\nAlso I didn\'t expect to implement Euclidean algorithm in Rust\u2026\\n\\n### Solution\\n\\nAgain, we\'re just running a simulation. Though I must admit it was very easy to\\nmake a small technical mistakes that could affect the final results very late.\\n\\n## [Day 12: Hill Climbing Algorithm](https://adventofcode.com/2022/day/12)\\n\\n:::info tl;dr\\n\\nFinding shortest path up the hill and also shortest path down to the ground while\\nalso rolling down the hill\u2026\\n\\n:::\\n\\nAs I have said in the _tl;dr_, we are looking for the shortest path, but the start\\nand goal differ for the part 1 and 2. So I have decided to refactor my solution\\nto a BFS algorithm that takes necessary parameters via functions:\\n```rust\\nfn bfs<F, G>(\\n graph: &[Vec<char>], start: &Position, has_edge: F, is_target: G\\n) -> Option<usize>\\nwhere\\n F: Fn(&[Vec<char>], &Position, &Position) -> bool,\\n G: Fn(&[Vec<char>], &Position) -> bool\\n```\\n\\nWe pass the initial vertex from the caller and everything else is left to the BFS\\nalgorithm, based on the `has_edge` and `is_target` functions.\\n\\nThis was easy! And that is not very usual in Rust once you want to pass around\\nfunctions. :eyes:\\n\\n### Solution\\n\\nLooking for the shortest path\u2026 Must be Dijkstra, right? **Nope!** Half of the\\nReddit got jebaited though. In all fairness, nothing stops you from implementing\\nthe Dijkstra\'s algorithm for finding the shortest path, **but** if you know that\\nall connected vertices are in a unit (actually $d = 1$) distance from each other,\\nthen you know that running Dijkstra is equivalent to running BFS, only with worse\\ntime complexity, because of the priority heap instead of the queue.\\n\\n## [Day 13: Distress Signal](https://adventofcode.com/2022/day/13)\\n\\n:::info tl;dr\\n\\nProcessing packets with structured data from the distress signal.\\n\\n:::\\n\\nYou can implement a lot of traits if you want to. It is _imperative_ to implement\\nordering on the packets. I had a typo, so I also proceeded to implement a `Display`\\ntrait for debugging purposes:\\n```rust\\nimpl Display for Packet {\\n fn fmt(&self, f: &mut std::fmt::Formatter<\'_>) -> std::fmt::Result {\\n match self {\\n Packet::Integer(x) => write!(f, \\"{x}\\"),\\n Packet::List(lst) => write!(f, \\"[{}]\\", lst.iter().map(|p| format!(\\"{p}\\")).join(\\",\\")),\\n }\\n }\\n}\\n```\\n\\n### Solution\\n\\nA lot of technical details\u2026 Parsing is nasty too\u2026\\n\\n## [Day 14: Regolith Reservoir](https://adventofcode.com/2022/day/14)\\n\\n:::info tl;dr\\n\\nLet\'s simulate falling sand grain-by-grain.\\n\\n:::\\n\\nAgain, both parts are relatively similar with minimal changes, so it is a good\\nidea to refactor it a bit. Similar approach to the [BFS above]. Also this is the\\nfirst day where I ran into efficiency issues and had to redo my solution to speed\\nit up just a bit.\\n\\n### Solution\\n\\nTedious.\\n\\n## Post Mortem\\n\\n### Indexing\\n\\nI was asked about the indexing after publishing the blog. And truly it is rather\\ncomplicated topic, especially after releasing `SliceIndex<I>` trait. I couldn\'t\\nleave it be, so I tried to implement the `Index` and `IndexMut` trait.\\n\\n:::note\\n\\nI have also mentioned that the `SliceIndex` trait is `unsafe`, but truth be told,\\nonly _unsafe_ part are the 2 methods that are named `*unchecked*`. Anyways, I will\\nbe implementing the `Index*` traits for now, rather than the `SliceIndex`.\\n\\n:::\\n\\nIt\'s relatively straightforward\u2026\\n\\n```rust\\nimpl<I, C> Index<Vector2D<I>> for [C]\\nwhere\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: Index<usize>,\\n{\\n type Output = C::Output;\\n\\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &self[y][x]\\n }\\n}\\n\\nimpl<I, C> IndexMut<Vector2D<I>> for [C]\\nwhere\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: IndexMut<usize>,\\n{\\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &mut self[y][x]\\n }\\n}\\n```\\n\\nWe can see a lot of similarities to the implementation of `index` and `index_mut`\\nfunctions. In the end, they are 1:1, just wrapped in the trait that provides a\\nsyntax sugar for `container[idx]`.\\n\\n:::note\\n\\nI have also switched from using the `TryFrom` to `TryInto` trait, since it better\\nmatches what we are using, the `.try_into` rather than `usize::try_from`.\\n\\nAlso implementing `TryFrom` automatically provides you with a `TryInto` trait,\\nsince it is relatively easy to implement. Just compare the following:\\n\\n```rust\\npub trait TryFrom<T>: Sized {\\n type Error;\\n\\n fn try_from(value: T) -> Result<Self, Self::Error>;\\n}\\n\\npub trait TryInto<T>: Sized {\\n type Error;\\n\\n fn try_into(self) -> Result<T, Self::Error>;\\n}\\n```\\n\\n:::\\n\\nOK, so we have our trait implemented, we should be able to use `container[index]`,\\nright? Yes\u2026 but actually no :frowning:\\n\\n```\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\\n --\x3e src/bin/day08.rs:26:18\\n |\\n26 | if trees[pos] > tallest {\\n | ^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\\n\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\\n --\x3e src/bin/day08.rs:30:28\\n |\\n30 | max(tallest, trees[pos])\\n | ^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\\n\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<isize>`\\n --\x3e src/bin/day08.rs:52:28\\n |\\n52 | let max_height = trees[position];\\n | ^^^^^^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<isize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<isize>>`\\n```\\n\\nWhy? We have it implemented for the slices (`[C]`), why doesn\'t it work? Well,\\nthe fun part consists of the fact that in other place, where we were using it,\\nwe were passing the `&[Vec<T>]`, but this is coming from a helper functions that\\ntake `&Vec<Vec<T>>` instead. And\u2026 we don\'t implement `Index` and `IndexMut` for\\nthose. Just for the slices. :exploding_head: *What are we going to do about it?*\\n\\nWe can either start copy-pasting or be smarter about it\u2026 I choose to be smarter,\\nso let\'s implement a macro! The only difference across the implementations are\\nthe types of the outer containers. Implementation doesn\'t differ **at all**!\\n\\nImplementing the macro can be done in a following way:\\n```rust\\nmacro_rules! generate_indices {\\n ($container:ty) => {\\n impl<I, C> Index<Vector2D<I>> for $container\\n where\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: Index<usize>,\\n {\\n type Output = C::Output;\\n\\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &self[y][x]\\n }\\n }\\n\\n impl<I, C> IndexMut<Vector2D<I>> for $container\\n where\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: IndexMut<usize>,\\n {\\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &mut self[y][x]\\n }\\n }\\n };\\n}\\n```\\n\\nAnd now we can simply do\\n```rust\\ngenerate_indices!(VecDeque<C>);\\ngenerate_indices!([C]);\\ngenerate_indices!(Vec<C>);\\n// generate_indices!([C; N], const N: usize);\\n```\\n\\nThe last type (I took the inspiration from the implementations of the `Index` and\\n`IndexMut` traits) is a bit problematic, because of the `const N: usize` part,\\nwhich I haven\'t managed to be able to parse. And that\'s how I got rid of the error.\\n\\n:::note\\n\\nIf I were to use 2D-indexing over `[C; N]` slices, I\'d probably just go with the\\ncopy-paste, cause the cost of this \u201cmonstrosity\u201d outweighs the benefits of no DRY.\\n\\n:::\\n\\n#### Cause of the problem\\n\\nThis issue is relatively funny. If you don\'t use any type aliases, just the raw\\ntypes, you\'ll get suggested certain changes by the _clippy_. For example if you\\nconsider the following piece of code\\n```rust\\nfn get_sum(nums: &Vec<i32>) -> i32 {\\n nums.iter().sum()\\n}\\n\\nfn main() {\\n let nums = vec![1, 2, 3];\\n println!(\\"Sum: {}\\", get_sum(&nums));\\n}\\n```\\n\\nand you run _clippy_ on it, you will get\\n```\\nChecking playground v0.0.1 (/playground)\\nwarning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do\\n --\x3e src/main.rs:1:18\\n |\\n1 | fn get_sum(nums: &Vec<i32>) -> i32 {\\n | ^^^^^^^^^ help: change this to: `&[i32]`\\n |\\n = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg\\n = note: `#[warn(clippy::ptr_arg)]` on by default\\n\\nwarning: `playground` (bin \\"playground\\") generated 1 warning\\n Finished dev [unoptimized + debuginfo] target(s) in 0.61s\\n```\\n\\nHowever, if you introduce a type alias, such as\\n```rust\\ntype Numbers = Vec<i32>;\\n```\\n\\nThen _clippy_ won\'t say anything, cause there is literally nothing to suggest.\\nHowever the outcome is not the same\u2026\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[BFS above]: #day-12-hill-climbing-algorithm"},{"id":"aoc-2022/1st-week","metadata":{"permalink":"/blog/aoc-2022/1st-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md","source":"@site/blog/aoc-2022/01-week-1.md","title":"1st week of Advent of Code \'22 in Rust","description":"Surviving first week in Rust.","date":"2022-12-15T01:15:00.000Z","formattedDate":"December 15, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":12.4,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"1st week of Advent of Code \'22 in Rust","description":"Surviving first week in Rust.","date":"2022-12-15T01:15","slug":"aoc-2022/1st-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week"},"nextItem":{"title":"Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/intro"}},"content":"Let\'s go through the first week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n:::note\\n\\nIf you wish to have a look at the solutions, you can follow them on my [GitLab].\\nMore specifically in the [`/src/bin/`].\\n\\n:::\\n\\nI will try to summarize my experience with using Rust for the AoC. Trying it out\\nages ago, I believe it will be _pain and suffering_, but we will see. For each\\nday I will also try to give a tl;dr of the problem, so that you can better imagine\\nthe relation to my woes or :+1: moments.\\n\\n## [Day 1: Calorie Counting](https://adventofcode.com/2022/day/1)\\n\\n:::info tl;dr\\n\\nAs the name suggests, we get the calories of the food contained in the elves\\nbackpacks and we want to choose the elf that has the most food ;)\\n\\n:::\\n\\n> Wakey wakey!\\n\\nProgramming in Rust at 6am definitely hits. I\'ve also forgotten to mention how I\\nhandle samples. With each puzzle you usually get a sample input and expected\\noutput. You can use them to verify that your solution works, or usually doesn\'t.\\n\\nAt first I\'ve decided to put asserts into my `main`, something like\\n```rust\\nassert_eq!(part_1(&sample), 24000);\\ninfo!(\\"Part 1: {}\\", part_1(&input));\\n\\nassert_eq!(part_2(&sample), 45000);\\ninfo!(\\"Part 2: {}\\", part_2(&input));\\n```\\n\\nHowever, once you get further, the sample input may take some time to run itself.\\nSo in the end, I have decided to turn them into unit tests:\\n```rust\\n#[cfg(test)]\\nmod tests {\\n use super::*;\\n\\n #[test]\\n fn test_part_1() {\\n let sample = parse_input(\\"samples/day01.txt\\");\\n assert_eq!(part_1(&sample), 24000);\\n }\\n\\n #[test]\\n fn test_part_2() {\\n let sample = parse_input(\\"samples/day01.txt\\");\\n assert_eq!(part_2(&sample), 45000);\\n }\\n}\\n```\\n\\nAnd later on I have noticed, it\'s hard to tell the difference between the days,\\nso I further renamed the `mod` from generic `tests` to reflect the days.\\n\\nAlso after finishing the first day puzzle, I have installed an [`sccache`] to\\ncache the builds, so that the build time is lower, cause it was kinda unbearable.\\n\\n### Solution\\n\\nWell, it\'s a pretty simple problem. You just take the input, sum the calories and\\nfind the biggest one. However, if we try to generalize to more than the biggest\\none, the fun appears. We have few options:\\n\\n- keep all the calories, sort them, take what we need\\n- keep all the calories and use max heap\\n- use min heap and maintain at most N calories that we need\\n\\n## [Day 2: Rock Paper Scissors](https://adventofcode.com/2022/day/2)\\n\\n:::info tl;dr\\n\\nYou want to know what score did you achieve while playing _Rock Paper Scissors_.\\nAnd then you want to be strategic about it.\\n\\n:::\\n\\nApart from the technical details of the puzzle, it went relatively smooth.\\n\\n### Solution\\n\\nI took relatively na\xefve approach and then tried to simplify it.\\n\\n## [Day 3: Rucksack Reorganization](https://adventofcode.com/2022/day/3)\\n\\n:::info tl;dr\\n\\nLet\'s go reorganize elves\' backpacks! Each backpacks has 2 compartments and you\\nwant to find the common item among those compartments. Each of them has priority,\\nyou care only about the sum.\\n\\n:::\\n\\nThis is the day where I started to fight the compiler and neither of us decided\\nto give up. Let\'s dive into it \\\\o/\\n\\n:::tip Fun fact\\n\\nFighting the compiler took me 30 minutes.\\n\\n:::\\n\\nWe need to find a common item among 2 collections, that\'s an easy task, right?\\nWe can construct 2 sets and find an intersection:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3].iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5].iter().collect();\\n```\\n\\nNow, the first issue that we encounter is caused by the fact that we are using\\na slice (the `[\u2026]`), iterator of that returns **references** to the numbers.\\nAnd we get immediately yelled at by the compiler, because the numbers are discarded\\nafter running the `.collect`. To fix this, we can use `.into_iter`:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5].into_iter().collect();\\n```\\n\\nThis way the numbers will get copied instead of referenced. OK, let\'s find the\\nintersection of those 2 collections:\\n```rust\\nprintln!(\\"Common elements: {:?}\\", top.intersection(&bottom));\\n```\\n```\\nCommon elements: [3]\\n```\\n\\n:::caution\\n\\nNotice that we need to do `&bottom`. It explicitly specifies that `.intersection`\\n**borrows** the `bottom`, i.e. takes an immutable reference to it.\\n\\n:::\\n\\nThat\'s what we want, right? Looks like it! \\\\o/\\n\\nNext part wants us to find the common element among all of the backpacks. OK, so\\nthat should be fairly easy, we have an intersection and we want to find intersection\\nover all of them.\\n\\nLet\'s have a look at the type of the `.intersection`\\n```rust\\npub fn intersection<\'a>(\\n\xa0\xa0\xa0\xa0&\'a self,\\n\xa0\xa0\xa0\xa0other: &\'a HashSet<T, S>\\n) -> Intersection<\'a, T, S>\\n```\\n\\nOK\u2026 Huh\u2026 But we have an example there!\\n```rust\\nlet intersection: HashSet<_> = a.intersection(&b).collect();\\n```\\n\\nCool, that\'s all we need.\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n```\\nIntersection: {3, 4}\\n```\\n\\nCool, so let\'s do the intersection with the `top_2`:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\\nlet intersection: HashSet<_> = intersection.intersection(&top_2).collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n\\nAnd we get yelled at by the compiler:\\n```\\nerror[E0308]: mismatched types\\n --\x3e src/main.rs:10:58\\n |\\n10 | let intersection: HashSet<_> = intersection.intersection(&top_2).collect();\\n | ------------ ^^^^^^ expected `&i32`, found `i32`\\n | |\\n | arguments to this function are incorrect\\n |\\n = note: expected reference `&HashSet<&i32>`\\n found reference `&HashSet<i32>`\\n```\\n\\n/o\\\\ What the hell is going on here? Well, the funny thing is, that this operation\\ndoesn\'t return the elements themselves, but the references to them and when we pass\\nthe third set, it has just the values themselves, without any references.\\n\\n:::tip\\n\\nIt may seem as a very weird decision, but in fact it makes some sense\u2026 It allows\\nyou to do intersection of items that may not be possible to copy. Overall this is\\na \u201ctax\u201d for having a borrow checker ~~drilling your ass~~ having your back and\\nmaking sure you\'re not doing something naughty that may cause an **undefined**\\n**behavior**.\\n\\n:::\\n\\nTo resolve this we need to get an iterator that **clones** the elements:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).cloned().collect();\\nlet intersection: HashSet<_> = intersection.intersection(&top_2).cloned().collect();\\nlet intersection: HashSet<_> = intersection.intersection(&bottom_2).cloned().collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n```\\nIntersection: {4}\\n```\\n\\n### Solution\\n\\nThe approach is pretty simple, if you omit the _1on1 with the compiler_. You just\\nhave some fun with the set operations :)\\n\\n## [Day 4: Camp Cleanup](https://adventofcode.com/2022/day/4)\\n\\n:::info tl;dr\\n\\nElves are cleaning up the camp and they got overlapping sections to clean up.\\nFind how many overlap and can take the day off.\\n\\n:::\\n\\n[`RangeInclusive`] is your friend not an enemy :)\\n\\n### Solution\\n\\nRelatively easy, you just need to parse the input and know what you want. Rust\'s\\n`RangeInclusive` type helped a lot, cause it took care of all abstractions.\\n\\n## [Day 5: Supply Stacks](https://adventofcode.com/2022/day/5)\\n\\n:::info tl;dr\\n\\nLet\'s play with stacks of crates.\\n\\n:::\\n\\nVery easy problem with very annoying input. You can judge yourself:\\n```\\n [D] \\n[N] [C] \\n[Z] [M] [P]\\n 1 2 3 \\n\\nmove 1 from 2 to 1\\nmove 3 from 1 to 3\\nmove 2 from 2 to 1\\nmove 1 from 1 to 2\\n```\\n\\nGood luck transforming that into something reasonable :)\\n\\n\\n:::tip Fun fact\\n\\nTook me 40 minutes to parse this reasonably, including fighting the compiler.\\n\\n:::\\n\\n### Solution\\n\\nFor the initial solution I went with a manual solution (as in _I have done all_\\n_the work_. Later on I have decided to explore the `std` and interface of the\\n`std::vec::Vec` and found [`split_off`] which takes an index and splits (duh)\\nthe vector:\\n```rust\\nlet mut vec = vec![1, 2, 3];\\nlet vec2 = vec.split_off(1);\\nassert_eq!(vec, [1]);\\nassert_eq!(vec2, [2, 3]);\\n```\\n\\nThis helped me simplify my solution a lot and also get rid of some _edge cases_.\\n\\n## [Day 6: Tuning Trouble](https://adventofcode.com/2022/day/6)\\n\\n:::info tl;dr\\n\\nFinding start of the message in a very weird protocol. Start of the message is\\ndenoted by $N$ unique consecutive characters.\\n\\n:::\\n\\n### Solution\\n\\nA lot of different approaches, knowing that we are dealing with input consisting\\nsolely of ASCII letters, I bit the bullet and went with sliding window and\\nconstructing sets from that window, checking if the set is as big as the window.\\n\\nOne possible optimization could consist of keeping a bit-vector (i.e. `usize`\\nvariable) of encountered characters and updating it as we go. However this has\\na different issue and that is removal of the characters from the left side of the\\nwindow. We don\'t know if the same character is not included later on.\\n\\nOther option is to do similar thing, but keeping the frequencies of the letters,\\nand again knowing we have only ASCII letters we can optimize by having a vector\\nof 26 elements that keeps count for each lowercase letter.\\n\\n## [Day 7: No Space Left On Device](https://adventofcode.com/2022/day/7)\\n\\n:::info tl;dr\\n\\nLet\'s simulate [`du`] to get some stats about our file system and then pinpoint\\ndirectories that take a lot of space and should be deleted.\\n\\n:::\\n\\n> I was waiting for this moment, and yet it got me!\\n> *imagine me swearing for hours*\\n\\n### Solution\\n\\nWe need to \u201c_build_\u201d a file system from the input that is given in a following form:\\n```\\n$ cd /\\n$ ls\\ndir a\\n14848514 b.txt\\n8504156 c.dat\\ndir d\\n$ cd a\\n$ ls\\ndir e\\n29116 f\\n2557 g\\n62596 h.lst\\n$ cd e\\n$ ls\\n584 i\\n$ cd ..\\n$ cd ..\\n$ cd d\\n$ ls\\n4060174 j\\n8033020 d.log\\n5626152 d.ext\\n7214296 k\\n```\\n\\nThere are few ways in which you can achieve this and also you can assume some\\npreconditions, but why would we do that, right? :)\\n\\nYou can \u201cslap\u201d this in either [`HashMap`] or [`BTreeMap`] and call it a day.\\nAnd that would be boring\u2026\\n\\n:::tip\\n\\n`BTreeMap` is quite fitting for this, don\'t you think?\\n\\n:::\\n\\nI always wanted to try allocation on heap in Rust, so I chose to implement a tree.\\nI fought with the `Box<T>` for some time and was losing\u2026\\n\\nThen I looked up some implementations of trees or linked lists and decided to try\\n`Rc<Cell<T>>`. And I got my _ass whopped_ by the compiler once again. /o\\\\\\n\\n:::tip\\n\\n`Box<T>` represents a dynamically allocated memory on heap. It is a single pointer,\\nyou can imagine this as `std::unique_ptr<T>` in C++.\\n\\n`Rc<T>` represents a dynamically allocated memory on heap. On top of that it is\\n_reference counted_ (that\'s what the `Rc` stands for). You can imagine this as\\n`std::shared_ptr<T>` in C++.\\n\\nNow the fun stuff. Neither of them lets you **mutate** the contents of the memory.\\n\\n`Cell<T>` allows you to mutate the memory. Can be used reasonably with types that\\ncan be copied, because the memory safety is guaranteed by copying the contents\\nwhen there is more than one **mutable** reference to the memory.\\n\\n`RefCell<T>` is similar to the `Cell<T>`, but the borrowing rules (how many mutable\\nreferences are present) are checked dynamically.\\n\\nSo in the end, if you want something like `std::shared_ptr<T>` in Rust, you want\\nto have `Rc<RefCell<T>>`.\\n\\n:::\\n\\nSo, how are we going to represent the file system then? We will use an enumeration,\\nhehe, which is an algebraic data type that can store some stuff in itself :weary:\\n```rust\\ntype FileHandle = Rc<RefCell<AocFile>>;\\n\\n#[derive(Debug)]\\nenum AocFile {\\n File(usize),\\n Directory(BTreeMap<String, FileHandle>),\\n}\\n```\\n\\nLet\'s go over it! `FileHandle` represents dynamically allocated `AocFile`, not\\nmuch to discuss. What does the `#[derive(Debug)]` do though? It lets us to print\\nout the value of that enumeration, it\'s derived, so it\'s not as good as if we had\\nimplemented it ourselves, but it\'s good enough for debugging, hence the name.\\n\\nNow to the fun part! `AocFile` value can be represented in two ways:\\n- `File(usize)`, e.g. `AocFile::File(123)` and we can pattern match it, if we\\n need to\\n- `Directory(BTreeMap<String, FileHandle>)` will represent the directory and will\\n contain map matching the name of the files (or directories) within to their\\n respective file handles\\n\\nI will omit the details about constructing this file system, cause there are a lot\\nof technicalities introduced by the nature of the input. However if you are\\ninterested, you can have a look at my solution.\\n\\nWe need to find small enough directories and also find the smallest directory that\\nwill free enough space. Now the question is, how could we do that. And there are\\nmultiple ways I will describe.\\n\\nI have chosen to implement [_tree catamorphism_] :weary:. It is basically a fold\\nover a tree data structure. We descent down into the leaves and propagate computed\\nresults all the way to the root. You can also notice that this approach is very\\nsimilar to _dynamic programming_, we find overlapping sections of the computation\\nand try to minimize the additional work (in this case: we need to know sizes of\\nour descendants, but we have already been there).\\n\\nAnother approach that has been suggested to me few days later is running DFS on\\nthe graph. And, funnily enough, we would still need to combine what we found in\\nthe branches where we descent. So in the end, it would work very similarly to my\\nsolution.\\n\\nOne of the more exotic options would be precomputing the required information at\\nthe same time as parsing. That could be done by adding additional fields to the\\nnodes which would allow storing such information and updating it as we construct\\nthe file system.\\n\\n## Post Mortem\\n\\nThings that have been brought up in the discussion later on.\\n\\n### `Rc<T>` vs `Rc<RefCell<T>>`\\n\\nIt has been brought up that I have a contradicting statement regarding the\\ndynamically allocated memory. Specifically:\\n\\n- You can imagine `Rc<T>` as an `std::shared_ptr<T>` (in C++)\\n- When you want an equivalent of `std::shared_ptr<T>`, you want to use\\n `Rc<RefCell<T>>`\\n\\nNow, in Rust it is a bit more complicated, because the type that represents the\\n\u201cshared pointer\u201d is `Rc<T>`. What `RefCell<T>` does is making sure that there is\\nonly one \u201cowner\u201d of a mutable reference at a time (and dynamically, as opposed\\nto the `Cell<T>`).\\n\\nTherefore to be precise and correct about the equivalents of `std::shared_ptr<T>`\\nin Rust, we can say that\\n\\n- `Rc<T>` is an equivalent of a `const std::shared_ptr<T>`,\\n- and `Rc<RefCell<T>>` is an equivalent of a `std::shared_ptr<T>`.\\n\\nYou can easily see that they only differ in the mutability. (And even that is not\\nas simple as it seems, because there is also `Cell<T>`)\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[GitLab]: https://gitlab.com/mfocko/advent-of-code-2022\\n[`/src/bin/`]: https://gitlab.com/mfocko/advent-of-code-2022/-/tree/main/src/bin\\n[`sccache`]: https://github.com/mozilla/sccache\\n[`RangeInclusive`]: https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html\\n[`split_off`]: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.split_off\\n[`du`]: https://www.man7.org/linux/man-pages/man1/du.1.html\\n[`HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html\\n[`BTreeMap`]: https://doc.rust-lang.org/std/collections/struct.BTreeMap.html\\n[_tree catamorphism_]: https://en.wikipedia.org/wiki/Catamorphism#Tree_fold"},{"id":"aoc-2022/intro","metadata":{"permalink":"/blog/aoc-2022/intro","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md","source":"@site/blog/aoc-2022/00-intro.md","title":"Advent of Code \'22 in Rust","description":"Preparing for Advent of Code \'22.","date":"2022-12-14T21:45:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":8.665,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"Advent of Code \'22 in Rust","description":"Preparing for Advent of Code \'22.","date":"2022-12-14T21:45","slug":"aoc-2022/intro","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"1st week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/1st-week"}},"content":"Let\'s talk about the preparations for this year\'s [_Advent of Code_].\\n\\n\x3c!--truncate--\x3e\\n\\n## Choosing a language\\n\\nWhen choosing a language for AoC, you usually want a language that gives you a\\nquick feedback which allows you to iterate quickly to the solution of the puzzle.\\nOne of the most common choices is Python, many people also use JavaScript or Ruby.\\n\\nGiven the competitive nature of the AoC and popularity among competitive programming,\\nC++ might be also a very good choice. Only if you are familiar with it, I guess\u2026\\n\\nIf you want a challenge, you might also choose to rotate the languages each day.\\nThough I prefer to use only one language.\\n\\nFor this year I have been deciding between _Rust_, _C++_ and _Pascal_ or _Ada_.\\n\\nI have tried Rust last year and have survived with it for 3 days and then gave\\nup and switched to _Kotlin_, which was pretty good given it is \u201cJava undercover\u201d.\\nI pretty much like the ideas behind Rust, I am not sure about the whole cult and\\nimplementation of those ideas though. After some years with C/C++, I would say\\nthat Rust feels _too safe_ for my taste and tries to \u201c_punish me_\u201d even for the\\nmost trivial things.\\n\\nC++ is a very robust, but also comes with a wide variety of options providing you\\nthe ability to shoot yourself in the leg. I have tried to solve few days of previous\\nAdvent of Code events, it was _relatively easy_ to solve the problems in C++, given\\nthat I do not admit writing my own iterator for `enumerate`\u2026\\n\\nPascal or Ada were meme choices :) Ada is heavily inspired by Pascal and has a\\npretty nice standard library that offers enough to be able to quickly solve some\\nproblems in it. However the toolkit is questionable :/\\n\\n## Choosing libraries\\n\\n## Preparations for Rust\\n\\nAll of the sources, later on including solutions, can be found at my\\n[GitLab].\\n\\n### Toolkit\\n\\nSince we are using Rust, we are going to use a [Cargo] and more than likely VSCode\\nwith [`rust-analyzer`]. Because of my choice of libraries, we will also introduce\\na `.envrc` file that can be used by [`direnv`], which allows you to set specific\\nenvironment variables when you enter a directory. In our case, we will use\\n```bash\\n# to show nice backtrace when using the color-eyre\\nexport RUST_BACKTRACE=1\\n\\n# to catch logs generated by tracing\\nexport RUST_LOG=trace\\n```\\n\\nAnd for the one of the most obnoxious things ever, we will use a script to download\\nthe inputs instead of \u201c_clicking, opening and copying to a file_\u201d[^1]. There is\\nno need to be _fancy_, so we will adjust Python script by Martin[^2].\\n```py\\n#!/usr/bin/env python3\\n\\nimport datetime\\nimport yaml\\nimport requests\\nimport sys\\n\\n\\ndef load_config():\\n with open(\\"env.yaml\\", \\"r\\") as f:\\n js = yaml.load(f, Loader=yaml.Loader)\\n return js[\\"session\\"], js[\\"year\\"]\\n\\n\\ndef get_input(session, year, day):\\n return requests.get(\\n f\\"https://adventofcode.com/{year}/day/{day}/input\\",\\n cookies={\\"session\\": session},\\n headers={\\n \\"User-Agent\\": \\"{repo} by {mail}\\".format(\\n repo=\\"gitlab.com/mfocko/advent-of-code-2022\\",\\n mail=\\"me@mfocko.xyz\\",\\n )\\n },\\n ).content.decode(\\"utf-8\\")\\n\\n\\ndef main():\\n day = datetime.datetime.now().day\\n if len(sys.argv) == 2:\\n day = sys.argv[1]\\n\\n session, year = load_config()\\n problem_input = get_input(session, year, day)\\n\\n with open(f\\"./inputs/day{day:>02}.txt\\", \\"w\\") as f:\\n f.write(problem_input)\\n\\n\\nif __name__ == \\"__main__\\":\\n main()\\n```\\n\\nIf the script is called without any arguments, it will deduce the day from the\\nsystem, so we do not need to change the day every morning. It also requires a\\nconfiguration file:\\n```yaml\\n# env.yaml\\nsession: \u2039your session cookie\u203a\\nyear: 2022\\n```\\n\\n### Libraries\\n\\nLooking at the list of the libraries, I have chosen \u201ca lot\u201d of them. Let\'s walk\\nthrough each of them.\\n\\n[`tracing`] and [`tracing-subscriber`] are the crates that can be used for tracing\\nand logging of your Rust programs, there are also other crates that can help you\\nwith providing backtrace to the Sentry in case you have deployed your application\\nsomewhere and you want to watch over it. In our use case we will just utilize the\\nmacros for debugging in the terminal.\\n\\n[`thiserror`], [`anyhow`] and [`color-eyre`] are used for error reporting.\\n`thiserror` is a very good choice for libraries, cause it extends the `Error`\\nfrom the `std` and allows you to create more convenient error types. Next is\\n`anyhow` which kinda builds on top of the `thiserror` and provides you with simpler\\nerror handling in binaries[^3]. And finally we have `color-eyre` which, as I found\\nout later, is a colorful (_wink wink_) extension of `eyre` which is fork of `anyhow`\\nwhile supporting customized reports.\\n\\nIn the end I have decided to remove `thiserror` and `anyhow`, since first one is\\nsuitable for libraries and the latter was basically fully replaced by `{color-,}eyre`.\\n\\n[`regex`] and [`lazy_static`] are a very good and also, I hope, self-explanatory\\ncombination. `lazy_static` allows you to have static variables that must be initialized\\nduring runtime.\\n\\n[`itertools`] provides some nice extensions to the iterators from the `std`.\\n\\n### My own \u201clibrary\u201d\\n\\nWhen creating the crate for this year\'s Advent of Code, I have chosen a library\\ntype. Even though standard library is huge, some things might not be included and\\nalso we can follow _KISS_. I have 2 modules that my \u201clibrary\u201d exports, one for\\nparsing and one for 2D vector (that gets used quite often during Advent of Code).\\n\\nKey part is, of course, processing the input and my library exports following\\nfunctions that get used a lot:\\n```rust\\n/// Reads file to the string.\\npub fn file_to_string<P: AsRef<Path>>(pathname: P) -> String;\\n\\n/// Reads file and returns it as a vector of characters.\\npub fn file_to_chars<P: AsRef<Path>>(pathname: P) -> Vec<char>;\\n\\n/// Reads file and returns a vector of parsed structures. Expects each structure\\n/// on its own line in the file. And `T` needs to implement `FromStr` trait.\\npub fn file_to_structs<P: AsRef<Path>, T: FromStr>(pathname: P) -> Vec<T>\\nwhere\\n <T as FromStr>::Err: Debug;\\n\\n/// Converts iterator over strings to a vector of parsed structures. `T` needs\\n/// to implement `FromStr` trait and its error must derive `Debug` trait.\\npub fn strings_to_structs<T: FromStr, U>(\\n iter: impl Iterator<Item = U>\\n) -> Vec<T>\\nwhere\\n <T as std::str::FromStr>::Err: std::fmt::Debug,\\n U: Deref<Target = str>;\\n\\n/// Reads file and returns it as a vector of its lines.\\npub fn file_to_lines<P: AsRef<Path>>(pathname: P) -> Vec<String>;\\n```\\n\\nAs for the vector, I went with a rather simple implementation that allows only\\naddition of the vectors for now and accessing the elements via functions `x()`\\nand `y()`. Also the vector is generic, so we can use it with any numeric type we\\nneed.\\n\\n### Skeleton\\n\\nWe can also prepare a template to quickly bootstrap each of the days. We know\\nthat each puzzle has 2 parts, which means that we can start with 2 functions that\\nwill solve them.\\n```rust\\nfn part1(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn part2(input: &Input) -> Output {\\n todo!()\\n}\\n```\\n\\nBoth functions take reference to the input and return some output (in majority\\nof puzzles, it is the same type). `todo!()` can be used as a nice placeholder,\\nit also causes a panic when reached and we could also provide some string with\\nan explanation, e.g. `todo!(\\"part 1\\")`. We have not given functions a specific\\ntype and to avoid as much copy-paste as possible, we will introduce type aliases.\\n```rust\\ntype Input = String;\\ntype Output = i32;\\n```\\n\\n:::tip\\n\\nThis allows us to quickly adjust the types only in one place without the need to\\ndo _regex-replace_ or replace them manually.\\n\\n:::\\n\\nFor each day we get a personalized input that is provided as a text file. Almost\\nall the time, we would like to get some structured type out of that input, and\\ntherefore it makes sense to introduce a new function that will provide the parsing\\nof the input.\\n```rust\\nfn parse_input(path: &str) -> Input {\\n todo!()\\n}\\n```\\n\\nThis \u201cparser\u201d will take a path to the file, just in case we would like to run the\\nsample instead of input.\\n\\nOK, so now we can write a `main` function that will take all of the pieces and\\nrun them.\\n```rust\\nfn main() {\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n println!(\\"Part 1: {}\\", part_1(&input));\\n println!(\\"Part 2: {}\\", part_2(&input));\\n}\\n```\\n\\nThis would definitely do :) But we have installed a few libraries and we want to\\nuse them. In this part we are going to utilize _[`tracing`]_ (for tracing, duh\u2026)\\nand _[`color-eyre`]_ (for better error reporting, e.g. from parsing).\\n```rust\\nfn main() -> Result<()> {\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n info!(\\"Part 1: {}\\", part_1(&input));\\n info!(\\"Part 2: {}\\", part_2(&input));\\n\\n Ok(())\\n}\\n```\\n\\nThe first statement will set up tracing and configure it to print out the logs to\\nterminal, based on the environment variable. We also change the formatting a bit,\\nsince we do not need all the _fancy_ features of the logger. Pure initialization\\nwould get us logs like this:\\n```\\n2022-12-11T19:53:19.975343Z INFO day01: Part 1: 0\\n```\\n\\nHowever after running that command, we will get the following:\\n```\\n INFO src/bin/day01.rs:35: Part 1: 0\\n```\\n\\nAnd the `color_eyre::install()?` is quite straightforward. We just initialize the\\nerror reporting by _color eyre_.\\n\\n:::caution\\n\\nNotice that we had to add `Ok(())` to the end of the function and adjust the\\nreturn type of the `main` to `Result<()>`. It is caused by the _color eyre_ that\\ncan be installed only once and therefore it can fail, that is how we got the `?`\\nat the end of the `::install` which _unwraps_ the **\xbbresult\xab** of the installation.\\n\\n:::\\n\\nOverall we will get to a template like this:\\n```rust\\nuse aoc_2022::*;\\n\\nuse color_eyre::eyre::Result;\\nuse tracing::info;\\nuse tracing_subscriber::EnvFilter;\\n\\ntype Input = String;\\ntype Output = i32;\\n\\nfn parse_input(path: &str) -> Input {\\n todo!()\\n}\\n\\nfn part1(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn part2(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn main() -> Result<()> {\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n info!(\\"Part 1: {}\\", part_1(&input));\\n info!(\\"Part 2: {}\\", part_2(&input));\\n\\n Ok(())\\n}\\n```\\n\\n[^1]: Copy-pasting might be a relaxing thing to do, but you can also discover\\nnasty stuff about your PC. See [this Reddit post and the comment].\\n[^2]: [GitHub profile](https://github.com/martinjonas)\\n[^3]: Even though you can use it even for libraries, but handling errors from\\nlibraries using `anyhow` is nasty\u2026 You will be the stinky one ;)\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[GitLab]: https://gitlab.com/mfocko/advent-of-code-2022\\n[Cargo]: https://doc.rust-lang.org/cargo/\\n[`rust-analyzer`]: https://rust-analyzer.github.io/\\n[`direnv`]: https://direnv.net/\\n[`tracing`]: https://crates.io/crates/tracing\\n[`tracing-subscriber`]: https://crates.io/crates/tracing-subscriber\\n[`thiserror`]: https://crates.io/crates/thiserror\\n[`anyhow`]: https://crates.io/crates/anyhow\\n[`color-eyre`]: https://crates.io/crates/color-eyre\\n[`regex`]: https://crates.io/crates/regex\\n[`lazy_static`]: https://crates.io/crates/lazy_static\\n[`itertools`]: https://crates.io/crates/itertools\\n[this Reddit post and the comment]: https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono"}]}')}}]); \ No newline at end of file diff --git a/assets/js/4200b1a9.faadd2c9.js b/assets/js/4200b1a9.faadd2c9.js new file mode 100644 index 0000000..10dc5bd --- /dev/null +++ b/assets/js/4200b1a9.faadd2c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[866],{24612:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2023/08/02/copr","metadata":{"permalink":"/blog/2023/08/02/copr","editUrl":"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md","source":"@site/blog/2023-08-02-copr.md","title":"How can Copr help with broken dependencies","description":"Copr comes to save you when maintainer doesn\'t care.","date":"2023-08-02T00:00:00.000Z","formattedDate":"August 2, 2023","tags":[{"label":"\ud83c\udfed","permalink":"/blog/tags/\ud83c\udfed"},{"label":"red-hat","permalink":"/blog/tags/red-hat"},{"label":"copr","permalink":"/blog/tags/copr"},{"label":"admin","permalink":"/blog/tags/admin"},{"label":"vps","permalink":"/blog/tags/vps"}],"readingTime":3.44,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. your opinionated admin","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"How can Copr help with broken dependencies","description":"Copr comes to save you when maintainer doesn\'t care.","date":"2023-08-02T00:00:00.000Z","authors":[{"key":"mf","title":"a.k.a. your opinionated admin"}],"tags":["\ud83c\udfed","red-hat","copr","admin","vps"]},"unlisted":false,"nextItem":{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week"}},"content":"When you decide to run Fedora on your VPS, you might get screwed over by using\\nrandom repositories\u2026\\n\\n\x3c!--truncate--\x3e\\n\\nWhen I \u201creserved\u201d my VPS[^1] back in June \'20, I slapped Fedora on it without\\nthinking. I bet 99% of people would say that I\'m crazy for doing such thing[^2],\\n**BUT** I\'ve been using Fedora on my PCs for some time already and it felt very\\nstable and natural to just use, even for VPS.\\n\\nOne of the first things I\'ve done was setting up a mail server. You may guess\\nwhat\'s the fun part about having a mail server\u2026 Yes, it\'s all the spam you\\nreceive and only then you realize how much \u201ccrap\u201d gets filtered on free mail\\nservices. To battle this problem I chose to use\\n[rspamd](https://github.com/rspamd/rspamd) that had CentOS support, but someone\\nhad a [Copr](https://copr.fedorainfracloud.org/) repository that I used to\\ninstall it.\\n\\n## How does Copr repositories work?\\n\\nIf you have ever used Ubuntu, you might be familiar with the concept since it is\\nvery close to [PPAs](https://help.ubuntu.com/community/PPA).\\n\\ntl;dr of the whole process consists of\\n1. enabling the Copr repository, and\\n2. installing the desired package.\\n\\nSo in shell you would do\\n```\\n# dnf copr enable \u2039copr-repository\u203a\\n# dnf install \u2039package-from-the-repository\u203a\\n```\\n\\nAnd\u2026 that\'s it! Nothing else needed! Simple, right? And literally same process\\nas you would do for the PPA.\\n\\n:::tip AUR\\n\\nOn the other hand, if you are familiar with the archLinux, you definitely know\\nAUR and what it can do for you. Copr repository is pretty similar, but the\\npackages are prebuilt in Copr and Copr repositories can carry the required\\ndependencies for said packages, which simplifies the distribution, and can even\\nhelp with installing singular packages (when you just need the dependency, not\\neverything).\\n\\n:::\\n\\n## My issue\\n\\nNow you might wonder how would I use it on my VPS. It\'s rather simple, once in\\n6 months a new Fedora release comes out. And you need to upgrade to newer\\nrelease\u2026 You don\'t need to do it right away and for such setup it probably isn\'t\\neven recommended.\\n\\n:::tip\\n\\nFedora releases are supported for a year, i.e. they live 6 months till the next\\nrelease and then another 6 months till another release.\\n\\nSome people prefer to run one version \u201cbehind\u201d. If you ever decide to run it on\\nyour home server or in a similar setup, it might be a pretty good idea to\\nfollow. I\'m using the \u201clatest greatest\u201d, cause why not :smile:\\n\\nOne way or another, you still need to bump the release every six months, unless\\nyou\'d bump 2 releases at once every year, which would be a decision, since, at\\nleast I, cannot see any benefits in it\u2026 You don\'t go for \u201cstability\u201d, cause once\\na year you switch to the latest release and then, before you bump, you use one\\nyear old software, so you\'re not even using the latest.\\n\\n:::\\n\\nFast-forward 2 years in the future, new Fedora release came out (October \'22)\\nand I was doing an upgrade. Dependencies of the rspamd have been updated and\\nrspamd builds in Copr have failed and no one fixed it. Cool, so now I can\\nupgrade, but can either ignore the dependencies or uninstall the rspamd\u2026\\n\\n## How can Copr help?\\n\\nI have managed to find\\n[specfile](https://github.com/rspamd/rspamd/blob/master/rpm/rspamd.spec) for the\\nrspamd package that they use for CentOS. There were some files apart from the\\nspecfile, so I had to make an SRPM locally and then\u2026 I just uploaded the SRPM\\nto the Copr to\\n[build](https://copr.fedorainfracloud.org/coprs/mfocko/rspamd/build/5046567/)\\nan RPM.\\n\\nI have switched the previous Copr repository for rspamd with my own and happily\\nproceeded with the upgrade.\\n\\n## Conclusion\\n\\nCopr is heavily used for testing builds on the upstream with\\n[Packit](https://packit.dev). However, as you can see, it is possible to use it\\n**very well** for packaging your own stuff and avoiding issues (such as the one\\nI have described above), if need be.\\n\\n[^1]: [vpsFree.cz](https://vpsfree.cz)\\n[^2]: Even though I\'ve been running archLinux on some Raspberry Pi\'s and also\\n on one of my \u201chome servers\u201d, before getting the VPS. You could say I like\\n to live on the edge\u2026"},{"id":"aoc-2022/4th-week","metadata":{"permalink":"/blog/aoc-2022/4th-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md","source":"@site/blog/aoc-2022/04-week-4.md","title":"4th week of Advent of Code \'22 in Rust","description":"Surviving fourth week in Rust.","date":"2023-07-07T15:14:00.000Z","formattedDate":"July 7, 2023","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":15.175,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"4th week of Advent of Code \'22 in Rust","description":"Surviving fourth week in Rust.","date":"2023-07-07T15:14","slug":"aoc-2022/4th-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"How can Copr help with broken dependencies","permalink":"/blog/2023/08/02/copr"},"nextItem":{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week"}},"content":"Let\'s go through the fourth week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 22: Monkey Map](https://adventofcode.com/2022/day/22)\\n\\n:::info tl;dr\\n\\nSimulating a movement on a 2D map with given instructions. Map becomes a cube in\\nthe 2nd part\u2026\\n\\n:::\\n\\n:::caution Rant\\n\\nThis was the most obnoxious problem of this year\u2026 and a lot of Rust issues have\\nbeen hit.\\n\\n:::\\n\\n### Solution\\n\\nIt seems like a very simple problem to solve, but with very obnoxious changes in\\nthe 2nd part and also it\'s relatively hard to decompose \xbbproperly\xab.\\n\\n#### Column iterator\\n\\nIn the first part of the problem it was needed to know the boundaries of each\\nrow and column, since I stored them in `Vec<Vec<char>>` and padded with spaces\\nto ensure I have a rectangular 2D \u201carray\u201d. However when you wanted to go through\\neach row and column to determine the boundaries, it was very easy to do for the\\nrows (cause each row is a `Vec` element), but not for the columns, since they\\nspan multiple rows.\\n\\nFor this use case I have implemented my own _column iterator_:\\n```rust\\npub struct ColumnIterator<\'a, T> {\\n map: &\'a [Vec<T>],\\n column: usize,\\n\\n i: usize,\\n}\\n\\nimpl<\'a, T> ColumnIterator<\'a, T> {\\n pub fn new(map: &\'a [Vec<T>], column: usize) -> ColumnIterator<\'a, T> {\\n Self { map, column, i: 0 }\\n }\\n}\\n\\nimpl<\'a, T> Iterator for ColumnIterator<\'a, T> {\\n type Item = &\'a T;\\n\\n fn next(&mut self) -> Option<Self::Item> {\\n if self.i >= self.map.len() {\\n return None;\\n }\\n\\n self.i += 1;\\n Some(&self.map[self.i - 1][self.column])\\n }\\n}\\n```\\n\\nGiven this piece of an iterator, it is very easy to factor out the common\\nfunctionality between the rows and columns into:\\n```rust\\nlet mut find_boundaries = |constructor: fn(usize) -> Orientation,\\n iterator: &mut dyn Iterator<Item = &char>,\\n upper_bound,\\n i| {\\n let mut first_non_empty = iterator.enumerate().skip_while(|&(_, &c)| c == \' \');\\n let start = first_non_empty.next().unwrap().0 as isize;\\n\\n let mut last_non_empty = first_non_empty.skip_while(|&(_, &c)| c != \' \');\\n let end = last_non_empty.next().unwrap_or((upper_bound, &\'_\')).0 as isize;\\n\\n boundaries.insert(constructor(i), start..end);\\n};\\n```\\n\\nAnd then use it as such:\\n```rust\\n// construct all horizontal boundaries\\n(0..map.len()).for_each(|row| {\\n find_boundaries(\\n Orientation::horizontal,\\n &mut map[row].iter(),\\n map[row].len(),\\n row,\\n );\\n});\\n\\n// construct all vertical boundaries\\n(0..map[0].len()).for_each(|col| {\\n find_boundaries(\\n Orientation::vertical,\\n &mut ColumnIterator::new(&map, col),\\n map.len(),\\n col,\\n );\\n});\\n```\\n\\n#### Walking around the map\\n\\nOnce the 2nd part got introduced, you start to think about a way how not to\\ncopy-paste a lot of stuff (I haven\'t avoided it anyways\u2026). In this problem, I\'ve\\nchosen to introduce a trait (i.e. _interface_) for 2D and 3D walker.\\n```rust\\ntrait Wrap: Clone {\\n type State;\\n\\n // simulation\\n fn is_blocked(&self) -> bool;\\n fn step(&mut self, steps: isize);\\n fn turn_left(&mut self);\\n fn turn_right(&mut self);\\n\\n // movement\\n fn next(&self) -> (Self::State, Direction);\\n\\n // final answer\\n fn answer(&self) -> Output;\\n}\\n```\\n\\nEach walker maintains its own state and also provides the functions that are\\nused during the simulation. The \u201cpromised\u201d methods are separated into:\\n* _simulation_-related: that are used during the simulation from the `.fold()`\\n* _movement_-related: just a one method that holds most of the logic differences\\n between 2D and 3D\\n* _final answer_: which extracts the _proof of solution_ from the\\n implementation-specific walker\\n\\nBoth 2D and 3D versions borrow the original input and therefore you must\\nannotate the lifetime of it:\\n```rust\\nstruct Wrap2D<\'a> {\\n input: &\'a Input,\\n position: Position,\\n direction: Direction,\\n}\\nimpl<\'a> Wrap2D<\'a> {\\n fn new(input: &\'a Input) -> Wrap2D<\'a> {\\n// \u2026\\n```\\n\\n#### Problems\\n\\nI have used a lot of closures for this problem and once I introduced a parameter\\nthat was of unknown type (apart from the fact it implements a specific trait), I\\ngot suggested a \u201cfix\u201d for the compilation error that resulted in something that\\nwas not possible to parse, cause it, more than likely, violated the grammar.\\n\\nIn a similar fashion, I have been suggested changes that led to a code that\\ndidn\'t make sense by just looking at it (there was no need to try the changes),\\nfor example one suggested change in the closure parameter caused disapperance of\\nthe parameter name. :smile:\\n\\n#### Clippy\\n\\nI have to admit that Clippy was rather helpful here, I\'ll include two examples\\nof rather smart suggestions.\\n\\nWhen writing the parsing for this problem, the first thing I have spotted on the\\n`char` was the `.is_digit()` function that takes a radix as a parameter. Clippy\\nnoticed that I use `radix = 10` and suggested switching to `.is_ascii_digit()`\\nthat does exactly the same thing:\\n```diff\\n- .take_while(|c| c.is_digit(10))\\n+ .take_while(|c| c.is_ascii_digit())\\n```\\n\\nAnother useful suggestion appeared when working with the iterators and I wanted\\nto get the $n$-th element from it. You know the `.skip()`, you know the\\n`.next()`, just \u201cslap\u201d them together and we\'re done for :grin: Well, I got\\nsuggested to use `.nth()` that does exactly the combination of the two mentioned\\nmethods on iterators:\\n```diff\\n- match it.clone().skip(skip).next().unwrap() {\\n+ match it.clone().nth(skip).unwrap() {\\n```\\n\\n## [Day 23: Unstable Diffusion](https://adventofcode.com/2022/day/23)\\n\\n:::info tl;dr\\n\\nSimulating movement of elves around with a set of specific rules.\\n\\n:::\\n\\n### Solution\\n\\nThere\'s not much to mention since it\'s just a cellular automaton simulation\\n(even though the AoC rules for cellular automatons usually get out of hand\\n:wink:).\\n\\nAlthough I had a need to determine boundaries of the elves\' positions and ended\\nup with a nasty DRY violation. Knowing that you you\'re looking for maximum and\\nminimum that are, of course, exactly the same except for initial values and\\ncomparators, it looks like a rather simple fix, but typing in Rust is something\\nelse, right? In the end I settled for a function that computes both boundaries\\nwithout any duplication while using a closure:\\n```rust\\nfn get_bounds(positions: &Input) -> (Vector2D<isize>, Vector2D<isize>) {\\n let f = |init, cmp: &dyn Fn(isize, isize) -> isize| {\\n positions\\n .iter()\\n .fold(Vector2D::new(init, init), |acc, elf| {\\n Vector2D::new(cmp(acc.x(), elf.x()), cmp(acc.y(), elf.y()))\\n })\\n };\\n\\n (f(isize::MAX, &min::<isize>), f(isize::MIN, &max::<isize>))\\n}\\n```\\n\\nThis function returns a pair of 2D vectors that represent opposite points of the\\nbounding rectangle of all elves.\\n\\nYou might ask why would we need a closure and the answer is that `positions`\\ncannot be captured from within the nested function, only via closure. One more\\nfun fact on top of that is the type of the comparator\\n```rust\\n&dyn Fn(isize, isize) -> isize\\n```\\nOnce we remove the `dyn` keyword, compiler yells at us and also includes a way\\nhow to get a more thorough explanation of the error by running\\n\\n $ rustc --explain E0782\\n\\nwhich shows us\\n\\n Trait objects must include the `dyn` keyword.\\n \\n Erroneous code example:\\n \\n ```\\n trait Foo {}\\n fn test(arg: Box<Foo>) {} // error!\\n ```\\n \\n Trait objects are a way to call methods on types that are not known until\\n runtime but conform to some trait.\\n \\n Trait objects should be formed with `Box<dyn Foo>`, but in the code above\\n `dyn` is left off.\\n \\n This makes it harder to see that `arg` is a trait object and not a\\n simply a heap allocated type called `Foo`.\\n \\n To fix this issue, add `dyn` before the trait name.\\n \\n ```\\n trait Foo {}\\n fn test(arg: Box<dyn Foo>) {} // ok!\\n ```\\n \\n This used to be allowed before edition 2021, but is now an error.\\n\\n:::danger Rant\\n\\nNot all of the explanations are helpful though, in some cases they might be even\\nmore confusing than helpful, since they address _very simple_ use cases.\\n\\nAs you can see, even in this case there are two sides to the explanations:\\n* it explains why you need to use `dyn`, but\\n* it still mentions that trait objects need to be heap-allocated via `Box<T>`\\n that, as you can see in my snippet, **does not** apply here :smile: IMO it\'s\\n caused by the fact that we are borrowing it and therefore we don\'t need to\\n care about the size or whereabouts of it.\\n\\n:::\\n\\n:::info C++ parallel\\n\\nIf you dive into the explanation above, you can notice that the `Box<dyn Trait>`\\npattern is very helpful for using types that are not known during compile-time.\\nYou would use a very similar approach in C++ when parsing some data structure\\nfrom input (let\'s say JSON for example).\\n\\nOn the other hand, in this case, it doesn\'t really make much sense, cause you\\ncan clearly see that the types **are known** during the compile-time, which in\\nC++ could be easily resolved by templating the helper function.\\n\\n:::\\n\\n## [Day 24: Blizzard Basin](https://adventofcode.com/2022/day/24)\\n\\n:::info tl;dr\\n\\nNavigating your way through a basin with series of blizzards that move around\\nyou as you move.\\n\\n:::\\n\\n:::caution\\n\\nIt\'s second to last day and I went \u201c_bonkers_\u201d on the Rust :smile: Proceed to\\nread _Solution_ part on your own risk.\\n\\n:::\\n\\n### Solution\\n\\nYou are given a map with blizzards all over the place and you\'re supposed to\\nfind the minimum time it requires you to walk through the basin without getting\\nin any of the blizzards.\\n\\n#### Breakdown\\n\\nRelatively simple, yet a bit annoying, approach can be taken. It\'s technically\\na shortest-path algorithm implementation with some relaxation restrictions and\\nbeing able to stay on one position for some time, so each _vertex_ of the graph\\nis determined by the position on the map and the _timestamp_. I have chosen to\\nuse `Vector3D<usize>`, since `x` and `y` attributes can be used for the position\\nand, well, let\'s use `z` for a timestamp, cause why not, right? :wink:\\n\\n#### Evaluating the blizzards\\n\\n:::caution\\n\\nI think that this is the most perverted abuse of the traits in the whole 4 weeks\\nof AoC in Rust\u2026\\n\\n:::\\n\\nThe blizzards move along their respective directions in time and loop around in\\ntheir respective row/column. Each vertex holds position **and** time, so we can\\n_just_ index the basin with the vertex itself, right? Yes, we can :smiling_imp:\\n\\n:::tip Fun fact\\n\\nWhile writing this part, I\'ve recognized unnecessary verbosity in the code and\\ncleaned it up a bit. The changed version is shown here and the original was just\\nmore verbose.\\n\\n:::\\n\\nI\'ll skip the boring parts of checking bounds and entry/exit of the basin :wink:\\nWe can easily calculate positions of the blizzards using a modular arithmetics:\\n```rust\\nimpl Index<Position> for Basin {\\n type Output = char;\\n\\n fn index(&self, index: Position) -> &Self::Output {\\n // \u2039skipped boring parts\u203a\\n\\n // We need to account for the loops of the blizzards\\n let width = self.cols - 2;\\n let height = self.rows - 2;\\n\\n let blizzard_origin = |size, d, t, i| ((i - 1 + size + d * (t % size)) % size + 1) as usize;\\n [\\n (\\n index.y() as usize,\\n blizzard_origin(width, -1, index.z(), index.x()),\\n \'>\',\\n ),\\n (\\n index.y() as usize,\\n blizzard_origin(width, 1, index.z(), index.x()),\\n \'<\',\\n ),\\n (\\n blizzard_origin(height, -1, index.z(), index.y()),\\n index.x() as usize,\\n \'v\',\\n ),\\n (\\n blizzard_origin(height, 1, index.z(), index.y()),\\n index.x() as usize,\\n \'^\',\\n ),\\n ]\\n .iter()\\n .find_map(|&(y, x, direction)| {\\n if self.map[y][x] == direction {\\n Some(&self.map[y][x])\\n } else {\\n None\\n }\\n })\\n .unwrap_or(&\'.\')\\n }\\n}\\n```\\n\\nAs you can see, there is an expression for calculating the original position and\\nit\'s used multiple times, so why not take it out to a lambda, right? :wink:\\n\\nI couldn\'t get the `rustfmt` to format the `for`-loop nicely, so I\'ve just\\ndecided to go with iterating over an elements of a slice. I have used, once\\nagain, a combination of two functions (`find_map` in this case) to do 2 things\\nat once and at the end, if we haven\'t found any blizzard, we just return the\\nempty space.\\n\\nI think it\'s a very _nice_ (and naughty) way how to use the `Index` trait, don\'t\\nyou think?\\n\\n#### Shortest-path algorithm\\n\\nFor the shortest path you can choose and adjust any of the common shortest-path\\nalgorithms, in my case, I have decided to use [_A\\\\*_] instead of Dijkstra\'s\\nalgorithm, since it better reflects the _cost_ function.\\n\\n:::info Comparison of costs\\n\\nWith the Dijkstra\'s algorithm I would proceed with the `time` attribute used as\\na priority for the queue.\\n\\nWhereas with the _A\\\\*_, I have chosen to use both time and Manhattan distance\\nthat promotes vertices closer to the exit **and** with a minimum time taken.\\n\\n:::\\n\\nCost function is, of course, a closure :wink:\\n```rust\\nlet cost = |p: Position| p.z() as usize + exit.y().abs_diff(p.y()) + exit.x().abs_diff(p.x());\\n```\\n\\nAnd also for checking the possible moves from the current vertex, I have\\nimplemented, yet another, closure that yields an iterator with the next moves:\\n```rust\\nlet next_positions = |p| {\\n [(0, 0, 1), (0, -1, 1), (0, 1, 1), (-1, 0, 1), (1, 0, 1)]\\n .iter()\\n .filter_map(move |&(x, y, t)| {\\n let next_p = p + Vector3D::new(x, y, t);\\n\\n if basin[next_p] == \'.\' {\\n Some(next_p)\\n } else {\\n None\\n }\\n })\\n};\\n```\\n\\n#### Min-heap\\n\\nIn this case I had a need to use the priority queue taking the elements with the\\nlowest cost as the prioritized ones. Rust only offers you the [`BinaryHeap`] and\\nthat is a max-heap. One of the ways how to achieve a min-heap is to put the\\nelements in wrapped in a [`Reverse`] (as is even showed in the linked [docs of\\nthe `BinaryHeap`]). However the wrapping affects the type of the heap and also\\npopping the most prioritized elements yields values wrapped in the `Reverse`.\\n\\nFor this purpose I have just taken the max-heap and wrapped it as a whole in a\\nseparate structure providing just the desired methods:\\n```rust\\nuse std::cmp::{Ord, Reverse};\\nuse std::collections::BinaryHeap;\\n\\npub struct MinHeap<T> {\\n heap: BinaryHeap<Reverse<T>>,\\n}\\n\\nimpl<T: Ord> MinHeap<T> {\\n pub fn new() -> MinHeap<T> {\\n MinHeap {\\n heap: BinaryHeap::new(),\\n }\\n }\\n\\n pub fn push(&mut self, item: T) {\\n self.heap.push(Reverse(item))\\n }\\n\\n pub fn pop(&mut self) -> Option<T> {\\n self.heap.pop().map(|Reverse(x)| x)\\n }\\n}\\n\\nimpl<T: Ord> Default for MinHeap<T> {\\n fn default() -> Self {\\n Self::new()\\n }\\n}\\n```\\n\\nRest is just the algorithm implementation which is not that interesting.\\n\\n## [Day 25: Full of Hot Air](https://adventofcode.com/2022/day/25)\\n\\n:::info tl;dr\\n\\nPlaying around with a numbers in a _special_ base.\\n\\n:::\\n\\nGetting flashbacks to the _IB111 Foundations of Programming_\u2026 Very nice \u201cproblem\u201d\\nwith a rather easy solution, as the last day always seems to be.\\n\\n### Solution\\n\\nImplementing 2 functions, converting from the _SNAFU base_ and back to the _SNAFU_\\n_base_ representation. Let\'s do a bit more though! I have implemented two functions:\\n* `from_snafu`\\n* `to_snafu`\\n\\nNow it is apparent that all I do is number to string and string to number. Hmm\u2026\\nthat sounds familiar, doesn\'t it? Let\'s introduce a structure for the SNAFU numbers\\nand implement the traits that we need.\\n\\nLet\'s start with a structure:\\n```rust\\n#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]\\nstruct SNAFU {\\n value: i64,\\n}\\n```\\n\\n#### Converting from `&str`\\n\\nWe will start by implementing the `FromStr` trait that will help us parse our input.\\nThis is rather simple, I can just take the `from_snafu` function, copy-paste it\\ninto the `from_str` method and the number I get will be wrapped in `Result` and\\n`SNAFU` structure.\\n\\n#### Converting to `String`\\n\\nThis is more fun. In some cases you need to implement only one trait and others\\nare automatically implemented using that one trait. In our case, if you look in\\nthe documentation, you can see that `ToString` trait is automatically implemented\\nfor any type that implements `Display` trait.\\n\\nLet\'s implement the `Display` trait then. We should be able to use the `to_snafu`\\nfunction and just take the `self.value` from the `SNAFU` structure.\\n\\nAnd for the convenience of tests, we can also implement a rather simple `From<i64>`\\ntrait for the `SNAFU`.\\n\\n#### Adjusting the code\\n\\nAfter those changes we need to adjust the code and tests.\\n\\nParsing of the input is very easy, before we have used the lines, now we parse\\neverything:\\n```diff\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\\n- file_to_lines(pathname)\\n+ file_to_structs(pathname)\\n }\\n```\\n\\nPart 1 needs to be adjusted a bit too:\\n```diff\\n fn part_1(input: &Input) -> Output {\\n- to_snafu(input.iter().map(|s| from_snafu(s)).sum())\\n+ SNAFU::from(input.iter().map(|s| s.value).sum::<i64>()).to_string()\\n }\\n```\\n\\nYou can also see that it simplifies the meaning a bit and it is more explicit than\\nthe previous versions.\\n\\nAnd for the tests:\\n```diff\\n #[test]\\n fn test_from() {\\n- for (n, s) in EXAMPLES.iter() {\\n- assert_eq!(from_snafu(s), *n);\\n+ for (&n, s) in EXAMPLES.iter() {\\n+ assert_eq!(s.parse::<SNAFU>().unwrap().value, n);\\n }\\n }\\n \\n #[test]\\n fn test_to() {\\n- for (n, s) in EXAMPLES.iter() {\\n- assert_eq!(to_snafu(*n), s.to_string());\\n+ for (&n, s) in EXAMPLES.iter() {\\n+ assert_eq!(SNAFU::from(n).to_string(), s.to_string());\\n }\\n```\\n\\n## Summary\\n\\nLet\'s wrap the whole thing up! Keeping in mind both AoC and the Rust\u2026\\n\\n![Finished advent calendar :smile:](/img/blog/aoc-2022/04-week-4/calendar.png)\\n\\n### Advent of Code\\n\\nThis year was quite fun, even though most of the solutions and posts came in\\nlater on (*cough* in \'23 *cough*). Day 22 was the most obnoxious one\u2026 And also\\nit feels like I used priority queues and tree data structures **a lot** :eyes:\\n\\n### with Rust\\n\\nI must admit that a lot of compiler warnings and errors were very useful. Even\\nthough I still found some instances where they didn\'t help at all or cause even\\nworse issues than I had. Compilation times have been addressed with the caching.\\n\\nBuilding my first tree data structure in Rust has been a very \u201cinteresting\u201d\\njourney. Being able to write a more generic BFS algorithm that allows you to not\\nduplicate code while still mantaining the desired functionality contributes to\\na very readable code.\\n\\nI am definitely much more aware of the basic things that bloated Python is\\nmissing, yet Rust has them\u2026\\n\\nUsing explicit types and writing down placeholder functions with `todo!()`\\nmacros is very pleasant, since it allows you to easily navigate the type system\\nduring the development when you don\'t even need to be sure how are you going to\\nput the smaller pieces together.\\n\\nI have used a plethora of traits and also implemented some of them to either be\\nidiomatic, or exploit the syntactic sugar they offer. Deriving the default trait\\nimplementation is also very helpful in a lot of cases, e.g. debugging output,\\ncopying, equality comparison, etc.\\n\\nI confess to touching more \u201ccursed\u201d parts of the Rust, such as macros to\\ndeclutter the copy-paste for tests or writing my own structures that need to\\ncarry a lifetime for their own fields.\\n\\ntl;dr Relatively pleasant language until you hit brick wall :wink:\\n\\n---\\n\\nSee you next year! Maybe in Rust, maybe not :upside_down_face:\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[_A\\\\*_]: https://en.wikipedia.org/wiki/A*_search_algorithm\\n[`BinaryHeap`]: https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html\\n[`Reverse`]: https://doc.rust-lang.org/std/cmp/struct.Reverse.html\\n[docs of the `BinaryHeap`]: https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html#min-heap"},{"id":"aoc-2022/3rd-week","metadata":{"permalink":"/blog/aoc-2022/3rd-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md","source":"@site/blog/aoc-2022/03-week-3.md","title":"3rd week of Advent of Code \'22 in Rust","description":"Surviving third week in Rust.","date":"2023-07-06T21:00:00.000Z","formattedDate":"July 6, 2023","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":11.565,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"3rd week of Advent of Code \'22 in Rust","description":"Surviving third week in Rust.","date":"2023-07-06T21:00","slug":"aoc-2022/3rd-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week"},"nextItem":{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally"}},"content":"Let\'s go through the third week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 15: Beacon Exclusion Zone](https://adventofcode.com/2022/day/15)\\n\\n:::info tl;dr\\n\\nTriangulating a distress beacon based on the information from the sensors.\\n\\n:::\\n\\n### Solution\\n\\nRelatively easy thing to implement, no major Rust issues hit.\\n\\n## [Day 16: Proboscidea Volcanium](https://adventofcode.com/2022/day/16)\\n\\n:::info tl;dr\\n\\nFinding a max flow in a graph given some time constraints.\\n\\n:::\\n\\n### Solution\\n\\nI have used some interesting things to implement this and make it easier for me.\\n\\n#### Indexing in graph\\n\\nI have come across a situation where I needed to keep more information regarding\\nthe graph\u2026 In that case you can, of course, create a structure and keep it in,\\nbut once you have multiple members in the structure it gets harder to work with\\nsince you need to address the fields in the structure. When you work with graph,\\nyou frequently need to access the vertices and in this case it felt a lot easier\\nto implement the indexing in a graph, rather than explicitly access the\\nunderlying data structure.\\n\\nHere you can see a rather short snippet from the solution that allows you to\\n\u201cindex\u201d the graph:\\n```rust\\nimpl Index<&str> for Graph {\\n type Output = Vertex;\\n\\n fn index(&self, index: &str) -> &Self::Output {\\n &self.g[index]\\n }\\n}\\n```\\n\\n#### Cartesian product\\n\\nDuring the implementation I had to utilize Floyd-Warshall algorithm for finding\\nthe shortest path between pairs of vertices and utilized the `iproduct!` macro\\nfrom the [`itertools`]. It is a very useful higher-order function that allows\\nyou to keep the nesting of the loops at a minimum level while still maintaining\\nthe same functionality.\\n\\n#### \u201cImplementing\u201d an iterator\\n\\nFor the second part, you get to split the work between 2 actors. That way you\\ncan achieve higher efficiency of the whole process that you\'re planning, but it\\nalso makes it harder to evaluate algorithmically, since you need to check the\\ndifferent ways the work can be split.\\n\\nBeing affected by _functional programming brain damage_:tm:, I have chosen to\\ndo this part by function that returns an iterator over the possible ways:\\n```rust\\nfn pairings(\\n valves: &BTreeSet<String>,\\n) -> impl Iterator<Item = (BTreeSet<String>, BTreeSet<String>)> + \'_ {\\n let mapping = valves.iter().collect_vec();\\n\\n let max_mask = 1 << (valves.len() - 1);\\n\\n (0..max_mask).map(move |mask| {\\n let mut elephant = BTreeSet::new();\\n let mut human = BTreeSet::new();\\n\\n for (i, &v) in mapping.iter().enumerate() {\\n if (mask & (1 << i)) == 0 {\\n human.insert(v.clone());\\n } else {\\n elephant.insert(v.clone());\\n }\\n }\\n\\n (human, elephant)\\n })\\n}\\n```\\n\\n## [Day 17: Pyroclastic Flow](https://adventofcode.com/2022/day/17)\\n\\n:::info tl;dr\\n\\nSimulating an autonomous Tetris where pieces get affected by a series of jets of\\nhot gas.\\n\\n:::\\n\\n### Solution\\n\\nSimilarly to the previous day I have created some iterators :smile:\\n\\n#### Collision detection\\n\\nOnce you need to check for collisions it is very helpful to be able to just\\niterate through the positions that can actually collide with the wall or other\\npiece.\\n\\nTo get the desired behaviour, you can just compose few smaller functions:\\n```rust\\nfn occupied(shape: &[Vec<char>]) -> impl Iterator<Item = Position> + \'_ {\\n shape.iter().enumerate().flat_map(|(y, row)| {\\n row.iter().enumerate().filter_map(move |(x, c)| {\\n if c == &\'#\' {\\n Some(Vector2D::new(x as isize, y as isize))\\n } else {\\n None\\n }\\n })\\n })\\n}\\n```\\n\\nIn the end, we get relative positions which we can adjust later when given the\\nspecific positions from iterator. You can see some interesting parts in this:\\n\\n* `.enumerate()` allows us to get both the indices (coordinates) and the line\\n or, later on, the character itself,\\n* `.flat_map()` flattens the iterator, i.e. when we return another iterator,\\n they just get chained instead of iterating over iterators (which sounds pretty\\n disturbing, doesn\'t it?),\\n* and finally `.filter_map()` which is pretty similar to the \u201cbasic\u201d `.map()`\\n with a one, key, difference that it expects the items of an iterator to be\\n mapped to an `Option<T>` from which it ignores nothing (as in `None` :wink:)\\n and also unwraps the values from `Some(\u2026)`.\\n\\n#### Infinite iterator\\n\\nIn the solution we cycle through both Tetris-like shapes that fall down and the\\njets that move our pieces around. Initially I have implemented my own infinite\\niterator that just yields the indices. It is a very simple, yet powerful, piece\\nof code:\\n```rust\\nstruct InfiniteIndex {\\n size: usize,\\n i: usize,\\n}\\n\\nimpl InfiniteIndex {\\n fn new(size: usize) -> InfiniteIndex {\\n InfiniteIndex { size, i: size - 1 }\\n }\\n}\\n\\nimpl Iterator for InfiniteIndex {\\n type Item = usize;\\n\\n fn next(&mut self) -> Option<Self::Item> {\\n self.i = (self.i + 1) % self.size;\\n Some(self.i)\\n }\\n}\\n```\\n\\nHowever when I\'m looking at the code now, it doesn\'t really make much sense\u2026\\nGuess what, we can use a built-in function that is implemented on iterators for\\nthat! The function is called `.cycle()`\\n\\nOn the other hand, I am not going to switch to that function, since it would\\nintroduce an another myriad of issues caused by the fact that I create iterators\\nright away in the constructor of my structure and the iterators would borrow\\nboth the jets and shapes which would introduce a lifetime dependency into the\\nstructure.\\n\\n## [Day 18: Boiling Boulders](https://adventofcode.com/2022/day/18) \\n\\n:::info tl;dr\\n\\nLet\'s compute a surface area of some obsidian approximated via coordinates of\\ncubes.\\n\\n:::\\n\\n### Solution\\n\\nThis day is kinda interesting, because it shows how easily you can complicate the\\nproblem and also how much can you screw yourself over with the optimization and\\n\u201csmart\u201d approach.\\n\\nFor the first part you need to find the surface area of an obsidian that is\\napproximated by cubes. Now, that is a very easy thing to do, just keep the track\\nof already added cubes, and check if the newly added cube touches any face of any\\nother cube. Simple, and with a `BTreeSet` relatively efficient way to do it.\\n\\nHowever the second part lets you on a secret that there may be some surface area\\nfrom the \u201cinside\u201d too and you want to know only the one from the outside of the\\nobsidian. I have seen some solutions later, but if you check your data, you might\\nnotice that the bounding box of all the cubes isn\'t that big at all. Therefore I\\nchose to pre-construct the box beforehand, fill in the cubes and then just run a\\nBFS turning all the lava on the outside into the air. Now you just need to check\\ncubes and count how many of their faces touch the air.\\n\\n## [Day 19: Not Enough Minerals](https://adventofcode.com/2022/day/19)\\n\\n:::info tl;dr\\n\\nFinding out the best strategy for building robots to collect geodes.\\n\\n:::\\n\\n### Solution\\n\\nNot much interesting stuff to mention apart from the suggestion to never believe\\nthat the default implementation given by `derive` macro is what you want, it\\ndoesn\'t have to be. :smile:\\n\\n## [Day 20: Grove Positioning System](https://adventofcode.com/2022/day/20)\\n\\n:::info tl;dr\\n\\nShuffling around the _circular linked list_ to find the coordinates.\\n\\n:::\\n\\nNow, small rant for this day is in place. They\'ve never mentioned that coordinates\\ncan repeat and therefore the values are non-unique. This is something that did\\nnot happen in the given sample, but was present in the user input. It took \xbba lot\xab\\nto realize that this is the issue.\\n\\n### Solution\\n\\nI have tried implementing a circular linked list for this\u2026 and I have failed\\nmiserably. To be fair, I still have no clue why. It was \u201cfun\u201d to play around with\\nthe `Rc<RefCell<T>>`. In the end I failed on _wrong answer_. I have also encountered\\na rather interesting issue with `.borrow_mut()` method being used on `Rc<RefCell<T>>`.\\n\\n#### `.borrow_mut()`\\n\\nConsider the following snippet of the code (taken from the documentation):\\n```rust\\nuse std::cell::{RefCell, RefMut};\\nuse std::collections::HashMap;\\nuse std::rc::Rc;\\n// use std::borrow::BorrowMut;\\n\\nfn main() {\\n let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));\\n // Create a new block to limit the scope of the dynamic borrow\\n {\\n let mut map: RefMut<_> = shared_map.borrow_mut();\\n map.insert(\\"africa\\", 92388);\\n map.insert(\\"kyoto\\", 11837);\\n map.insert(\\"piccadilly\\", 11826);\\n map.insert(\\"marbles\\", 38);\\n }\\n\\n // Note that if we had not let the previous borrow of the cache fall out\\n // of scope then the subsequent borrow would cause a dynamic thread panic.\\n // This is the major hazard of using `RefCell`.\\n let total: i32 = shared_map.borrow().values().sum();\\n println!(\\"{total}\\");\\n}\\n```\\n\\nWe allocate a hash map on the heap and then in the inner block, we borrow it as\\na mutable reference, so that we can use it.\\n\\n:::note\\n\\nIt is a very primitive example for `Rc<RefCell<T>>` and mutable borrow.\\n\\n:::\\n\\nIf you uncomment the 4th line with `use std::borrow::BorrowMut;`, you cannot\\ncompile the code anymore, because of\\n```\\n Compiling playground v0.0.1 (/playground)\\nerror[E0308]: mismatched types\\n --\x3e src/main.rs:10:34\\n |\\n10 | let mut map: RefMut<_> = shared_map.borrow_mut();\\n | --------- ^^^^^^^^^^^^^^^^^^^^^^^ expected struct `RefMut`, found mutable reference\\n | |\\n | expected due to this\\n |\\n = note: expected struct `RefMut<\'_, _>`\\n found mutable reference `&mut Rc<RefCell<HashMap<_, _>>>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:11:13\\n |\\n11 | map.insert(\\"africa\\", 92388);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:12:13\\n |\\n12 | map.insert(\\"kyoto\\", 11837);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:13:13\\n |\\n13 | map.insert(\\"piccadilly\\", 11826);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nerror[E0599]: no method named `insert` found for struct `RefMut<\'_, _>` in the current scope\\n --\x3e src/main.rs:14:13\\n |\\n14 | map.insert(\\"marbles\\", 38);\\n | ^^^^^^ method not found in `RefMut<\'_, _>`\\n\\nSome errors have detailed explanations: E0308, E0599.\\nFor more information about an error, try `rustc --explain E0308`.\\nerror: could not compile `playground` due to 5 previous errors\\n```\\n\\nIt might seem **a bit** ridiculous. However, I got to a point where the compiler\\nsuggested `use std::borrow::BorrowMut;` and it resulted in breaking parts of the\\ncode that worked previously. I think it may be a good idea to go over what is\\nhappening here.\\n\\n##### `.borrow_mut()` on `Rc<RefCell<T>>`\\n\\nLet\'s consider a variable `x` of type `Rc<RefCell<T>>`. What happens when you\\ncall `.borrow_mut()` on it? We can look at the `Rc` type, and\u2026 hang on! There is\\nneither `.borrow_mut()` method or `BorrowMut` trait implemented. How can we do it\\nthen?\\n\\nLet\'s go further and we can see that `RefCell<T>` implements a `.borrow_mut()`\\nmethod. OK, but how can we call it on the `Rc<T>`? Easily! `Rc<T>` implements\\n`Deref<T>` and therefore you can call methods on `Rc<T>` objects as if they were\\n`T` objects. If we read on _`Deref` coercion_, we can see the following:\\n\\n> If `T` implements `Deref<Target = U>`, \u2026:\\n> * \u2026\\n> * `T` implicitly implements all the (immutable) methods of the type `U`.\\n\\nWhat is the requirement for the `.borrow_mut()` on `RefCell<T>`? Well, it needs\\n`&self`, so the `Deref` implements the `.borrow_mut()` for the `Rc<RefCell<T>>`.\\n\\n##### `BorrowMut` trait\\n\\nI have not been able to find a lot on this trait. My guess is that it provides a\\nmethod instead of a syntactic sugar (`&mut x`) for the mutable borrow. And also\\nit provides default implementations for the types:\\n```rust\\nimpl BorrowMut<str> for String\\n\\nimpl<T> BorrowMut<T> for &mut T\\nwhere\\n T: ?Sized,\\n\\nimpl<T> BorrowMut<T> for T\\nwhere\\n T: ?Sized,\\n\\nimpl<T, A> BorrowMut<[T]> for Vec<T, A>\\nwhere\\n A: Allocator,\\n\\nimpl<T, A> BorrowMut<T> for Box<T, A>\\nwhere\\n A: Allocator,\\n T: ?Sized,\\n\\nimpl<T, const N: usize> BorrowMut<[T]> for [T; N]\\n```\\n\\n##### Conflict\\n\\nNow the question is why did it break the code\u2026 My first take was that the type\\n`Rc<RefCell<T>>` has some _specialized_ implementation of the `.borrow_mut()` and\\nthe `use` overrides it with the default, which is true **in a sense**. However\\nthere is no _specialized_ implementation. Let\'s have a look at the trait and the\\ntype signature on the `RefCell<T>`:\\n```rust\\n// trait\\npub trait BorrowMut<Borrowed>: Borrow<Borrowed>\\nwhere\\n Borrowed: ?Sized,\\n{\\n fn borrow_mut(&mut self) -> &mut Borrowed;\\n}\\n\\n// \u2039RefCell<T>.borrow_mut()\u203a type signature\\npub fn borrow_mut(&self) -> RefMut<\'_, T>\\n```\\n\\nI think that we can definitely agree on the fact that `RefMut<\'_, T>` is not the\\n`RefCell<T>`.\\n\\n**In my opinion**, `RefCell<T>` implements a **separate** `.borrow_mut()` rather\\nthan implementing the interface, because it **cannot** satisfy the type requirements\\nof the trait.\\n\\n:::caution\\n\\nI wonder how are we expected to deal with this conflict, if and when, we need\\nboth the `.borrow_mut()` of the trait and `.borrow_mut()` of the `RefCell<T>`.\\n\\n:::\\n\\n:::tip Fun fact\\n\\nI was suggested by the compiler to do `use std::borrow::BorrowMut;` and break the\\ncode.\\n\\nSo much for the _almighty_ and _helpful_ compiler\u2026\\n\\n:::\\n\\n## [Day 21: Monkey Math](https://adventofcode.com/2022/day/21)\\n\\n:::info tl;dr\\n\\nComputing an expression tree and then also finding ideal value for a node.\\n\\n:::\\n\\n### Solution\\n\\nRelatively simple, until you get to the 2nd part where you start to practice\\na lot of the copy-paste. I have managed to sneak some perverted stuff in there\\nthough :) Let\'s go through the details.\\n\\n#### `Default` trait\\n\\nFor the first time and twice I had a need to have a default value for my types,\\nenumerations in this case. Rust offers a very nice trait[^1] that is described\\nas:\\n\\n> A trait for giving a type a useful default value.\\n\\nI guess it sums it up nicely. The more interesting part about this is the fact\\nthat you can use the _macro machinery_ to save yourself some typing. If you have\\nenumeration of which the default value doesn\'t bear any parameter, you can just\\ndo[^2]:\\n\\n```rust\\n#[derive(Default)]\\nenum Color {\\n #[default]\\n White,\\n Gray,\\n Black,\\n}\\n```\\n\\n#### Abusing negation\\n\\nIf you want to use a _unary minus_ operator on your own type, you can implement\\na `Neg` trait[^3]. I was dealing with a binary tree and needed a way how to look\\nat the other side, so I have just implemented the negation for flipping between\\nleft and right :smile:\\n\\n[^1]: [`Default`](https://doc.rust-lang.org/std/default/trait.Default.html) docs\\n[^2]: Pardon my example from the graph algorithms ;)\\n[^3]: [`Neg`](https://doc.rust-lang.org/std/ops/trait.Neg.html) docs\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[`itertools`]: https://crates.io/crates/itertools\\n[this Reddit post and the comment]: https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono"},{"id":"leetcode/sort-diagonally","metadata":{"permalink":"/blog/leetcode/sort-diagonally","editUrl":"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md","source":"@site/blog/leetcode/sort-matrix-diagonally.md","title":"Sort the matrix diagonally","description":"Compiler assisted development.","date":"2023-03-04T23:15:00.000Z","formattedDate":"March 4, 2023","tags":[{"label":"cpp","permalink":"/blog/tags/cpp"},{"label":"leetcode","permalink":"/blog/tags/leetcode"},{"label":"iterators","permalink":"/blog/tags/iterators"}],"readingTime":16.99,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"Sort the matrix diagonally","description":"Compiler assisted development.","date":"2023-03-04T23:15","slug":"leetcode/sort-diagonally","authors":"mf","tags":["cpp","leetcode","iterators"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week"},"nextItem":{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week"}},"content":"Let\'s try to solve one of the LeetCode challenges in easy and hard mode at the\\nsame time.\\n\\n\x3c!--truncate--\x3e\\n\\n* Link to the problem: https://leetcode.com/problems/sort-the-matrix-diagonally/\\n\\n## Problem description\\n\\nA **matrix diagonal** is a diagonal line of cells starting from some cell in\\neither the topmost row or leftmost column and going in the bottom-right direction\\nuntil reaching the matrix\'s end. For example, the **matrix diagonal** starting\\nfrom `mat[2][0]`, where `mat` is a `6 x 3` matrix, includes cells `mat[2][0]`,\\n`mat[3][1]`, and `mat[4][2]`.\\n\\nGiven an `m x n` matrix `mat` of integers, sort each matrix diagonal in ascending\\norder and return the resulting matrix.\\n\\n### Example\\n\\n![Image describing the problem](https://assets.leetcode.com/uploads/2020/01/21/1482_example_1_2.png)\\n\\n## Skeleton and initial adjustments\\n\\nWe are given the following skeleton for the C++ and the given challenge:\\n\\n```cpp\\nclass Solution {\\npublic:\\n vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {\\n \\n }\\n};\\n```\\n\\nThe task is to sort the passed matrix diagonally and then return it. First of all,\\nI don\'t like to solve this in a web browser, so we\'ll need to adjust it accordingly\\nfor running it locally. We\'ll start by including the `vector` header and using\\nfully-qualified namespaces[^1] and also adding few tests:\\n\\n```cpp\\n#include <cassert>\\n#include <vector>\\n\\nusing matrix = std::vector<std::vector<int>>;\\n\\nclass Solution {\\npublic:\\n matrix diagonalSort(matrix& mat)\\n {\\n }\\n};\\n\\nstatic void test_case_1()\\n{\\n // Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]\\n // Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]]\\n\\n Solution s;\\n assert((s.diagonalSort(std::vector { std::vector { 3, 3, 1, 1 },\\n std::vector { 2, 2, 1, 2 },\\n std::vector { 1, 1, 1, 2 } })\\n == std::vector { std::vector { 1, 1, 1, 1 },\\n std::vector { 1, 2, 2, 2 },\\n std::vector { 1, 2, 3, 3 } }));\\n}\\n\\nstatic void test_case_2()\\n{\\n // Input: mat =\\n // [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]\\n // Output:\\n // [[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]\\n\\n Solution s;\\n assert((s.diagonalSort(std::vector { std::vector { 11, 25, 66, 1, 69, 7 },\\n std::vector { 23, 55, 17, 45, 15, 52 },\\n std::vector { 75, 31, 36, 44, 58, 8 },\\n std::vector { 22, 27, 33, 25, 68, 4 },\\n std::vector { 84, 28, 14, 11, 5, 50 } })\\n == std::vector { std::vector { 5, 17, 4, 1, 52, 7 },\\n std::vector { 11, 11, 25, 45, 8, 69 },\\n std::vector { 14, 23, 25, 44, 58, 15 },\\n std::vector { 22, 27, 31, 36, 50, 66 },\\n std::vector { 84, 28, 75, 33, 55, 68 } }));\\n}\\n\\nint main()\\n{\\n test_case_1();\\n test_case_2();\\n\\n return 0;\\n}\\n```\\n\\nWe need to return the matrix, but we\'re given a reference to the input matrix. We\\ncan easily abuse the C++ here and just switch the reference to value, this way\\nthe matrix will be copied when passed to the function, we can sort the copy and\\njust return it back. And we also get yelled by the compiler for the fact that the\\nmethod doesn\'t return anything yet, so to make it \u201cshut up\u201d we will just return\\nthe input for now:\\n\\n```diff\\n- matrix diagonalSort(matrix& mat)\\n+ matrix diagonalSort(matrix mat)\\n {\\n+ return mat;\\n }\\n```\\n\\nNow, we get the copy and we\'re good to go.\\n\\n## Na\xefve solution\\n\\nAs you may know, C++ offers a plethora of functions that can be used to your\\nadvantage, given that you know how to \u201cbend\u201d the data structures accordingly.\\n\\nWhat does that mean for us? Well, we have an `std::sort`, we can use it, right?\\nLet\'s have a look at it:\\n```cpp\\ntemplate< class RandomIt >\\nvoid sort( RandomIt first, RandomIt last );\\n```\\n\\nThis overload is more than we need. What does it do? It just sorts the elements\\nin the range `[first, last)` using `operator<` on them. We can\'t sort the whole\\nmatrix using this, but\u2026 we can sort just \xbbone\xab diagonal without doing much work\\non our end.\\n\\nWhat is the `RandomIt` type though? If we look more into the documentation, we\\ncan easily find the requirements for it and also learn that it\'s a _random access_\\n_iterator_ and allows swapping its values at the same time.\\n\\n:::tip Random access iterator\\n\\nWhat is the _random access iterator_ though? We can find it in a documentation\\nand see the following description:\\n\\n> A **LegacyRandomAccessIterator** is a [LegacyBidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator)\\n> that can be moved to point to any element in constant time.\\n\\nAfter that we can see all the requirements for it being listed. I don\'t feel like\\nreading them right now, so we will just use it and see where the compilation blows\\nup, i.e. \u201c_compiler-assisted development_\u201d[^2] if you will ;)\\n\\n:::\\n\\nNow we know that we can use `std::sort` to sort the diagonal itself, but we also\\nneed to get the diagonals somehow. I\'m rather lazy, so I\'ll just delegate it to\\nsomeone else[^3]. And that way we get\\n```cpp\\nmatrix diagonalSort(matrix mat)\\n{\\n // we iterate over the diagonals\\n for (auto d : diagonals(mat)) {\\n // and we sort each diagonal\\n std::sort(d.begin(), d.end());\\n }\\n\\n // we take the matrix by copy, so we can sort in-situ and return the copy\\n // that we sorted\\n return mat;\\n}\\n```\\n\\nThis solution looks very simple, doesn\'t it? Well, cause it is.\\nLet\'s try compiling it:\\n```\\nmatrix-sort.cpp:11:23: error: use of undeclared identifier \'diagonals\' [clang-diagnostic-error]\\n for (auto d : diagonals(mat)) {\\n ^\\nFound compiler error(s).\\nmake: *** [makefile:14: tidy] Error 1\\n```\\n\\nOK, seems about right. We haven\'t implemented the `diagonals` yet. And based on\\nwhat we\'ve written so far, we need a function or a class `diagonals` that will\\ngive us the diagonals we need.\\n\\n## Implementing the `diagonals`\\n\\nCool, so we need the function that will let us go through each and every diagonal\\nin our matrix. We use the _for-range_ loop, so whatever we get back from the\\n`diagonals` must support `.begin()` and `.end()`. Since I am a masochist, we will\\ndo such functionality for a matrix of any type, not just the `int` from the challenge.\\n\\nAs I said, we need to be able to\\n* construct the object\\n* get the beginning\\n* get the end (the \u201csentinel\u201d)\\n\\n```cpp\\ntemplate <typename T>\\nclass diagonals {\\n using matrix_t = std::vector<std::vector<T>>;\\n\\n matrix_t& _matrix;\\n\\npublic:\\n diagonals(matrix_t& m)\\n : _matrix(m)\\n {\\n }\\n diagonals_iter begin()\\n {\\n /* TODO */\\n }\\n diagonals_iter end()\\n {\\n /* TODO */\\n }\\n};\\n```\\n\\nNow we have a `diagonals` that we can use to go through the diagonals. We haven\'t\\nimplemented the core of it yet. Let\'s go through what we have for now.\\n\\nWe have a templated class with templated `T` that is used as a placeholder for any\\ntype we would store in the matrix. Because I\'m lazy, I have defined the `matrix_t`\\ntype that is a \u201cshortcut\u201d for `std::vector<std::vector<T>>`, so I don\'t have to\\ntype it out all the time. Of course, we need to store the matrix, we are given,\\nas a private attribute. And then just have the constructor and the 2 methods we\\nneed for the _for-range_.\\n\\n### Iterating over diagonals\\n\\nNow that we have an object that will allow us to iterate through the diagonals,\\nwe need to implement the iterating itself. We need to go through all of them, so\\nwe have multiple options how to do so. I have decided to start from the \u201cmain\u201d\\ndiagonal that starts at `(0, 0)` index and then proceed with the diagonals starting\\nin the first row, followed by the rest of the diagonals in the first column.\\n\\nWe need to be able to tell that we\'ve iterated through all of them, and also we\\nneed to know which diagonal is next. For that purpose we will pass the indices\\nof the first cell on the diagonal. That way we can always tell how to move forward.\\n\\nWe will start by updating the `begin` and `end` to reflect our choice accordingly.\\n\\n```cpp\\ndiagonals_iter begin() { return diagonals_iter { _matrix, 0, 0 }; }\\ndiagonals_iter end() { return diagonals_iter { _matrix, 0, _matrix.size() }; }\\n```\\n\\nFor the `begin` we return the first diagonal that starts at `(0, 0)`. And because\\nwe have decided to do the diagonals in the first column at the end, the first\\ndiagonal that is not a valid one is the one at `(0, height)`. Apart from the\\nindices, we also need to pass reference to the matrix itself.\\n\\n:::note\\n\\nYou may have noticed that we also include the diagonals that have length 1,\\nspecifically the ones at `(0, height - 1)` and `(width - 1, 0)`. We are implementing\\nan iterator that **should not** care about the way it\'s being used. Therefore, we\\ndon\'t care about the fact they don\'t need to be sorted.\\n\\n:::\\n\\nCool, let\'s leave the iterator itself to someone else, right?[^4]\\n\\n### Implementing the iterator over diagonals\\n\\nWe can start with a simple skeleton based on the information that we pass from\\nthe `diagonals`. Also to utilize the `matrix_t` and also contain implementation\\ndetails hidden away, we will put this code into the `diagonals` class.\\n\\n```cpp\\nclass diagonals_iter {\\n matrix_t& m;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n};\\n```\\n\\nIn this case we will be implementing a \u201csimple\u201d forward iterator, so we don\'t\\nneed to implement a lot. Notably it will be:\\n* inequality operator (we need to know when we reach the end and have nothing to\\n iterate over)\\n* preincrementation operator (we need to be able to move around the iterable)\\n* dereference operator (we need to be able to retrieve the objects we iterate\\n over)\\n\\n```cpp\\nclass diagonals_iter {\\n matrix_t& m;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator!=(const diagonals_iter& rhs) const\\n {\\n // iterators are not equal if they reference different matrices, or\\n // their positions differ\\n return m != rhs.m || x != rhs.x || y != rhs.y;\\n }\\n\\n diagonals_iter& operator++()\\n {\\n if (y != 0) {\\n // iterating through diagonals down the first column\\n y++;\\n return *this;\\n }\\n\\n // iterating the diagonals along the first row\\n x++;\\n if (x == m.front().size()) {\\n // switching to diagonals in the first column\\n x = 0;\\n y++;\\n }\\n\\n return *this;\\n }\\n\\n diagonal<T> operator*() const { return diagonal { m, x, y }; }\\n};\\n```\\n\\nLet\'s go one-by-one. Inequality operator is rather simple, just compare iterator\'s\\nattributes field-by-field. If you think about it, checking inequality of two 2D\\nvectors may be a bit inefficient, therefore, we can swap around and check it as\\na last thing.\\n\\n```diff\\n- return m != rhs.m || x != rhs.x || y != rhs.y;\\n+ return x != rhs.x || y != rhs.y || m != rhs.m;\\n```\\n\\nPreincrementation is where the magic happens. If you have a better look, you can\\nsee two branches of this operation:\\n\\n1. When `y != 0` (we\'re iterating over the diagonals in the first column)\\n In this case, we just bump the row and we\'re done.\\n2. When `y == 0` (we\'re iterating over the diagonals in the first row)\\n In this case, we bump the column and check if we haven\'t gotten out of bounds,\\n i.e. the end of the first row. If we get out of the bounds, we\'re continuing\\n with the second diagonal in the first column.\\n\\nDereferencing the iterator must \u201cyield\u201d something. In our case it will be the\\ndiagonal that we want to sort. For sorting we need just the iterators that can\\nmove around said diagonal. The simplest thing, we can do, is to delegate it to\\nsomething else. In our case it will be a class called `diagonal`.\\n\\n## Implementing the `diagonal` itself\\n\\nAfter implementing the iterator over diagonals, we know that all we need to describe\\na diagonal is the matrix itself and the \u201cstart\u201d of the diagonal (row and column).\\nAnd we also know that the diagonal must provide some iterators for the `std::sort`\\nfunction. We can start with the following skeleton:\\n```cpp\\ntemplate <typename T>\\nclass diagonal {\\n using matrix_t = std::vector<std::vector<T>>;\\n\\n matrix_t& matrix;\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n diagonal(matrix_t& matrix, std::size_t x, std::size_t y)\\n : matrix(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n diagonal_iter begin() const { return diagonal_iter { matrix, x, y }; }\\n\\n diagonal_iter end() const\\n {\\n auto max_x = matrix[y].size();\\n auto max_y = matrix.size();\\n\\n // we need to find the distance in which we get out of bounds (either in\\n // column or row)\\n auto steps = std::min(max_x - x, max_y - y);\\n\\n return diagonal_iter { matrix, x + steps, y + steps };\\n }\\n};\\n```\\n\\nInitialization is rather simple, we just \u201ckeep\u201d the stuff we get, `begin` is the\\nsimplest, we just delegate.\\n\\nIn case of the `end`, it gets more complicated. We need to know where is the \u201cend\u201d\\nof the diagonal. Since `end` should point to the first element \u201cafter\u201d the iterable,\\nwe know that it\'s the first position of the iterator where either `y` becomes\\n`matrix.size()` or `x` becomes `matrix[y].size()`. Also we are moving along diagonal,\\nduh, therefore we can deduce the first \u201cposition\u201d afterwards by minimal amount of\\nsteps to get out of the any column or row, hence `std::min(max_x - x, max_y - y)`.\\nFinal position is then computed simply by adding the steps to the beginning of\\nthe diagonal.\\n\\nNow we just need to finish the iterator for the diagonal itself and we\'re done.\\n\\n### Implementing `diagonal_iter`\\n\\nThis part is the hardest from all we need to do. It\'s because of the requirements\\nof the `std::sort` that requires us to implement a _random access iterator_. I have\\nbriefly described it above, and \u201cin a nutshell\u201d it means that we need to implement\\nan iterator that can move in constant time along the diagonal in any amount of\\nsteps.\\n\\nLet\'s go through all of the functionality that our iterator needs to support to\\nbe used in `std::sort`. We need the usual operations like:\\n\\n* equality/inequality\\n* incrementation\\n* dereferencing\\n\\nWe will also add all the types that our iterator uses with the category of the\\niterator, i.e. what interface it supports:\\n```cpp\\nclass diagonal_iter {\\n // we need to keep reference to the matrix itself\\n matrix_t& m;\\n\\n // we need to be able to tell our current position\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n using difference_type = std::ptrdiff_t;\\n using value_type = T;\\n using pointer = T*;\\n using reference = T&;\\n using iterator_category = std::random_access_iterator_tag;\\n\\n diagonal_iter(matrix_t& matrix,\\n std::size_t x,\\n std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator==(const diagonal_iter& rhs) const\\n {\\n return x == rhs.x && y == rhs.y && m == rhs.m;\\n }\\n\\n diagonal_iter& operator++()\\n {\\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\\n // the same time\\n x++;\\n y++;\\n return *this;\\n }\\n\\n reference operator*() const { return m[y][x]; }\\n};\\n```\\n\\nThis is pretty similar to the previous iterator, but now we need to implement the\\nremaining requirements of the _random access iterator_. Let\'s see what those are:\\n\\n* decrementation - cause we need to be able to move backwards too, since _random _\\n _access iterator_ extends the interface of _bidirectional iterator_\\n* moving the iterator in either direction by steps given as an integer\\n* being able to tell the distance between two iterators\\n* define an ordering on the iterators\\n\\nLet\'s fill them in:\\n```cpp\\nclass diagonal_iter {\\n // we need to keep reference to the matrix itself\\n matrix_t& m;\\n\\n // we need to be able to tell our current position\\n std::size_t x;\\n std::size_t y;\\n\\npublic:\\n using difference_type = std::ptrdiff_t;\\n using value_type = T;\\n using pointer = T*;\\n using reference = T&;\\n using iterator_category = std::random_access_iterator_tag;\\n\\n diagonal_iter(matrix_t& matrix,\\n std::size_t x,\\n std::size_t y)\\n : m(matrix)\\n , x(x)\\n , y(y)\\n {\\n }\\n\\n bool operator==(const diagonal_iter& rhs) const\\n {\\n return x == rhs.x && y == rhs.y && m == rhs.m;\\n }\\n\\n diagonal_iter& operator++()\\n {\\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\\n // the same time\\n x++;\\n y++;\\n return *this;\\n }\\n\\n reference operator*() const { return m[y][x]; }\\n\\n // exactly opposite to the incrementation\\n diagonal_iter operator--()\\n {\\n x--;\\n y--;\\n return *this;\\n }\\n\\n // moving \u2039n\u203a steps back is same as calling decrementation \u2039n\u203a-times, so we\\n // can just return a new iterator and subtract \u2039n\u203a from both coordinates in\\n // the matrix\\n diagonal_iter operator-(difference_type n) const\\n {\\n return diagonal_iter { m, x - n, y - n };\\n }\\n\\n // here we assume that we are given two iterators on the same diagonal\\n difference_type operator-(const diagonal_iter& rhs) const\\n {\\n assert(m == rhs.m);\\n return x - rhs.x;\\n }\\n\\n // counterpart of moving \u2039n\u203a steps backwards\\n diagonal_iter operator+(difference_type n) const\\n {\\n return diagonal_iter { m, x + n, y + n };\\n }\\n\\n // we compare the coordinates, and also assume that those 2 iterators are\\n // lying on the same diagonal\\n bool operator<(const diagonal_iter& rhs) const\\n {\\n assert(m == rhs.m);\\n return x < rhs.x && y < rhs.y;\\n }\\n};\\n```\\n\\nAt this point we could probably try and compile it, right? If we do so, we will\\nget yelled at by a compiler for the following reasons:\\n```\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n __last = __next;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1817:11: note: in instantiation of function template specialization \'std::__unguarded_linear_insert<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Val_less_iter>\' requested here\\n std::__unguarded_linear_insert(__i,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1849:9: note: in instantiation of function template specialization \'std::__insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__insertion_sort(__first, __first + int(_S_threshold), __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization \'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__final_insertion_sort(__first, __last, __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1830:2: error: no matching function for call to \'__unguarded_linear_insert\' [clang-diagnostic-error]\\n std::__unguarded_linear_insert(__i,\\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1850:9: note: in instantiation of function template specialization \'std::__unguarded_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization \'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__final_insertion_sort(__first, __last, __comp);\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1782:5: note: candidate template ignored: substitution failure [with _RandomAccessIterator = diagonal<int>::diagonal_iter, _Compare = __gnu_cxx::__ops::_Val_less_iter]\\n __unguarded_linear_insert(_RandomAccessIterator __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1923:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n __last = __cut;\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1937:9: note: in instantiation of function template specialization \'std::__introsort_loop<diagonal<int>::diagonal_iter, long, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__introsort_loop(__first, __last,\\n ^\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization \'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>\' requested here\\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\\n ^\\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization \'std::sort<diagonal<int>::diagonal_iter>\' requested here\\n std::sort(d.begin(), d.end());\\n ^\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n```\\n\\nThat\'s a lot of noise, isn\'t it? Let\'s focus on the important parts:\\n```\\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type \'diagonal<int>::diagonal_iter\' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\\n\u2026\\nmatrix-sort.cpp:17:19: note: copy assignment operator of \'diagonal_iter\' is implicitly deleted because field \'m\' is of reference type \'diagonal<int>::matrix_t &\' (aka \'vector<std::vector<int>> &\')\\n matrix_t& m;\\n ^\\n```\\n\\nAh! We have a reference in our iterator, and this prevents us from having a copy\\nassignment operator (that is used \u201csomewhere\u201d in the sorting algorithm). Well\u2026\\nLet\'s just wrap it!\\n```diff\\n# we need to keep a different type than reference\\n- matrix_t& m;\\n+ std::reference_wrapper<matrix_t> m;\\n\\n# in comparison we need to get the reference out of the wrapper first\\n- return x == rhs.x && y == rhs.y && m == rhs.m;\\n+ return x == rhs.x && y == rhs.y && m.get() == rhs.m.get();\\n\\n# same when we return a reference to the \u201ccell\u201d in the matrix\\n- reference operator*() const { return m[y][x]; }\\n+ reference operator*() const { return m.get()[y][x]; }\\n\\n# and finally in the assertions that we set for the \u201cdistance\u201d and \u201cless than\u201d\\n- assert(m == rhs.m);\\n+ assert(m.get() == rhs.m.get());\\n```\\n\\nWe\'re done now! We have written an iterator over diagonals for a 2D `vector`. You can have a look at the final result [here](pathname:///files/blog/leetcode/sort-matrix-diagonally/matrix-sort.cpp).\\n\\n[^1]: just because I\'m used to it and don\'t care about your opinion ;)\\n[^2]: exercise at your own risk\\n[^3]: me in 5 minutes in fact, but don\'t make me scared\\n[^4]: me in the next section\u2026"},{"id":"aoc-2022/2nd-week","metadata":{"permalink":"/blog/aoc-2022/2nd-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md","source":"@site/blog/aoc-2022/02-week-2.md","title":"2nd week of Advent of Code \'22 in Rust","description":"Surviving second week in Rust.","date":"2022-12-25T23:15:00.000Z","formattedDate":"December 25, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":20.875,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"2nd week of Advent of Code \'22 in Rust","description":"Surviving second week in Rust.","date":"2022-12-25T23:15","slug":"aoc-2022/2nd-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally"},"nextItem":{"title":"1st week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/1st-week"}},"content":"Let\'s go through the second week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n## [Day 8: Treetop Tree House](https://adventofcode.com/2022/day/8)\\n\\n:::info tl;dr\\n\\nWe get a forest and we want to know how many trees are visible from the outside.\\nApart from that we want to find the best view.\\n\\n:::\\n\\nNothing interesting. We are moving around 2D map though. And indexing can get a\\nbit painful when doing so, let\'s refactor it a bit ;) During the preparation for\\nthe AoC, I have written `Vector2D` and now it\'s time to extend it with indexing\\nof `Vec` of `Vec`s. In my solution I was manipulating with indices in the following\\nway:\\n\\n- swapping them\\n- checking whether they are correct indices for the `Vec<Vec<T>>`\\n- indexing `Vec<Vec<T>>` with them\\n\\n:::caution\\n\\nI\'m getting familiar with Rust and starting to \u201cabuse\u201d it\u2026 While doing so, I\'m\\nalso uncovering some \u201cfeatures\u201d that I don\'t really like. Therefore I will mark\\nall of my rants with _thicc_ **\xab\u21af\xbb** mark and will try to \u201clock\u201d them into their\\nown \u201cbox of hell\u201d.\\n\\n:::\\n\\n#### Swapping indices\\n\\nRelatively simple implementation, just take the values, swap them and return new\\nvector.\\n\\n```rust\\nimpl<T: Copy> Vector2D<T> {\\n pub fn swap(&self) -> Self {\\n Self {\\n x: self.y,\\n y: self.x,\\n }\\n }\\n}\\n```\\n\\nPretty straight-forward implementation, but let\'s talk about the `T: Copy`. We\\nneed to use it, since we are returning a **new** vector, with swapped **values**.\\nIf we had values that cannot be copied, the only thing we could do, would be a\\nvector of references (and it would also introduce a lifetime, to which we\'ll get\\nlater on). This is pretty similar with the operations on sets from the first week.\\n\\n#### Indexing `Vec`\\n\\nI will start with the indexing, cause bound-checking is a bit more\u2026 complicated\\nthan I would like to.\\n\\n```rust\\npub fn index<\'a, T, U>(v: &\'a [Vec<U>], idx: &Vector2D<T>) -> &\'a U\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &v[y][x]\\n}\\n```\\n\\nLet\'s talk about this mess\u2026 Body of the function is probably the most easy part\\nand should not be hard to understand, we just take the `x` and `y` and convert\\nthem both to `usize` type that can be used later on for indexing.\\n\\nThe type signature of the function is where the fun is at :wink: We are trying\\nto convert unknown type to `usize`, so we must bound the `T` as a type that can\\nbe converted to `usize`, that\'s how we got `usize: TryFrom<T>` which basically\\nsays that `usize` must implement `TryFrom<T>` trait and therefore allows us to\\nconvert the indices to actual `usize` indices. Using `.unwrap()` also forces us\\nto bound the error that can occur when converting `T` into `usize`, that\'s how\\nwe get `<usize as TryFrom<T>>::Error: Debug` which loosely means\\n\\n> error during conversion of `T` into `usize` must implement `Debug`,\\n> i.e. can be printed in some way or other\\n\\n`T: Copy` is required by `.try_into()` which takes `T` by-value.\\n\\nAnd now we are left only with the first line of the definition.\\n\\n:::note\\n\\nSkilled Rustaceans might notice that this implementation is rather flaky and can\\nbreak in multiple places at once. I\'ll get back to it\u2026\\n\\n:::\\n\\nLet\'s split it in multiple parts:\\n- `v: &\'a [Vec<U>]` represents the 2D `Vec`, we are indexing, `Vec` implements\\n `Slice` trait and _clippy_ recommends using `&[T]` to `&Vec<T>`, exact details\\n are unknown to me\\n- `idx: &Vector2D<T>` represents the _indices_ which we use, we take them by\\n reference to avoid an unnecessary copy\\n- `-> &\'a U` means that we are returning a _reference_ to some value of type `U`.\\n Now the question is what does the `\'a` mean, we can also see it as a generic\\n type declared along `T` and `U`. And the answer is _relatively_ simple, `\'a`\\n represents a _lifetime_. We take the `v` by a reference and return a reference,\\n borrow checker validates all of the _borrows_ (or references), so we need to\\n specify that our returned value has _the same lifetime_ as the vector we have\\n taken by a reference, i.e. returned reference must live at least as long as the\\n `v`. This way we can \u201cbe sure\u201d that the returned reference is valid.\\n\\n##### Issues\\n\\nFirst issue that our implementation has is the fact that we cannot get a mutable\\nreference out of that function. This could be easily resolved by introducing new\\nfunction, e.g. `index_mut`. Which I have actually done while writing this part:\\n```rust\\npub fn index_mut<\'a, T, U>(v: &\'a mut [Vec<U>], idx: &Vector2D<T>) -> &\'a mut U\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &mut v[y][x]\\n}\\n```\\n\\n:::caution **\xab\u21af\xbb** Why can\'t we use one function?\\n\\nWhen we consider a `Vec<T>`, we don\'t need to consider containers as `T`, Rust\\nimplements indexing as traits `Index<T>` and `IndexMut<T>` that do the dirty work\\nbehind syntactic sugar of `container[idx]`.\\n\\nHowever, implementing of traits is not allowed for _external_ types, i.e. types\\nthat you haven\'t defined yourself. This means that you can implement indexing\\nover containers that you have implemented yourself, but you cannot use your own\\ntypes for indexing \u201cbuilt-in\u201d types.\\n\\nAnother part of this rabbit hole is trait `SliceIndex<T>` that is of a relevance\\nbecause of\\n```rust\\nimpl<T, I> Index<I> for [T]\\nwhere\\n I: SliceIndex<[T]>\\n\\nimpl<T, I, A> Index<I> for Vec<T, A>\\nwhere\\n I: SliceIndex<[T]>,\\n A: Allocator\\n\\nimpl<T, I, const N: usize> Index<I> for [T; N]\\nwhere\\n [T]: Index<I>\\n```\\n\\nIn other words, if your type implements `SliceIndex<T>` trait, it can be used\\nfor indexing. As of now, this trait has all of its required methods experimental\\nand is marked as `unsafe`.\\n\\n:::\\n\\nAnother problem is a requirement for indexing either `[Vec<T>]` or `Vec<Vec<T>>`.\\nThis requirement could be countered by removing inner type `Vec<T>` and constraining\\nit by a trait `Index` (or `IndexMut` respectively) in a following way\\n```rust\\npub fn index<\'a, C, T>(v: &\'a [C], idx: &Vector2D<T>) -> &\'a C::Output\\nwhere\\n usize: TryFrom<T>,\\n <usize as TryFrom<T>>::Error: Debug,\\n T: Copy,\\n C: Index<usize>\\n{\\n let (x, y): (usize, usize) = (idx.x.try_into().unwrap(), idx.y.try_into().unwrap());\\n &v[y][x]\\n}\\n```\\n\\nGiven this, we can also give a more meaningful typename for indexing type, such\\nas `I`.\\n\\n#### Checking bounds\\n\\nNow we can get to the boundary checks, it is very similar, but a more\u2026 dirty.\\nFirst approach that came up was to convert the indices in `Vector2D` to `usize`,\\nbut when you add the indices up, e.g. when checking the neighbors, you can end\\nup with negative values which, unlike in C++, causes an error (instead of underflow\\nthat you can use to your advantage; you can easily guess how).\\n\\nSo how can we approach this then? Well\u2026 we will convert the bounds instead of\\nthe indices and that lead us to:\\n```rust\\npub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\\nwhere\\n usize: TryInto<T>,\\n <usize as TryInto<T>>::Error: Debug,\\n T: PartialOrd + Copy,\\n{\\n idx.y >= 0.try_into().unwrap()\\n && idx.y < v.len().try_into().unwrap()\\n && idx.x >= 0.try_into().unwrap()\\n && idx.x\\n < v[TryInto::<usize>::try_into(idx.y).unwrap()]\\n .len()\\n .try_into()\\n .unwrap()\\n}\\n```\\n\\nYou can tell that it\'s definitely a shitty code. Let\'s improve it now! We will\\nget back to the original idea, but do it better. We know that we cannot convert\\nnegative values into `usize`, **but** we also know that conversion like that\\nreturns a `Result<T, E>` which we can use to our advantage.\\n```rust\\npub fn in_range<T, U>(v: &[Vec<U>], idx: &Vector2D<T>) -> bool\\nwhere\\n T: Copy,\\n usize: TryFrom<T>,\\n{\\n usize::try_from(idx.y)\\n .and_then(|y| usize::try_from(idx.x).map(|x| y < v.len() && x < v[y].len()))\\n .unwrap_or(false)\\n}\\n```\\n\\n`Result<T, E>` is a type similar to `Either` in Haskell and it allows us to chain\\nmultiple operations on correct results or propagate the original error without\\ndoing anything. Let\'s dissect it one-by-one.\\n\\n`try_from` is a method implemented in `TryFrom` trait, that allows you to convert\\ntypes and either successfully convert them or fail (with a reasonable error). This\\nmethod returns `Result<T, E>`.\\n\\nWe call `and_then` on that _result_, let\'s have a look at the type signature of\\n`and_then`, IMO it explains more than enough:\\n```rust\\npub fn and_then<U, F>(self, op: F) -> Result<U, E>\\nwhere\\n F: FnOnce(T) -> Result<U, E>\\n```\\n\\nOK\u2026 So it takes the result and a function and returns another result with\\ndifferent value and different error. However we can see that the function, which\\nrepresents an operation on a result, takes just the value, i.e. it doesn\'t care\\nabout any previous error. To make it short:\\n\\n> `and_then` allows us to run an operation, which can fail, on the correct result\\n\\nWe parsed a `y` index and now we try to convert the `x` index with `try_from`\\nagain, but on that result we use `map` rather than `and_then`, why would that be?\\n\\n```rust\\npub fn map<U, F>(self, op: F) -> Result<U, E>\\nwhere\\n F: FnOnce(T) -> U\\n```\\n\\nHuh\u2026 `map` performs an operation that **cannot** fail. And finally we use\\n`unwrap_or` which takes the value from result, or in case of an error returns the\\ndefault that we define.\\n\\nHow does this work then? If `y` is negative, the conversion fails and the error\\npropagates all the way to `unwrap_or`, if `y` can be a correct `usize` value, then\\nwe do the same with `x`. If `x` is negative, we propagate the error as with `y`,\\nand if it\'s not, then we check whether it exceeds the higher bounds or not.\\n\\n### Solution\\n\\nRelatively simple, you just need follow the rules and not get too smart, otherwise\\nit will get back at you.\\n\\n## [Day 9: Rope Bridge](https://adventofcode.com/2022/day/9)\\n\\n:::info tl;dr\\n\\nWe get a rope with knots and we want to track how many different positions are\\nvisited with the rope\'s tail.\\n\\n:::\\n\\nBy this day, I have come to a conclusion that current skeleton for each day\\ngenerates a lot of boilerplate. And even though it can be easily copied, it\'s\\njust a waste of space and unnecessary code. Let\'s \u201csimplify\u201d this (on one end\\nwhile creating monster on the other end). I\'ve gone through what we need in the\\npreparations for the AoC. Let\'s sum up our requirements:\\n- parsing\\n- part 1 & 2\\n- running on sample / input\\n- tests\\n\\nParsing and implementation of both parts is code that changes each day and we\\ncannot do anything about it. However running and testing can be simplified!\\n\\nLet\'s introduce and export a new module `solution` that will take care of all of\\nthis. We will start by introducing a trait for each day.\\n```rust\\npub trait Solution<Input, Output: Display> {\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input;\\n\\n fn part_1(input: &Input) -> Output;\\n fn part_2(input: &Input) -> Output;\\n}\\n```\\n\\nThis does a lot of work for us already, we have defined a trait and for each day\\nwe will create a structure representing a specific day. That structure will also\\nimplement the `Solution` trait.\\n\\nNow we need to get rid of the boilerplate, we can\'t get rid of the `main` function,\\nbut we can at least move out the functionality.\\n```rust\\nfn run(type_of_input: &str) -> Result<()>\\nwhere\\n Self: Sized,\\n{\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = Self::parse_input(format!(\\"{}s/{}.txt\\", type_of_input, Self::day()));\\n\\n info!(\\"Part 1: {}\\", Self::part_1(&input));\\n info!(\\"Part 2: {}\\", Self::part_2(&input));\\n\\n Ok(())\\n}\\n\\nfn main() -> Result<()>\\nwhere\\n Self: Sized,\\n{\\n Self::run(\\"input\\")\\n}\\n```\\n\\nThis is all part of the `Solution` trait, which can implement methods while being\\ndependent on what is provided by the implementing types. In this case, we just\\nneed to bound the `Output` type to implement `Display` that is necessary for the\\n`info!` and format string there.\\n\\nNow we can get to first of the nasty things we are going to do\u2026 And it is the\\n`day()` method that you can see being used when constructing path to the input\\nfile. That method will generate a name of the file, e.g. `day01` and we know that\\nwe can _somehow_ deduce it from the structure name, given we name it reasonably.\\n\\n```rust\\nfn day() -> String {\\n let mut day = String::from(type_name::<Self>().split(\\"::\\").next().unwrap());\\n day.make_ascii_lowercase();\\n\\n day.to_string()\\n}\\n```\\n\\n:::caution `type_name`\\n\\nThis feature is still experimental and considered to be internal, it is not\\nadvised to use it any production code.\\n\\n:::\\n\\nAnd now we can get to the nastiest stuff :weary: We will **generate** the tests!\\n\\nWe want to be able to generate tests for sample input in a following way:\\n```rust\\ntest_sample!(day_01, Day01, 42, 69);\\n```\\n\\nThere\'s not much we can do, so we will write a macro to generate the tests for us.\\n\\n```rust\\n#[macro_export]\\nmacro_rules! test_sample {\\n ($mod_name:ident, $day_struct:tt, $part_1:expr, $part_2:expr) => {\\n #[cfg(test)]\\n mod $mod_name {\\n use super::*;\\n\\n #[test]\\n fn test_part_1() {\\n let sample =\\n $day_struct::parse_input(&format!(\\"samples/{}.txt\\", $day_struct::day()));\\n assert_eq!($day_struct::part_1(&sample), $part_1);\\n }\\n\\n #[test]\\n fn test_part_2() {\\n let sample =\\n $day_struct::parse_input(&format!(\\"samples/{}.txt\\", $day_struct::day()));\\n assert_eq!($day_struct::part_2(&sample), $part_2);\\n }\\n }\\n };\\n}\\n```\\n\\nWe have used it in a similar way as macros in C/C++, one of the things that we\\ncan use to our advantage is defining \u201ctype\u201d of the parameters for the macro. All\\nparameters have their name prefixed with `$` sign and you can define various \u201cforms\u201d\\nof your macro. Let\'s go through it!\\n\\nWe have following parameters:\\n- `$mod_name` which represents the name for the module with tests, it is typed\\n with `ident` which means that we want a valid identifier to be passed in.\\n- `$day_struct` represents the structure that will be used for tests, it is typed\\n with `tt` which represents a _token tree_, in our case it is a type.\\n- `$part_X` represents the expected output for the `X`th part and is of type `expr`\\n which literally means an _expression_.\\n\\nApart from that we need to use `#[macro_export]` to mark the macro as exported\\nfor usage outside of the module. Now our skeleton looks like:\\n```rust\\nuse aoc_2022::*;\\n\\ntype Input = String;\\ntype Output = String;\\n\\nstruct DayXX;\\nimpl Solution<Input, Output> for DayXX {\\n fn parse_input<P: AsRef<Path>>(pathname: P) -> Input {\\n file_to_string(pathname)\\n }\\n\\n fn part_1(input: &Input) -> Output {\\n todo!()\\n }\\n\\n fn part_2(input: &Input) -> Output {\\n todo!()\\n }\\n}\\n\\nfn main() -> Result<()> {\\n // DayXX::run(\\"sample\\")\\n DayXX::main()\\n}\\n\\n// test_sample!(day_XX, DayXX, , );\\n```\\n\\n### Solution\\n\\nNot much to talk about, it is relatively easy to simulate.\\n\\n## [Day 10: Cathode-Ray Tube](https://adventofcode.com/2022/day/10)\\n\\n:::info tl;dr\\n\\nEmulating basic arithmetic operations on a CPU and drawing on CRT based on the\\nCPU\'s accumulator.\\n\\n:::\\n\\nIn this day I have discovered an issue with my design of the `Solution` trait.\\nAnd the issue is caused by different types of `Output` for the part 1 and part 2.\\n\\nProblem is relatively simple and consists of simulating a CPU, I have approached\\nit in a following way:\\n```rust\\nfn evaluate_instructions(instructions: &[Instruction], mut out: Output) -> Output {\\n instructions\\n .iter()\\n .fold(State::new(), |state, instruction| {\\n state.execute(instruction, &mut out)\\n });\\n\\n out\\n}\\n```\\n\\nWe just take the instructions, we have some state of the CPU and we execute the\\ninstructions one-by-one. Perfect usage of the `fold` (or `reduce` as you may know\\nit from other languages).\\n\\nYou can also see that we have an `Output` type, so the question is how can we fix\\nthat problem. And the answer is very simple and _functional_. Rust allows you to\\nhave an `enumeration` that can _bear_ some other values apart from the type itself.\\n\\n:::tip\\n\\nWe could\'ve seen something like this with the `Result<T, E>` type that can be\\ndefined as\\n```rust\\nenum Result<T, E> {\\n Ok(T),\\n Err(E)\\n}\\n```\\n\\n###### What does that mean though?\\n\\nWhen we have an `Ok` value, it has the result itself, and when we get an `Err`\\nvalue, it has the error. This also allows us to handle _results_ in a rather\\npretty way:\\n```rust\\nmatch do_something(x) {\\n Ok(y) => {\\n println!(\\"SUCCESS: {}\\", y);\\n },\\n Err(y) => {\\n eprintln!(\\"ERROR: {}\\", y);\\n }\\n}\\n```\\n\\n:::\\n\\nMy solution has a following outline:\\n```rust\\nfn execute(&self, i: &Instruction, output: &mut Output) -> State {\\n // execute the instruction\\n\\n // collect results if necessary\\n match output {\\n Output::Part1(x) => self.execute_part_1(y, x),\\n Output::Part2(x) => self.execute_part_2(y, x),\\n }\\n\\n // return the obtained state\\n new_state\\n}\\n```\\n\\nYou might think that it\'s a perfectly reasonable thing to do. Yes, **but** notice\\nthat the `match` statement doesn\'t _collect_ the changes in any way and also we\\npass `output` by `&mut`, so it is shared across each _iteration_ of the `fold`.\\n\\nThe dirty and ingenious thing is that `x`s are passed by `&mut` too and therefore\\nthey are directly modified by the helper functions. To sum it up and let it sit\\n\\n> We are **collecting** the result **into** an **enumeration** that is **shared**\\n> across **all** iterations of `fold`.\\n\\n### Solution\\n\\nSimilar to _Day 9_, but there are some technical details that can get you.\\n\\n## [Day 11: Monkey in the Middle](https://adventofcode.com/2022/day/11)\\n\\n:::info tl;dr\\n\\nSimulation of monkeys throwing stuff around and measuring your stress levels\\nwhile your stuff is being passed around.\\n\\n:::\\n\\nI think I decided to use regular expressions here for the first time, cause\\nparsing the input was a pain.\\n\\nAlso I didn\'t expect to implement Euclidean algorithm in Rust\u2026\\n\\n### Solution\\n\\nAgain, we\'re just running a simulation. Though I must admit it was very easy to\\nmake a small technical mistakes that could affect the final results very late.\\n\\n## [Day 12: Hill Climbing Algorithm](https://adventofcode.com/2022/day/12)\\n\\n:::info tl;dr\\n\\nFinding shortest path up the hill and also shortest path down to the ground while\\nalso rolling down the hill\u2026\\n\\n:::\\n\\nAs I have said in the _tl;dr_, we are looking for the shortest path, but the start\\nand goal differ for the part 1 and 2. So I have decided to refactor my solution\\nto a BFS algorithm that takes necessary parameters via functions:\\n```rust\\nfn bfs<F, G>(\\n graph: &[Vec<char>], start: &Position, has_edge: F, is_target: G\\n) -> Option<usize>\\nwhere\\n F: Fn(&[Vec<char>], &Position, &Position) -> bool,\\n G: Fn(&[Vec<char>], &Position) -> bool\\n```\\n\\nWe pass the initial vertex from the caller and everything else is left to the BFS\\nalgorithm, based on the `has_edge` and `is_target` functions.\\n\\nThis was easy! And that is not very usual in Rust once you want to pass around\\nfunctions. :eyes:\\n\\n### Solution\\n\\nLooking for the shortest path\u2026 Must be Dijkstra, right? **Nope!** Half of the\\nReddit got jebaited though. In all fairness, nothing stops you from implementing\\nthe Dijkstra\'s algorithm for finding the shortest path, **but** if you know that\\nall connected vertices are in a unit (actually $d = 1$) distance from each other,\\nthen you know that running Dijkstra is equivalent to running BFS, only with worse\\ntime complexity, because of the priority heap instead of the queue.\\n\\n## [Day 13: Distress Signal](https://adventofcode.com/2022/day/13)\\n\\n:::info tl;dr\\n\\nProcessing packets with structured data from the distress signal.\\n\\n:::\\n\\nYou can implement a lot of traits if you want to. It is _imperative_ to implement\\nordering on the packets. I had a typo, so I also proceeded to implement a `Display`\\ntrait for debugging purposes:\\n```rust\\nimpl Display for Packet {\\n fn fmt(&self, f: &mut std::fmt::Formatter<\'_>) -> std::fmt::Result {\\n match self {\\n Packet::Integer(x) => write!(f, \\"{x}\\"),\\n Packet::List(lst) => write!(f, \\"[{}]\\", lst.iter().map(|p| format!(\\"{p}\\")).join(\\",\\")),\\n }\\n }\\n}\\n```\\n\\n### Solution\\n\\nA lot of technical details\u2026 Parsing is nasty too\u2026\\n\\n## [Day 14: Regolith Reservoir](https://adventofcode.com/2022/day/14)\\n\\n:::info tl;dr\\n\\nLet\'s simulate falling sand grain-by-grain.\\n\\n:::\\n\\nAgain, both parts are relatively similar with minimal changes, so it is a good\\nidea to refactor it a bit. Similar approach to the [BFS above]. Also this is the\\nfirst day where I ran into efficiency issues and had to redo my solution to speed\\nit up just a bit.\\n\\n### Solution\\n\\nTedious.\\n\\n## Post Mortem\\n\\n### Indexing\\n\\nI was asked about the indexing after publishing the blog. And truly it is rather\\ncomplicated topic, especially after releasing `SliceIndex<I>` trait. I couldn\'t\\nleave it be, so I tried to implement the `Index` and `IndexMut` trait.\\n\\n:::note\\n\\nI have also mentioned that the `SliceIndex` trait is `unsafe`, but truth be told,\\nonly _unsafe_ part are the 2 methods that are named `*unchecked*`. Anyways, I will\\nbe implementing the `Index*` traits for now, rather than the `SliceIndex`.\\n\\n:::\\n\\nIt\'s relatively straightforward\u2026\\n\\n```rust\\nimpl<I, C> Index<Vector2D<I>> for [C]\\nwhere\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: Index<usize>,\\n{\\n type Output = C::Output;\\n\\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &self[y][x]\\n }\\n}\\n\\nimpl<I, C> IndexMut<Vector2D<I>> for [C]\\nwhere\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: IndexMut<usize>,\\n{\\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &mut self[y][x]\\n }\\n}\\n```\\n\\nWe can see a lot of similarities to the implementation of `index` and `index_mut`\\nfunctions. In the end, they are 1:1, just wrapped in the trait that provides a\\nsyntax sugar for `container[idx]`.\\n\\n:::note\\n\\nI have also switched from using the `TryFrom` to `TryInto` trait, since it better\\nmatches what we are using, the `.try_into` rather than `usize::try_from`.\\n\\nAlso implementing `TryFrom` automatically provides you with a `TryInto` trait,\\nsince it is relatively easy to implement. Just compare the following:\\n\\n```rust\\npub trait TryFrom<T>: Sized {\\n type Error;\\n\\n fn try_from(value: T) -> Result<Self, Self::Error>;\\n}\\n\\npub trait TryInto<T>: Sized {\\n type Error;\\n\\n fn try_into(self) -> Result<T, Self::Error>;\\n}\\n```\\n\\n:::\\n\\nOK, so we have our trait implemented, we should be able to use `container[index]`,\\nright? Yes\u2026 but actually no :frowning:\\n\\n```\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\\n --\x3e src/bin/day08.rs:26:18\\n |\\n26 | if trees[pos] > tallest {\\n | ^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\\n\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<usize>`\\n --\x3e src/bin/day08.rs:30:28\\n |\\n30 | max(tallest, trees[pos])\\n | ^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<usize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<usize>>`\\n\\nerror[E0277]: the type `[std::vec::Vec<i8>]` cannot be indexed by `aoc_2022::Vector2D<isize>`\\n --\x3e src/bin/day08.rs:52:28\\n |\\n52 | let max_height = trees[position];\\n | ^^^^^^^^ slice indices are of type `usize` or ranges of `usize`\\n |\\n = help: the trait `std::slice::SliceIndex<[std::vec::Vec<i8>]>` is not implemented for `aoc_2022::Vector2D<isize>`\\n = note: required for `std::vec::Vec<std::vec::Vec<i8>>` to implement `std::ops::Index<aoc_2022::Vector2D<isize>>`\\n```\\n\\nWhy? We have it implemented for the slices (`[C]`), why doesn\'t it work? Well,\\nthe fun part consists of the fact that in other place, where we were using it,\\nwe were passing the `&[Vec<T>]`, but this is coming from a helper functions that\\ntake `&Vec<Vec<T>>` instead. And\u2026 we don\'t implement `Index` and `IndexMut` for\\nthose. Just for the slices. :exploding_head: *What are we going to do about it?*\\n\\nWe can either start copy-pasting or be smarter about it\u2026 I choose to be smarter,\\nso let\'s implement a macro! The only difference across the implementations are\\nthe types of the outer containers. Implementation doesn\'t differ **at all**!\\n\\nImplementing the macro can be done in a following way:\\n```rust\\nmacro_rules! generate_indices {\\n ($container:ty) => {\\n impl<I, C> Index<Vector2D<I>> for $container\\n where\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: Index<usize>,\\n {\\n type Output = C::Output;\\n\\n fn index(&self, index: Vector2D<I>) -> &Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &self[y][x]\\n }\\n }\\n\\n impl<I, C> IndexMut<Vector2D<I>> for $container\\n where\\n I: Copy + TryInto<usize>,\\n <I as TryInto<usize>>::Error: Debug,\\n C: IndexMut<usize>,\\n {\\n fn index_mut(&mut self, index: Vector2D<I>) -> &mut Self::Output {\\n let (x, y): (usize, usize) =\\n (index.x.try_into().unwrap(), index.y.try_into().unwrap());\\n &mut self[y][x]\\n }\\n }\\n };\\n}\\n```\\n\\nAnd now we can simply do\\n```rust\\ngenerate_indices!(VecDeque<C>);\\ngenerate_indices!([C]);\\ngenerate_indices!(Vec<C>);\\n// generate_indices!([C; N], const N: usize);\\n```\\n\\nThe last type (I took the inspiration from the implementations of the `Index` and\\n`IndexMut` traits) is a bit problematic, because of the `const N: usize` part,\\nwhich I haven\'t managed to be able to parse. And that\'s how I got rid of the error.\\n\\n:::note\\n\\nIf I were to use 2D-indexing over `[C; N]` slices, I\'d probably just go with the\\ncopy-paste, cause the cost of this \u201cmonstrosity\u201d outweighs the benefits of no DRY.\\n\\n:::\\n\\n#### Cause of the problem\\n\\nThis issue is relatively funny. If you don\'t use any type aliases, just the raw\\ntypes, you\'ll get suggested certain changes by the _clippy_. For example if you\\nconsider the following piece of code\\n```rust\\nfn get_sum(nums: &Vec<i32>) -> i32 {\\n nums.iter().sum()\\n}\\n\\nfn main() {\\n let nums = vec![1, 2, 3];\\n println!(\\"Sum: {}\\", get_sum(&nums));\\n}\\n```\\n\\nand you run _clippy_ on it, you will get\\n```\\nChecking playground v0.0.1 (/playground)\\nwarning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do\\n --\x3e src/main.rs:1:18\\n |\\n1 | fn get_sum(nums: &Vec<i32>) -> i32 {\\n | ^^^^^^^^^ help: change this to: `&[i32]`\\n |\\n = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg\\n = note: `#[warn(clippy::ptr_arg)]` on by default\\n\\nwarning: `playground` (bin \\"playground\\") generated 1 warning\\n Finished dev [unoptimized + debuginfo] target(s) in 0.61s\\n```\\n\\nHowever, if you introduce a type alias, such as\\n```rust\\ntype Numbers = Vec<i32>;\\n```\\n\\nThen _clippy_ won\'t say anything, cause there is literally nothing to suggest.\\nHowever the outcome is not the same\u2026\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[BFS above]: #day-12-hill-climbing-algorithm"},{"id":"aoc-2022/1st-week","metadata":{"permalink":"/blog/aoc-2022/1st-week","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md","source":"@site/blog/aoc-2022/01-week-1.md","title":"1st week of Advent of Code \'22 in Rust","description":"Surviving first week in Rust.","date":"2022-12-15T01:15:00.000Z","formattedDate":"December 15, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":12.4,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"1st week of Advent of Code \'22 in Rust","description":"Surviving first week in Rust.","date":"2022-12-15T01:15","slug":"aoc-2022/1st-week","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week"},"nextItem":{"title":"Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/intro"}},"content":"Let\'s go through the first week of [_Advent of Code_] in Rust.\\n\\n\x3c!--truncate--\x3e\\n\\n:::note\\n\\nIf you wish to have a look at the solutions, you can follow them on my [GitLab].\\nMore specifically in the [`/src/bin/`].\\n\\n:::\\n\\nI will try to summarize my experience with using Rust for the AoC. Trying it out\\nages ago, I believe it will be _pain and suffering_, but we will see. For each\\nday I will also try to give a tl;dr of the problem, so that you can better imagine\\nthe relation to my woes or :+1: moments.\\n\\n## [Day 1: Calorie Counting](https://adventofcode.com/2022/day/1)\\n\\n:::info tl;dr\\n\\nAs the name suggests, we get the calories of the food contained in the elves\\nbackpacks and we want to choose the elf that has the most food ;)\\n\\n:::\\n\\n> Wakey wakey!\\n\\nProgramming in Rust at 6am definitely hits. I\'ve also forgotten to mention how I\\nhandle samples. With each puzzle you usually get a sample input and expected\\noutput. You can use them to verify that your solution works, or usually doesn\'t.\\n\\nAt first I\'ve decided to put asserts into my `main`, something like\\n```rust\\nassert_eq!(part_1(&sample), 24000);\\ninfo!(\\"Part 1: {}\\", part_1(&input));\\n\\nassert_eq!(part_2(&sample), 45000);\\ninfo!(\\"Part 2: {}\\", part_2(&input));\\n```\\n\\nHowever, once you get further, the sample input may take some time to run itself.\\nSo in the end, I have decided to turn them into unit tests:\\n```rust\\n#[cfg(test)]\\nmod tests {\\n use super::*;\\n\\n #[test]\\n fn test_part_1() {\\n let sample = parse_input(\\"samples/day01.txt\\");\\n assert_eq!(part_1(&sample), 24000);\\n }\\n\\n #[test]\\n fn test_part_2() {\\n let sample = parse_input(\\"samples/day01.txt\\");\\n assert_eq!(part_2(&sample), 45000);\\n }\\n}\\n```\\n\\nAnd later on I have noticed, it\'s hard to tell the difference between the days,\\nso I further renamed the `mod` from generic `tests` to reflect the days.\\n\\nAlso after finishing the first day puzzle, I have installed an [`sccache`] to\\ncache the builds, so that the build time is lower, cause it was kinda unbearable.\\n\\n### Solution\\n\\nWell, it\'s a pretty simple problem. You just take the input, sum the calories and\\nfind the biggest one. However, if we try to generalize to more than the biggest\\none, the fun appears. We have few options:\\n\\n- keep all the calories, sort them, take what we need\\n- keep all the calories and use max heap\\n- use min heap and maintain at most N calories that we need\\n\\n## [Day 2: Rock Paper Scissors](https://adventofcode.com/2022/day/2)\\n\\n:::info tl;dr\\n\\nYou want to know what score did you achieve while playing _Rock Paper Scissors_.\\nAnd then you want to be strategic about it.\\n\\n:::\\n\\nApart from the technical details of the puzzle, it went relatively smooth.\\n\\n### Solution\\n\\nI took relatively na\xefve approach and then tried to simplify it.\\n\\n## [Day 3: Rucksack Reorganization](https://adventofcode.com/2022/day/3)\\n\\n:::info tl;dr\\n\\nLet\'s go reorganize elves\' backpacks! Each backpacks has 2 compartments and you\\nwant to find the common item among those compartments. Each of them has priority,\\nyou care only about the sum.\\n\\n:::\\n\\nThis is the day where I started to fight the compiler and neither of us decided\\nto give up. Let\'s dive into it \\\\o/\\n\\n:::tip Fun fact\\n\\nFighting the compiler took me 30 minutes.\\n\\n:::\\n\\nWe need to find a common item among 2 collections, that\'s an easy task, right?\\nWe can construct 2 sets and find an intersection:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3].iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5].iter().collect();\\n```\\n\\nNow, the first issue that we encounter is caused by the fact that we are using\\na slice (the `[\u2026]`), iterator of that returns **references** to the numbers.\\nAnd we get immediately yelled at by the compiler, because the numbers are discarded\\nafter running the `.collect`. To fix this, we can use `.into_iter`:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5].into_iter().collect();\\n```\\n\\nThis way the numbers will get copied instead of referenced. OK, let\'s find the\\nintersection of those 2 collections:\\n```rust\\nprintln!(\\"Common elements: {:?}\\", top.intersection(&bottom));\\n```\\n```\\nCommon elements: [3]\\n```\\n\\n:::caution\\n\\nNotice that we need to do `&bottom`. It explicitly specifies that `.intersection`\\n**borrows** the `bottom`, i.e. takes an immutable reference to it.\\n\\n:::\\n\\nThat\'s what we want, right? Looks like it! \\\\o/\\n\\nNext part wants us to find the common element among all of the backpacks. OK, so\\nthat should be fairly easy, we have an intersection and we want to find intersection\\nover all of them.\\n\\nLet\'s have a look at the type of the `.intersection`\\n```rust\\npub fn intersection<\'a>(\\n\xa0\xa0\xa0\xa0&\'a self,\\n\xa0\xa0\xa0\xa0other: &\'a HashSet<T, S>\\n) -> Intersection<\'a, T, S>\\n```\\n\\nOK\u2026 Huh\u2026 But we have an example there!\\n```rust\\nlet intersection: HashSet<_> = a.intersection(&b).collect();\\n```\\n\\nCool, that\'s all we need.\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n```\\nIntersection: {3, 4}\\n```\\n\\nCool, so let\'s do the intersection with the `top_2`:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\\nlet intersection: HashSet<_> = intersection.intersection(&top_2).collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n\\nAnd we get yelled at by the compiler:\\n```\\nerror[E0308]: mismatched types\\n --\x3e src/main.rs:10:58\\n |\\n10 | let intersection: HashSet<_> = intersection.intersection(&top_2).collect();\\n | ------------ ^^^^^^ expected `&i32`, found `i32`\\n | |\\n | arguments to this function are incorrect\\n |\\n = note: expected reference `&HashSet<&i32>`\\n found reference `&HashSet<i32>`\\n```\\n\\n/o\\\\ What the hell is going on here? Well, the funny thing is, that this operation\\ndoesn\'t return the elements themselves, but the references to them and when we pass\\nthe third set, it has just the values themselves, without any references.\\n\\n:::tip\\n\\nIt may seem as a very weird decision, but in fact it makes some sense\u2026 It allows\\nyou to do intersection of items that may not be possible to copy. Overall this is\\na \u201ctax\u201d for having a borrow checker ~~drilling your ass~~ having your back and\\nmaking sure you\'re not doing something naughty that may cause an **undefined**\\n**behavior**.\\n\\n:::\\n\\nTo resolve this we need to get an iterator that **clones** the elements:\\n```rust\\nlet top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\\n\\nlet intersection: HashSet<_> = top.intersection(&bottom).cloned().collect();\\nlet intersection: HashSet<_> = intersection.intersection(&top_2).cloned().collect();\\nlet intersection: HashSet<_> = intersection.intersection(&bottom_2).cloned().collect();\\nprintln!(\\"Intersection: {:?}\\", intersection);\\n```\\n```\\nIntersection: {4}\\n```\\n\\n### Solution\\n\\nThe approach is pretty simple, if you omit the _1on1 with the compiler_. You just\\nhave some fun with the set operations :)\\n\\n## [Day 4: Camp Cleanup](https://adventofcode.com/2022/day/4)\\n\\n:::info tl;dr\\n\\nElves are cleaning up the camp and they got overlapping sections to clean up.\\nFind how many overlap and can take the day off.\\n\\n:::\\n\\n[`RangeInclusive`] is your friend not an enemy :)\\n\\n### Solution\\n\\nRelatively easy, you just need to parse the input and know what you want. Rust\'s\\n`RangeInclusive` type helped a lot, cause it took care of all abstractions.\\n\\n## [Day 5: Supply Stacks](https://adventofcode.com/2022/day/5)\\n\\n:::info tl;dr\\n\\nLet\'s play with stacks of crates.\\n\\n:::\\n\\nVery easy problem with very annoying input. You can judge yourself:\\n```\\n [D] \\n[N] [C] \\n[Z] [M] [P]\\n 1 2 3 \\n\\nmove 1 from 2 to 1\\nmove 3 from 1 to 3\\nmove 2 from 2 to 1\\nmove 1 from 1 to 2\\n```\\n\\nGood luck transforming that into something reasonable :)\\n\\n\\n:::tip Fun fact\\n\\nTook me 40 minutes to parse this reasonably, including fighting the compiler.\\n\\n:::\\n\\n### Solution\\n\\nFor the initial solution I went with a manual solution (as in _I have done all_\\n_the work_. Later on I have decided to explore the `std` and interface of the\\n`std::vec::Vec` and found [`split_off`] which takes an index and splits (duh)\\nthe vector:\\n```rust\\nlet mut vec = vec![1, 2, 3];\\nlet vec2 = vec.split_off(1);\\nassert_eq!(vec, [1]);\\nassert_eq!(vec2, [2, 3]);\\n```\\n\\nThis helped me simplify my solution a lot and also get rid of some _edge cases_.\\n\\n## [Day 6: Tuning Trouble](https://adventofcode.com/2022/day/6)\\n\\n:::info tl;dr\\n\\nFinding start of the message in a very weird protocol. Start of the message is\\ndenoted by $N$ unique consecutive characters.\\n\\n:::\\n\\n### Solution\\n\\nA lot of different approaches, knowing that we are dealing with input consisting\\nsolely of ASCII letters, I bit the bullet and went with sliding window and\\nconstructing sets from that window, checking if the set is as big as the window.\\n\\nOne possible optimization could consist of keeping a bit-vector (i.e. `usize`\\nvariable) of encountered characters and updating it as we go. However this has\\na different issue and that is removal of the characters from the left side of the\\nwindow. We don\'t know if the same character is not included later on.\\n\\nOther option is to do similar thing, but keeping the frequencies of the letters,\\nand again knowing we have only ASCII letters we can optimize by having a vector\\nof 26 elements that keeps count for each lowercase letter.\\n\\n## [Day 7: No Space Left On Device](https://adventofcode.com/2022/day/7)\\n\\n:::info tl;dr\\n\\nLet\'s simulate [`du`] to get some stats about our file system and then pinpoint\\ndirectories that take a lot of space and should be deleted.\\n\\n:::\\n\\n> I was waiting for this moment, and yet it got me!\\n> *imagine me swearing for hours*\\n\\n### Solution\\n\\nWe need to \u201c_build_\u201d a file system from the input that is given in a following form:\\n```\\n$ cd /\\n$ ls\\ndir a\\n14848514 b.txt\\n8504156 c.dat\\ndir d\\n$ cd a\\n$ ls\\ndir e\\n29116 f\\n2557 g\\n62596 h.lst\\n$ cd e\\n$ ls\\n584 i\\n$ cd ..\\n$ cd ..\\n$ cd d\\n$ ls\\n4060174 j\\n8033020 d.log\\n5626152 d.ext\\n7214296 k\\n```\\n\\nThere are few ways in which you can achieve this and also you can assume some\\npreconditions, but why would we do that, right? :)\\n\\nYou can \u201cslap\u201d this in either [`HashMap`] or [`BTreeMap`] and call it a day.\\nAnd that would be boring\u2026\\n\\n:::tip\\n\\n`BTreeMap` is quite fitting for this, don\'t you think?\\n\\n:::\\n\\nI always wanted to try allocation on heap in Rust, so I chose to implement a tree.\\nI fought with the `Box<T>` for some time and was losing\u2026\\n\\nThen I looked up some implementations of trees or linked lists and decided to try\\n`Rc<Cell<T>>`. And I got my _ass whopped_ by the compiler once again. /o\\\\\\n\\n:::tip\\n\\n`Box<T>` represents a dynamically allocated memory on heap. It is a single pointer,\\nyou can imagine this as `std::unique_ptr<T>` in C++.\\n\\n`Rc<T>` represents a dynamically allocated memory on heap. On top of that it is\\n_reference counted_ (that\'s what the `Rc` stands for). You can imagine this as\\n`std::shared_ptr<T>` in C++.\\n\\nNow the fun stuff. Neither of them lets you **mutate** the contents of the memory.\\n\\n`Cell<T>` allows you to mutate the memory. Can be used reasonably with types that\\ncan be copied, because the memory safety is guaranteed by copying the contents\\nwhen there is more than one **mutable** reference to the memory.\\n\\n`RefCell<T>` is similar to the `Cell<T>`, but the borrowing rules (how many mutable\\nreferences are present) are checked dynamically.\\n\\nSo in the end, if you want something like `std::shared_ptr<T>` in Rust, you want\\nto have `Rc<RefCell<T>>`.\\n\\n:::\\n\\nSo, how are we going to represent the file system then? We will use an enumeration,\\nhehe, which is an algebraic data type that can store some stuff in itself :weary:\\n```rust\\ntype FileHandle = Rc<RefCell<AocFile>>;\\n\\n#[derive(Debug)]\\nenum AocFile {\\n File(usize),\\n Directory(BTreeMap<String, FileHandle>),\\n}\\n```\\n\\nLet\'s go over it! `FileHandle` represents dynamically allocated `AocFile`, not\\nmuch to discuss. What does the `#[derive(Debug)]` do though? It lets us to print\\nout the value of that enumeration, it\'s derived, so it\'s not as good as if we had\\nimplemented it ourselves, but it\'s good enough for debugging, hence the name.\\n\\nNow to the fun part! `AocFile` value can be represented in two ways:\\n- `File(usize)`, e.g. `AocFile::File(123)` and we can pattern match it, if we\\n need to\\n- `Directory(BTreeMap<String, FileHandle>)` will represent the directory and will\\n contain map matching the name of the files (or directories) within to their\\n respective file handles\\n\\nI will omit the details about constructing this file system, cause there are a lot\\nof technicalities introduced by the nature of the input. However if you are\\ninterested, you can have a look at my solution.\\n\\nWe need to find small enough directories and also find the smallest directory that\\nwill free enough space. Now the question is, how could we do that. And there are\\nmultiple ways I will describe.\\n\\nI have chosen to implement [_tree catamorphism_] :weary:. It is basically a fold\\nover a tree data structure. We descent down into the leaves and propagate computed\\nresults all the way to the root. You can also notice that this approach is very\\nsimilar to _dynamic programming_, we find overlapping sections of the computation\\nand try to minimize the additional work (in this case: we need to know sizes of\\nour descendants, but we have already been there).\\n\\nAnother approach that has been suggested to me few days later is running DFS on\\nthe graph. And, funnily enough, we would still need to combine what we found in\\nthe branches where we descent. So in the end, it would work very similarly to my\\nsolution.\\n\\nOne of the more exotic options would be precomputing the required information at\\nthe same time as parsing. That could be done by adding additional fields to the\\nnodes which would allow storing such information and updating it as we construct\\nthe file system.\\n\\n## Post Mortem\\n\\nThings that have been brought up in the discussion later on.\\n\\n### `Rc<T>` vs `Rc<RefCell<T>>`\\n\\nIt has been brought up that I have a contradicting statement regarding the\\ndynamically allocated memory. Specifically:\\n\\n- You can imagine `Rc<T>` as an `std::shared_ptr<T>` (in C++)\\n- When you want an equivalent of `std::shared_ptr<T>`, you want to use\\n `Rc<RefCell<T>>`\\n\\nNow, in Rust it is a bit more complicated, because the type that represents the\\n\u201cshared pointer\u201d is `Rc<T>`. What `RefCell<T>` does is making sure that there is\\nonly one \u201cowner\u201d of a mutable reference at a time (and dynamically, as opposed\\nto the `Cell<T>`).\\n\\nTherefore to be precise and correct about the equivalents of `std::shared_ptr<T>`\\nin Rust, we can say that\\n\\n- `Rc<T>` is an equivalent of a `const std::shared_ptr<T>`,\\n- and `Rc<RefCell<T>>` is an equivalent of a `std::shared_ptr<T>`.\\n\\nYou can easily see that they only differ in the mutability. (And even that is not\\nas simple as it seems, because there is also `Cell<T>`)\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[GitLab]: https://gitlab.com/mfocko/advent-of-code-2022\\n[`/src/bin/`]: https://gitlab.com/mfocko/advent-of-code-2022/-/tree/main/src/bin\\n[`sccache`]: https://github.com/mozilla/sccache\\n[`RangeInclusive`]: https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html\\n[`split_off`]: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.split_off\\n[`du`]: https://www.man7.org/linux/man-pages/man1/du.1.html\\n[`HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html\\n[`BTreeMap`]: https://doc.rust-lang.org/std/collections/struct.BTreeMap.html\\n[_tree catamorphism_]: https://en.wikipedia.org/wiki/Catamorphism#Tree_fold"},{"id":"aoc-2022/intro","metadata":{"permalink":"/blog/aoc-2022/intro","editUrl":"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md","source":"@site/blog/aoc-2022/00-intro.md","title":"Advent of Code \'22 in Rust","description":"Preparing for Advent of Code \'22.","date":"2022-12-14T21:45:00.000Z","formattedDate":"December 14, 2022","tags":[{"label":"advent-of-code","permalink":"/blog/tags/advent-of-code"},{"label":"advent-of-code-2022","permalink":"/blog/tags/advent-of-code-2022"},{"label":"rust","permalink":"/blog/tags/rust"}],"readingTime":8.665,"hasTruncateMarker":true,"authors":[{"name":"Matej Focko","email":"me+blog@mfocko.xyz","title":"a.k.a. @mf","url":"https://gitlab.com/mfocko","imageURL":"https://github.com/mfocko.png","key":"mf"}],"frontMatter":{"title":"Advent of Code \'22 in Rust","description":"Preparing for Advent of Code \'22.","date":"2022-12-14T21:45","slug":"aoc-2022/intro","authors":"mf","tags":["advent-of-code","advent-of-code-2022","rust"],"hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"1st week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/1st-week"}},"content":"Let\'s talk about the preparations for this year\'s [_Advent of Code_].\\n\\n\x3c!--truncate--\x3e\\n\\n## Choosing a language\\n\\nWhen choosing a language for AoC, you usually want a language that gives you a\\nquick feedback which allows you to iterate quickly to the solution of the puzzle.\\nOne of the most common choices is Python, many people also use JavaScript or Ruby.\\n\\nGiven the competitive nature of the AoC and popularity among competitive programming,\\nC++ might be also a very good choice. Only if you are familiar with it, I guess\u2026\\n\\nIf you want a challenge, you might also choose to rotate the languages each day.\\nThough I prefer to use only one language.\\n\\nFor this year I have been deciding between _Rust_, _C++_ and _Pascal_ or _Ada_.\\n\\nI have tried Rust last year and have survived with it for 3 days and then gave\\nup and switched to _Kotlin_, which was pretty good given it is \u201cJava undercover\u201d.\\nI pretty much like the ideas behind Rust, I am not sure about the whole cult and\\nimplementation of those ideas though. After some years with C/C++, I would say\\nthat Rust feels _too safe_ for my taste and tries to \u201c_punish me_\u201d even for the\\nmost trivial things.\\n\\nC++ is a very robust, but also comes with a wide variety of options providing you\\nthe ability to shoot yourself in the leg. I have tried to solve few days of previous\\nAdvent of Code events, it was _relatively easy_ to solve the problems in C++, given\\nthat I do not admit writing my own iterator for `enumerate`\u2026\\n\\nPascal or Ada were meme choices :) Ada is heavily inspired by Pascal and has a\\npretty nice standard library that offers enough to be able to quickly solve some\\nproblems in it. However the toolkit is questionable :/\\n\\n## Choosing libraries\\n\\n## Preparations for Rust\\n\\nAll of the sources, later on including solutions, can be found at my\\n[GitLab].\\n\\n### Toolkit\\n\\nSince we are using Rust, we are going to use a [Cargo] and more than likely VSCode\\nwith [`rust-analyzer`]. Because of my choice of libraries, we will also introduce\\na `.envrc` file that can be used by [`direnv`], which allows you to set specific\\nenvironment variables when you enter a directory. In our case, we will use\\n```bash\\n# to show nice backtrace when using the color-eyre\\nexport RUST_BACKTRACE=1\\n\\n# to catch logs generated by tracing\\nexport RUST_LOG=trace\\n```\\n\\nAnd for the one of the most obnoxious things ever, we will use a script to download\\nthe inputs instead of \u201c_clicking, opening and copying to a file_\u201d[^1]. There is\\nno need to be _fancy_, so we will adjust Python script by Martin[^2].\\n```py\\n#!/usr/bin/env python3\\n\\nimport datetime\\nimport yaml\\nimport requests\\nimport sys\\n\\n\\ndef load_config():\\n with open(\\"env.yaml\\", \\"r\\") as f:\\n js = yaml.load(f, Loader=yaml.Loader)\\n return js[\\"session\\"], js[\\"year\\"]\\n\\n\\ndef get_input(session, year, day):\\n return requests.get(\\n f\\"https://adventofcode.com/{year}/day/{day}/input\\",\\n cookies={\\"session\\": session},\\n headers={\\n \\"User-Agent\\": \\"{repo} by {mail}\\".format(\\n repo=\\"gitlab.com/mfocko/advent-of-code-2022\\",\\n mail=\\"me@mfocko.xyz\\",\\n )\\n },\\n ).content.decode(\\"utf-8\\")\\n\\n\\ndef main():\\n day = datetime.datetime.now().day\\n if len(sys.argv) == 2:\\n day = sys.argv[1]\\n\\n session, year = load_config()\\n problem_input = get_input(session, year, day)\\n\\n with open(f\\"./inputs/day{day:>02}.txt\\", \\"w\\") as f:\\n f.write(problem_input)\\n\\n\\nif __name__ == \\"__main__\\":\\n main()\\n```\\n\\nIf the script is called without any arguments, it will deduce the day from the\\nsystem, so we do not need to change the day every morning. It also requires a\\nconfiguration file:\\n```yaml\\n# env.yaml\\nsession: \u2039your session cookie\u203a\\nyear: 2022\\n```\\n\\n### Libraries\\n\\nLooking at the list of the libraries, I have chosen \u201ca lot\u201d of them. Let\'s walk\\nthrough each of them.\\n\\n[`tracing`] and [`tracing-subscriber`] are the crates that can be used for tracing\\nand logging of your Rust programs, there are also other crates that can help you\\nwith providing backtrace to the Sentry in case you have deployed your application\\nsomewhere and you want to watch over it. In our use case we will just utilize the\\nmacros for debugging in the terminal.\\n\\n[`thiserror`], [`anyhow`] and [`color-eyre`] are used for error reporting.\\n`thiserror` is a very good choice for libraries, cause it extends the `Error`\\nfrom the `std` and allows you to create more convenient error types. Next is\\n`anyhow` which kinda builds on top of the `thiserror` and provides you with simpler\\nerror handling in binaries[^3]. And finally we have `color-eyre` which, as I found\\nout later, is a colorful (_wink wink_) extension of `eyre` which is fork of `anyhow`\\nwhile supporting customized reports.\\n\\nIn the end I have decided to remove `thiserror` and `anyhow`, since first one is\\nsuitable for libraries and the latter was basically fully replaced by `{color-,}eyre`.\\n\\n[`regex`] and [`lazy_static`] are a very good and also, I hope, self-explanatory\\ncombination. `lazy_static` allows you to have static variables that must be initialized\\nduring runtime.\\n\\n[`itertools`] provides some nice extensions to the iterators from the `std`.\\n\\n### My own \u201clibrary\u201d\\n\\nWhen creating the crate for this year\'s Advent of Code, I have chosen a library\\ntype. Even though standard library is huge, some things might not be included and\\nalso we can follow _KISS_. I have 2 modules that my \u201clibrary\u201d exports, one for\\nparsing and one for 2D vector (that gets used quite often during Advent of Code).\\n\\nKey part is, of course, processing the input and my library exports following\\nfunctions that get used a lot:\\n```rust\\n/// Reads file to the string.\\npub fn file_to_string<P: AsRef<Path>>(pathname: P) -> String;\\n\\n/// Reads file and returns it as a vector of characters.\\npub fn file_to_chars<P: AsRef<Path>>(pathname: P) -> Vec<char>;\\n\\n/// Reads file and returns a vector of parsed structures. Expects each structure\\n/// on its own line in the file. And `T` needs to implement `FromStr` trait.\\npub fn file_to_structs<P: AsRef<Path>, T: FromStr>(pathname: P) -> Vec<T>\\nwhere\\n <T as FromStr>::Err: Debug;\\n\\n/// Converts iterator over strings to a vector of parsed structures. `T` needs\\n/// to implement `FromStr` trait and its error must derive `Debug` trait.\\npub fn strings_to_structs<T: FromStr, U>(\\n iter: impl Iterator<Item = U>\\n) -> Vec<T>\\nwhere\\n <T as std::str::FromStr>::Err: std::fmt::Debug,\\n U: Deref<Target = str>;\\n\\n/// Reads file and returns it as a vector of its lines.\\npub fn file_to_lines<P: AsRef<Path>>(pathname: P) -> Vec<String>;\\n```\\n\\nAs for the vector, I went with a rather simple implementation that allows only\\naddition of the vectors for now and accessing the elements via functions `x()`\\nand `y()`. Also the vector is generic, so we can use it with any numeric type we\\nneed.\\n\\n### Skeleton\\n\\nWe can also prepare a template to quickly bootstrap each of the days. We know\\nthat each puzzle has 2 parts, which means that we can start with 2 functions that\\nwill solve them.\\n```rust\\nfn part1(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn part2(input: &Input) -> Output {\\n todo!()\\n}\\n```\\n\\nBoth functions take reference to the input and return some output (in majority\\nof puzzles, it is the same type). `todo!()` can be used as a nice placeholder,\\nit also causes a panic when reached and we could also provide some string with\\nan explanation, e.g. `todo!(\\"part 1\\")`. We have not given functions a specific\\ntype and to avoid as much copy-paste as possible, we will introduce type aliases.\\n```rust\\ntype Input = String;\\ntype Output = i32;\\n```\\n\\n:::tip\\n\\nThis allows us to quickly adjust the types only in one place without the need to\\ndo _regex-replace_ or replace them manually.\\n\\n:::\\n\\nFor each day we get a personalized input that is provided as a text file. Almost\\nall the time, we would like to get some structured type out of that input, and\\ntherefore it makes sense to introduce a new function that will provide the parsing\\nof the input.\\n```rust\\nfn parse_input(path: &str) -> Input {\\n todo!()\\n}\\n```\\n\\nThis \u201cparser\u201d will take a path to the file, just in case we would like to run the\\nsample instead of input.\\n\\nOK, so now we can write a `main` function that will take all of the pieces and\\nrun them.\\n```rust\\nfn main() {\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n println!(\\"Part 1: {}\\", part_1(&input));\\n println!(\\"Part 2: {}\\", part_2(&input));\\n}\\n```\\n\\nThis would definitely do :) But we have installed a few libraries and we want to\\nuse them. In this part we are going to utilize _[`tracing`]_ (for tracing, duh\u2026)\\nand _[`color-eyre`]_ (for better error reporting, e.g. from parsing).\\n```rust\\nfn main() -> Result<()> {\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n info!(\\"Part 1: {}\\", part_1(&input));\\n info!(\\"Part 2: {}\\", part_2(&input));\\n\\n Ok(())\\n}\\n```\\n\\nThe first statement will set up tracing and configure it to print out the logs to\\nterminal, based on the environment variable. We also change the formatting a bit,\\nsince we do not need all the _fancy_ features of the logger. Pure initialization\\nwould get us logs like this:\\n```\\n2022-12-11T19:53:19.975343Z INFO day01: Part 1: 0\\n```\\n\\nHowever after running that command, we will get the following:\\n```\\n INFO src/bin/day01.rs:35: Part 1: 0\\n```\\n\\nAnd the `color_eyre::install()?` is quite straightforward. We just initialize the\\nerror reporting by _color eyre_.\\n\\n:::caution\\n\\nNotice that we had to add `Ok(())` to the end of the function and adjust the\\nreturn type of the `main` to `Result<()>`. It is caused by the _color eyre_ that\\ncan be installed only once and therefore it can fail, that is how we got the `?`\\nat the end of the `::install` which _unwraps_ the **\xbbresult\xab** of the installation.\\n\\n:::\\n\\nOverall we will get to a template like this:\\n```rust\\nuse aoc_2022::*;\\n\\nuse color_eyre::eyre::Result;\\nuse tracing::info;\\nuse tracing_subscriber::EnvFilter;\\n\\ntype Input = String;\\ntype Output = i32;\\n\\nfn parse_input(path: &str) -> Input {\\n todo!()\\n}\\n\\nfn part1(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn part2(input: &Input) -> Output {\\n todo!()\\n}\\n\\nfn main() -> Result<()> {\\n tracing_subscriber::fmt()\\n .with_env_filter(EnvFilter::from_default_env())\\n .with_target(false)\\n .with_file(true)\\n .with_line_number(true)\\n .without_time()\\n .compact()\\n .init();\\n color_eyre::install()?;\\n\\n let input = parse_input(\\"inputs/dayXX.txt\\");\\n\\n info!(\\"Part 1: {}\\", part_1(&input));\\n info!(\\"Part 2: {}\\", part_2(&input));\\n\\n Ok(())\\n}\\n```\\n\\n[^1]: Copy-pasting might be a relaxing thing to do, but you can also discover\\nnasty stuff about your PC. See [this Reddit post and the comment].\\n[^2]: [GitHub profile](https://github.com/martinjonas)\\n[^3]: Even though you can use it even for libraries, but handling errors from\\nlibraries using `anyhow` is nasty\u2026 You will be the stinky one ;)\\n\\n[_Advent of Code_]: https://adventofcode.com\\n[GitLab]: https://gitlab.com/mfocko/advent-of-code-2022\\n[Cargo]: https://doc.rust-lang.org/cargo/\\n[`rust-analyzer`]: https://rust-analyzer.github.io/\\n[`direnv`]: https://direnv.net/\\n[`tracing`]: https://crates.io/crates/tracing\\n[`tracing-subscriber`]: https://crates.io/crates/tracing-subscriber\\n[`thiserror`]: https://crates.io/crates/thiserror\\n[`anyhow`]: https://crates.io/crates/anyhow\\n[`color-eyre`]: https://crates.io/crates/color-eyre\\n[`regex`]: https://crates.io/crates/regex\\n[`lazy_static`]: https://crates.io/crates/lazy_static\\n[`itertools`]: https://crates.io/crates/itertools\\n[this Reddit post and the comment]: https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono"}]}')}}]); \ No newline at end of file diff --git a/assets/js/4238.61c33e40.js b/assets/js/4238.61c33e40.js deleted file mode 100644 index e782141..0000000 --- a/assets/js/4238.61c33e40.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4238],{7295:(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 I(){}function C(){}function O(){}function A(){}function $(){}function L(){}function N(){}function x(){}function D(){}function R(){}function _(){}function K(){}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 In(){}function Cn(){}function On(){}function An(){}function $n(){}function Ln(){}function Nn(){}function xn(){}function Dn(){}function Rn(){}function _n(){}function Kn(){}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 It(){}function Ct(){}function Ot(){}function At(){}function $t(){}function Lt(){}function Nt(){}function xt(){}function Dt(){}function Rt(){}function _t(){}function Kt(){}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 Ie(){}function Ce(){}function Oe(){}function Ae(){}function $e(){}function Le(){}function Ne(){}function xe(){}function De(){}function Re(){}function _e(){}function Ke(){}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 Ii(){}function Ci(){}function Oi(){}function Ai(){}function $i(){}function Li(){}function Ni(){}function xi(){}function Di(){}function Ri(){}function _i(){}function Ki(){}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 Ir(){}function Cr(){}function Or(){}function Ar(){}function $r(){}function Lr(){}function Nr(){}function xr(){}function Dr(){}function Rr(){}function _r(){}function Kr(){}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 Ic(){}function Cc(){}function Oc(){}function Ac(){}function $c(){}function Lc(){}function Nc(){}function xc(){}function Dc(){}function Rc(){}function _c(){}function Kc(){}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 Ia(){}function Ca(){}function Oa(){}function Aa(){}function $a(){}function La(){}function Na(){}function xa(){}function Da(){}function Ra(){}function _a(){}function Ka(){}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 Iu(){}function Cu(){}function Ou(){}function Au(){}function $u(){}function Lu(){}function Nu(){}function xu(){}function Du(){}function Ru(){}function _u(){}function Ku(){}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 Io(){}function Co(){}function Oo(){}function Ao(){}function $o(){}function Lo(){}function No(){}function xo(){}function Do(){}function Ro(){}function _o(){}function Ko(){}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 Is(){}function Cs(){}function Os(){}function As(){}function $s(){}function Ls(){}function Ns(){}function xs(){}function Ds(){}function Rs(){}function _s(){}function Ks(){}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 Ih(){}function Ch(){}function Oh(){}function Ah(){}function $h(){}function Lh(){}function Nh(){}function xh(){}function Dh(){}function Rh(){}function _h(){}function Kh(n){}function Fh(n){}function Bh(){iy()}function Hh(){Gsn()}function qh(){Epn()}function Gh(){Kkn()}function zh(){jSn()}function Uh(){fRn()}function Xh(){_yn()}function Wh(){rkn()}function Vh(){EM()}function Qh(){mM()}function Yh(){qK()}function Jh(){TM()}function Zh(){Crn()}function nf(){SM()}function tf(){C6()}function ef(){Pin()}function rf(){Q8()}function cf(){KZ()}function af(){zsn()}function uf(){KMn()}function of(){Iin()}function sf(){U2()}function hf(){fWn()}function ff(){Gyn()}function lf(){FZ()}function bf(){HXn()}function wf(){RZ()}function df(){Cin()}function gf(){Yun()}function pf(){GZ()}function vf(){I9()}function mf(){PM()}function yf(){_An()}function kf(){Uyn()}function jf(){Fcn()}function Ef(){MMn()}function Tf(){bRn()}function Mf(){Bvn()}function Sf(){IAn()}function Pf(){Ran()}function If(){HZ()}function Cf(){sKn()}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 _f(){uK()}function Kf(){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 Il(){this.a=[]}function Cl(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 _l(n,t){n.d=t}function Kl(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 Ib(n){this.a=n}function Cb(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 _b(n){this.a=n}function Kb(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 Iw(n){this.a=n}function Cw(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 _w(n){this.a=n}function Kw(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 Id(n){this.a=n}function Cd(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 _d(n){this.a=n}function Kd(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 Ig(n){this.a=n}function Cg(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 _g(n){this.a=n}function Kg(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 Ip(n){this.d=n}function Cp(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(){Kh(this)}function _p(){this.c=L$t}function Kp(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){qIn(t,n)}function ev(n,t,e){n.Od(e,t)}function iv(n,t){n.e=t,t.b=n}function rv(n){sK(),this.a=n}function cv(n){sK(),this.a=n}function av(n){sK(),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 Iv(n,t){WB(n.a,t)}function Cv(n,t){USn(n.c,t)}function Ov(n,t){TU(n.b,t)}function Av(n,t){Cvn(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 _v(){this.a=new xp}function Kv(){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(){Kv.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 Im(){xp.call(this)}function Cm(){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 _m(){yo.call(this)}function Km(){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,Knt=new xk}function ey(){ey=O,_nt=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){V_.call(this,n)}function hy(n){ySn.call(this,n)}function fy(n){IT.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){IL(),this.a=n}function my(n){n.b=null,n.c=0}function yy(n,t){n.e=t,Ixn(n,t)}function ky(n,t){n.a=t,aIn(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 Iy(n){return new Sl(n)}function Cy(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){Kcn(),this.a=n}function xy(n){aK(),this.a=n}function Dy(n){FG(),this.f=n}function Ry(n){FG(),this.f=n}function _y(n){dy.call(this,n)}function Ky(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){sK(),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){Ky.call(this,n)}function Sk(){Ab.call(this,"")}function Pk(){Ab.call(this,"")}function Ik(){Ab.call(this,"")}function Ck(){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 _k(n){return n.a?n.b:0}function Kk(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 Ij(n,t){return n.g=t,n}function Cj(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){KMn(),IZ(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 _j(n){nK.call(this,n)}function Kj(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=iIn()}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 IE(n){n.c?NDn(n):xDn(n)}function CE(n){this.a=0,this.b=n}function OE(){this.a=new INn(ijt)}function AE(){this.b=new INn(qyt)}function $E(){this.b=new INn(WEt)}function LE(){this.b=new INn(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 _E(){throw Hp(new pv)}function KE(){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 IT(n){this.a=BB(yX(n),15)}function CT(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 _T(n,t){return n.b.Hc(t)}function KT(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 IO}function fM(){fM=O,Iet=new CO}function lM(){lM=O,Het=new U}function bM(){bM=O,vut=new _t}function wM(){wM=O,rct=new Cx}function dM(){dM=O,tit=new hn}function gM(){gM=O,kut=new Kt}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 IM(){IM=O,XEt=new LM}function CM(){CM=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 _M(n,t,e,i){uNn(i,n,t,e)}function KM(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,IOt=new ho}function UM(){UM=O,RAt=new Pm}function XM(){XM=O,UAt=new Im}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 _h}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 IG(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){KJ.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(),V_.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 IS(n,t){this.b=n,this.a=t}function CS(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 _S(n,t){gT.call(this,n,t)}function KS(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 IP(n,t){gT.call(this,n,t)}function CP(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 _P(n,t){gT.call(this,n,t)}function KP(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 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){gT.call(this,n,t)}function cI(n,t){gT.call(this,n,t)}function aI(n,t){this.b=n,this.d=t}function uI(n,t){gT.call(this,n,t)}function oI(n,t){gT.call(this,n,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){gT.call(this,n,t)}function lI(n,t){gT.call(this,n,t)}function bI(n,t){gT.call(this,n,t)}function wI(n,t){gT.call(this,n,t)}function dI(n,t){gT.call(this,n,t)}function gI(n,t){gT.call(this,n,t)}function pI(n,t){gT.call(this,n,t)}function vI(n,t){gT.call(this,n,t)}function mI(n,t){gT.call(this,n,t)}function yI(n,t){gT.call(this,n,t)}function kI(n,t){gT.call(this,n,t)}function jI(n,t){gT.call(this,n,t)}function EI(n,t){gT.call(this,n,t)}function TI(n,t){gT.call(this,n,t)}function MI(n,t){gT.call(this,n,t)}function SI(n,t){gT.call(this,n,t)}function PI(n,t){return SN(n.c,t)}function II(n,t){return SN(t.b,n)}function CI(n,t){return-n.b.Je(t)}function OI(n,t){return SN(n.g,t)}function AI(n,t){gT.call(this,n,t)}function $I(n,t){gT.call(this,n,t)}function LI(n,t){this.a=n,this.b=t}function NI(n,t){this.a=n,this.b=t}function xI(n,t){this.a=n,this.b=t}function DI(n,t){gT.call(this,n,t)}function RI(n,t){gT.call(this,n,t)}function _I(n,t){gT.call(this,n,t)}function KI(n,t){gT.call(this,n,t)}function FI(n,t){gT.call(this,n,t)}function BI(n,t){gT.call(this,n,t)}function HI(n,t){gT.call(this,n,t)}function qI(n,t){gT.call(this,n,t)}function GI(n,t){gT.call(this,n,t)}function zI(n,t){gT.call(this,n,t)}function UI(n,t){gT.call(this,n,t)}function XI(n,t){gT.call(this,n,t)}function WI(n,t){gT.call(this,n,t)}function VI(n,t){gT.call(this,n,t)}function QI(n,t){gT.call(this,n,t)}function YI(n,t){gT.call(this,n,t)}function JI(n,t){this.a=n,this.b=t}function ZI(n,t){this.a=n,this.b=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){this.a=n,this.b=t}function cC(n,t){gT.call(this,n,t)}function aC(n,t){this.a=n,this.b=t}function uC(n,t){this.a=n,this.b=t}function oC(n,t){this.a=n,this.b=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){this.a=n,this.b=t}function lC(n,t){this.b=n,this.a=t}function bC(n,t){this.b=n,this.a=t}function wC(n,t){this.b=n,this.a=t}function dC(n,t){this.b=n,this.a=t}function gC(n,t){this.a=n,this.b=t}function pC(n,t){this.a=n,this.b=t}function vC(n,t){JLn(n.a,BB(t,56))}function mC(n,t){v7(n.a,BB(t,11))}function yC(n,t){return hH(),t!=n}function kC(){return Rk(),new ket}function jC(){qZ(),this.b=new Rv}function EC(){dxn(),this.a=new Rv}function TC(){_Z(),_G.call(this)}function MC(n,t){gT.call(this,n,t)}function SC(n,t){this.a=n,this.b=t}function PC(n,t){this.a=n,this.b=t}function IC(n,t){this.a=n,this.b=t}function CC(n,t){this.a=n,this.b=t}function OC(n,t){this.a=n,this.b=t}function AC(n,t){this.a=n,this.b=t}function $C(n,t){this.d=n,this.b=t}function LC(n,t){this.d=n,this.e=t}function NC(n,t){this.f=n,this.c=t}function xC(n,t){this.b=n,this.c=t}function DC(n,t){this.i=n,this.g=t}function RC(n,t){this.e=n,this.a=t}function _C(n,t){this.a=n,this.b=t}function KC(n,t){n.i=null,arn(n,t)}function FC(n,t){n&&VW(hAt,n,t)}function BC(n,t){return rdn(n.a,t)}function HC(n){return adn(n.c,n.b)}function qC(n){return n?n.dd():null}function GC(n){return null==n?null:n}function zC(n){return typeof n===$Wn}function UC(n){return typeof n===LWn}function XC(n){return typeof n===NWn}function WC(n,t){return n.Hd().Xb(t)}function VC(n,t){return Qcn(n.Kc(),t)}function QC(n,t){return 0==Vhn(n,t)}function YC(n,t){return Vhn(n,t)>=0}function JC(n,t){return 0!=Vhn(n,t)}function ZC(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){_jn(t,RPn(n,e))}function bO(n,t,e){_jn(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 IO(){this.b=0,this.a=!1}function CO(){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){t_.call(this,n,t)}function NO(n,t){DC.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 _O(n,t){return fx(n.a,0,t)}function KO(n,t){return n.a.a.a.cc(t)}function FO(n,t){return GC(n)===GC(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 IJ((kW(n),n))}function QO(n){return IJ((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=kC(),this.b=n}function iA(n){this.a=kC(),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 GK(),t.a+=n}function oA(n,t){return GK(),t.a+=n}function sA(n,t){return GK(),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==KPt||n==FPt}function gA(n){return n==HPt||n==_Pt}function pA(n){return n==fvt||n==hvt}function vA(n){return n!=QIt&&n!=YIt}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),Ien(n,e)}function PA(n,t,e){Ten(n,t),Oen(n,e)}function IA(n,t,e){Cen(n,t),Aen(n,e)}function CA(n,t){Dsn(n,t),xen(n,n.D)}function OA(n){NC.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 _A(n){return null!=n?nsn(n):0}function KA(n,t){return Itn(t,WJ(n))}function FA(n,t){return Itn(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(oIt)}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=IOt}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&&mC(t,n.a)}function P$(n){n.a=new $,n.c=new $}function I$(n){this.b=n,this.a=new Np}function C$(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 INn(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 _$(n,t,e){return Cdn(t,e,n.c)}function K$(n){return new xI(n.c,n.d)}function F$(n){return new xI(n.c,n.d)}function B$(n){return new xI(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<X_(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){Kx(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,CUn(n))}function IL(){IL=O,Set=new vy(null)}function CL(){(CL=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 _L(n,t,e){MH.call(this,n,t,e)}function KL(n,t,e){MH.call(this,n,t,e)}function FL(n,t,e){_L.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 Ik,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 _Pn(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 IN(n){return n.l+n.m*CQn+n.h*OQn}function CN(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 _N(n,t){return++n.b,y7(n.a,t)}function KN(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),Cvn(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 GK(),!!n&&!n.dc()}function ex(n){return new h4(3,n)}function ix(n,t){return new b_(n,n.gc(),t)}function rx(n){return ry(),Inn((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 Ix(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 Ix(n){nH.call(this,n,null,null)}function Cx(){gT.call(this,"POLYOMINO",0)}function Ox(n,t,e,i){sz.call(this,n,t,e,i)}function Ax(n,t){return KMn(),JCn(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 _x(n,t,e){n.Zc(t).Rb(e)}function Kx(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),Ien(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||zC(n)),n}function MD(n){return JH(null==n||UC(n)),n}function SD(n){return JH(null==n||XC(n)),n}function PD(n){this.q=new e.Date(j2(n))}function ID(n,t){this.c=n,pT.call(this,n,t)}function CD(n,t){this.a=n,ID.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 _D(n,t){return BB(lnn(n.b,t),149)}function KD(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 xI(n.c,n.d+n.a)}function HD(n){return BZ(),pA(BB(n,197))}function qD(){qD=O,$rt=nbn((mdn(),KCt))}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 Crn(),new c_n(t,n)}function WD(n,t){return OY(t,uJn),n.f=t,n}function VD(n,t,e){return e=TKn(n,t,3,e)}function QD(n,t,e){return e=TKn(n,t,6,e)}function YD(n,t,e){return e=TKn(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(),Cl(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 IR(n){return null==n?null:n.message}function CR(){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 _R(){this.b=new xp,this.a=new xp}function KR(){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=TKn(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(ILn(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):CTn(n,t)}function n_(n,t){return t.Hh(n.a)}function t_(n,t){Ay.call(this,e9n+n+o8n+t)}function e_(n,t,e,i){eU.call(this,n,t,e,i)}function i_(n,t,e,i){eU.call(this,n,t,e,i)}function r_(n,t,e,i){i_.call(this,n,t,e,i)}function c_(n,t,e,i){iU.call(this,n,t,e,i)}function a_(n,t,e,i){iU.call(this,n,t,e,i)}function u_(n,t,e,i){iU.call(this,n,t,e,i)}function o_(n,t,e,i){a_.call(this,n,t,e,i)}function s_(n,t,e,i){a_.call(this,n,t,e,i)}function h_(n,t,e,i){u_.call(this,n,t,e,i)}function f_(n,t,e,i){s_.call(this,n,t,e,i)}function l_(n,t,e,i){Zz.call(this,n,t,e,i)}function b_(n,t,e){this.a=n,ZN.call(this,t,e)}function w_(n,t,e){this.c=t,this.b=e,this.a=n}function d_(n,t,e){return n.d=BB(t.Kb(e),164)}function g_(n,t){return n.Aj().Nh().Kh(n,t)}function p_(n,t){return n.Aj().Nh().Ih(n,t)}function v_(n,t){return kW(n),GC(n)===GC(t)}function m_(n,t){return kW(n),GC(n)===GC(t)}function y_(n,t){return Qj(Mdn(n.a,t,!1))}function k_(n,t){return Qj(Sdn(n.a,t,!1))}function j_(n,t){return n.b.sd(new $S(n,t))}function E_(n,t){return n.b.sd(new LS(n,t))}function T_(n,t){return n.b.sd(new NS(n,t))}function M_(n,t,e){return n.lastIndexOf(t,e)}function S_(n,t,e){return Pln(n[t.b],n[e.b])}function P_(n,t){return hon(t,(HXn(),Rdt),n)}function I_(n,t){return E$(t.a.d.p,n.a.d.p)}function C_(n,t){return E$(n.a.d.p,t.a.d.p)}function O_(n,t){return Pln(n.c-n.s,t.c-t.s)}function A_(n){return n.c?E7(n.c.a,n,0):-1}function $_(n){return n<100?null:new Fj(n)}function L_(n){return n==UIt||n==WIt||n==XIt}function N_(n,t){return cL(t,15)&&QDn(n.c,t)}function x_(n,t){Qet||t&&(n.d=t)}function D_(n,t){return!!lsn(n,t)}function R_(n,t){this.c=n,GU.call(this,n,t)}function __(n){this.c=n,vO.call(this,bVn,0)}function K_(n,t){JB.call(this,n,n.length,t)}function F_(n,t,e){return BB(n.c,69).lk(t,e)}function B_(n,t,e){return BB(n.c,69).mk(t,e)}function H_(n,t,e){return oD(n,BB(t,332),e)}function q_(n,t,e){return sD(n,BB(t,332),e)}function G_(n,t,e){return CEn(n,BB(t,332),e)}function z_(n,t,e){return QTn(n,BB(t,332),e)}function U_(n,t){return null==t?null:lfn(n.b,t)}function X_(n){return UC(n)?(kW(n),n):n.ke()}function W_(n){return!isNaN(n)&&!isFinite(n)}function V_(n){sK(),this.a=(SQ(),new Ak(n))}function Q_(n){hH(),this.d=n,this.a=new Lp}function Y_(n,t,e){this.a=n,this.b=t,this.c=e}function J_(n,t,e){this.a=n,this.b=t,this.c=e}function Z_(n,t,e){this.d=n,this.b=e,this.a=t}function nK(n){P$(this),yQ(this),Frn(this,n)}function tK(n){xA(this),tH(this.c,0,n.Pc())}function eK(n){fW(n.a),z8(n.c,n.b),n.b=null}function iK(n){this.a=n,$T(),fan(Date.now())}function rK(){rK=O,iit=new r,rit=new r}function cK(){cK=O,Tet=new L,Met=new N}function aK(){aK=O,wAt=x8(Ant,HWn,1,0,5,1)}function uK(){uK=O,M$t=x8(Ant,HWn,1,0,5,1)}function oK(){oK=O,S$t=x8(Ant,HWn,1,0,5,1)}function sK(){sK=O,new rv((SQ(),SQ(),set))}function hK(n){return Z9(),Inn((n7(),Ket),n)}function fK(n){return qsn(),Inn((e8(),Zet),n)}function lK(n){return hpn(),Inn((C4(),pit),n)}function bK(n){return Rnn(),Inn((O4(),kit),n)}function wK(n){return tRn(),Inn((xan(),Fit),n)}function dK(n){return Dtn(),Inn((Z6(),Wit),n)}function gK(n){return J9(),Inn((n8(),trt),n)}function pK(n){return G7(),Inn((t8(),urt),n)}function vK(n){return dWn(),Inn((MO(),Art),n)}function mK(n){return Dan(),Inn((e7(),Krt),n)}function yK(n){return Hpn(),Inn((i7(),zrt),n)}function kK(n){return qpn(),Inn((r7(),ict),n)}function jK(n){return wM(),Inn((Q2(),act),n)}function EK(n){return _nn(),Inn((A4(),Kct),n)}function TK(n){return q7(),Inn((i8(),Lat),n)}function MK(n){return yMn(),Inn((Xnn(),qat),n)}function SK(n){return Aun(),Inn((t7(),rut),n)}function PK(n){return Bfn(),Inn((r8(),gut),n)}function IK(n,t){if(!n)throw Hp(new Ky(t))}function CK(n){return uSn(),Inn((hen(),Aut),n)}function OK(n){uG.call(this,n.d,n.c,n.a,n.b)}function AK(n){uG.call(this,n.d,n.c,n.a,n.b)}function $K(n,t,e){this.b=n,this.c=t,this.a=e}function LK(n,t,e){this.b=n,this.a=t,this.c=e}function NK(n,t,e){this.a=n,this.b=t,this.c=e}function xK(n,t,e){this.a=n,this.b=t,this.c=e}function DK(n,t,e){this.a=n,this.b=t,this.c=e}function RK(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 KK(n,t,e){this.e=t,this.b=n,this.d=e}function FK(n,t,e){return dM(),n.a.Od(t,e),t}function BK(n){var t;return(t=new jn).e=n,t}function HK(n){var t;return(t=new Zv).b=n,t}function qK(){qK=O,Uut=new Ne,Xut=new xe}function GK(){GK=O,dst=new vr,gst=new mr}function zK(n){return Cun(),Inn((a7(),ost),n)}function UK(n){return Oun(),Inn((o7(),Est),n)}function XK(n){return kDn(),Inn((Gcn(),Vst),n)}function WK(n){return $Pn(),Inn((ben(),rht),n)}function VK(n){return V8(),Inn((R4(),oht),n)}function QK(n){return Oin(),Inn((c8(),bht),n)}function YK(n){return LEn(),Inn((Hnn(),Ost),n)}function JK(n){return Irn(),Inn((o8(),Kst),n)}function ZK(n){return uin(),Inn((a8(),vht),n)}function nF(n){return Vvn(),Inn((Fnn(),Mht),n)}function tF(n){return Knn(),Inn((L4(),Cht),n)}function eF(n){return Jun(),Inn((u8(),Nht),n)}function iF(n){return gSn(),Inn((pen(),Hht),n)}function rF(n){return g7(),Inn((N4(),Uht),n)}function cF(n){return Bjn(),Inn((den(),nft),n)}function aF(n){return JMn(),Inn((wen(),oft),n)}function uF(n){return bDn(),Inn((Vun(),yft),n)}function oF(n){return _an(),Inn((h8(),Mft),n)}function sF(n){return z7(),Inn((s8(),Oft),n)}function hF(n){return z2(),Inn((_4(),Nft),n)}function fF(n){return Tbn(),Inn((qnn(),zlt),n)}function lF(n){return TTn(),Inn((gen(),rvt),n)}function bF(n){return Mhn(),Inn((f8(),svt),n)}function wF(n){return bvn(),Inn((s7(),dvt),n)}function dF(n){return ain(),Inn((w8(),Uvt),n)}function gF(n){return sNn(),Inn((qcn(),$vt),n)}function pF(n){return mon(),Inn((b8(),Rvt),n)}function vF(n){return U7(),Inn((D4(),Bvt),n)}function mF(n){return Hcn(),Inn((l8(),Yvt),n)}function yF(n){return Nvn(),Inn((Bnn(),jvt),n)}function kF(n){return A6(),Inn((x4(),tmt),n)}function jF(n){return Usn(),Inn((g8(),amt),n)}function EF(n){return dcn(),Inn((p8(),fmt),n)}function TF(n){return $un(),Inn((d8(),gmt),n)}function MF(n){return oin(),Inn((v8(),Nmt),n)}function SF(n){return Q4(),Inn((F4(),Gmt),n)}function PF(n){return gJ(),Inn((B4(),iyt),n)}function IF(n){return oZ(),Inn((H4(),uyt),n)}function CF(n){return O6(),Inn((K4(),Pyt),n)}function OF(n){return dJ(),Inn((q4(),Dyt),n)}function AF(n){return zyn(),Inn((c7(),Hyt),n)}function $F(n){return DPn(),Inn((ven(),Jyt),n)}function LF(n){return sZ(),Inn((U4(),Fkt),n)}function NF(n){return Prn(),Inn((z4(),Zkt),n)}function xF(n){return B0(),Inn((G4(),Gkt),n)}function DF(n){return Ibn(),Inn((m8(),rjt),n)}function RF(n){return D9(),Inn((X4(),ojt),n)}function _F(n){return Hsn(),Inn((y8(),bjt),n)}function KF(n){return Omn(),Inn((u7(),zjt),n)}function FF(n){return Bcn(),Inn((j8(),Qjt),n)}function BF(n){return Sbn(),Inn((k8(),eEt),n)}function HF(n){return YLn(),Inn((Unn(),BEt),n)}function qF(n){return Pbn(),Inn((E8(),UEt),n)}function GF(n){return IM(),Inn((W2(),VEt),n)}function zF(n){return CM(),Inn((X2(),JEt),n)}function UF(n){return $6(),Inn((V4(),eTt),n)}function XF(n){return $Sn(),Inn((Gnn(),sTt),n)}function WF(n){return OM(),Inn((V2(),UTt),n)}function VF(n){return Lun(),Inn((W4(),QTt),n)}function QF(n){return rpn(),Inn((znn(),bMt),n)}function YF(n){return PPn(),Inn((zcn(),EMt),n)}function JF(n){return wvn(),Inn((len(),xMt),n)}function ZF(n){return wEn(),Inn((fen(),tSt),n)}function nB(n){return lWn(),Inn((SO(),Zot),n)}function tB(n){return Srn(),Inn(($4(),zut),n)}function eB(n){return Ffn(),Inn((Wnn(),GPt),n)}function iB(n){return Rtn(),Inn((M8(),VPt),n)}function rB(n){return Mbn(),Inn((l7(),tIt),n)}function cB(n){return nMn(),Inn((yen(),sIt),n)}function aB(n){return ufn(),Inn((T8(),kIt),n)}function uB(n){return Xyn(),Inn((f7(),PIt),n)}function oB(n){return n$n(),Inn((Nan(),_It),n)}function sB(n){return cpn(),Inn((Vnn(),zIt),n)}function hB(n){return QEn(),Inn((Htn(),ZIt),n)}function fB(n){return lCn(),Inn((men(),uCt),n)}function lB(n){return mdn(),Inn((w7(),BCt),n)}function bB(n){return nKn(),Inn((Qun(),JCt),n)}function wB(n){return kUn(),Inn((Qnn(),OCt),n)}function dB(n){return Fwn(),Inn((b7(),rOt),n)}function gB(n){return Bsn(),Inn((h7(),fOt),n)}function pB(n){return hAn(),Inn((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 IB(n,t,e){f$(),mJ.call(this,n,t,e)}function CB(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$(),CB.call(this,n,t,e)}function LB(n,t,e){f$(),CB.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 _B(n,t){return yX(n),yX(t),new KH(n,t)}function KB(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){KIn(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(),ICt)?n.c:n.d}function hH(){hH=O,kUn(),Rmt=ICt,_mt=oCt}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 xI(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 Ky(t))}function mH(n,t,e){dP.call(this,n,t),this.b=e}function yH(n,t,e){LC.call(this,n,t),this.c=e}function kH(n,t,e){btn.call(this,t,e),this.d=n}function jH(n){oK(),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){LC.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 IH(n,t){return(Wfn(n)<<4|Wfn(t))&QVn}function CH(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,_in(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 _H(n){this.b=n,this.a=lz(this.b.a).Ed()}function KH(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 _y(null))}function ZH(){ZH=O,SQ(),uLt=new Gb(P7n)}function nq(){nq=O,new svn((ty(),Knt),(ey(),_nt))}function tq(){tq=O,Ctt=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 xI(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(),bCt).Hc(n.j)}function fq(n){oK(),jH.call(this,n),this.a=-1}function lq(n,t){xC.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){_zn(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 w_(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,_tt=x8(Ktt,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 Iq(n){for(yX(n);n.Ob();)n.Pb(),n.Qb()}function Cq(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 _q(n,t){return jgn(rbn(jgn(n.a).a,t.a))}function Kq(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 _q(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){Kh(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 xI(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:m_(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 IG(n,t){return cL(t,22)&&SN(n,BB(t,22))}function CG(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===C}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 xI(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 _G(){_Z(),this.f=new YT,this.e=new YT}function KG(){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=TKn(n,BB(t,49),7,e)}function QG(n,t,e){return e=TKn(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===C)}function iz(n){return!Array.isArray(n)&&n.im===C}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 Iz(n,t){return M$(n.l^t.l,n.m^t.m,n.h^t.h)}function Cz(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 Crn(),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 _z(n,t){if(n<0||n>=t)throw Hp(new Sv)}function Kz(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 lCn(),!n.Hc(eCt)&&!n.Hc(rCt)}function qz(n){return new xI(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 tK(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,e_.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){NC.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 m_(n.substr(0,t.length),t)}function hU(n,t){return XC(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){_z(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 IU(n,t,e){return ehn(n,t.g,e),orn(n.c,t),n}function CU(n){return Mzn(n,(Ffn(),KPt)),n.d=!0,n}function OU(n){return!n.j&&yb(n,F_n(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==_Qn?"-INF":""+n}function _U(n){return n==RQn?x7n:n==_Qn?"-INF":""+n}function KU(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 Cd(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),zCn(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 IX(n){return yX(n),cL(n,475)?BB(n,475):Bbn(n)}function CX(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||QKn(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 XC(t)?SJ(n,t):qC(AY(n.f,t))}function _X(n,t){return MQ(),n==PMn(t)?OMn(t):PMn(t)}function KX(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,sK(),Fnt=new SY((SQ(),SQ(),set))}function VX(){VX=O,sK(),Vnt=new vS((SQ(),SQ(),fet))}function QX(){QX=O,t$t=GCn(),gWn(),i$t&&Rkn()}function YX(n,t){return Crn(),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(K9n),K9n),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 _z(t,n.a.c.length),xq(n.a,t)}function wW(n,t){return GC(n)===GC(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):cCn(n,t)}function IW(n){return n.c.i.c==n.d.i.c}function CW(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 _W(n,t){LG(BB(t.b,65),n),Otn(t.a,new Aw(n))}function KW(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,R_.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 XC(t)?mZ(n,t,e):jIn(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 GC(n)===GC(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 IG(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((lCn(),eCt))&&PCn(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 h_(_Ot,n,5,8)),n.c}function vV(n){return!n.b&&(n.b=new h_(_Ot,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==I7n&&vb(n,Tgn(n.g,n.b)),n.e}function jV(n){return n.f==I7n&&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 IV(n,t){this.d=(kW(n),n),this.a=16449,this.c=t}function CV(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 _V(){return IM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])}function KV(){return CM(),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=IJ(e))&&++i,i}function ZV(n){var t;return cen(t=new _p,n),t}function nQ(n){var t;return DMn(t=new _p,n),t}function tQ(n,t){return _cn(t,RX(n.f,t)),null}function eQ(n){return Yin(n)||null}function iQ(n){return!n.b&&(n.b=new eU(KOt,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?Ien(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===C)),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 I,fet=new M}function PQ(){PQ=O,wet=new R,det=new R,get=new _}function IQ(){IQ=O,hit=new gn,lit=new RG,fit=new pn}function CQ(){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 QCn(n)&&qy(TD(ZAn(n,(HXn(),dgt))))}function $Q(n,t){return JCn(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 _Q(n){var t;GK(),(t=BB(n.g,10)).n.a=n.d.c+t.d.b}function KQ(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(X_(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){LC.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 Ct),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)&&m_(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(),Iut)&&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 IY(n,t){var e;return e=nE(n.gm),null==t?e:e+": "+t}function CY(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&&m_(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 _Y(n,t){NR.call(this),xtn(this),this.a=n,this.c=t}function KY(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 Knn(),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,[_vt,Kvt])}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,_kt])}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(_it,1),$Vn,427,0,[vit,mit])}function aJ(){return _nn(),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 GC(n.a)===GC((wcn(),C$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 xI(n.a,n.b)),nb(this,zB(t))}function dJ(){dJ=O,Lyt=new oI(cJn,0),Nyt=new oI(aJn,1)}function gJ(){gJ=O,tyt=new cI(aJn,0),nyt=new cI(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 $K(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?qC(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 IJ(n){return 0|Math.max(Math.min(n,DWn),-2147483648)}function CJ(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 _J(n,t,e){this.a=new Np,this.e=n,this.f=t,this.c=e}function KJ(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):qCn(n,t)}function nZ(n,t){var e;return oMn(e=new Lq(t),n),new tK(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(Kmt,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 rI(pJn,0),cyt=new rI("UP",1)}function sZ(){sZ=O,Rkt=new bI(U3n,0),_kt=new bI("FAN",1)}function hZ(){hZ=O,fAt=new xp,hAt=new xp,FC(yet,new wo)}function fZ(n){if(0!=n.p)throw Hp(new dv);return JC(n.f,0)}function lZ(n){if(0!=n.p)throw Hp(new dv);return JC(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?jIn(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 IZ(n,t){n.i&&y7(n.i.j,n),n.i=t,n.i&&WB(n.i.j,n)}function CZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new tK(e))}function OZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new tK(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 CG(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 _Z(){_Z=O,vmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function KZ(){KZ=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)&&AIn(P5(BB(n.Cb,88)),2)}function JZ(n,t){cL(n.Cb,88)&&AIn(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 xC(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 _p,n),t}function i1(n){var t;return iE(),cen(t=new _p,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&KQn)?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,Cat,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 Irn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])}function I1(){return z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Ift,Sft])}function C1(){return _an(),Pun(Gk(Cft,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 Ibn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])}function _1(){return Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])}function K1(){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(SIt,1),$Vn,334,0,[vIt,pIt,mIt])}function q1(){return Rtn(),Pun(Gk(nIt,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,N_n(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(Iz(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 tK(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):GC(n)===GC(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 I0(n,t,e,i,r,c){J5.call(this,n,t,e,i,r),c&&(this.o=-2)}function C0(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 _0(n,t){this.g=n,this.d=(R5(),eLt),this.a=eLt,this.b=t}function K0(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 wI("DFS",0),Bkt=new wI("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&&_vn(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 CZ(new tK(n),t,e))}function i2(n,t,e){yX(n),Dyn(new OZ(new tK(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),CDn(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=tKn(t=new lX,n),yzn(t),e}function s2(){var n,t;return n=new _p,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(LIn(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(CYn));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 K,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 I2(n){return new J6((lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))))}function C2(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 _2(n,t,e){var i;return i=Qdn(e),w_n(n.g,i,t),w_n(n.i,t,e),t}function K2(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((CM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])))}function W2(){W2=O,VEt=lhn((IM(),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 Cun(),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(Cst,1),$Vn,411,0,[vst,mst,yst,kst])}function c3(n){return n.j==(kUn(),SCt)&&SN(UOn(n),oCt)}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(Cz(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&&Cnn((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,_yt,Kyt,Fyt])}function E3(){return Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])}function T3(){return mdn(),Pun(Gk(YCt,1),$Vn,374,0,[_Ct,KCt,RCt,DCt])}function M3(){return Xyn(),Pun(Gk(RIt,1),$Vn,285,0,[MIt,jIt,EIt,TIt])}function S3(){return Mbn(),Pun(Gk(oIt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])}function P3(){return Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZCt,tOt,nOt])}function I3(){return Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])}function C3(n){return hZ(),hU(fAt,n)?BB(RX(fAt,n),331).ug():null}function O3(n,t,e){return t<0?qCn(n,e):BB(e,66).Nj().Sj(n,n.yh(),t)}function A3(n,t,e){var i;return i=Qdn(e),w_n(n.d,i,t),VW(n.e,t,e),t}function $3(n,t,e){var i;return i=Qdn(e),w_n(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 _3(n){if(7!=n.p)throw Hp(new dv);return dG(n.k)<<16>>16}function K3(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 Ck,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 rC(t,i))}function q3(n,t,e){return Tz(MD(qC(AY(n.f,t))),MD(qC(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(),Iut)&&t==Iut?4:n==Iut||t==Iut?8:32}function W3(n,t){return GC(t)===GC(n)?"(this Map)":null==t?zWn:Bbn(t)}function V3(n,t){return BB(null==t?qC(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;)Kx(n,e.i,e.j),e=JJ(e);return n}function J3(n,t){var e;return e=rY(HB(new I7(n,t))),Iq(new I7(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,mIn(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(Ckn(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):qC(AY(n.f,t)))}function k4(n,t){return iO(null!=t?SJ(n,t):qC(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 I4(n){yTn(),hL(this,dG(e0(kz(n,24),sYn)),dG(e0(n,sYn)))}function C4(){C4=O,pit=lhn((hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])))}function O4(){O4=O,kit=lhn((Rnn(),Pun(Gk(_it,1),$Vn,427,0,[vit,mit])))}function A4(){A4=O,Kct=lhn((_nn(),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,Cht=lhn((Knn(),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,[_vt,Kvt])))}function R4(){R4=O,oht=lhn((V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])))}function _4(){_4=O,Nft=lhn((z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])))}function K4(){K4=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,_kt])))}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;)Kx(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?jIn(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,_at,Kat,Fat,Bat])}function h5(){return kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])}function f5(n){return Dk(),function(){return K2(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 xI(RQn,RQn),this.a=new xI(_Qn,_Qn)}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)&&m_(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 I5(){return Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,KPt,_Pt,HPt])}function C5(){return cpn(),Pun(Gk(JIt,1),$Vn,249,0,[BIt,qIt,KIt,FIt,HIt])}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(Iht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])}function N5(){return YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,_Et,REt,KEt])}function x5(){return LEn(),Pun(Gk(_st,1),$Vn,363,0,[Mst,Pst,Ist,Sst,Tst])}function D5(){return Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,Klt,Flt,Blt,Hlt])}function R5(){var n,t;R5=O,iE(),t=new Ev,tLt=t,n=new Om,eLt=n}function _5(n){var t;return n.c||cL(t=n.r,88)&&(n.c=BB(t,26)),n.c}function K5(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):Cxn(n,-t)}function z5(n,t){return 0==t||0==n.e?n:t>0?Cxn(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),jIn(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 tK(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)&&W_(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(dIn(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 XC(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 I6(){I6=O,TMt=new up("org.eclipse.elk.labels.labelManager")}function C6(){C6=O,est=new iR("separateLayerConnections",(Cun(),ast))}function O6(){O6=O,Myt=new uI("REGULAR",0),Tyt=new uI("CRITICAL",1)}function A6(){A6=O,Zvt=new XP("STACKED",0),Jvt=new XP("SEQUENCED",1)}function $6(){$6=O,nTt=new TI("FIXED",0),ZEt=new TI("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 _6(n,t){return kW(t),n.c<n.d&&(n.ze(t,n.c++),!0)}function K6(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 Y_(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,(I6(),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,Cat,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,Kst=lhn((Irn(),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,Ift,Sft])))}function h8(){h8=O,Mft=lhn((_an(),Pun(Gk(Cft,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((Ibn(),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,kIt=lhn((ufn(),Pun(Gk(SIt,1),$Vn,334,0,[vIt,pIt,mIt])))}function M8(){M8=O,VPt=lhn((Rtn(),Pun(Gk(nIt,1),$Vn,272,0,[zPt,UPt,XPt])))}function S8(){return QEn(),Pun(Gk(aCt,1),$Vn,98,0,[YIt,QIt,VIt,UIt,WIt,XIt])}function P8(n,t){return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),rdn(n.o,t)}function I8(n){return!n.g&&(n.g=new oo),!n.g.d&&(n.g.d=new lp(n)),n.g.d}function C8(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 _8(n,t,e){BB(n.b,65),BB(n.b,65),BB(n.b,65),Otn(n.a,new NK(e,t,n))}function K8(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(_et,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,[IMt,AMt,$Mt,LMt,CMt,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,_ht,Rht,Fht,Kht])}function r9(){return DPn(),Pun(Gk(Kkt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])}function c9(){return lCn(),Pun(Gk(CCt,1),$Vn,273,0,[rCt,eCt,iCt,tCt,nCt,cCt])}function a9(){return nMn(),Pun(Gk(yIt,1),$Vn,312,0,[aIt,rIt,uIt,eIt,cIt,iIt])}function u9(){return uSn(),Pun(Gk($ut,1),$Vn,267,0,[Iut,Put,Mut,Cut,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();)$_n(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 I9(){I9=O,Ukt=ogn(ogn(FM(new B2,(zyn(),_yt)),(DPn(),Qyt)),Uyt)}function C9(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(!T_(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((lCn(),iCt)),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 pI("LEAF_NUMBER",0),ajt=new pI("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 _9(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 K9(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,gIn(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(CYn));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,Ket=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,Krt=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,_yt,Kyt,Fyt])))}function a7(){a7=O,ost=lhn((Cun(),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(Cst,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,PIt=lhn((Xyn(),Pun(Gk(RIt,1),$Vn,285,0,[MIt,jIt,EIt,TIt])))}function l7(){l7=O,tIt=lhn((Mbn(),Pun(Gk(oIt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])))}function b7(){b7=O,rOt=lhn((Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZCt,tOt,nOt])))}function w7(){w7=O,BCt=lhn((mdn(),Pun(Gk(YCt,1),$Vn,374,0,[_Ct,KCt,RCt,DCt])))}function d7(){d7=O,qBn(),HLt=RQn,BLt=_Qn,GLt=new Nb(RQn),qLt=new Nb(_Qn)}function g7(){g7=O,Ght=new OP(QZn,0),qht=new OP("IMPROVE_STRAIGHTNESS",1)}function p7(n,t){return hH(),WB(n,new rC(t,iln(t.e.c.length+t.g.c.length)))}function v7(n,t){return hH(),WB(n,new rC(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 CS(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 I7(n,t){var e;this.f=n,this.b=t,e=BB(RX(n.b,t),283),this.c=e?e.b:null}function C7(){GK(),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?IY(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 Ky($Rn(t,Pun(Gk(Ant,1),HWn,1,5,[e,i]))))}function _7(n,t){return cV(t,xq(n.f,0))||cV(t,xq(n.f,1))||cV(t,xq(n.f,2))}function K7(n,t){L_(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 RC(n,t)),i}function B7(n,t){var e,i;return!(i=(e=BB(t,677)).pk())&&e.tk(i=new _0(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),Cat=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),Ift=new xP("TOP",1),Sft=new xP(oJn,2)}function U7(){U7=O,_vt=new GP("INPUT_ORDER",0),Kvt=new GP("PORT_DEGREE",1)}function X7(){X7=O,btt=M$(SQn,SQn,524287),wtt=M$(0,0,IQn),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||fKn(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&&!_pn(e.k,i.k)}function nnn(n,t){Pen(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function tnn(n,t){Ien(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function enn(n,t){Sen(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function inn(n,t){Men(n,null==t||W_((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),_8(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=Ckn(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 __(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 _kn(n,(X7(),gtt))<0?-IN(aon(n)):n.l+n.m*CQn+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 Inn(n,t){var e;return kW(t),xnn(!!(e=n[":"+t]),Pun(Gk(Ant,1),HWn,1,5,[t])),e}function Cnn(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=Cbn(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 Ky(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 _nn(){_nn=O,Dct=new XS("EADES",0),Rct=new XS("FRUCHTERMAN_REINGOLD",1)}function Knn(){Knn=O,Sht=new PP("READING_DIRECTION",0),Pht=new PP("ROTATION",1)}function Fnn(){Fnn=O,Mht=lhn((Vvn(),Pun(Gk(Iht,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(_st,1),$Vn,363,0,[Mst,Pst,Ist,Sst,Tst])))}function qnn(){qnn=O,zlt=lhn((Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,Klt,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,_Et,REt,KEt])))}function Xnn(){Xnn=O,qat=lhn((yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,_at,Kat,Fat,Bat])))}function Wnn(){Wnn=O,GPt=lhn((Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,KPt,_Pt,HPt])))}function Vnn(){Vnn=O,zIt=lhn((cpn(),Pun(Gk(JIt,1),$Vn,249,0,[BIt,qIt,KIt,FIt,HIt])))}function Qnn(){Qnn=O,OCt=lhn((kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])))}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,KVn)<0?KVn:dG(n)}function etn(n){return n<3?(lin(n,CVn),n+1):n<OVn?IJ(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==(cK(),cK(),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 Ky("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 IJ(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),JCn(n.a,i,new LK(a,t,e.f))}function Ptn(n,t){var e;if(!(e=NNn(n.Tg(),t)))throw Hp(new Ky(r6n+t+u6n));return e}function Itn(n,t){var e;for(e=n;JJ(e);)if((e=JJ(e))==t)return!0;return!1}function Ctn(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){L_(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 KI(eJn,0),UPt=new KI("HEAD",1),XPt=new KI("TAIL",2)}function _tn(){return hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])}function Ktn(){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,[Cvt,Tvt,Pvt,Mvt,Svt,Evt,Ivt,Ovt])}function Htn(){Htn=O,ZIt=lhn((QEn(),Pun(Gk(aCt,1),$Vn,98,0,[YIt,QIt,VIt,UIt,WIt,XIt])))}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 tK(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)),K$(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(_Vn),e.Math.abs(n-t)<=_Vn||n==t||isNaN(n)&&isNaN(t)}function uen(n,t){return h$(),rin(_Vn),e.Math.abs(n-t)<=_Vn||n==t||isNaN(n)&&isNaN(t)}function oen(n,t){return KMn(),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,[Iut,Put,Mut,Cut,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,[IMt,AMt,$Mt,LMt,CMt,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,_ht,Rht,Fht,Kht])))}function ven(){ven=O,Jyt=lhn((DPn(),Pun(Gk(Kkt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])))}function men(){men=O,uCt=lhn((lCn(),Pun(Gk(CCt,1),$Vn,273,0,[rCt,eCt,iCt,tCt,nCt,cCt])))}function yen(){yen=O,sIt=lhn((nMn(),Pun(Gk(yIt,1),$Vn,312,0,[aIt,rIt,uIt,eIt,cIt,iIt])))}function ken(){return n$n(),Pun(Gk(GIt,1),$Vn,93,0,[CIt,IIt,AIt,DIt,xIt,NIt,$It,LIt,OIt])}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 Ien(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 Cen(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 _en(n,t){var e,i;return tE(),i=new uo,!!t&&CNn(i,t),xin(e=i,n),e}function Ken(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,KIn(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 Ky("tolerance ("+n+") must be >= 0"));return n}function cin(){return cMt||ksn(cMt=new ORn,Pun(Gk(Kit,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 t_(t,e));return new R_(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 Chn(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 Ky(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 l_(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 nKn(),Pun(Gk(iOt,1),$Vn,259,0,[GCt,UCt,qCt,XCt,WCt,QCt,VCt,zCt,HCt])}function Tin(){return tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Cit])}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)),_at,Oot),Kat,Cot)}function Pin(){Pin=O,jmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),_at,Oot),Kat,Cot)}function Iin(){Iin=O,Mmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),_at,Oot),Kat,Cot)}function Cin(){Cin=O,Imt=WG(dq(dq(new B2,(yMn(),Kat),(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 _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 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 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 xC(t,n)):new _C(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),XC(n)?mZ(e,n,t):jIn(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 K5(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),_In(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),Ien(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 dI("P1_NODE_PLACEMENT",0),Ykt=new dI("P2_EDGE_ROUTING",1)}function Irn(){Irn=O,Rst=new kP("START",0),Dst=new kP("MIDDLE",1),xst=new kP("END",2)}function Crn(){Crn=O,tst=new iR("edgelabelcenterednessanalysis.includelabel",(hN(),ptt))}function Orn(n,t){JT(AV(new Rq(null,new w1(new Ib(n.b),1)),new JI(n,t)),new nC(n,t))}function Arn(){this.c=new CE(0),this.b=new CE(B3n),this.d=new CE(F3n),this.a=new CE(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 _rn(n,t){var e;(e=new pD).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function Krn(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 QC((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.b))}function icn(n){var t;return QC((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.c))}function rcn(n){var t;return QC((t=E2(n)).a,0)?(fM(),fM(),Iet):(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 bIn(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 Cm,C$t=Pun(Gk(FAt,1),N9n,170,0,[]),I$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,_ut=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 $Cn(new xI((e=KTn(n)).c,e.d),new xI(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,UIn(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 Icn(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 Ccn(n){switch(n.g){case 2:return kUn(),ICt;case 4:return kUn(),oCt;default:return n}}function Ocn(n){switch(n.g){case 1:return kUn(),SCt;case 3:return kUn(),sCt;default:return n}}function Acn(n){var t,e,i;return n.j==(kUn(),sCt)&&(e=SN(t=UOn(n),oCt),(i=SN(t,ICt))||i&&e)}function $cn(n){var t;return new Y_(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(),XC(n)?f6(n,SD(t)):UC(n)?Tz(n,MD(t)):zC(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&&KCn(n,t),i&&n.xk(!0)}function _cn(n,t){var e;qQ(e=BB(t,183),"x",n.i),qQ(e,"y",n.j),qQ(e,I6n,n.g),qQ(e,P6n,n.f)}function Kcn(){Kcn=O,Cmt=ogn(jO(dq(dq(new B2,(yMn(),Kat),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Fcn(){Fcn=O,Dmt=ogn(jO(dq(dq(new B2,(yMn(),Kat),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Bcn(){Bcn=O,Xjt=new yI(QZn,0),Wjt=new yI("POLAR_COORDINATE",1),Ujt=new yI("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,[Cvt,Tvt,Pvt,Mvt,Svt,Evt,Ivt,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 _v,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 IT(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*CQn:t==PQn?n.l+n.m*CQn-OQn:n}function oan(n){return qD(),n.A.Hc((mdn(),DCt))&&!n.B.Hc((nKn(),UCt))?ndn(n):null}function san(n){if(kW(n),0==n.length)throw Hp(new Mk("Zero length BigInteger"));i_n(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(U_(n.d,t),19),i=BB(U_(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),_Mn(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 Kf).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 EC;case 3:return new hyn;default:return new Cf}}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=IJ(i/CQn),M$(IJ(i-t*CQn),t,e)}function Ian(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 Can(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,_It=lhn((n$n(),Pun(Gk(GIt,1),$Vn,93,0,[CIt,IIt,AIt,DIt,xIt,NIt,$It,LIt,OIt])))}function xan(){xan=O,Fit=lhn((tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Cit])))}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 _an(){_an=O,jft=new NP("ONE_SIDED",0),Eft=new NP("TWO_SIDED",1),kft=new NP("OFF",2)}function Kan(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&&(J_n(n,t,!0),JT(new Rq(null,new w1(t,16)),new qd(n))),J_n(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)))?ZCn(t):ZCn(dG(n))+32)}function Qan(n){var t;return t=BB(mMn(n,(hWn(),Qft)),61),n.k==(uSn(),Mut)&&(t==(kUn(),ICt)||t==oCt)}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(),sCt)?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(),KPt)||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)),Kpn(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 aC(n,e)).a,i.b,r),r}function uun(n){var t;return(!n.a||0==(1&n.Bb)&&n.a.kh())&&cL(t=Ckn(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,Khn(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 Ky($Rn("value already present: %s",Pun(Gk(Ant,1),HWn,1,5,[t]))))}function kun(n,t){return!(!n||!t||n==t)&&Kdn(n.d.c,t.d.c+t.d.b)&&Kdn(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 NI(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=C,r.__elementTypeId$=e,r.__elementTypeCategory$=i,r}function Iun(n,t,i,r,c){return jDn(),e.Math.min(zGn(n,t,i,r,c),zGn(i,r,n,t,qx(new xI(c.a,c.b))))}function Cun(){Cun=O,ast=new tP(QZn,0),rst=new tP(I1n,1),cst=new tP(C1n,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 SI("MINIMUM_SPANNING_TREE",0),XTt=new SI("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 _un(n,t,e){var i;$U(n.a),Otn(e.i,new jg(n)),kgn(n,i=new I$(BB(RX(n.a,t.b),65)),t),e.f=i}function Kun(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((IXn(),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 EIt;case 2:return jIt;case 3:return TIt;default:return MIt}}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,JCt=lhn((nKn(),Pun(Gk(iOt,1),$Vn,259,0,[GCt,UCt,qCt,XCt,WCt,QCt,VCt,zCt,HCt])))}function Yun(){Yun=O,Xkt=dq(ogn(ogn(FM(dq(new B2,(zyn(),_yt),(DPn(),Qyt)),Kyt),Xyt),Wyt),Fyt,Vyt)}function Jun(){Jun=O,Aht=new IP(QZn,0),Oht=new IP("INCOMING_ONLY",1),$ht=new IP("OUTGOING_ONLY",2)}function Zun(){Zun=O,ftt={boolean:UT,number:Iy,string:Cy,object:TIn,function:TIn,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)&&JC(n<64?e0(yz(1,n),e):e0(yz(1,n-64),t),0)}function eon(n,t){return!(!n||!t||n==t)&&Cbn(n.b.c,t.b.c+t.b.b)<0&&Cbn(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(),SCt)),Son(n,t,sCt)}function con(n){var t,e;for(null==n.j&&(n.j=(PY(),Cjn(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 t_(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(),C$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 KVn;if(0==n)return 0;for(t=OVn;0==(t&n);t>>=1);return t}function jon(n){var t,e;return 32==(e=ZCn(n.h))?32==(t=ZCn(n.m))?ZCn(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 Ion(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 Con(n){var t;return(!n.c||0==(1&n.Bb)&&0!=(64&n.c.Db))&&cL(t=Ckn(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(),oCt),!0,!1),jxn(n,e,i,ICt,!1,!1),i}function xon(n,t,e){var i,r;return r=N2(t,"labels"),XAn((i=new gC(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 _on(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 Kon(n,t,e){if(yX(t),e.Ob())for(sO(t,IX(e.Pb()));e.Ob();)sO(t,n.a),sO(t,IX(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);)vC(t,aLn(n))}function Xon(n,t,e){n.g=APn(n,t,(kUn(),oCt),n.b),n.d=APn(n,e,oCt,n.b),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Won(n,t,e){n.g=APn(n,t,(kUn(),ICt),n.j),n.d=APn(n,e,ICt,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 ZI(t,e)))).sd((dM(),tit))}function Qon(n){var t;return EW(n),t=new sn,n.a.sd(t)?(IL(),new vy(kW(t.a))):(IL(),IL(),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;)_x(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 XC(n)?vvn(n):UC(n)?VO(n):zC(n)?(kW(n),n?1231:1237):iz(n)?n.Hb():AG(n)?PN(n):tY(n)}function tsn(n){return XC(n)?Qtt:UC(n)?Ptt:zC(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 Ky(N4n+(null!=n.f?n.f:""+n.g)))}function isn(n){if(0===n.g)return new iu;throw Hp(new Ky(N4n+(null!=n.f?n.f:""+n.g)))}function rsn(n,t,e){if(0===t)return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),void tan(n.o,e);yIn(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 Ig(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)&&(JCn(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),_In(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,IVn,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 Isn(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 Csn(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 Ky("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 _sn(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.pl()}}function Ksn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n.ql()}}function Fsn(n){KJ.call(this,"The given string does not match the expected format for individual spacings.",n)}function Bsn(){Bsn=O,uOt=new cC("ELK",0),oOt=new cC("JSON",1),aOt=new cC("DOT",2),sOt=new cC("SVG",3)}function Hsn(){Hsn=O,sjt=new vI(QZn,0),hjt=new vI("RADIAL_COMPACTION",1),fjt=new vI("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,dIt=new WA(15),wIt=new XA((sWn(),XSt),dIt),gIt=gPt,hIt=aSt,fIt=_St,bIt=BSt,lIt=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)|YC(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 _z(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 Ky(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),IK(!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)<K3n||e.Math.abs(i-n)<K3n||(t-n>K3n?n-i>K3n:i-n>K3n)}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[IJ(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,Ixn(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 _P("DUMMY_NODE_OVER",0),avt=new _P("DUMMY_NODE_UNDER",1),uvt=new _P("EQUAL",2)}function Shn(){Shn=O,Xat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[(Ffn(),KPt),FPt])),Wat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[HPt,_Pt]))}function Phn(n){return(kUn(),yCt).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 Ihn(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 Chn(n,t){var e,i;e=n.nk(t,null),i=null,t&&(iE(),cen(i=new _p,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 Ip(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 _hn(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 Khn(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(Imt),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),dft))&&dq(t,(yMn(),Kat),(lWn(),Bot)),t}function Whn(n,t,e){var i;i=new MOn(n,t),JCn(n.r,t.Hf(),i),e&&!Hz(n.u)&&(i.c=new yJ(n.d),Otn(t.wf(),new Iw(i)))}function Vhn(n,t){var e;return JO(n)&&JO(t)&&(e=n-t,!isNaN(e))?e:_kn(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=kIn((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,vIt=new HI("INHERIT",0),pIt=new HI("INCLUDE_CHILDREN",1),mIt=new HI("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(sK(),n.gc()){case 0:return VX(),Vnt;case 1:return new yk(n.Kc().Pb());default:return new vS(n)}}function ffn(n){switch(sK(),n.c){case 0:return VX(),Vnt;case 1:return new yk(JIn(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;GK(),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 Ik).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 Ifn(n,t){var e,i;return!(i=(e=BB(t,676)).vk())&&e.wk(i=cL(t,88)?new $C(n,BB(t,26)):new K0(n,BB(t,148))),i}function Cfn(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)?(IL(),new vy(kW(T7(n,e.a,t)))):(EW(n),IL(),IL(),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 XC(n)?m_(n,t):UC(n)?v_(n,t):zC(n)?(kW(n),GC(n)===GC(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?Itt:n==xNt?Ptt:n==LNt?Rtt:n==RNt?Ktt: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 _fn(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 Kfn(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 _I(hJn,0),FPt=new _I(aJn,1),KPt=new _I(cJn,2),_Pt=new _I(pJn,3),HPt=new _I("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 Ky(mYn+n+yYn+t))}function qfn(n,t,e){if(t<0)cCn(n,e);else{if(!e.Ij())throw Hp(new Ky(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),GC(t)===GC(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 Crt}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?_En(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(),Ctt)[t])&&(e=Ctt[t]=new xb(n)),e):new xb(n)}function rln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(Tq(),_tt)[t])&&(e=_tt[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(),sCt)||t==SCt)}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),GC(t)===GC(e))return!0;return!1}function sln(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new t_(t,i));if(n.hi()&&n.Hc(e))throw Hp(new Ky(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 _cn(t,e),null}function fln(n,t){var e;if(cL(e=NNn(n,t),322))return BB(e,34);throw Hp(new Ky(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(),Ift))}}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(),UIt)))}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 KPt;case 4:return _Pt;case 3:return HPt;default:return BPt}}function Eln(n){switch(n.g){case 1:return ICt;case 2:return sCt;case 3:return oCt;case 4:return SCt;default:return PCt}}function Tln(n){switch(n.g){case 1:return SCt;case 2:return ICt;case 3:return sCt;case 4:return oCt;default:return PCt}}function Mln(n){switch(n.g){case 1:return oCt;case 2:return SCt;case 3:return ICt;case 4:return sCt;default:return PCt}}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 Iln(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 Cln(n,t,e){var i,r;return n.ej()?(r=n.fj(),i=YCn(n,t,e),n.$i(n.Zi(7,iln(e),i,t,r)),i):YCn(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&KQn),t?n.Bb|=KQn: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 _cn(t,e),null}function Rln(n){var t,e;for(e=G$n(Utn(n)).Kc();e.Ob();)if(NKn(n,t=SD(e.Pb())))return y4((UM(),RAt),t);return null}function _ln(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 Kln(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 Ik,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:_Pt: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 Y_(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{Kon(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||eCn(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,IJ(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=IJ(e.Math.floor(i*uYn))&sYn,t=IJ(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(NKn(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 Ky(r6n+t+"' is not a valid reference"))}function gbn(n){var t;return(t=bSn(n))>34028234663852886e22?RQn:t<-34028234663852886e22?_Qn: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(),Ilt))))||++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),Klt=new BP("FIRST",1),Flt=new BP(I1n,2),Blt=new BP("LAST",3),Hlt=new BP(C1n,4)}function Mbn(){Mbn=O,ZPt=new FI(hJn,0),YPt=new FI("POLYLINE",1),QPt=new FI("ORTHOGONAL",2),JPt=new FI("SPLINES",3)}function Sbn(){Sbn=O,Zjt=new kI("ASPECT_RATIO_DRIVEN",0),nEt=new kI("MAX_SCALE_DRIVEN",1),Jjt=new kI("AREA_DRIVEN",2)}function Pbn(){Pbn=O,HEt=new EI("P1_STRUCTURE",0),qEt=new EI("P2_PROCESSING_ORDER",1),GEt=new EI("P3_EXECUTION",2)}function Ibn(){Ibn=O,ejt=new gI("OVERLAP_REMOVAL",0),njt=new gI("COMPACTION",1),tjt=new gI("GRAPH_SIZE_CALCULATION",2)}function Cbn(n,t){return h$(),rin(_Vn),e.Math.abs(n-t)<=_Vn||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 Ky(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 Ky("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 Kfn(n,t,e,i)}function _bn(n){return n.k==(uSn(),Iut)&&o5(new Rq(null,new zU(new oz(ZL(lbn(n).a.Kc(),new h)))),new qr)}function Kbn(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==IQn&&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===C?nE(tsn(n))+"@"+(nsn(n)>>>0).toString(16):n.toString()}function Hbn(n){var t;this.a=new Y_(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(),SCt)),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)||CIn(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))&&Cln(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 Il),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)),_qn(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 GC(n)===GC(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 sCt;case 1:return oCt;case 3:return SCt;case 2:return ICt;default:return PCt}}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 Ky(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 Ky(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 Ky(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 Ky(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&&Icn(n)==n.d-1&&(--e,e|=0),t-=ZCn(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(),GC(t)===GC(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((nKn(),VCt))&&(BB(n.We(fPt),174).Fc((lCn(),cCt)),BB(n.We(qSt),174).Mc(VCt))}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 Il,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),Y_n(n),t=lDn(n),JT(new Rq(null,new w1(n.d,16)),new Cw(n)),t}function Iwn(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 Cwn(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"),Cen(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 _B(n.j,(gcn(),Nut));case 2:return _B(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 Ien(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,Ipt,Cpt,$pt,Npt,kpt,Tpt,Apt]))}function _wn(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 Kwn(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 YI("SIMPLE",0),ZCt=new YI("GROUP_DEC",1),tOt=new YI("GROUP_MIXED",2),nOt=new YI("GROUP_INC",3)}function Bwn(){Bwn=O,z$t=new $o,_$t=new Lo,K$t=new No,F$t=new xo,B$t=new Do,H$t=new Ro,q$t=new _o,G$t=new Ko,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,IJ(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(),Cfn(n,i,t),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):Cfn(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((nKn(),GCt))&&(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),_gt),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,LCt=new WA(15),$Ct=new XA((sWn(),XSt),LCt),xCt=new XA(LPt,15),NCt=new XA(vPt,iln(0)),ACt=new XA(cSt,dZn)}function mdn(){mdn=O,_Ct=new VI("PORTS",0),KCt=new VI("PORT_LABELS",1),RCt=new VI("NODE_LABELS",2),DCt=new VI("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 Idn(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 Cdn(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(_Vn),(e.Math.abs(n-t)<=_Vn||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(_Vn),(e.Math.abs(n-t)<=_Vn||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(_Vn),(e.Math.abs(n-t)<=_Vn||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(K8(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=tKn(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 kCn(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 Ky("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 Ky("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 GC(t)===GC(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(uCn(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=n_(n.e,n.a))||!m_(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,_8(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&&(!!m_(n,t)||n.length==t.length&&m_(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))&&tKn(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 I$(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 Ign(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 Cgn(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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;GC(ZAn(n,(sWn(),ESt)))===GC((ufn(),vIt))&&(JJ(n)?(t=BB(ZAn(JJ(n),ESt),334),Ypn(n,ESt,t)):Ypn(n,ESt,mIt))}function xgn(n,t,e){var i,r;fMn(n.e,t,e,(kUn(),ICt)),fMn(n.i,t,e,oCt),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))&&JCn(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 _gn(n,t,e){var i;(Wet?(gwn(n),1):Vet||Jet?(lM(),1):Yet&&(lM(),0))&&((i=new iK(t)).b=e,aSn(n,i))}function Kgn(n,t){var e;e=!n.A.Hc((mdn(),KCt))||n.q==(QEn(),XIt),n.u.Hc((lCn(),eCt))?e?NUn(n,t):aUn(n,t):n.u.Hc(rCt)&&(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 xI(0,i);case 2:case 4:return new xI(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(_rt,1),$Vn,159,0,[Prt,Srt,Irt,vrt,prt,mrt,jrt,krt,yrt,Mrt,Trt,Ert,drt,wrt,grt,lrt,frt,brt,srt,ort,hrt,Crt])}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 AI("PARENTS",0),sMt=new AI("NODES",1),uMt=new AI("EDGES",2),fMt=new AI("PORTS",3),oMt=new AI("LABELS",4)}function cpn(){cpn=O,BIt=new zI("DISTRIBUTED",0),qIt=new zI("JUSTIFIED",1),KIt=new zI("BEGIN",2),FIt=new zI(eJn,3),HIt=new zI("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(),KPt;case 2:return Ffn(),FPt;case 3:return Ffn(),_Pt}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 Z_(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=uIn(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((IXn(),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;L_(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(),IPt))&&(e=BB(mMn(n,IPt),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(),Iut)&&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):qCn(n,i):e<0?qCn(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,Kkn(),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=_Qn}}function Mpn(n,t,e){var i;if(n.c)Pen(n.c,n.c.i+t),Ien(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(!m_(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 Ipn(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 Cpn(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,K$(e.b))-W8(t.b,K$(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 Ik).a+="n",n.k!=(uSn(),Iut)&&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 _i),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 h_(KOt,n,7,4)),void sqn(n.e);case 8:return!n.d&&(n.d=new h_(KOt,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 _pn(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 Kpn(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 KS(mJn,0),Frt=new KS(yJn,1),Hrt=new KS(kJn,2),qrt=new KS(jJn,3),Brt.a=!1,Frt.a=!0,Hrt.a=!1,qrt.a=!0}function qpn(){qpn=O,Zrt=new _S(mJn,0),Jrt=new _S(yJn,1),nct=new _S(kJn,2),tct=new _S(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 tK(i)),e=new Wb(i);e.a<e.c.c.length;)(t=BB(n0(e),10)).p=hIn(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 XC(n)?!!OWn[t]:n.hm?!!n.hm[t]:UC(n)?!!CWn[t]:!!zC(n)&&!!IWn[t]}function Ypn(n,t,e){return null==e?(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((IXn(),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(),Crt)&&(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)&&Kp(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 IJ(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(_sn(n))return mz(n),n.Lk()&&(t=FCn(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(GC(n.Gk(BB(n.g[e],56)))===GC(t))return e;return-1}function ovn(n,t,e){var i,r;if(t>=(r=n.gc()))throw Hp(new t_(t,r));if(n.hi()&&(i=n.Xc(e))>=0&&i!=t)throw Hp(new Ky(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(),_nt)||t==(ty(),Knt))throw Hp(new Ky("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(),Iut)}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 KP(QZn,0),bvt=new KP("PORT_POSITION",1),fvt=new KP("NODE_SIZE_WHERE_SPACE_PERMITS",2),hvt=new KP("NODE_SIZE",3)}function wvn(){wvn=O,IMt=new DI("AUTOMATIC",0),AMt=new DI(cJn,1),$Mt=new DI(aJn,2),LMt=new DI("TOP",3),CMt=new DI(oJn,4),OMt=new DI(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 IJ(t*H$n(n,31)*4.656612873077393e-10);do{i=(e=H$n(n,31))%t}while(e-i+(t-1)<0);return IJ(i)}function vvn(n){var t,e,i;return rK(),null!=(i=rit[e=":"+n])?IJ((kW(i),i)):(t=null==(i=iit[e])?JNn(n):IJ((kW(i),i)),CQ(),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],(Irn(),xst),0),iX(n,e,t[1],Rst,1)}function jvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Ist)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Irn(),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 Ky(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 Ivn(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 Cvn(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,CVn),n=Jin(16),this.b=x8(Gnt,IVn,317,n,0,1),this.c=x8(Gnt,IVn,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(),Iut),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(),SCt))).a,19).a,BB(t.b,19).a),dPn(n,BB((e=EDn(n,ICt)).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){L_(BB(mMn(t,(HXn(),ept)),98))||(W7(n,t,DSn(t,e)),W7(n,t,DSn(t,(kUn(),SCt))),W7(n,t,DSn(t,sCt)),SQ(),m$(t.j,new Kd(n)))}function Dvn(n,t,e,i){var r;for(r=BB(h6(i?n.a:n.b,t),21).Kc();r.Ob();)if(KDn(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 _vn(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(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,KTt=MTt,FTt=STt,_Tt=new XA(lSt,(hN(),!1))}function Hvn(n,t,e,i){switch(t){case 7:return!n.e&&(n.e=new h_(KOt,n,7,4)),n.e;case 8:return!n.d&&(n.d=new h_(KOt,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(),!(GC(e)===GC(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+IJn+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+IJn+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+IJn+t+FWn+e+").")):Hp(i)}}function amn(n){switch(n.g){case 1:return kUn(),ICt;case 4:return kUn(),sCt;case 3:return kUn(),oCt;case 2:return kUn(),SCt;default:return kUn(),PCt}}function umn(n,t,e){t.k==(uSn(),Iut)&&e.k==Put&&(n.d=Efn(t,(kUn(),SCt)),n.b=Efn(t,sCt)),e.k==Iut&&t.k==Put&&(n.d=Efn(e,(kUn(),sCt)),n.b=Efn(e,SCt))}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)),Ien(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 xI(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),Cyn(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)),_6(n.a,t)}function vmn(n,t,e){try{return QC(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 QC(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 QC(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),!(!(GC(r)===GC(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 Imn(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 Cmn(n,t,e,i){var r,c;this.a=t,this.c=i,$l(this,new xI(-(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 mI(QZn,0),Bjt=new mI(q1n,1),Hjt=new mI("EDGE_LENGTH_BY_POSITION",2),Fjt=new mI("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 Ky("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 Ky("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(),sCt)||e==ICt?-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 _mn(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 Kmn(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 _O(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),Kxn(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;)KBn(BB(n0(i),447));BIn(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+IJn+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+IJn+t+FWn+e+").")):Hp(i)}}function Vmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),CIt))?(t.Mc(CIt),t.Fc(AIt)):t.Hc(AIt)&&(t.Mc(AIt),t.Fc(CIt)))}function Qmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),DIt))?(t.Mc(DIt),t.Fc(NIt)):t.Hc(NIt)&&(t.Mc(NIt),t.Fc(DIt)))}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 Ci),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=I2(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=I2(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=I2(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(),sCt)),kjn(n,SCt);break;case 4:cGn(n,(kUn(),sCt)),cGn(n,SCt);break;default:FPn(n,(kUn(),sCt)),FPn(n,SCt)}}function cyn(n){switch(n.q.g){case 5:jjn(n,(kUn(),oCt)),jjn(n,ICt);break;case 4:aGn(n,(kUn(),oCt)),aGn(n,ICt);break;default:BPn(n,(kUn(),oCt)),BPn(n,ICt)}}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(),ICt)),e+=ZX(n.a,t[t.length-1],oCt),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=Ivn(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(),ICt)?-e.rf().a-Gy(MD(e.We(aPt))):t+Gy(MD(e.We(aPt))):e.Hf()==(kUn(),ICt)?-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 rC(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=_Qn,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=I2(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((IXn(),MOt),rAt,n,0)),n.o):(!n.o&&(n.o=new y9((IXn(),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((CPn(),Z$t),n),n.Bb|=1}function Myn(n,t,e,i,r,c,a,u,o,s,h,f,l,b){return bIn(n,t,i,null,r,c,a,u,o,s,l,!0,b),zln(n,h),cL(n.Cb,88)&&AIn(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=lKn(n,KVn,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=lKn(n,KVn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Iyn(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 Cyn(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 _ht;case 4:return Kht;case 5:return Fht;default:return null}}function $yn(n,t,e){var i,r;return Chn(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=Ivn(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 _yn(){_yn=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(_Zn,iln(DWn))}function Kyn(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();)JCn(n,t,kCn(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();)JCn(n,t,kCn(dnn(e,BB(r.Pb(),19).a)))}function Hyn(n){var t;return KMn(),z9(t=BB(Emn(gz(n.k),x8(FCt,YZn,61,2,0,1)),122),0,t.length,null),t[0]==(kUn(),sCt)&&t[1]==ICt&&($X(t,0,ICt),$X(t,1,sCt)),t}function qyn(n,t,e){var i,r,c;return c=sDn(n,r=XNn(n,t,e)),_9(n.b),k0(n,t,e),SQ(),m$(r,new Vd(n)),i=sDn(n,r),_9(n.b),k0(n,e,t),new rC(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 fI("P1_TREEIFICATION",0),_yt=new fI("P2_NODE_ORDERING",1),Kyt=new fI("P3_NODE_PLACEMENT",2),Fyt=new fI("P4_EDGE_ROUTING",3)}function Uyn(){Uyn=O,sWn(),xjt=gPt,_jt=LPt,Ijt=_St,Cjt=BSt,Ojt=qSt,Pjt=DSt,Ajt=USt,Njt=fPt,_An(),Mjt=wjt,Sjt=djt,$jt=pjt,Ljt=mjt,Djt=yjt,Rjt=kjt,Kjt=Ejt}function Xyn(){Xyn=O,MIt=new qI("UNKNOWN",0),jIt=new qI("ABOVE",1),EIt=new qI("BELOW",2),TIt=new qI("INLINE",3),new iR("org.eclipse.elk.labelSide",MIt)}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(GC(n.g[e])===GC(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 Ky("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),GC(mMn(n,(HXn(),Lgt)))===GC((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(),IPt))&&(e=BB(n.We(IPt),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 Ky(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=ISt,new XA(dSt,(hN(),!0)),Tat=_St,Mat=BSt,Sat=qSt,Eat=DSt,Pat=USt,Iat=fPt,_yn(),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 Ky("'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,KOt,t):(e=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(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=Ivn(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=Ivn(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(GC(t)===GC(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)),m_(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:vCn(n,(kUn(),sCt)),vCn(n,SCt);break;case 4:z$n(n,(kUn(),sCt)),z$n(n,SCt);break;default:vUn(n,(kUn(),sCt)),vUn(n,SCt)}}function ykn(n){switch(DN(),n.q.g){case 5:SOn(n,(kUn(),oCt)),SOn(n,ICt);break;case 4:Ipn(n,(kUn(),oCt)),Ipn(n,ICt);break;default:mUn(n,(kUn(),oCt)),mUn(n,ICt)}}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 I4(e))):hon(n,(Mrn(),hat),new I4(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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(gWn(),g$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ikn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,12,QAt,t):(e=Ivn(BB(itn(BB(yan(n,16),26)||(gWn(),m$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ckn(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),(Irn(),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)),KXn(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 _kn(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 Kkn(){Kkn=O,tRn(),Pit=new $O(UYn,Iit=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,IVn,317,e,0,1),n.c=x8(Gnt,IVn,317,e,0,1),n.f=e-1,n.i=0,t=n.a;t;t=t.c)YIn(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=KVn,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=KVn}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,U_n(n,n.d,0,0,Z3n,e),(c=n.b.ig(n.d))<r&&(i=e,r=c);U_n(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=$In(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),_9(n.b),SQ(),m$(c,new Qd(n)),r=NRn(n,c),fMn(n,e,t,i),_9(n.b),new rC(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(IA(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 h_(KOt,n,7,4)),Ywn(n.e,t,i);case 8:return!n.d&&(n.d=new h_(KOt,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 h_(KOt,n,7,4)),Kpn(n.e,t,i);case 8:return!n.d&&(n.d=new h_(KOt,n,8,5)),Kpn(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))&&bCn(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(Ifn(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,IVn,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 Ky("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(GC(n.g[e])===GC(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 Ijn(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 Cjn(n){var t,i,r;for(t="Sz",i="ez",r=e.Math.min(n.length,5)-1;r>=0;r--)if(m_(n[r].d,t)||m_(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 Ky("'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),Kx(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 Ki),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(),Iut)&&(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 _jn(n,t){var e;if(e=!1,XC(t)&&(e=!0,nW(n,new GX(SD(t)))),e||cL(t,236)&&(e=!0,nW(n,new Sl(X_(BB(t,236))))),!e)throw Hp(new Ly(H6n))}function Kjn(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 xI(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 Ka;case 2:return new Fa;case 3:return new _a;case 0:return null;default:throw Hp(new Ky(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 Ien(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(U_(n.d,t),19)),"Row %s not in %s",t,n.e),R7(!!(r=BB(U_(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),Ien(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length;i<r;++i)if((t=e[i])!=PCt&&!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 h_(_Ot,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((CPn(),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(tKn(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 Kr),new Fr),new Br);break;case 2:vRn(n);break;case 0:IIn(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 RI("V_TOP",0),JMt=new RI("V_CENTER",1),YMt=new RI("V_BOTTOM",2),VMt=new RI("H_LEFT",3),WMt=new RI("H_CENTER",4),QMt=new RI("H_RIGHT",5)}function dEn(n){var t;return 0!=(64&n.Db)?Iwn(n):((t=new fN(Iwn(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=GC(n.b)===GC(Ynt)?null:n.b,n.d=null==t?zWn:ez(t)?jN(EQ(t)):XC(t)?qVn:nE(tsn(t)),n.a=n.a+": "+(ez(t)?IR(EQ(t)):t+""),n.c="("+n.d+") "+n.a)}function vEn(n,t){this.e=n,QC(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 _O(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 _O(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),CV(new $g(n).a,i)}function IEn(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 CEn(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<1;n++){if(0==(e=QOn((b1(n,1),"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)),IZ(r=new ISn,t),e.g){case 1:qIn(r,Tln(hwn(i)));break;case 2:qIn(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(),Ilt))))||qy(TD(mMn(e,Ilt)))}function LEn(){LEn=O,Mst=new yP("ONE_SIDE",0),Pst=new yP("TWO_SIDES_CORNER",1),Ist=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 _En(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 KEn(n){if(n=FBn(n,!0),m_(a5n,n)||m_("1",n))return hN(),vtt;if(m_(u5n,n)||m_("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(),GC(t)===GC(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((nKn(),qCt))&&(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(HK(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&&Kyn(this,this.c-1,(kUn(),oCt)),this.c<this.a.length-1&&Kyn(this,this.c+1,(kUn(),ICt))}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 _c),new Kc))}function WEn(n,t,e){return OTn(e,"Tree layout",1),h2(n.b),IU(n.b,(zyn(),Ryt),Ryt),IU(n.b,_yt,_yt),IU(n.b,Kyt,Kyt),IU(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,YIt=new UI(hJn,0),QIt=new UI("FREE",1),VIt=new UI("FIXED_SIDE",2),UIt=new UI("FIXED_ORDER",3),WIt=new UI("FIXED_RATIO",4),XIt=new UI("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<(CPn(),nLt).length;++i)if(m_(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,Iyt),(e=BB(mMn(n,(hWn(),Zft)),21)).Hc((bDn(),vft))&&Jcn(t,$yt),e.Hc(sft)&&Jcn(t,Cyt),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,KGn(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(Ken(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],GC(t)===GC(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 Ign(CKn(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(QCn(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 Y_(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 wC(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 ITn(n,t,e,i){return t>=0&&m_(n.substr(t,3),"GMT")||t>=0&&m_(n.substr(t,3),"UTC")?(e[0]=t+3,yKn(n,e,i)):yKn(n,e,i)}function CTn(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(),sCt)?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 _Tn(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 KTn(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?IPn(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 IK(0==(e&hVn),"flatMap does not support SUBSIZED characteristic"),IK(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),(cK(),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((lCn(),tCt)),c=n.u.Hc(cCt),!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,aIt=new BI(QZn,0),rIt=new BI("DIRECTED",1),uIt=new BI("UNDIRECTED",2),eIt=new BI("ASSOCIATION",3),cIt=new BI("GENERALIZATION",4),iIt=new BI("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(),oCt)&&i.i!=(kUn(),ICt)&&(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,XC(i)&&(r=!0,AH(t,e,SD(i))),r||zC(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<(CPn(),Y$t).length;++i)if(m_(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<(CPn(),J$t).length;++i)if(m_(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(Crn(),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(KOt,n,12,3)),n.b),new tC(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 lCn(),!(Ian(OJ(EG(eCt,Pun(Gk(CCt,1),$Vn,273,0,[rCt])),n))>1||Ian(OJ(EG(tCt,Pun(Gk(CCt,1),$Vn,273,0,[nCt,cCt])),n))>1)}function dMn(n,t){cL(SJ((WM(),zAt),n),498)?mZ(zAt,n,new OC(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<COt.length;++e)try{return BM(COt[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=m_(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),_at=new VS("P2_LAYERING",1),Kat=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&&iKn((l1(0,e.c.length),BB(e.c[0],29)),n),e.c.length>1&&iKn(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(KDn(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=CTt,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)),KMt=jSt,BMt=_St,qMt=qSt,DMt=new XA(cSt,f5n),FMt=ISt,HMt=BSt,RMt=uSt,_Mt=hSt}function PMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82))}function IMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return bun(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82))}function CMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))}function OMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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,GC(t=e.Pb())===GC(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|=KDn(n,BB(t.Xb(e),33),BB(t.Xb(e+1),33)):i|=KDn(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&&K6(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 _Mn(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 KMn(){KMn=O,$st=Pun(Gk(FCt,1),YZn,61,0,[(kUn(),sCt),oCt,SCt]),Ast=Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt,ICt]),Lst=Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt,sCt]),Nst=Pun(Gk(FCt,1),YZn,61,0,[ICt,sCt,oCt])}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 tK(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(),oCt)),c+=ZX(n.a,r,ICt)):c=C9(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),JCn(n.a,r,new LK(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=_3n*n.b+.9*t,n.f=_3n*n.b+.9*i):(n.b=.5*(t+r),n.g=_3n*n.b+.9*r,n.f=_3n*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 _w(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(),Iut)&&(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(),Klt));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((IXn(),MOt),rAt,n,0)),B_(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 _g(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new Kg(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"),Cen(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,Iut=new JS("NORMAL",0),Put=new JS("LONG_EDGE",1),Mut=new JS("EXTERNAL_PORT",2),Cut=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||(iCn(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,(I6(),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 Il,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 Ck),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 CP("ALWAYS_UP",0),xht=new CP("ALWAYS_DOWN",1),_ht=new CP("DIRECTION_UP",2),Rht=new CP("DIRECTION_DOWN",3),Fht=new CP("SMART_UP",4),Kht=new CP("SMART_DOWN",5)}function pSn(n,t){if(n<0||t<0)throw Hp(new Ky("k and n must be positive"));if(t>n)throw Hp(new Ky("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 Ky("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,_nn(),Cct=new $O(oZn,Oct=Rct),iln(1),Ict=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 _y(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()),GC(mMn(i=BB(r.d.Xb(r.c=r.b++),70),(hWn(),vlt)))===GC(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 ISn(){gcn(),LR.call(this),this.j=(kUn(),PCt),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 CSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Ilt))))&&(e=t.c.i,(n!=(Tbn(),Klt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Flt)}function OSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Ilt))))&&(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])&&IPn(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 MI("CENTER_DISTANCE",0),rTt=new MI("CIRCLE_UNDERLAP",1),uTt=new MI("RECTANGLE_UNDERLAP",2),cTt=new MI("INVERTED_OVERLAP",3),aTt=new MI("MINIMUM_ROOT_DISTANCE",4)}function LSn(n){var t,e,i,r;if(_Dn(),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 CH((t=BB(JIn(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 _B(n.j,(gcn(),xut));case 2:return _B(n.j,(gcn(),Lut));case 3:return _B(n.j,(gcn(),Rut));case 4:return _B(n.j,(gcn(),_ut));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 _Sn(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?u_n(n,t,e):r>0&&u_n(n,e,t),r):COn(n,t,e)}function KSn(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;KSn(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 xI(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 xI((t=BB(kpn(e),469)).a,t.b));return DH(i,new xI(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),DKn((a=new hQ(n,t,e,i)).a,a.b,a.c,a.d,u)}function zSn(n,t){var e;if(GC(n)===GC(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 Ky("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 Ky(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,n.j.c.length),i=new Wb(n.j);i.a<i.c.c.length;)t=(e=BB(n0(i),113)).d.j,JCn(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(),Iut)||r==Tut),e.e=(i=t.d.i.k)==Iut||i==Tut,e.b=t.c.j==(kUn(),ICt),e.c=t.d.j==oCt}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 rC(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?dIn(n,e,"start index"):t<0||t>e?dIn(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(qC(AY(n.f,c)),19).a),qy(TD(mMn(i=BB(xq(t.g,0),17),Ilt)))||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 Y_(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 Q_(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 Y_(t=BB(Vj(FCt),9),BB(SR(t,t.length),9),0),this.d=x8(ANt,hQn,25,(kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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 Ky(o6n+t+s6n));if(!i.Ij())throw Hp(new Ky(r6n+i.ne()+c6n));(r=n.Yg(i))>=0?n.Bh(r):cCn(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 $I(hJn,0),wMt=new $I("BOOLEAN",1),vMt=new $I("INT",2),yMt=new $I("STRING",3),dMt=new $I("DOUBLE",4),gMt=new $I("ENUM",5),pMt=new $I("ENUMSET",6),mMt=new $I("OBJECT",7)}function IPn(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 CPn(){CPn=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,_9n,"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)&&(Kx(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(qC(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(),sCt;case 3:case 4:case 5:return kUn(),SCt;case 6:case 7:case 8:return kUn(),ICt;case 9:case 10:case 11:return kUn(),oCt;default:return kUn(),PCt}}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 lI("ROOT_PROC",0),Uyt=new lI("FAN_PROC",1),Wyt=new lI("NEIGHBORS_PROC",2),Xyt=new lI("LEVEL_HEIGHT",3),Vyt=new lI("NODE_POSITION_PROC",4),zyt=new lI("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 Ky(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function _Pn(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 KPn(n,t){var e,i;t.a?zNn(n,t):(!!(e=BB(k_(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(y_(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(),KCt))&&yRn(n,t),i=Xpn(n,t),PDn(n,t)==(cpn(),BIt)&&(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(),KCt))&&kRn(n,t),i=Wpn(n,t),PDn(n,t)==(cpn(),BIt)&&(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 xI(((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(),_St)),21).Hc((mdn(),DCt))?(e=BB(ZAn(n,qSt),21),t=new wA(BB(ZAn(n,BSt),8)),e.Hc((nKn(),GCt))&&(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 Io,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(FCt,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=Isn(r,(kW(e),e))):(r=WXn(t),a5(EAt,t,r),null!=e&&(r=Isn(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 DK(e,i,r)),HSn(t)}function nIn(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+=nIn(n,e));return u}function tIn(n,t,i){var r,c;Kan(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 eIn(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 iIn(){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 _s),Tyn(n),mZ(zAt,S7n,n),n)}function rIn(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 cIn(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 aIn(n){var t,e,i;for(K$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 uIn(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(qC(AY(e.f,t)),456).b,i);return new tK(new Ob(e))}function oIn(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 sIn(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 hIn(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 fIn(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 lIn(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 bIn(n,t,e,i,r,c,a,u,o,s,h,f,l){cL(n.Cb,88)&&AIn(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),Chn(n,t),null!=i&&(n.i=null,arn(n,i))}function wIn(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 dIn(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 Ky(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 gIn(n,t,e,i,r,c){var a,u,o;if(i-e<7)$bn(t,e,i,c);else if(gIn(t,n,u=e+r,o=u+((a=i+r)-u>>1),-r,c),gIn(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 pIn(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 vIn(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 mIn(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 yIn(n,t,e){var i,r,c;if(r=itn(n.Tg(),t),(i=t-n.Ah())<0){if(!r)throw Hp(new Ky(o6n+t+s6n));if(!r.Ij())throw Hp(new Ky(r6n+r.ne()+c6n));(c=n.Yg(r))>=0?n.sh(c,e):TLn(n,r,e)}else Lbn(n,i,r,e)}function kIn(n){var t,e,i,r;if(e=BB(n,49).qh())try{if(i=null,(t=$$n((WM(),zAt),MKn(Kbn(e))))&&(r=t.rh())&&(i=r.Wk(Xy(e.e))),i&&i!=n)return kIn(i)}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}return n}function jIn(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 EIn(n,t){var e;return h2(n.a),IU(n.a,(Prn(),Qkt),Qkt),IU(n.a,Ykt,Ykt),dq(e=new B2,Ykt,(Ibn(),ejt)),GC(ZAn(t,(Uyn(),Sjt)))!==GC((Hsn(),sjt))&&dq(e,Ykt,njt),dq(e,Ykt,tjt),aA(n.a,e),$qn(n.a,t)}function TIn(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 MIn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SCn(r),c.a=MCn(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}KFn(r),GFn(r)}function SIn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SCn(r),c.a=MCn(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}KFn(r),GFn(r)}function PIn(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 IIn(n){var t,e,i,r;for(m$(r=new tK(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;)IOn(BB(n0(i),101),t[e%t.length]),++e}function CIn(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 OIn(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,I6n),enn(new zg(t).a,r),c=Ren(a,P6n),inn(new Ug(t).a,c),c}function AIn(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 $In(n,t){var e,i;if(i=0,t.length>0)try{i=lKn(t,KVn,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 LIn(n,t){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,["index",iln(n)]));if(t<0)throw Hp(new Ky(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 NIn(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 xIn(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 DIn(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 RIn(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 _In(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 KIn(n,t,i,r,c,a){var u,o,s,h,f;for(GC(n)===GC(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 FIn(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 BIn(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 xI((u=n.d.d).a,u.b),a),1/(i+1)),c=new xI(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 HIn(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=Iun(c.a,c.b,u.a,u.b,i),s=e.Math.min(s,r);return s}function qIn(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 GIn(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 zIn(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 UIn(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(),ICt)?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 XIn(n,t){var e,i;if(t.dc())return SQ(),SQ(),set;for(WB(i=new Np,iln(KVn)),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 WIn(n,t){var e,i,r,c,a,u;e=ckn(t,u=t.c.i.k!=(uSn(),Iut)?t.d:t.c).i,r=BB(RX(n.k,u),121),i=n.i[e.p].a,A_(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 VIn(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,kCn(dnn(e,BB(r.Pb(),19).a))))&&(!t.b&&(t.b=new h_(_Ot,t,4,7)),f9(t.b,c))}function QIn(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,kCn(dnn(e,BB(r.Pb(),19).a))))&&(!t.c&&(t.c=new h_(_Ot,t,5,8)),f9(t.c,c))}function YIn(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 JIn(n){var t,e,i;if(t=n.Pb(),!n.Ob())return t;for(i=uO(oO(new Ik,"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 Ky(i.a))}function ZIn(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 nCn(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 tCn(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 eCn(n){var t,e,i,r;for(n.g=new Hbn(BB(yX(FCt),290)),i=0,kUn(),e=sCt,t=0;t<n.j.c.length;t++)(r=BB(xq(n.j,t),11)).j!=e&&(i!=t&&mG(n.g,e,new rC(iln(i),iln(t))),e=r.j,i=t);mG(n.g,e,new rC(iln(i),iln(t)))}function iCn(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 rCn(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(qC(AY(r.f,u)),112))||(c=new Fan(n.d),i.c[i.c.length]=c,UPn(c,u,r))}function cCn(n,t){var e,i,r;if(!(r=Fqn((CPn(),Z$t),n.Tg(),t)))throw Hp(new Ky(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 aCn(n){var t,i;return n>-0x800000000000&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),i=IJ(e.Math.floor(e.Math.log(n)/.6931471805599453)),(!t||n!=e.Math.pow(2,i))&&++i,i):Van(fan(n))}function uCn(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 oCn(n,t){var e,i,r;return qan(i=new $vn(n),t),hon(i,(hWn(),Vft),t),hon(i,(HXn(),ept),(QEn(),XIt)),hon(i,kdt,(wvn(),OMt)),Bl(i,(uSn(),Mut)),IZ(e=new ISn,i),qIn(e,(kUn(),ICt)),IZ(r=new ISn,i),qIn(r,oCt),i}function sCn(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 Ky("No implementation is available for the crossing minimizer "+(null!=n.f?n.f:""+n.g)))}}function hCn(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]||hCn(n,i)}function fCn(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=fCn(t),u=e.Math.max(a,u);return u}function lCn(){lCn=O,rCt=new XI("OUTSIDE",0),eCt=new XI("INSIDE",1),iCt=new XI("NEXT_TO_PORT_IF_POSSIBLE",2),tCt=new XI("ALWAYS_SAME_SIDE",3),nCt=new XI("ALWAYS_OTHER_SAME_SIDE",4),cCt=new XI("SPACE_EFFICIENT",5)}function bCn(n,t,e){var i,r,c,a;return $in(i=_2(n,(tE(),r=new jm,!!e&&nNn(r,e),r),t),R2(t,q6n)),STn(t,i),o$n(t,i),OIn(t,i),c=N2(t,"ports"),PLn((a=new pC(n,i)).a,a.b,c),xon(n,t,i),aun(n,t,i),i}function wCn(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 dCn(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 gCn(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 pCn(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,pCn(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 vCn(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(),sCt)?-e.rf().b-Gy(MD(e.We(aPt))):Gy(MD(e.We(aPt))):e.Hf()==(kUn(),sCt)?-e.rf().b:0}function mCn(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 yCn(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);)QCn(t=BB(U5(e),79))&&qy(TD(ZAn(t,PSt)))&&(i.c[i.c.length]=t);return i}return SQ(),SQ(),set}function kCn(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 jCn(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)?p_(uun(u),e.ah(u)):null)&&m_(i,t)){c=e;break}return c}function ECn(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 TCn(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&&ECn(n,t,-c),!0)}function MCn(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=_k(ecn(LV(AV(LU(n.a),new Mn),new Sn)));return a>0?a+n.n.d+n.n.a:0}function SCn(n){var t,e,i,r,c,a;if(a=0,0==n.b)a=_k(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 PCn(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 ICn(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 CCn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(IAn(),$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 OCn(n){var t,e;return(e=new Ik).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 ACn(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 Ky("No implementation is available for the layout phase "+(null!=n.f?n.f:""+n.g)))}}function $Cn(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 LCn(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?s_n(n,r,t):EXn(n,r,t),PL(BB(RX(n.b,Qdn(r)),79))}function NCn(n){var t,e;switch(n.b){case-1:return!0;case 0:return(e=n.t)>1||-1==e||(t=Ckn(n))&&(ZM(),t.Cj()==E9n)?(n.b=-1,!0):(n.b=1,!1);default:return!1}}function xCn(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 DCn(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$(),I8n))));return r=fx(n.i,i,e),n.d=e+1,b9(r,c,512==(512&n.e))}function RCn(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 _Cn(n,t){var e,i,r,c;for(GK(),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 KCn(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 FCn(n,t,e,i,r){var c,a,u,o;return GC(o=hD(n,BB(r,56)))!==GC(r)?(u=BB(n.g[e],72),jL(n,e,sTn(n,e,c=Z3(t,o))),mA(n.e)&&(_En(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 BCn(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 HCn(n,t){var e,i;try{return X1(n.a,t)}catch(r){if(cL(r=lun(r),32)){try{if(i=lKn(t,KVn,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 qCn(n,t){var e,i,r;if(r=Fqn((CPn(),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 Ky(r6n+t.ne()+u6n))}function GCn(){var n;return tS(),Q$t?BB($$n((WM(),zAt),V9n),1939):(RO(Hnt,new Is),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 zCn(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=CEn(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 UCn(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 XCn(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 rC(iln(i),iln(r))}function WCn(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 VCn(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(),oCt)?new xI(t+c.i.c.c.a+e,r):new xI(t-e,r),_x(n.a,0,i)}function QCn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,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 YCn(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 JCn(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 ZCn(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)-KQn)>>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 xI(a.c+a.b/2,a.d+a.a/2),new xI(c.c+c.b/2,c.d+c.a/2))),-(YKn(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 eC(n,t)),JT(new Rq(null,(!e.n&&(e.n=new eU(zOt,e,1,7)),new w1(e.n,16))),new iC(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((CPn(),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 Ky(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(GC((a=BB(c[u],133)).cd())===GC(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(GC(n)===GC(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],!(GC(i)===GC(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 It),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 _Y(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(),ICt)&&t!=oCt||(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 Ky("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)||m_(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 CJ(n,t)}))+'"'}function yOn(n){var t,e;for(IQ(),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&&CN(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 t_(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),eIn(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((lCn(),iCt)),n.u.Hc(eCt)?n.D?this.a=e&&!t.If():this.a=!0:n.u.Hc(rCt)?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(),ICt)?-i.rf().a-Gy(MD(i.We(aPt))):e+Gy(MD(i.We(aPt))):i.Hf()==(kUn(),ICt)?-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(),QIt)&&i!=YIt?r==(kUn(),PCt)&&(r=OFn(t,e))==PCt&&(r=hwn(e)):r=XHn(t)>0?hwn(e):Tln(hwn(e)),Ypn(t,upt,r)}function IOn(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&&qIn(c.d,t.a);for(e=r;e<a.c.length;e++)l1(e,a.c.length),(c=BB(a.c[e],113)).c&&qIn(c.d,t.b)}function COn(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?u_n(n,t,e):c>0&&u_n(n,e,t),c):null!=i.a?(u_n(n,t,e),-1):null!=r.a?(u_n(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 _On(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 KOn(n,t,e,i,r,c,a,u){var o;return cL(n.Cb,88)&&AIn(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(),x_(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,(Kkn(),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),Ihn(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(),oCt)).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(),Cfn(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)):(Cfn(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 rC(i,t)))),i.d.g=i.d.g&qy(TD(n.e.Kb(new rC(i,t))));return n}function UOn(n){var t,e,i,r,c;if(e=new Y_(t=BB(Vj(FCt),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;)GC(mMn(i=BB(n0(r),11),dlt))===GC(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(GC(n)!==GC(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 CKn(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 h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,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=C3(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(),Klt));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 MC(G1n,0),nAt=new MC("INSIDE_SELF_LOOPS",1),tAt=new MC("MULTI_EDGES",2),ZOt=new MC("EDGE_LABELS",3),eAt=new MC("PORTS",4),YOt=new MC("COMPOUND",5),QOt=new MC("CLUSTERS",6),JOt=new MC("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=Icn(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),HIn(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(g_n(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=C),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=_Kn(n,c=new Np),t=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(t.j);r.a<r.c.c.length;)GC(mMn(i=BB(n0(r),11),dlt))===GC(n)&&(a=e.Math.max(a,_Kn(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)&IQn))&&(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=_Qn,i=_Qn,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,_pt))),i==(Ffn(),KPt)||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 IAn(){IAn=O,Okt=new WA(20),Ckt=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=_St,Skt=BSt,Pkt=qSt,Tkt=DSt,Ikt=USt,Akt=fPt,Ran(),Dkt=ykt,Lkt=vkt}function CAn(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 CAn(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(),sCt))?t.Hc(oCt)?t.Hc(SCt)?t.Hc(ICt)?null:$st:Nst:Lst:Ast)[0],(Irn(),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=m_n(t)),iTn(n.a,BB(mMn(vW(t.b),(hWn(),Slt)),230)),bKn(n),DEn(n,t),i=x8(ANt,hQn,25,t.b.j.c.length,15,1),szn(n,t,(kUn(),sCt),i,e),szn(n,t,oCt,i,e),szn(n,t,SCt,i,e),szn(n,t,ICt,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(I4n,!0),cEt=new $O(C4n,!1),fEt=new $O(O4n,-1)}function LAn(n,t,e){switch(t){case 7:return!n.e&&(n.e=new h_(KOt,n,7,4)),sqn(n.e),!n.e&&(n.e=new h_(KOt,n,7,4)),void pX(n.e,BB(e,14));case 8:return!n.d&&(n.d=new h_(KOt,n,8,5)),sqn(n.d),!n.d&&(n.d=new h_(KOt,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(GC(t)===GC(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(),!(GC(e)===GC(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 _e),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Jc(new Ke),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 If;case 1:return new lf;case 2:return new ff;case 3:return new jC;case 4:return new KG;default:throw Hp(new Ky("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 _G;case 1:return new wf;case 2:return new rf;case 3:return new cf;case 4:return new TC;default:throw Hp(new Ky("No implementation is available for the cycle breaker "+(null!=n.f?n.f:""+n.g)))}}function _An(){_An=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 KAn(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(GC(t)===GC(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(),jIt)),hFn((l1(1,n.c.length),BB(n.c[1],10)),EIt);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=_en(R2(c,O6n),t),VW(n.f,a,c),q6n in c.a&&$in(a,R2(c,q6n)),STn(c,a),OIn(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 xI(f,b),new xI(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+_$(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=Kun(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+_$(n.k,a,s))))}while(f!=a);return c}function ZAn(n,t){var e,i;return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),null!=(i=cdn(n.o,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),vjn(n.o,t,e))),e)}function n$n(){n$n=O,CIt=new GI("H_LEFT",0),IIt=new GI("H_CENTER",1),AIt=new GI("H_RIGHT",2),DIt=new GI("V_TOP",3),xIt=new GI("V_CENTER",4),NIt=new GI("V_BOTTOM",5),$It=new GI("INSIDE",6),LIt=new GI("OUTSIDE",7),OIt=new GI("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=k_n(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 Ky("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,FIn(n,u,t)&&!FIn(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=ZKn(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(),oCt)?r.a=c:n.a==yst||n.i==(kUn(),ICt)?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);KSn(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(),IPt))&&(e=new Yu,Ypn(t,IPt,e)),r=BB(ZAn(t,IPt),373),i=null,(a=c)&&(i=new TT(a,jrn(a,x8(Qtt,sVn,2,0,6,1)))),i&&e5(i,new dC(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),Cwn(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 rC(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),Ien(o,o.j+i*e),Sen(o,o.g+r),Men(o,n.a),++c,lIn(o,new xI(o.g,o.f),new xI(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=_Qn,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=j_n(n,t)).gc();u<s;++u)if(m_(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(m_(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=E_n(n,t)).gc();u<s;++u)if(m_(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(m_(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?FCn(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),Ien(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 I$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,KPt),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=_Qn;return n.b.Le(n),n}function C$n(n,t){var e,i,r,c,a;if(t<2*n.b)throw Hp(new Ky("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"),LCn((e=new uC(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(GC((a=BB(c[u],133)).cd())===GC(i))return u;return-1}function $$n(n,t){var e,i;return cL(e=null==t?qC(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?jIn(n.f,null,i):ubn(n.g,t,i))),i):null}function L$n(n){var t,e,i,r,c,a,u;if(_Dn(),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?FCn(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 _$n(n,t,e){var i,r,c,a,u,o,s;for(s=new Y_(i=BB(t.e&&t.e(),9),BB(SR(i,i.length),9),0),a=0,u=(c=k_n(e,"[\\[\\]\\s,]+")).length;a<u;++a)if(0!=RMn(r=c[a]).length){if(null==(o=HCn(n,r)))return null;orn(s,BB(o,22))}return s}function K$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(),sCt)||t==oCt?(jtn(BB(Eon(n),15),(Xyn(),jIt)),jtn(BB(Eon(n),15),EIt)):(jtn(BB(Eon(n),15),(Xyn(),EIt)),jtn(BB(Eon(n),15),jIt));else for(i=new bV(n);i.a!=i.b;)jtn(BB(Khn(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(),oCt)),n.d=i.dc()?0:uq(BB(i.Xb(0),11)),a=abn(t,ICt),n.b=a.dc()?0:uq(BB(a.Xb(0),11))):(r=abn(e,(kUn(),ICt)),n.d=r.dc()?0:uq(BB(r.Xb(0),11)),c=abn(t,oCt),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=k_n(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(),sCt)?-i.rf().b-Gy(MD(i.We(aPt))):Gy(MD(i.We(aPt))):i.Hf()==(kUn(),sCt)?-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,CEt=new WA(15),IEt=new XA(XSt,CEt),$Et=new XA(LPt,15),bEt=hSt,jEt=_St,EEt=BSt,TEt=qSt,kEt=DSt,MEt=USt,OEt=fPt,$An(),PEt=oEt,yEt=aEt,SEt=uEt,AEt=hEt,pEt=cEt,vEt=ISt,mEt=CSt,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(_At,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),mCn(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;)_bn(e=BB(n0(i),10))&&(c=new Ogn(e),hon(e,(hWn(),Olt),c),kKn(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(),!(Ian(OJ(EG($It,Pun(Gk(GIt,1),$Vn,93,0,[LIt])),n))>1||Ian(OJ(EG(CIt,Pun(Gk(GIt,1),$Vn,93,0,[IIt,AIt])),n))>1||Ian(OJ(EG(DIt,Pun(Gk(GIt,1),$Vn,93,0,[xIt,NIt])),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)),_gn(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 Cc;case 4:return new RR;case 5:return new sf;default:throw Hp(new Ky("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(),XIt)),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(Khn(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(),ICt)&&(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 xI(t.a,e.Math.min(n.d.b,t.b));case 2:return new xI(e.Math.max(n.c.a,t.a),t.b);case 3:return new xI(t.a,e.Math.max(n.c.b,t.b));case 4:return new xI(e.Math.min(t.a,n.d.a),t.b)}return new xI(t.a,t.b)}function bLn(n,t,e,i){var r,c,a,u,o,s,h,f,l;for(f=i?(kUn(),ICt):(kUn(),oCt),r=!1,s=0,h=(o=t[e]).length;s<h;++s)L_(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|=cKn(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 h_(KOt,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 h_(KOt,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 h_(KOt,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 h_(KOt,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,m_(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),P_n(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 LI(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(),Iut)&&(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 xI(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((CPn(),Z$t),n.Tg(),t)))throw Hp(new Ky(r6n+t.ne()+c6n));if(ZM(),!BB(c,66).Oj()&&!(c=Z1(B7(Z$t,c))))throw Hp(new Ky(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,Kjt),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),OIn(r,a),xon(n,r,a))}function ILn(n){var t,e,i,r;if(!n.j){if(r=new Co,null==(t=P$t).a.zc(n,t)){for(i=new AL(kY(n));i.e!=i.i.gc();)pX(r,ILn(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 CLn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,m_(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),IU(n.b,(Pbn(),HEt),(OM(),GTt)),IU(n.b,qEt,t.g),IU(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=KVn,o=DWn,a=KVn,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(),_ft)),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 _Ln(n){var t,e,i,r;return GC(mMn(n,(HXn(),sgt)))===GC((ufn(),pIt))?!n.e&&GC(mMn(n,Rdt))!==GC((_an(),kft)):(i=BB(mMn(n,_dt),292),r=qy(TD(mMn(n,Hdt)))||GC(mMn(n,qdt))===GC((Oin(),sht)),t=BB(mMn(n,Ddt),19).a,e=n.a.c.length,!r&&i!=(_an(),kft)&&(0==t||t>e))}function KLn(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 Ky(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 Ky(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 Ky(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=Ckn(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 xI(n.c,n.d),new xI(n.c+n.b,n.d))),WB(t,new xS(new xI(n.c,n.d),new xI(n.c,n.d+n.a))),WB(t,new xS(new xI(n.c+n.b,n.d+n.a),new xI(n.c+n.b,n.d))),WB(t,new xS(new xI(n.c+n.b,n.d+n.a),new xI(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),IZ(u=new ISn,i),qIn(u,(kUn(),oCt)),hon(u,(hWn(),jlt),(hN(),!0)),a=t.Kc();a.Ob();)c=BB(a.Pb(),10),IZ(o=new ISn,c),qIn(o,ICt),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(),Cut)&&(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 jI("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),xEt=new jI("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),_Et=new jI("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),REt=new jI("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),KEt=new jI("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 Ky(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 Ky(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)),qIn(r,BB(mMn(t,Qft),61)),mMn(t,Qft),hon(r.i,(HXn(),ept),(QEn(),VIt)),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*IJ(HH(r-i))*(e-t)}function iNn(n){var t,e;if(LEn(),n.Hc((kUn(),PCt)))throw Hp(new Ky("Port sides must not contain UNDEFINED"));switch(n.gc()){case 1:return Mst;case 2:return t=n.Hc(oCt)&&n.Hc(ICt),e=n.Hc(sCt)&&n.Hc(SCt),t||e?Ist: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 xI(n.c,n.d),new xI(n.c+n.b,n.d),t,e)||mzn(new xI(n.c+n.b,n.d),new xI(n.c+n.b,n.d+n.a),t,e)||mzn(new xI(n.c+n.b,n.d+n.a),new xI(n.c,n.d+n.a),t,e)||mzn(new xI(n.c,n.d+n.a),new xI(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:m_(c.substr(0,3),"!##")?null!=t&&(r=t.length,!m_(c.substr(c.length-r,r),t)||c.length!=t.length+3)&&!m_(S7n,t):m_(c,P7n)&&!m_(S7n,t)||m_(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,Cvt=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),Ivt=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 Ky(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 Ky(C7n));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=IJ(n/OQn))*OQn),t=0,n>=CQn&&(n-=(t=IJ(n/CQn))*CQn),r=M$(IJ(n),t,e),i&&Oon(r),r)}function pNn(n,t){var e,i,r,c;for(e=!t||!n.u.Hc((lCn(),eCt)),c=0,r=new Wb(n.e.Cf());r.a<r.c.c.length;){if((i=BB(n0(r),838)).Hf()==(kUn(),PCt))throw Hp(new Ky("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 rC(iln(i+1),iln(r)):i==t&&r<t?new rC(iln(i),iln(r+1)):i>=-t&&r==t?new rC(iln(i-1),iln(r)):new rC(iln(i),iln(r-1))}function ENn(){return lWn(),Pun(Gk(ust,1),$Vn,77,0,[rot,tot,cot,kot,Fot,Mot,Uot,Oot,_ot,got,Not,Cot,Kot,lot,Wot,Vut,Lot,Hot,jot,Bot,Qot,Dot,Qut,Rot,Yot,Got,Vot,Eot,sot,Tot,yot,Xot,Zut,uot,Pot,Jut,Iot,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(),Cut)&&e.k==Cut&&BB(mMn(t,(hWn(),dlt)),10)==BB(mMn(e,dlt),10)&&(S7(t).j==(kUn(),sCt)?q$n(n,t,e):q$n(n,e,t)),t.k==Cut&&e.k==Put?S7(t).j==(kUn(),sCt)?n.d=1:n.b=1:e.k==Cut&&t.k==Put&&(S7(e).j==(kUn(),sCt)?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 Ib(n.d))&&(rtn(c,"knownOptions",i=new Il),t=new ep(i),e5(new Ib(n.d),t)),!WE(n.g)&&(rtn(c,"supportedFeatures",r=new Il),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 INn(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 Ky("There must be at least one phase in the phase enumeration."));this.c=new Y_(t=BB(Vj(this.g),9),BB(SR(t,t.length),9),0),this.a=new B2,this.b=new xp}function CNn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=7&&t){if(vkn(n,t))throw Hp(new Ky(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 Ky(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())?jIn(u.f,null,i):ubn(u.g,a,i),138))&&(null==a?jIn(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())?jIn(a.f,null,i):ubn(a.g,c,i),170))&&(null==c?jIn(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+IY(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(),Clt))))),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=C2(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)CSn(t,i=r[c])&&tBn(i,!0)}}function _Nn(n){var t,e;switch(t=null,e=null,eEn(n).g){case 1:kUn(),t=oCt,e=ICt;break;case 2:kUn(),t=SCt,e=sCt;break;case 3:kUn(),t=ICt,e=oCt;break;case 4:kUn(),t=sCt,e=SCt}Gl(n,BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)),ql(n,BB($N(Cz(BB(h6(n.k,e),15).Oc(),Qst)),113))}function KNn(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=YKn(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(),Iut)&&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!=Iut)return null}while(e&&e.k!=(uSn(),Iut));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(k_(n.b,t.b),57),(e=BB(y_(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 tK(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 Y_(c=BB(Vj(FCt),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(),oCt),2*e,i),GEn(n,t,ICt,2*e,i)):(GEn(n,t,(kUn(),sCt),2*e,i),GEn(n,t,SCt,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 Ck,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&&SKn(n.e,n),HSn(t)}function ixn(n){var t,e,i,r,c,a,u;if(r=(i=n.b).e,c=L_(BB(mMn(i,(HXn(),ept)),98)),e=!!r&&BB(mMn(r,(hWn(),Zft)),21).Hc((bDn(),lft)),!c&&!e)for(u=new _b(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(a=BB(t.dd(),113)).a&&(IZ(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,(IAn(),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(),_Lt)||(t==yLt||t==vLt||t==mLt)&&n!=pLt?new cUn(n,t):((e=(i=BB(t,677)).pk())||(kV(B7((CPn(),Z$t),t)),e=i.pk()),!e.i&&(e.i=new xp),!(r=BB(qC(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 xI(o,s)),t&&((a=BB(mMn(e,(HXn(),vgt)),74))||(a=new km,hon(e,vgt,a)),DH(a,new xI(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 xI(o,s)),t&&((e=BB(mMn(r,(HXn(),vgt)),74))||(e=new km,hon(r,vgt,e)),DH(e,new xI(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 IGn(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=KTn(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,(IAn(),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 rC(iln(-t-1),iln(-t-1));if(t==-i)return new rC(iln(-t),iln(i+1))}return e.Math.abs(t)>e.Math.abs(i)?new rC(iln(-t),iln(t<0?i:i+1)):new rC(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(),Ift))):e==Hlt?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Sft))):t==(z7(),Ift)?(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(),Kat),(lWn(),jot)),kyt=WG(dq(new B2,Kat,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,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),yyt=WG(dq(dq(new B2,Fat,Iot),Fat,uot),Bat,aot)}function gxn(){gxn=O,Iyt=dq(WG(new B2,(yMn(),Bat),(lWn(),hot)),Kat,jot),$yt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),Cyt=WG(dq(dq(dq(new B2,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),Ayt=dq(dq(new B2,Kat,Dot),Bat,xot),Oyt=WG(dq(dq(new B2,Fat,Iot),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?_x(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&&_Bn(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=IJ(e.Math.ceil(c*t)):r=IJ(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(),oCt)?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(h_n(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),pCn(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 tK(i.j),new Jr),t.g){case 1:NEn(n,c,e,(Irn(),Dst),1);break;case 0:NEn(n,new s1(c,0,a=KLn(c)),e,(Irn(),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 Ky(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 Ky(C7n));return BB(ovn(n,t,e),72)}function Ixn(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 Cxn(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 h_(KOt,n,8,5)),n.d)),gun(t,(!n.e&&(n.e=new h_(KOt,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 Ky(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 Ky(C7n));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((CPn(),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 h_(_Ot,t,4,7)),t.b),0),82)),o=PTn(BB(Wtn((!t.c&&(t.c=new h_(_Ot,t,5,8)),t.c),0),82)),JJ(u)==JJ(o)||Itn(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(),jIt));break;case 1:TAn(n,(Xyn(),EIt));break;case 2:sBn(n,(Xyn(),jIt));break;case 3:sBn(n,(Xyn(),EIt));break;case 4:uDn(n,(Xyn(),jIt));break;case 5:uDn(n,(Xyn(),EIt))}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(),oCt):a.j==(kUn(),ICt))&&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(CW(n));break;case 6:n.g=jgn(AW(n));break;case 5:n.g=iln(hJ(n));break;case 7:n.g=rln(K3(n))}return n.g}function _xn(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(_3(n))}return n.n}function Kxn(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 Kb(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 xI(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DCt))&&(r=BB(mMn(n,Hgt),8),a.Hc((nKn(),GCt))&&(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(k_(n.b,t.b),81),(e=BB(y_(n.b,t.b),81))&&(n.a[e.i]=t.b)):(!!(i=BB(k_(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(y_(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),qIn(r=new ISn,(kUn(),ICt)),IZ(r,t),r.n.b=u,qIn(c=new ISn,oCt),IZ(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),sIn(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,15,1),this.b=x8(xNt,qQn,25,Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]).length,15,1),this.a=x8(xNt,qQn,25,Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]).length,15,1),mS(this.c,RQn),mS(this.b,_Qn),mS(this.a,_Qn)}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,vIn(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 Ca,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=_Qn,uSn(),o=Iut,c=new Wb(t.a);c.a<c.c.c.length;)(a=(r=BB(n0(c),10)).k)!=Iut&&(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(KDn(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(),ICt)).Kc().Pb(),11),c=BB(DSn(t,oCt).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)),Cen(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(),_lt)),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:oIn(c,t);default:e.b==e.c||pKn(e,i,u,!1,t),u=!1,i=0}e.b==e.c||pKn(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,Krn((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 h_(_Ot,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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 h_(_Ot,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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=UCn(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),GC(ZAn(n,ept))===GC((QEn(),YIt))&&Ypn(n,ept,QIt),GM(),r=qzn(new Dy(JJ(n)),new JN(JJ(n)?new Dy(JJ(n)):null,n),!1,!0),orn(c,(mdn(),DCt)),(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(),sCt),sCt),Gst=new WV(kJn,1,SCt,SCt),Fst=new WV(yJn,2,oCt,oCt),Xst=new WV(jJn,3,ICt,ICt),qst=new WV("NORTH_WEST_CORNER",4,ICt,sCt),Hst=new WV("NORTH_EAST_CORNER",5,sCt,oCt),Ust=new WV("SOUTH_WEST_CORNER",6,SCt,ICt),zst=new WV("SOUTH_EAST_CORNER",7,oCt,SCt)}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 rC(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 rC(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=p_n(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(m_(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 IDn(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)),IDn(n,u,e))}function CDn(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=CDn(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 IT(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 xI(s,l),h=new xI(a,b),r=s,e.p||(r+=n.c),o=new xI(r+=e.F+e.v*n.b,l),f=new xI(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xI(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,K5n),"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,K5n,QJn,LCt),u2(n,K5n,vZn,15),u2(n,K5n,yZn,iln(0)),u2(n,K5n,VJn,dZn)}function _Dn(){var n,t,e,i,r,c;for(_Dn=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 KDn(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 xI(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DCt))&&(r=BB(mMn(n,Hgt),8),a.Hc((nKn(),GCt))&&(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(),SCt)).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,sCt).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==IQn&&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,[KPt,FPt])),t||(orn(u,HPt),orn(u,_Pt)),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 _j(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 rC(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((qK(),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(GC(t)===GC(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(),GC(r)!==GC(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],GC(t)===GC(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),Izn((l1(0,(c=t.b).c.length),BB(c.c[0],29)),r,t),Izn(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,(IAn(),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),_Hn(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),Cit=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;)GC(mMn(a=BB(n0(u),11),(hWn(),dlt)))===GC(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(),sCt)?-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(),sCt)?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=_ut}return r&&i?_B(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 xI(t.b,t.a)),BB(mMn(n,kdt),248).g){case 1:hon(n,kdt,(wvn(),LMt));break;case 2:hon(n,kdt,(wvn(),CMt));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 Q_(i),yrn(this.e,this.c,(kUn(),ICt)),this.i=new Q_(i),yrn(this.i,this.c,oCt),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((nKn(),HCt)),a=n.B.Hc(zCt),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 Cgn(1,c,n.c)).n.a=n.k,mG(n.p,(kUn(),sCt),i),(r=new Cgn(1,c,n.c)).n.d=n.k,mG(n.p,SCt,r),(u=new Cgn(0,c,n.c)).n.c=n.k,mG(n.p,ICt,u),(e=new Cgn(0,c,n.c)).n.b=n.k,mG(n.p,oCt,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 Id(i)),e=i;break;default:throw Hp(new Fy("Compaction not supported for "+t+" edges."))}gqn(n,e),e5(new Ib(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,_Ot),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,KOt),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=ISt,Yct=uPt,Bct=new XA(dSt,!1),Wct=USt,Xct=qSt,Uct=_St,zct=DSt,Jct=fPt,jSn(),Gct=Cct,aat=Nct,qct=Ict,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(KAn(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(_4n),OM(),xTt=new $O(q4n,DTt=GTt),Lun(),LTt=new $O(K4n,NTt=WTt),$Sn(),ATt=new $O(F4n,$Tt=rTt),PTt=new $O(B4n,null),$6(),CTt=new $O(H4n,OTt=ZEt),IM(),jTt=new $O(G4n,ETt=XEt),TTt=new $O(z4n,(hN(),!1)),MTt=new $O(U4n,iln(64)),STt=new $O(X4n,!0),ITt=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();)AIn(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(),ICt):(kUn(),oCt)):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();)GC(ZAn(i=BB(kpn(r),33),(sWn(),ESt)))!==GC((ufn(),mIt))&&((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=sCt,i+=r.gc()):u<i&&(kUn(),e=SCt,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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]))),new Jy((Irn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))),u=0,o=(a=Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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((lCn(),rCt)),e=n.u.Hc(tCt),i=n.u.Hc(nCt),s=n.u.Hc(cCt),f=n.B.Hc((nKn(),QCt)),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((lCn(),rCt)),e=n.u.Hc(tCt),i=n.u.Hc(nCt),o=n.u.Hc(cCt),f=n.B.Hc((nKn(),QCt)),s=!e&&!i&&(o||2==a.gc()),VKn(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==Cut)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==Cut)&&jRn(n,c,e))return!0;return!0}function ERn(n){var t;return 0!=(64&n.Db)?_On(n):((t=new fN(_On(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&KQn)),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 xI(o,u)),h=new Wb(n.g);h.a<h.c.c.length;)t=UR(Fx(new xI((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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,0,2),a=0,u=(c=Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length;a<u;++a)o[(r=c[a]).g]=x8(xNt,qQn,25,n.c[r.g],15,1);return Bkn(o,n,sCt),Bkn(o,n,SCt),xmn(o,n,sCt,t,e,i),xmn(o,n,oCt,t,e,i),xmn(o,n,SCt,t,e,i),xmn(o,n,ICt,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 Kpn(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 IRn(n){var t,i,r,c,a,u;n.q!=(QEn(),WIt)&&n.q!=XIt&&(c=n.f.n.d+XH(BB(oV(n.b,(kUn(),sCt)),124))+n.c,t=n.f.n.a+XH(BB(oV(n.b,SCt),124))+n.c,r=BB(oV(n.b,oCt),124),u=BB(oV(n.b,ICt),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 CRn(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(),Ilt))))&&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(Kut,new Du,new Ru),xJ(hOt,new _u,new Ku),xJ(met,new ku,new ju),xJ(Cet,new Eu,new Tu),xJ(jet,new Mu,new Su),xJ(Eet,new Pu,new Iu),xJ(Bet,new Cu,new Ou)}function ARn(n){var t,e,i,r,c,a;return c=0,(t=Ckn(n)).Bj()&&(c|=4),0!=(n.Bb&T9n)&&(c|=2),cL(n,99)?(r=Ivn(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 Ck,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);)IW(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((CPn(),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((CPn(),Z$t),t)))||n.d.Hc(Fqn((CPn(),Z$t),n.b,t))))||!(!n.f||!aNn((CPn(),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=_Qn,a=t.c.Kc();a.Ob();)c=BB(a.Pb(),57),BB(qC(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(qC(AY(u.f,t)),15);Kxn(n)}function _Rn(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=_Qn,a=t.f.Kc();a.Ob();)c=BB(a.Pb(),81),BB(qC(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(qC(AY(u.f,t)),15);BNn(n)}function KRn(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)),IW(r)&&ZU(f,s==r.c?r.d:r.c));return yX(f),new tK(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 _b(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,m_(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 Y_(t=BB(Vj(GIt),9),BB(SR(t,t.length),9),0),i.Hc((n$n(),$It))?orn(e,$It):orn(e,LIt),i.Hc(OIt)||orn(e,OIt),i.Hc(CIt)?orn(e,DIt):i.Hc(IIt)?orn(e,xIt):i.Hc(AIt)&&orn(e,NIt),i.Hc(DIt)?orn(e,CIt):i.Hc(xIt)?orn(e,IIt):i.Hc(NIt)&&orn(e,AIt),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(GC(c=BB(n0(a),11))===GC(mMn(e,dlt))){c.j==(kUn(),sCt)&&n.p>r.p?(qIn(c,SCt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=u-t)):c.j==SCt&&r.p>n.p&&(qIn(c,sCt),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 rC(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 Ky("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 xI(o,h)),DH(c,new xI(o,f)),DH(c,new xI(s,f)),DH(c,new xI(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 xI(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 n_n(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xI(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 t_n(n){if(0==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i)throw Hp(new ck("Edges must have a source."));if(0==(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new ck("Edges must have a target."));if(!n.b&&(n.b=new h_(_Ot,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c.i<=1)))throw Hp(new ck("Hyperedges are not supported."))}function e_n(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,Cdt))),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+=nIn(n,e));return f}function i_n(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=lKn(t.substr(d,w-d),KVn,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 r_n(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 c_n(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 a_n(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 u_n(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 o_n(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=XIn(i,e);break;case 1:e=_Tn(i,e)}e.dc()||tXn(n,e),HSn(t)}function s_n(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),VIn((i=new oC(n,o)).a,i.b,a),u=N2(s,N6n),QIn((r=new sC(n,o)).a,r.b,u),0==(!o.b&&(o.b=new h_(_Ot,o,4,7)),o.b).i||0==(!o.c&&(o.c=new h_(_Ot,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 h_n(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 f_n(n){var t,i,r,c,a,u,o,s,h,f,l;for(i=KVn,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 l_n(n){switch(n.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return BB(_xn(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 QC(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 b_n(n){NM(n,new MTn(vj(wj(pj(gj(new du,_5n),"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,_5n,QJn,dIt),u2(n,_5n,g3n,mpn(gIt)),u2(n,_5n,g5n,mpn(hIt)),u2(n,_5n,PZn,mpn(fIt)),u2(n,_5n,BZn,mpn(bIt)),u2(n,_5n,Y2n,mpn(lIt))}function w_n(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 Ky("value already present: "+e));return r=new qW(t,i,e,a),c?(LLn(n,c),YIn(n,r,c),c.e=null,c.c=null,c.i):(YIn(n,r,null),qkn(n),null)}function d_n(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 xI(a,l):new xI(s,l),h=c.c?new xI(s,b):new xI(a,b),r=s,e.p||(r+=n.c),o=new xI(r+=e.F+e.v*n.b,l),f=new xI(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xI(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function g_n(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(GC(a.jl(u))===GC(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 Ivn(BB(itn(n.Tg(),e),18))}return null}function p_n(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 v_n(n,t){var e,i,r;for(i=new Wb(t);i.a<i.c.c.length;)if(e=BB(n0(i),33),JCn(n.a,e,e),JCn(n.b,e,e),0!=(r=wDn(e)).c.length)for(n.d&&n.d.lg(r),JCn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JCn(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),JCn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JCn(n.b,e,BB(xq(r,r.c.length-1),33))}function m_n(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 y_n(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 k_n(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 j_n(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=j_n(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=xCn(n,t)).dc()?u||(SQ(),SQ(),set):u?(r||(u=new rG(u)),u.Gc(i),u):i}function E_n(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=E_n(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 T_n(n,t,e){var i,r,c,a,u,o;if(cL(t,72))return Kpn(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=T_n(n,u,e)),e}function M_n(n){var t,i,r,c;r=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?c=r.a:(c=SCn(n.f),n.A.Hc((mdn(),RCt))&&!n.B.Hc((nKn(),XCt))&&(c=e.Math.max(c,SCn(BB(oV(n.p,(kUn(),sCt)),244))),c=e.Math.max(c,SCn(BB(oV(n.p,SCt),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,KFn(n.f)}function S_n(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=k_n(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 P_n(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 I_n(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 C_n(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]||(hCn(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 O_n(n,t,e,i){var r,c,a,u,o,s,h;for(Pen(a=BB(Wtn(t,0),33),0),Ien(a,0),(o=new Np).c[o.c.length]=a,u=a,c=new eq(n.a,a.g,a.f,(YLn(),KEt)),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,_Et,h,u,c,o,e),nHn(n,REt,h,u,c,o,e),h,u,i)).d),Ien(h,r.e),ab(r,KEt),c=r,u=h,o.c[o.c.length]=h;return c}function A_n(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,_4n,mpn(qTt)),u2(n,Q4n,QJn,BTt),u2(n,Q4n,vZn,8),u2(n,Q4n,q4n,mpn(HTt)),u2(n,Q4n,U4n,mpn(KTt)),u2(n,Q4n,X4n,mpn(FTt)),u2(n,Q4n,X2n,(hN(),!1))}function $_n(n,t,e,i){var r,c,a,u,o,s,h,f;for(a=Kx(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 L_n(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((lCn(),iCt)),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 N_n(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 x_n(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 D_n(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,KPt),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=_Qn,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 R_n(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 __n(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(KB((!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 K_n(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 F_n(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=k_n(o,"\\w")).length;a<u;++a)m_(r=c[a],"##other")?WB(i,"!##"+az(n,Utn(t.Hj()))):m_(r,"##local")?i.c[i.c.length]=null:m_(r,E7n)?WB(i,az(n,Utn(t.Hj()))):i.c[i.c.length]=r;return i}return SQ(),SQ(),set}function B_n(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 H_n(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 q_n(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 G_n(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:_wn(e),hPn(n,e,$En(e)?e.c:e.f);break;case 1:_wn(e),hPn(n,e,$En(e)?e.f:e.c)}hMn(e.a)}}function z_n(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 xI((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?d_n(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 U_n(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),Ien(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),U_n(n,s,i+n.c,u,u+b*f,a),u+=b*f}function X_n(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 W_n(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;)eKn(n,e,e$n(n,e)),e=yln(n),++i;c&&tTn(n),n.a?p$n(n,f_n(n)):f_n(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 V_n(n,t,e,i){var r,c,a,u,o,s,h,f;for(XR(u=new xI(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 Q_n(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 Y_n(n){var t,e,i,r,c,a,u;for(c=new dE(BB(yX(new Rn),62)),u=_Qn,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 Kb(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 J_n(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 Z_n(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 Z_n(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 Z_n(c,r)}}return BB(iL(n.Kc()),86)}function nKn(){nKn=O,GCt=new QI("DEFAULT_MINIMUM_SIZE",0),UCt=new QI("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),qCt=new QI("COMPUTE_PADDING",2),XCt=new QI("OUTSIDE_NODE_LABELS_OVERHANG",3),WCt=new QI("PORTS_OVERHANG",4),QCt=new QI("UNIFORM_PORT_SPACING",5),VCt=new QI("SPACE_EFFICIENT_PORT_LABELS",6),zCt=new QI("FORCE_TABULAR_NODE_LABELS",7),HCt=new QI("ASYMMETRICAL",8)}function tKn(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 eKn(n,t,e){var i,r,c;if(!t.f)throw Hp(new Ky("Given leave edge is no tree edge."));if(e.f)throw Hp(new Ky("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,FIn(n,e.e,t)||(i=-i),c=new Wb(n.e.a);c.a<c.c.c.length;)FIn(n,r=BB(n0(c),121),t)||(r.e+=i);n.j=1,nk(n.c),pCn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}function iKn(n,t){var e,i,r,c,a,u;if((u=BB(mMn(t,(HXn(),ept)),98))==(QEn(),WIt)||u==XIt)for(r=new xI(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(),oCt)&&e!=ICt||(i=Gy(MD(mMn(c,Tlt))),u==WIt&&(i*=r),c.n.b=i-BB(mMn(c,npt),8).b,Jan(c,!1,!0)))}function rKn(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(),ICt):(kUn(),oCt),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 cKn(n,t,e,i){var r,c,a,u,o;u=abn(t,e),(e==(kUn(),SCt)||e==ICt)&&(u=cL(u,152)?o6(BB(u,152)):cL(u,131)?BB(u,131).a:cL(u,54)?new fy(u):new IT(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 aKn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;if(!mA(n.e))return BB(YCn(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(Cln(n,t,e),72),u!=o&&Lv(n,new j9(n.e,7,a,iln(u),b.dd(),o)),l}return BB(Cln(n,t,e),72)}function uKn(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(),UIt)||c==WIt||c==XIt?(SQ(),m$(a,sst)):c!=QIt&&c!=YIt&&(SQ(),m$(a,fst),Lvn(a),u==(U7(),Kvt)&&m$(a,hst)),i.i=!0,eCn(i);HSn(t)}function oKn(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),jIn(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 sKn(){sKn=O,byt=dq(new B2,(yMn(),Fat),(lWn(),vot)),dyt=dq(new B2,Kat,jot),gyt=WG(dq(new B2,Kat,Dot),Bat,xot),lyt=WG(dq(dq(new B2,Kat,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,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),fyt=WG(dq(dq(new B2,Fat,Iot),Fat,uot),Bat,aot)}function hKn(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&&(!Iyn(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 fKn(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(),oCt)?n.f[a.p]=e<s?n.c-e:n.b+(o-e):h==ICt&&(n.f[a.p]=e<s?n.b+e:n.c-(o-e))}}function lKn(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 bKn(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 wKn(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 h_(_Ot,c,4,7)),c.b),0),82))).i,o=i.j,IA(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 dKn(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 gKn(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 IZ(r=new ISn,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 pKn(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(),jIt)):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(),EIt)):2==(n.c-n.b&n.a.length-1)?(hFn(BB(Eon(n),10),(Xyn(),jIt)),hFn(BB(Eon(n),10),EIt)):sLn(n,r),o4(n)}function vKn(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),jIn(i.f,r,o)}function mKn(n){var t,e,i,r,c;i=BB(mMn(n,(hWn(),dlt)),33),c=BB(ZAn(i,(HXn(),Fgt)),174).Hc((mdn(),KCt)),n.e||(r=BB(mMn(n,Zft),21),t=new xI(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(),XIt)),_Un(i,t.a,t.b,!1,!0)):qy(TD(ZAn(i,Bgt)))||_Un(i,t.a,t.b,!0,!0)),Ypn(i,Fgt,c?nbn(KCt):new Y_(e=BB(Vj(YCt),9),BB(SR(e,e.length),9),0))}function yKn(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=UCn(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=UCn(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 kKn(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 _b(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 _b(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,R_n(n,c))}function jKn(n){var t,e,i,r,c;for(c=WJ(n),r=new AL((!n.e&&(n.e=new h_(KOt,n,7,4)),n.e));r.e!=r.i.gc();)if(i=BB(kpn(r),79),!Itn(PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,i,5,8)),i.c),0),82)),c))return!0;for(e=new AL((!n.d&&(n.d=new h_(KOt,n,8,5)),n.d));e.e!=e.i.gc();)if(t=BB(kpn(e),79),!Itn(PTn(BB(Wtn((!t.b&&(t.b=new h_(_Ot,t,4,7)),t.b),0),82)),c))return!0;return!1}function EKn(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 xI(o.a,o.b),i)),u=ctn(XR(new xI(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 TKn(n,t,e,i){var r,c,a,u,o;return a=n.eh(),r=null,(o=n.Zg())?t&&0==(g_n(n,t,e).Bb&BQn)?(i=Kpn(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 MKn(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 SKn(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,qIn(a,BB(mMn(i,Qft),61)));e=new xI(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(),XIt)),BB(mMn(vW(n),Zft),21).Fc(dft),bGn(n,e,!1)):bGn(n,e,!0)}function PKn(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=GC(mMn(t,(HXn(),sgt)))===GC((ufn(),pIt)),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 IKn(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 Ky("key already present: "+e));return a&&LLn(n,a),c&&LLn(n,c),YIn(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 CKn(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 OKn(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),IJ(e.Math.ceil(f))),r),a)),c=u,r=a;UNn(aM(cM(rM(uM(new Hv,0),IJ(e.Math.ceil(h.a+c.o.b))),r),i.d))}}function AKn(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 $Kn(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 LKn(n,t,e){var i,r,c,a,u;if(0==t.p){for(t.p=1,(r=e)||(r=new rC(new Np,new Y_(i=BB(Vj(FCt),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);)LKn(n,BB(U5(u),11).i,r);return r}return null}function NKn(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(m_(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(m_(t,(e=BB(kpn(i),590)).d))return e;return null}function xKn(n,t){var e,i,r,c,a,u,o;if(null==(o=TD(mMn(t,(IAn(),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 DKn(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,_6n),qR((c=new hC(n,b)).a,c.b,f),l=R2(r,R6n),GR((a=new fC(n,b)).a,a.b,l),s=N2(r,F6n),Fyn((u=new lC(e,b)).b,u.a,s),h=N2(r,K6n),Byn((o=new bC(i,b)).b,o.a,h)}function RKn(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 ISn,(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 ISn,(hWn(),klt),(hN(),!0))}return u&&(IZ(u,n),qIn(u,e),yvn(u.n,n.o,e)),u}function _Kn(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 KKn(n,t,e,i,r){var c,a,u,o;Bl(c=new $vn(n),(uSn(),Cut)),hon(c,(HXn(),ept),(QEn(),XIt)),hon(c,(hWn(),dlt),t.c.i),hon(a=new ISn,dlt,t.c),qIn(a,r),IZ(a,c),hon(t.c,Elt,c),Bl(u=new $vn(n),Cut),hon(u,ept,XIt),hon(u,dlt,t.d.i),hon(o=new ISn,dlt,t.d),qIn(o,r),IZ(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 FKn(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 BKn(n,t,e,i){var r,c,a,u,o,s,h;if(WCn(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 HKn(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 rC(e.c.i,e)));SQ(),m$(s,n.c),kG(n.b,u.p,s)}}function qKn(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 rC(e.d.i,e)));SQ(),m$(s,n.c),kG(n.f,u.p,s)}}function GKn(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(KMt)),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(_Mt))}function zKn(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(),PCt;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(),ICt;if(s+u>a)return kUn(),oCt;break;case 4:case 3:if(h<0)return kUn(),sCt;if(h+e>c)return kUn(),SCt}return(o=(s+u/2)/a)+(i=(h+e/2)/c)<=1&&o-i<=0?(kUn(),ICt):o+i>=1&&o-i>=0?(kUn(),oCt):i<.5?(kUn(),sCt):(kUn(),SCt)}function UKn(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=_Vn*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=_$(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 XKn(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;)GC((s=BB(n0(h),181)).We((sWn(),gSt)))===GC((Rtn(),XPt))&&(r_n(f,s,!1,i,r,c,a),IPn(n,f));for(u=e.Kc();u.Ob();)for(h=new Wb(BB(u.Pb(),839).wf());h.a<h.c.c.length;)GC((s=BB(n0(h),181)).We((sWn(),gSt)))===GC((Rtn(),UPt))&&(r_n(f,s,!0,i,r,c,a),IPn(n,f))}function WKn(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)||QCn(i)||(o=BB(qC(AY(e.f,c)),86),s=BB(RX(e,PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,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 VKn(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=KTn(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 QKn(n,t){var e;switch(vnn(n)){case 6:return XC(t);case 7:return UC(t);case 8:return zC(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===C);case 1:return DU(t)&&!(t.im===C)||Qpn(t,n.__elementTypeId$);default:return!0}}function YKn(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 JKn(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 ZKn(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(),Cat)&&(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 xI(u/c,t.d.b);case 2:return new xI(t.d.a,o/c);default:return new xI(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(),UIt)&&c!=WIt&&c!=XIt)return 0;if(c==(QEn(),UIt)&&(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 xI(n.j,n.k)),JT(new Rq(null,(!n.a&&(n.a=new $L(xOt,n,5)),new w1(n.a,16))),new Cg(c)),WB(c,new xI(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(),KPt)),Uun(o,!1,FPt)):i>0&&(Uun(o,!1,(Ffn(),KPt)),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]=IJ(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 Ky(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 h_(_Ot,n,4,7)),n.b),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)),!1)),bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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):GC(a)===GC(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):GC(a)===GC(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));BIn(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(),TIt),hon(n,ult,i),i!=(Xyn(),EIt)))for(r=BB(mMn(n,dlt),17),u=Gy(MD(mMn(r,(HXn(),agt)))),a=0,i==jIt?a=n.o.b-e.Math.ceil(u/2):i==TIt&&(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(),Ift)&&(h=r):i==(z7(),Ift)&&(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,Clt)))||GC(mMn(t.j,(HXn(),Ldt)))===GC((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,Clt)))&&hon(t.j,Clt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Clt,!0)),e=e_n(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=e_n(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,Clt)))||GC(mMn(t.j,(HXn(),Ldt)))===GC((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,Clt)))&&hon(t.j,Clt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Clt,!0)),e=nIn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=nIn(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 Cln(n,o,u),mA(n.e)&&Lv(n,LY(n,7,t,iln(i),h,e,!0)),h}throw Hp(new Ky("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),GC(mMn(i,(HXn(),Udt)))===GC((Ffn(),BPt))&&hon(i,Udt,Wln(i)),null==mMn(i,(I6(),TMt))&&(a=BB($Mn(n),160),hon(i,TMt,iO(a.We(TMt)))),hon(i,(hWn(),dlt),n),hon(i,Zft,new Y_(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),_N(e?u.b:u.g,t),1==kbn(u).c.length&&r5(i,u,i.c.b,i.c),r=new rC(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),CFn(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));CXn(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 zC(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 UC(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 IFn(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 xI(i+t,b+o+t)}function CFn(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 Ky("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 Ky("Target port must be in one of the port sets."));dJ(),f=Nyt}u=new tIn(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(),PCt;switch(u=n.i,o=n.j,t.g){case 2:case 1:if(u<0)return kUn(),ICt;if(u+n.g>c)return kUn(),oCt;break;case 4:case 3:if(o<0)return kUn(),sCt;if(o+n.f>r)return kUn(),SCt}return(a=(u+n.g/2)/c)+(e=(o+n.f/2)/r)<=1&&a-e<=0?(kUn(),ICt):a+e>=1&&a-e>=0?(kUn(),oCt):e<.5?(kUn(),sCt):(kUn(),SCt)}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 Ky("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(),INt)return INt;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),INt=e}function _Fn(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 KFn(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),HKn(f,n),f.f=sx(f.d),qKn(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(_ct,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=C$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())&&GC(e)===GC(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 Ky(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),Cbn(n.b.c,c.b.c+c.b.b)<=0&&Cbn(c.b.c,n.b.c+n.b.b)<=0&&Cbn(n.b.d,c.b.d+c.b.a)<=0&&Cbn(c.b.d,n.b.d+n.b.a)<=0){if(0==Cbn(c.b.c,n.b.c+n.b.b)&&r.a<0||0==Cbn(c.b.c+c.b.b,n.b.c)&&r.a>0||0==Cbn(c.b.d,n.b.d+n.b.a)&&r.b<0||0==Cbn(c.b.d+c.b.a,n.b.d)&&r.b>0){o=0;break}}else o=e.Math.min(o,HIn(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 Ky("The vector chain must contain at least a source and a target point."));for(Px(0!=n.b),IA(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(),sCt)?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==sCt?c.c:c.a,u=t==sCt?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 xI(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 xI(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 Il),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 Il)),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 xI((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 Il),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 Il,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,RKn(a.i,(ain(),qvt),(kUn(),oCt))):SZ(n,a),t&&qy(TD(mMn(c,(hWn(),klt))))?MZ(n,RKn(c.i,(ain(),Hvt),(kUn(),ICt))):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(),Ilt)))),hon(n,Ilt,(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),jIn(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=IJ(e.Math.max(0,a-h)),c=IJ(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 nI(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(),PCt)&&((i=BB(mMn(t,(hWn(),Elt)),10))?qIn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qIn(t,oCt):qIn(t,ICt));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))?qIn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qIn(t,(kUn(),oCt)):qIn(t,(kUn(),ICt));hon(n,ept,(QEn(),VIt))}}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++)_x(n,0,BB(Dpn(n,0),8));if(n.b<4)throw Hp(new Ky("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,C$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(),Ilt))))&&qy(TD(mMn(o,Ilt)))?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(),Ilt))))?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):GC(a)===GC(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):GC(a)===GC(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=XIn(r,i);break;case 1:i=_Tn(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(),Cdt))))||0!=Gy(MD(mMn(t.j,Cdt))))for(e=ZJn,GC(mMn(t.j,Ldt))!==GC((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,GC(mMn(t.j,Ldt))!==GC((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=I$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(GC(e)===GC(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=!!Ivn(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&&!Ivn(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=IJ(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=IJ(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(),sCt)?u.c[u.c.length]=c:o==SCt&&(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),K_n(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(),oCt)||r==ICt))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;)GC(mMn(c=BB(n0(a),10),ept))!==GC((QEn(),UIt))&&GC(mMn(c,ept))!==GC(XIt)&&(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),GC(ZAn(t,sgt))===GC((ufn(),pIt))?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 IBn(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 CBn(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=_Qn,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(),XIt)),i.c[i.c.length]=r,IZ(a=new ISn,r),qIn(a,(kUn(),ICt)),IZ(u=new ISn,r),qIn(u,oCt),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()),GC(mMn(o=BB(s.d.Xb(s.c=s.b++),70),Ydt))===GC((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(),XIt)),i.c[i.c.length]=r,IZ(a=new ISn,r),qIn(a,(kUn(),ICt)),IZ(u=new ISn,r),qIn(u,oCt),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 rC(b,l)}function NBn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(e=new _b(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=KD(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 rC(l,c.c));for(yQ(n.a),f=spn(n.b,0);f.b!=f.d.c;)h=BB(b3(f),478),t=_D(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=bCn(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 _Bn(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 KBn(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 xI(u.a,u.b),c),.5),o=kL(B$(n.e),.5),t=XR(UR(new xI(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),K8(0,c,n.length),K8(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(),Cut)),hon(c,(HXn(),ept),(QEn(),XIt)),r=0,t){for(hon(a=new ISn,(hWn(),dlt),t),hon(c,dlt,t.i),qIn(a,(kUn(),ICt)),IZ(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 ISn,hon(c,(hWn(),dlt),e.i),hon(u,dlt,e),qIn(u,(kUn(),oCt)),IZ(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{COt=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(IJ(n.e)),c=new Ck,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,IJ(i)),oO(c,r.substr(t))}else oO(c,fx(r,t,IJ(i=t-i))),c.a+=".",oO(c,nO(r,IJ(i)));else{for(oO(c,r.substr(t));i<-qtt.length;i+=qtt.length)Nq(c,qtt);gR(c,qtt,IJ(-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 xI(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 xI(i.a,i.b),kL(new xI(r.a,r.b),.5))),u=W8(UR(new xI(n.a,n.b),t),c),o=.5*e.Math.sqrt(r.a*r.a+r.b*r.b),a<u&&a<=o?new xI(n.a,n.b):u<=o?UR(new xI(n.a,n.b),t):null):null:l>=0&&l<=1&&b>=0&&b<=1?UR(new xI(n.a,n.b),kL(new xI(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(),oCt)?a.n.a+=e.a-t.a:r==SCt&&(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(),oCt)?c.n.a+=e.a-t.a:r==SCt&&(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 Cb(new Ib(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=_Qn,l=RQn,s=_Qn,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 xI(o-f,s-l),n.c=new xI(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=T_n(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 Ky("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(),_lt)),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,KOt),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=FCn(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=FCn(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 xC(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 g_(BB(t.Yj(),148),o.a)}return null!=(h=c.dd())&&e&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(h=FCn(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),GC(n)===GC(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&&KIn(n,t,e,i,r,!0)}function uHn(){uHn=O,ret=Pun(Gk(ANt,1),hQn,25,15,[KVn,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 RK(h&&c||f&&a,h,f)):new RK(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 h_(_Ot,n,4,7)),e=!(n.b.i<=1&&(!n.c&&(n.c=new h_(_Ot,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(),Cgt))))&&!qy(TD(mMn(n,bgt)))||vA(BB(mMn(n,ept),98)))switch(IZ(u=new ISn,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),qIn(u,zKn(u,c))):(r=hwn(c),qIn(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(),sCt)||o==SCt)&&a.Fc((bDn(),gft));break;case 4:case 3:(o==(kUn(),oCt)||o==ICt)&&a.Fc((bDn(),gft))}else r=hwn(c),u=RKn(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()!=_Pt)continue}else if(c.gf()!=(Ffn(),KPt)&&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=_$(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 h_(_Ot,e,4,7)),e.b),0),186)||(o=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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 xI(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 xI(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,f=a+b.a,l=u+b.b,Cen(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,_4n,mpn(kTt)),u2(n,R4n,K4n,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+=Cdn(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+=Cdn(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 Ky(C7n));if(i.gc()>1)throw Hp(new Ky(C7n));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(Cz(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(Cz(BB(h6(r.k,i[1]),15).Oc(),Qst)),113));break;case 2:VPn(n,r);break;case 3:_Nn(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:_Qn,!(u=cFn(n,new aI(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 xC(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=MCn(n.f),n.A.Hc((mdn(),RCt))&&!n.B.Hc((nKn(),XCt))&&(t=e.Math.max(t,MCn(BB(oV(n.p,(kUn(),oCt)),244))),t=e.Math.max(t,MCn(BB(oV(n.p,ICt),244)))),(i=oan(n))&&(t=e.Math.max(t,i.b)),n.A.Hc(_Ct)&&(n.q!=(QEn(),WIt)&&n.q!=XIt||(t=e.Math.max(t,XH(BB(oV(n.b,(kUn(),oCt)),124))),t=e.Math.max(t,XH(BB(oV(n.b,ICt),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 IHn(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 CHn(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(),Iut))return!1;if(n.j.c.length<=1)return!1;if(BB(mMn(n,(HXn(),ept)),98)==(QEn(),XIt))return!1;if(bvn(),(i=(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),_gt),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(),ICt)),t.d+t.a+(c.gc()-1)*r>n.o.b)return!1;if(e=abn(n,oCt),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=PCt,b?f=b.j:vA(BB(mMn(i,ept),98))&&(f=a==Hvt?ICt:oCt),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)),JCn(n.a,r,new LK(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=Ifn(n.e,i).ne())?jIn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jIn(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=Ifn(n.e,i).ne())?jIn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jIn(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,H_n(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 xI(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(),VIt)):hon(t,ept,(QEn(),QIt)),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||VC(o,(dxn(),jyt)),c=!h||VC(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)),IAt=Bun(48,57),TAt=i0(SAt,0),MAt=i0(PAt,IAt),CAt=i0(i0(0,Bun(1,6)),Bun(33,38)),OAt=i0(i0(IAt,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 _Hn(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);)_Hn(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),CGn(n,t)):hon(t,fkt,c)}}function KHn(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 tK(i):HB(new Wb(i))),n.b=(yX(r),r?new tK(r):HB(new Wb(r))),n.i=a);++u,h=0!=l&&qy(TD(t.Kb(new rC(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==_Et,b=l==DEt||l==_Et,s=a==DEt||a==xEt,w=l==DEt||l==xEt,!u||l!=xEt&&l!=REt?o&&b?n.f==_Et?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),y_n(n.b,i.c,i,null),y_n(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;)IBn(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 tK(BB(h6(n.a,c),21)),SQ(),m$(i,new Kw(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 Kn,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)&&QC(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)&&QC(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))&&(IZ(s=new ISn,c),qIn(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 h_(KOt,n,7,4)),n.e));s.e!=s.i.gc();)a=(u=QCn(o=BB(kpn(s),79)))&&c&&qy(TD(ZAn(o,dgt))),l=PTn(BB(Wtn((!o.c&&(o.c=new h_(_Ot,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 h_(KOt,n,8,5)),n.d));i.e!=i.i.gc();)a=(u=QCn(e=BB(kpn(i),79)))&&c&&qy(TD(ZAn(e,dgt))),f=PTn(BB(Wtn((!e.b&&(e.b=new h_(_Ot,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(),XIt)),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=UKn(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 tK(n):HB(n.a.ec().Kc()),new Ew(w)),u=S4(a),o=new I$(t),jIn((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(qC(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 I$(h),WB(BB(qC(AY(b.f,f)),221).a,l),jIn(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 Kv),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?Iv(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):Iv(n.a,t);else for(r=0;r<t.em();r++)tqn(n,t.am(r));else Iv(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),IJ(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 Ik).a+=""+r,n.e>0&&i>=-6?i>=0?kZ(c,e-IJ(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,-IJ(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 C7).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,(IQ(),fit)),r.g){case 1:I$n(i);break;case 2:I$n(Tzn(i,(Ffn(),FPt)));break;case 3:I$n(Uk(Tzn(I$n(i),(Ffn(),FPt)),new gr));break;case 4:I$n(Uk(Tzn(I$n(i),(Ffn(),FPt)),new kd(c)));break;case 5:I$n(Xk(i,wst))}Tzn(i,(Ffn(),KPt)),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),_8(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 DC(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(Kan(this),i==(dJ(),Lyt)?TU(this.r,n):TU(this.w,n),f=RQn,h=_Qn,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(),yCt).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(),yCt).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(),Igt)),142),a=e.Math.min(a,u.n.a-r.b);return new qf(yX(a))}if(0!=o.e.c.length){for(c=_Qn,i=new Wb(o.e);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.c.i,(HXn(),Igt)),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(GC(n.Gk(BB(n.g[r],56)))===GC(t))return!0;return u}if(n.Dk()&&!n.Ck()){if(GC(c=BB(t,56).ah(Ivn(BB(n.ak(),18))))===GC(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(GC(i=n.Gk(BB(n.g[r],56)))===GC(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(),Cut)&&(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)),L_(BB(mMn(u,(HXn(),ept)),98))||hon(u,ept,(QEn(),UIt));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,eCn(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(),sCt)?qIn(i,SCt):h==SCt&&qIn(i,sCt),BB(mMn(t,(HXn(),Fgt)),174).Hc((mdn(),KCt))){if(o=Gy(MD(mMn(n,Ipt))),s=Gy(MD(mMn(n,Cpt))),a=Gy(MD(mMn(n,Spt))),(u=BB(mMn(t,cpt),21)).Hc((lCn(),eCt)))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(rCt))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 KK(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)||_dn(BD(r.e).b,i.e.d)||_dn(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(),PCt)&&t!=(QEn(),QIt)&&t!=(QEn(),YIt)&&(qIn(n,u=zKn(n,e)),!(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),tpt))&&u!=PCt&&(0!=n.n.a||0!=n.n.b)&&hon(n,tpt,jkn(n,u))),t==(QEn(),WIt)){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!=QIt&&t!=YIt&&u!=PCt)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(),Iut)){for(b=BB(mMn(f,(hWn(),clt)),15).Kc();b.Ob();)l=BB(b.Pb(),10),e&&l.k!=(uSn(),Iut)||((!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(),Iut)){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 rC(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))}_Un(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 tK((e=t.b).j),r=0,(i=e.j).c=x8(Ant,HWn,1,0,5,1),eX(BB(gan(n.b,(kUn(),sCt),(Irn(),Rst)),15),e),r=Jmn(c,r,new xr,i),eX(BB(gan(n.b,sCt,Dst),15),e),r=Jmn(c,r,new Nr,i),eX(BB(gan(n.b,sCt,xst),15),e),eX(BB(gan(n.b,oCt,Rst),15),e),eX(BB(gan(n.b,oCt,Dst),15),e),r=Jmn(c,r,new Dr,i),eX(BB(gan(n.b,oCt,xst),15),e),eX(BB(gan(n.b,SCt,Rst),15),e),r=Jmn(c,r,new Rr,i),eX(BB(gan(n.b,SCt,Dst),15),e),r=Jmn(c,r,new _r,i),eX(BB(gan(n.b,SCt,xst),15),e),eX(BB(gan(n.b,ICt,Rst),15),e),r=Jmn(c,r,new Qr,i),eX(BB(gan(n.b,ICt,Dst),15),e),eX(BB(gan(n.b,ICt,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=_Qn,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=GC(mMn(s,ult))===GC((Xyn(),EIt)),e=new wA(s.n),a&&(e.b+=b+i),c=new xI(s.o.a,s.o.b-b-i),l=BB(mMn(s,Plt),15),o==(Ffn(),HPt)||o==_Pt?ADn(l,e,r,c,a,o):qhn(l,e,r,c),gun(f.b,l),rGn(s,GC(mMn(n,Zdt))===GC((Mbn(),YPt))),fW(h));HSn(t)}function Iqn(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 Cqn(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):(m_((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||m_(h,"Anonymous function"))&&(h=zVn),u=mN(s,YTn(58)),r=M_(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==IQn&&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==IQn&&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):_kn(n,t)<0?(e&&(ltt=c?aon(n):M$(n.l,n.m,n.h)),M$(0,0,0)):hKn(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=IJ(b/n.a),p=IJ(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=IJ((g+u.c)/n.b),WB(n.f,new xK(h,iln(p),iln(v))),c==(qpn(),tct)?won(n,0,p,w,v):won(n,w,p,n.d-1,v)):(d=IJ((b+u.c)/n.a),WB(n.f,new xK(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=m_(_9n,(r=NKn(n.b,K9n))?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=NKn(a,K9n))?SD(cdn((!c.b&&(c.b=new Jx((gWn(),k$t),X$t,c)),c.b),n8n)):null))&&f9(t,a):(h=Ivn(a))&&0!=(h.Bb&h6n)||(0==(a.Bb&hVn)||!s&&null==((i=NKn(a,K9n))?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 _qn(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(Khn(r),37),$Gn(n.c,i),b+=(f=BB(mMn(i,(hWn(),Mlt)),15)).gc(),WB(s,new rC(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 Kqn(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=M_(t,YTn(46),u-1))>=0){i=BB(V5(n,Ptn(n,t.substr(1,e-1)),!1),58),o=0;try{o=lKn(t.substr(e+1),KVn,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(m_("",Ifn(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=j_n(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(m_("",Ifn(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)),m_(S7n,u))return mjn(n,t);for(a=0,s=(c=E_n(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 Ky(C7n));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 _b(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 _b(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(),Cut)&&(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 xI(0,c.b),b.j==(kUn(),oCt))u.a=f;else{if(b.j!=ICt)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,_Lt=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),KLt=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,ILt=gLt.D,CLt=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(),sCt)||s.j==SCt){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)==(Knn(),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(),sCt))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==SCt)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))&&!m_(r,$Wn)&&!m_(r,S9n)&&!m_(r,P9n)&&!m_(r,I9n)&&!m_(r,C9n)&&!m_(r,O9n)&&!m_(r,A9n)&&!m_(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)),m_(r,$Wn)||m_(r,S9n)||m_(r,P9n)||m_(r,I9n)||m_(r,C9n)||m_(r,O9n)||m_(r,A9n)||m_(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||m_(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(lKn(t,KVn,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),HCn(n,t);case 6:return rhn(n),_$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))!=JC(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&&JC(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()&&GC(a=Gz(n,BB(e,56)))!==GC(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,Ivn(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(),Ivn(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,Ivn(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(),Ivn(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(),XIt)),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),qIn(u=new ISn,(kUn(),ICt)),IZ(u,o),u.n.b=d,qIn(s=new ISn,oCt),IZ(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(),ICt)).Kc().Pb(),11).e,f=BB(DSn(n,oCt).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((lCn(),eCt)),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(),KCt))&&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((lCn(),eCt)),u=0,n.A.Hc((mdn(),KCt))&&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 xI(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 rC(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),JCn(n.c,r.gf(),new rC(a,h)))}return n.a}function sGn(n){var t;this.a=n,t=(uSn(),Pun(Gk($ut,1),$Vn,267,0,[Iut,Put,Mut,Cut,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,Iut,(HXn(),Opt),Apt),tun(this,Iut,Put,Ept,Tpt),KY(this,Iut,Cut,Ept),KY(this,Iut,Mut,Ept),tun(this,Iut,Sut,Opt,Apt),FY(this,Put,ypt,kpt),KY(this,Put,Cut,ypt),KY(this,Put,Mut,ypt),tun(this,Put,Sut,Ept,Tpt),ZA(this,Cut,ypt),KY(this,Cut,Mut,ypt),KY(this,Cut,Sut,Ppt),ZA(this,Mut,Npt),tun(this,Mut,Sut,Cpt,Ipt),FY(this,Sut,ypt,ypt),FY(this,Tut,ypt,kpt),tun(this,Tut,Iut,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((CPn(),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=Ivn(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 xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(s.a,s.b)),n.e=XR(new xI(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(Kit,1),HWn,130,0,[new Nf])),e=new Tl(n),i=0;i<e.a.length;++i)m_(t=dnn(e,i).je().a,"layered")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new hf])):m_(t,"force")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new zh])):m_(t,"stress")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Xh])):m_(t,"mrtree")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Pf])):m_(t,"radial")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new yf])):m_(t,"disco")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Gh,new Hh])):m_(t,"sporeOverlap")||m_(t,"sporeCompaction")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Tf])):m_(t,"rectpacking")&&ksn(lAt,Pun(Gk(Kit,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=GC(mMn(n,(HXn(),ept)))===GC((QEn(),XIt)),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 Y_(i=BB(Vj(YCt),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 Ky("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 Ky("invalid opaquePart: "+e));if(n&&(null==t||!xT(jAt,t.toLowerCase()))&&null!=e&&Xbn(e,LAt,NAt))throw Hp(new Ky(o9n+e));if(n&&null!=t&&xT(jAt,t.toLowerCase())&&!IEn(e))throw Hp(new Ky(o9n+e));if(!Ubn(i))throw Hp(new Ky("invalid device: "+i));if(!Rhn(r))throw Hp(new Ky(null==r?"invalid segments: null":"invalid segment: "+shn(r)));if(null!=c&&-1!=GO(c,YTn(35)))throw Hp(new Ky("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 xI(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),Ien(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 _b(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,m_(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 _b(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,m_(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 Ck,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=C_n(n,g),0);c.b!=c.d.c;){for(r=BB(b3(c),15),o=p*IJ(e.Math.sqrt(r.gc())),W_n(Qk(Jk(Yk(BK(u=oKn(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=KPt,D_n(eO(Mzn(D_n(eO(Mzn(D_n(Mzn(n.c,i)),jln(i)))),i))),Mzn(n.c,KPt),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,D_n(eO(Mzn(D_n(eO(Mzn(D_n(Zy(Mzn(n.c,i))),jln(i)))),i))),Mzn(n.c,KPt),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 xI(RQn,RQn),n.a=new xI(_Qn,_Qn),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>_Vn)&&o<10);tj(n.c,new Et),yGn(n),CU(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(),QIt),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(),QIt),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)),JCn(n.a,c,new LK(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||G_n(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)&&G_n(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,Ilt)))&&(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),CN(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(),KPt)):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 rC(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:KHn(n,a);break;case 3:for(n.q=(sNn(),Ovt),KHn(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,KHn(n,a));break;case 4:for(n.q=(sNn(),Ovt),KHn(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,KHn(n,a));break;case 6:KHn(n,new od(IJ(e.Math.ceil(n.f.length*f/100))));break;case 5:KHn(n,new sd(IJ(e.Math.ceil(n.d*f/100))))}oDn(n,t),HSn(i)}function IGn(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),IHn(c,this.e),this.s=wXn(this.k)}function CGn(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?Z_n(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 rC(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,rCn(n,i,n.d.fg(),u,l),rCn(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 I4(e.a)),null==TD(mMn(t,xgt))&&hon(t,xgt,(hN(),GC(mMn(t,Zdt))===GC((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 _w(n)),i=new sGn(t),hon(t,(hWn(),Alt),i),h2(n.a),IU(n.a,(yMn(),Rat),BB(mMn(t,Gdt),246)),IU(n.a,_at,BB(mMn(t,Pgt),246)),IU(n.a,Kat,BB(mMn(t,qdt),246)),IU(n.a,Fat,BB(mMn(t,Kgt),246)),IU(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(),sCt)),k=omn(b,SCt),m|=omn(l,SCt)||omn(b,sCt),d&&(m&&v||y||k))||l.k==(uSn(),Cut)&&b.k==Iut||b.k==(uSn(),Cut)&&l.k==Iut)&&(h=n.c[t],c=n.c[e],r=fjn(n.e,h,c,(kUn(),ICt)),o=fjn(n.i,h,c,oCt),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:KNn(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:_fn(h,n),_fn(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=Idn(n,f,h,_mt,r)),Lx(e,(hWn(),rlt))&&(c=BB(mMn(e,rlt),10)),e.k.g){case 0:for(o=qA(_B(abn(e,(kUn(),sCt)),new xc));Zin(o);)a=BB(P7(o),11),n.d[a.p]=r++,h.c[h.c.length]=a;for(r=Idn(n,f,h,_mt,r),s=qA(_B(abn(e,SCt),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,_mt).dc()||d3(f,e);break;case 1:for(u=abn(e,(kUn(),ICt)).Kc();u.Ob();)a=BB(u.Pb(),11),n.d[a.p]=r++,h.c[h.c.length]=a;abn(e,oCt).Jc(new ZP(f,e))}return Idn(n,f,h,_mt,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=_Qn,s=_Qn,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),_Un(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 xI(d.i+d.g/2,d.j+d.f/2),a=new xI(p.i+p.g/2,p.j+p.f/2),Ukn(v=XR(new xI(a.a,a.b),g),d.g,d.f),UR(g,v),Ukn(m=XR(new xI(g.a,g.b),a),p.g,p.f),UR(a,m),IA(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(),UIt)||r==WIt||r==XIt),!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=LKn(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&&(GC(mMn(t,Idt))===GC((Bfn(),lut))?n.c=n.b:n.c=n.a)}return GC(mMn(t,Idt))!==GC((Bfn(),wut))&&(SQ(),f.ad(new xt)),f}function _Gn(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,IZn,mpn(Tkt)),u2(n,Q3n,MZn,mpn(Ikt)),u2(n,Q3n,CZn,mpn(Akt)),u2(n,Q3n,X3n,mpn(Dkt)),u2(n,Q3n,W3n,mpn(Lkt))}function KGn(n){n.q||(n.q=!0,n.p=kan(n,0),n.a=kan(n,1),_rn(n.a,0),n.f=kan(n,2),_rn(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),_rn(n.g,7),Rrn(n.g,8),n.c=kan(n,5),_rn(n.c,7),_rn(n.c,8),n.i=kan(n,6),_rn(n.i,9),_rn(n.i,10),_rn(n.i,11),_rn(n.i,12),Rrn(n.i,13),n.j=kan(n,7),_rn(n.j,9),n.d=kan(n,8),_rn(n.d,3),_rn(n.d,4),_rn(n.d,5),_rn(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),_rn(n.e,5),_rn(n.e,6),_rn(n.e,7),_rn(n.e,8),_rn(n.e,9),_rn(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(),dCt))&&eH(n.j,!0,!0,!0,!1),Nfn(t,hCt)&&eH(n.j,!1,!0,!0,!0),Nfn(t,ECt)&&eH(n.j,!0,!0,!1,!0),Nfn(t,MCt)&&eH(n.j,!0,!1,!0,!0),Nfn(t,gCt)&&eH(n.j,!1,!0,!0,!1),Nfn(t,fCt)&&eH(n.j,!1,!0,!1,!0),Nfn(t,TCt)&&eH(n.j,!0,!1,!1,!0),Nfn(t,jCt)&&eH(n.j,!0,!1,!0,!1),Nfn(t,yCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,bCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,yCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,lCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,kCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,mCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,vCt)&&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(),oCt)).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(),ICt)).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 Ky(d6n+t.ne()+g6n));if(i=Ifn((CPn(),Z$t),t).$k())return i.Aj().Nh().Ih(i,e);if(a=Ifn(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 _O(f,f.a.length-1)}if(!(h=Ifn(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 Ky("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$(COt[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 xI(t.a,t.b),n),UR(new xI(i.a,i.b),c),XR(new xI(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 xI(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 xI(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,KZn),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,KZn,jZn,mpn(kat)),u2(n,KZn,TZn,(hN(),!0)),u2(n,KZn,PZn,mpn(Tat)),u2(n,KZn,BZn,mpn(Mat)),u2(n,KZn,SZn,mpn(Sat)),u2(n,KZn,IZn,mpn(Eat)),u2(n,KZn,MZn,mpn(Pat)),u2(n,KZn,CZn,mpn(Iat)),u2(n,KZn,NZn,mpn(yat)),u2(n,KZn,DZn,mpn(vat)),u2(n,KZn,RZn,mpn(mat)),u2(n,KZn,_Zn,mpn(jat)),u2(n,KZn,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),IHn(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)),rKn(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(),_Ct))&&(BB(oV(n.b,(kUn(),sCt)),124).k=!0,BB(oV(n.b,SCt),124).k=!0,t=n.q!=(QEn(),WIt)&&n.q!=XIt,Nl(BB(oV(n.b,oCt),124),t),Nl(BB(oV(n.b,ICt),124),t),Nl(n.g,t),n.A.Hc(KCt)&&(BB(oV(n.b,sCt),124).j=!0,BB(oV(n.b,SCt),124).j=!0,BB(oV(n.b,oCt),124).k=!0,BB(oV(n.b,ICt),124).k=!0,n.g.k=!0)),n.A.Hc(RCt))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,u=n.B.Hc((nKn(),XCt)),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(DCt)&&n.B.Hc((nKn(),UCt))&&(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),_gt),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(),bCt).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(),NIt))?c.n.b+=d:w.Hc(xIt)&&(c.n.b+=d/2);(h==fvt||h==hvt)&&abn(i,(kUn(),SCt)).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=IJ(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,IJ(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(_At,new ls),RO(qAt,new Es),RO(HAt,new Cs),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(KAt,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(KNt,new ss),RO(Ptt,new hs),RO(uAt,new fs),RO(yAt,new bs),RO(oLt,new ws),RO($$t,new ds),RO(Itt,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(Ktt,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 Ck,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 Ky("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 rC(r,e)}else if(Gy(lL(r.g,r.d[0]).a)>Gy(lL(e.g,e.d[0]).a))return new rC(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,RIn(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,DIn(BB(i,48))):cL(i,364)?b6(e,gCn(BB(i,364))):cL(i,832)?b6(e,xIn(BB(i,832))):cL(i,104)&&b6(e,NIn(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 xI(h.a,(h.b+b.b)/2)):(o+=e.Math.abs(b.a-h.a),l=new xI((h.a+b.a)/2,h.b)),VW(r?n.d:n.c,t,new Cmn(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 h_(KOt,c,8,5)),c.d),(!c.e&&(c.e=new h_(KOt,c,7,4)),c.e)])));dAn(r)&&(i=BB(U5(r),79),h=a&&QCn(i)&&qy(TD(ZAn(i,dgt))),e=bqn((!i.b&&(i.b=new h_(_Ot,i,4,7)),i.b),c)?n==JJ(PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,i,5,8)),i.c),0),82))):n==JJ(PTn(BB(Wtn((!i.b&&(i.b=new h_(_Ot,i,4,7)),i.b),0),82))),!((h||e)&&++u>1)););(u>0||l.Hc((lCn(),eCt))&&(!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(),_St)),21)).dc())return null;if(o=0,u=0,b.Hc((mdn(),_Ct))){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(),PCt)&&(l=OFn(s,t),Ypn(s,wPt,l)),f==(QEn(),XIt))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 _Un(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=KVn,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),_gt),197))==hvt&&(b=1),w=UNn(aM(cM(rM(uM(new Hv,b),IJ(e.Math.ceil(f))),o),s)),l==fvt&&TU(n.d,w),OKn(n,ean(abn(i,(kUn(),ICt))),h),OKn(n,abn(i,oCt),h),a=h):(d=AN(oM(new qv,i),n.f),JT(AV(new Rq(null,new w1(i.j,16)),new Bc),new tI(n,d)),a=new GV(i,!1,d,d)),n.i[i.p]=a,c&&(u=c.c.d.a+_$(n.n,c.c,i)+i.d.d,c.b||(u+=c.c.o.b),UNn(aM(cM(uM(rM(new Hv,IJ(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()),GC(mMn(s=BB(o.d.Xb(o.c=o.b++),70),Ydt))===GC((Rtn(),zPt))&&(l==(Ffn(),HPt)||l==_Pt?(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==_Pt?(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 xI(s.c,s.d)),zH(i,Kx(new xI(s.c,s.d),s.b,0)),zH(i,Kx(new xI(s.c,s.d),0,s.a)),zH(i,Kx(new xI(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(),ICt)||b==oCt?(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=_Qn,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)));m_(i,$Wn)?r.a+="Z":m_(i,S9n)?r.a+="B":m_(i,P9n)?r.a+="C":m_(i,I9n)?r.a+="D":m_(i,C9n)?r.a+="F":m_(i,O9n)?r.a+="I":m_(i,A9n)?r.a+="J":m_(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(m_(e,$Wn))return $Nt;if(m_(e,S9n))return NNt;if(m_(e,P9n))return ONt;if(m_(e,I9n))return xNt;if(m_(e,C9n))return DNt;if(m_(e,O9n))return ANt;if(m_(e,A9n))return LNt;if(m_(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,Kft,(hN(),!0)),o=BB(mMn(e,Zft),21),(h=BB(mMn(s,(HXn(),ept)),98))==(QEn(),YIt)?hon(s,ept,QIt):h!=QIt&&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,QIt)),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 xI(g,E),p=new xI(o,T),w=new xI(r=(g+o)/2,E),v=new xI(r,T),c=eNn(n,E,T),y=g1(t.B),k=new xI(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 ",m_((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 h_(_Ot,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new h_(_Ot,i,5,8)),0!=i.c.i))){for(t.a+=" (",a=new cx((!i.b&&(i.b=new h_(_Ot,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 h_(_Ot,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 h_(_Ot,c,4,7)),c.b),0),82)),Nin(a,BB(Wtn((!c.c&&(c.c=new h_(_Ot,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,(Crn(),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 xI(t.a,t.b),n),s=i,f=XR(new xI(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=Ivn(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)||Ivn(v))continue;r=m}if(!e.dl(l,r))for(p=0;p<i;++p)if(e.il(p)==l&&GC(e.jl(p))===GC(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 _J((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(),KEt))}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 eI(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(),Iut),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=KVn,d=new Fb(new BR(new xN(new Kb(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:Ion(n),Hmn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Ion(n),Hmn(n)}break;case 2:switch(t.g){case 1:Ion(n),RRn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Ion(n),Hmn(n)}break;case 1:switch(t.g){case 2:Ion(n),RRn(n);break;case 4:Ion(n),nEn(n),Hmn(n);break;case 3:Ion(n),nEn(n),Ion(n),Hmn(n)}break;case 4:switch(t.g){case 2:nEn(n),Hmn(n);break;case 1:nEn(n),Ion(n),Hmn(n);break;case 3:Ion(n),RRn(n)}break;case 3:switch(t.g){case 2:Ion(n),nEn(n),Hmn(n);break;case 1:Ion(n),nEn(n),Ion(n),Hmn(n);break;case 4:Ion(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(!PI(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),_Rn(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),_Rn(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),_Rn(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),_Rn(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 h_(_Ot,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new h_(_Ot,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 h_(_Ot,r,5,8)),r.c),0),82)))for(qan(f=new CR,r),hon(f,(Mrn(),sat),r),Rl(f,BB(qC(AY(i.f,o)),144)),_l(f,BB(RX(i,PTn(BB(Wtn((!r.c&&(r.c=new h_(_Ot,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),KBn(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==_Pt)),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 Izn(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 xI(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(),WIt)?(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==XIt&&(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 Czn(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=KVn,u=KVn,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 xI((b=BB(ZAn(r,(IAn(),Ckt)),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)));_Un(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(),oCt)||t==(kUn(),ICt))JUn(n,t);else{for(g=n.u.Hc((lCn(),cCt)),i=t==(kUn(),sCt)?(Dan(),Rrt):(Dan(),Nrt),v=t==sCt?(G7(),irt):(G7(),crt),r=Zk(HK(i),n.s),p=t==sCt?RQn:_Qn,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==sCt?e.Math.min(p,w.b):e.Math.max(p,w.b+o.b.rf().b));for(p+=t==sCt?-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=_Qn,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=Kvn(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 Ib(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 Ir),new Cr),new Pd(n))),c=new xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(c.a,c.b))),UR(kO(n.d.f),XR(new xI(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((lCn(),eCt)),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=$Cn(o.n,o.o,d.o,0,v)),p==(QEn(),QIt)||(kUn(),bCt).Hc(v)?a.o.a=h:a.o.b=h);return BGn(n,t,e,i,u=new Np),e&&Iqn(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),qIn(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 xI(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 Kj(m),qan(n.f,t),n.f}function _zn(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 Il),e5((!i.a&&(i.a=new $L(xOt,i,5)),i.a),c),rtn(b,D6n,h)),!!Svn(i)&&cMn(n.a,b,_6n,RPn(n,Svn(i))),!!Pvn(i)&&cMn(n.a,b,R6n,RPn(n,Pvn(i))),!(0==(!i.e&&(i.e=new h_(FOt,i,10,9)),i.e).i)&&(a=new SC(n,l=new Il),e5((!i.e&&(i.e=new h_(FOt,i,10,9)),i.e),a),rtn(b,F6n,l)),0!=(!i.g&&(i.g=new h_(FOt,i,9,10)),i.g).i&&(u=new PC(n,d=new Il),e5((!i.g&&(i.g=new h_(FOt,i,9,10)),i.g),u),rtn(b,K6n,d))}function Kzn(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((nKn(),HCt)),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(),oCt)&&h.e.c.length-h.g.c.length>0||h.j==ICt&&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(),Klt)||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:KVn,v=r?BB(mMn(f,Wmt),19).a:KVn,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)?_Qn: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 IT(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 IT(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>_Qn||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==KPt||c==FPt),oRn(u,!1),Otn(u.e.wf(),new $K(u,!1,r)),LJ(u,u.f,(Dtn(),Git),(kUn(),sCt)),LJ(u,u.f,Uit,SCt),LJ(u,u.g,Git,ICt),LJ(u,u.g,Uit,oCt),Bpn(u,sCt),Bpn(u,SCt),hV(u,oCt),hV(u,ICt),qD(),(a=u.A.Hc((mdn(),DCt))&&u.B.Hc((nKn(),UCt))?ndn(u):null)&&rj(u.a,a),Kzn(u),ryn(u),cyn(u),VGn(u),M_n(u),mkn(u),Kgn(u,sCt),Kgn(u,SCt),IRn(u),PHn(u),e?(Gbn(u),ykn(u),Kgn(u,oCt),Kgn(u,ICt),o=u.B.Hc((nKn(),XCt)),MIn(u,o,sCt),MIn(u,o,SCt),SIn(u,o,oCt),SIn(u,o,ICt),JT(new Rq(null,new w1(new Ob(u.i),0)),new Cn),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==_Pt?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,(Kkn(),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 _n)):(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 rC(iln(i=0),iln(r));BKn(t,c,i,r);)e=BB(o.Ce(e,c),46),i=BB(e.a,19).a,r=BB(e.b,19).a;KRn(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),Ien(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&&Ien(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=IMn(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=CMn(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 xI((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),Ien(s,s.j+E*a);r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),f=Uhn(new tK(f))}n.a&&n.a.lg(new tK(f)),r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),Xzn(n,t,new tK(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(),_ft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=0,IZ(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(),_ft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=p.b,IZ(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(),Iut)&&(c=BB(mMn(a,(HXn(),Igt)),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(),Iut))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(),Ift)){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 Ky("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 xI(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),BC(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 xI(t.g,t.f),o,new xI(i.g,i.f),BB(mMn(e,Udt),103),e),(hWn(),dlt),i),Hl(c=BB(xq(r.j,0),11),jKn(i)),hon(r,cpt,(lCn(),nbn(rCt))),h=BB(ZAn(t,cpt),174).Hc(eCt),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=$Cn(new xI(a.i,a.j),new xI(a.g,a.f),new xI(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,Ipt,MD(ZAn(JJ(t),Ipt))),hon(r,Cpt,MD(ZAn(JJ(t),Cpt))),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(),Krn(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 nK(new s1(t,0,c)),o=new nK(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)),Krn(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(),Iut)&&vA(BB(mMn(o,(HXn(),ept)),98))){for(w=cRn(o,(ain(),Hvt),(kUn(),oCt)).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,ICt).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 ISn,t),qIn(s,BB(ZAn(t,(HXn(),upt)),61)),hon(s,(hWn(),dlt),t),IZ(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 h_(KOt,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 h_(KOt,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 h_(KOt,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(),sCt)||s.j==SCt)&&i.Fc((bDn(),gft));break;case 4:case 3:(s.j==(kUn(),oCt)||s.j==ICt)&&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(),Ilt))))==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 rC(Lyt,s)):TU(m,new rC(Nyt,s)):t.a._b(p)?TU(o,new rC(Lyt,s)):TU(o,new rC(Nyt,s))}if(m.a.gc()>1)for(e5(m,new sI(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 hI(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(_jt)),u2(n,w4n,PZn,mpn(Ijt)),u2(n,w4n,BZn,mpn(Cjt)),u2(n,w4n,SZn,mpn(Ojt)),u2(n,w4n,IZn,mpn(Pjt)),u2(n,w4n,MZn,mpn(Ajt)),u2(n,w4n,CZn,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(Kjt))}function eUn(n){var t;if(this.r=xV(new Pn,new In),this.b=new Hbn(BB(yX(FCt),290)),this.p=new Hbn(BB(yX(FCt),290)),this.i=new Hbn(BB(yX(_rt),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(),_St)),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,CPt))),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((nKn(),HCt)),this.f=new Cgn(0,t,0),this.g=new Cgn(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),Ien(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);_Un(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((CPn(),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=E_n(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(),sCt)||t==SCt)&&(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(),Ipt)))),b=Gy(MD(mMn(n,Cpt))),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((lCn(),eCt)))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(rCt))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 Ih),RO(Qtt,new $h),RO(Gk(NNt,1),new Lh),RO(ktt,new Nh),RO(Ttt,new xh),RO(Qtt,new Ks),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(Itt,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(Ktt,new Eh),RO(Qtt,new Th),RO(Qtt,new Mh),RO(Qtt,new Sh),RO(Ktt,new Ph),RO(Rtt,new Ch),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=m_("%",a=t.substr(1,h-1))?null:$Un(a),i=0,o)try{i=lKn(t.substr(h+2),KVn,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:m_(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=lKn(t.substr(s+1),KVn,DWn)}catch(m){if(!cL(m=lun(m),127))throw Hp(m);l=t}for(l=m_("%",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:m_(l,g))&&0==e--))return c;return null}return Kqn(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 _j((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]=aCn(Gtt[e]);for(t=0;t<Xtt.length;t++)Xtt[t]=aCn(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>KVn&&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>KVn&&(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),(nKn(),qCt))&&(Ol(l=BB(ZAn(b,zgt),116),c.a),Kl(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)?IUn(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(mKn(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,IZn,mpn(zct)),u2(n,gZn,CZn,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(),BIt)&&f!=qIt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=f==BIt?c-2*n.w:c,f=FIt),r<c&&!n.B.Hc((nKn(),WCt)))f==BIt?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==BIt?c-2*n.w:c,f=FIt),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(),sCt)?-h.rf().b-Gy(MD(h.We(aPt))):Gy(MD(h.We(aPt))):h.Hf()==(kUn(),sCt)?-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(),BIt)&&l!=qIt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=l==BIt?c-2*n.w:c,l=FIt),r<c&&!n.B.Hc((nKn(),WCt)))l==BIt?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==BIt?c-2*n.w:c,l=FIt),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(),ICt)?-f.rf().a-Gy(MD(f.We(aPt))):h+Gy(MD(f.We(aPt))):f.Hf()==(kUn(),ICt)?-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,PCt=new WI(hJn,0),sCt=new WI(mJn,1),oCt=new WI(yJn,2),SCt=new WI(kJn,3),ICt=new WI(jJn,4),SQ(),wCt=new Ak(new Y_(n=BB(Vj(FCt),9),BB(SR(n,n.length),9),0)),dCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[]))),hCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[]))),ECt=ffn(EG(SCt,Pun(Gk(FCt,1),YZn,61,0,[]))),MCt=ffn(EG(ICt,Pun(Gk(FCt,1),YZn,61,0,[]))),yCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[SCt]))),bCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),jCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),gCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt]))),TCt=ffn(EG(SCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),fCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[SCt]))),mCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,ICt]))),lCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt]))),kCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt]))),pCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt]))),vCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt,ICt])))}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=IJ(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),GC(b)!==GC(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?qC(AY(f.f,null)):hS(f.g,o))?BB(null==o?qC(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&&IDn(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),Ilt)))&&!qy(TD(mMn(BB(xq(e.g,0),17),Ilt)))?1:!qy(TD(mMn(BB(xq(t.g,0),17),Ilt)))&&qy(TD(mMn(BB(xq(e.g,0),17),Ilt)))||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(),Iut)&&vA(BB(mMn(h,(HXn(),ept)),98))){for(L_(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(),sCt))),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,SCt).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=KVn,w=KVn,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 xI((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),IA(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);_Un(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(),sCt)?e.c[e.c.length]=c:r==Jvt&&t==(kUn(),SCt)?u.c[u.c.length]=c:Nmn(c,t);break;case 1:o=c.a.d.j,s=c.c.d.j,o==(kUn(),sCt)?bU(c,sCt,(Oun(),mst),c.a):s==sCt?bU(c,sCt,(Oun(),yst),c.c):o==SCt?bU(c,SCt,(Oun(),yst),c.a):s==SCt&&bU(c,SCt,(Oun(),mst),c.c);break;case 2:case 3:SN(i=c.b,(kUn(),sCt))?SN(i,SCt)?SN(i,ICt)?SN(i,oCt)||bU(c,sCt,(Oun(),yst),c.c):bU(c,sCt,(Oun(),mst),c.a):bU(c,sCt,(Oun(),vst),null):bU(c,SCt,(Oun(),vst),null);break;case 4:h=c.a.d.j,f=c.a.d.j,h==(kUn(),sCt)||f==sCt?bU(c,SCt,(Oun(),vst),null):bU(c,sCt,(Oun(),vst),null)}e&&(0==e.c.length||QFn(e,(kUn(),sCt)),0==u.c.length||QFn(u,(kUn(),SCt)))}function IUn(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),Ien(i,n.n.b+t.b),(0!=BB(ZAn(i,Fgt),174).gc()||n.e||GC(mMn(vW(n),Kgt))===GC((Nvn(),mvt))&&pA((bvn(),(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),_gt),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 CUn(n){var t,e,i,r,c;switch(OY(n,i8n),(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i+(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i){case 0:throw Hp(new Ky("The edge must have at least one source or target."));case 1:return 0==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i?JJ(PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))):JJ(PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)))}if(1==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i&&1==(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i){if(r=PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)),c=PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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 h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c)])))),82));dAn(i);)if((e=PTn(BB(U5(i),82)))!=t&&!Itn(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=VC(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)||(VCn(g,k,.4*r*e.Math.abs(m-y)),g.c.j==(kUn(),ICt)&&(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)))jIn(s.f,o,t);else if(v=f3(t))for(r=new Wb(v.k);r.a<r.c.c.length;)JCn(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(),yCt).Hc(c.c.j)||!yCt.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==ICt&&$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==oCt&&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)),CAt,OAt)&&ton((b1(r+2,n.length),n.charCodeAt(r+2)),CAt,OAt))if(e=IH((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=UCn(n.substr(0,a+i),t)}else u=UCn(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 rIn(n,t,a,r);case 99:return cIn(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 ITn(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(),oCt)&&t!=ICt){for(a=t==sCt?(Dan(),Nrt):(Dan(),Rrt),k=t==sCt?(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(HK(a),n.t),m=t==sCt?_Qn: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==sCt?e.Math.max(m,g.b+h.b.rf().b):e.Math.min(m,g.b));for(m+=t==sCt?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=IMn(BB(r.Pb(),79)))&&((u=BB(qC(AY(t.f,s)),21))||(u=Oxn(s),jIn(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=CMn(BB(o.Pb(),79)))&&((u=BB(qC(AY(t.f,s)),21))||(u=Oxn(s),jIn(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 Ik).a+=t<0?"0E+":"0E",b.a+=t==KVn?"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 Ck,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(),oCt)).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(),Iut)||u==Cut||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(),ICt)).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(),Iut)||u==Cut||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 _Un(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 xI(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=GC(ZAn(n,(sWn(),uPt)))===GC((QEn(),XIt)),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(),PCt)&&(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||Ien(v,v.j*f);break;case 3:o||Pen(v,v.i*E),Ien(v,v.j+s);break;case 4:o||Ien(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),Ien(l,l.j+s*h)):j-h<0&&w>=0&&(Pen(l,l.i+k*j),Ien(l,l.j+s)));return Ypn(n,(sWn(),_St),(mdn(),new Y_(a=BB(Vj(YCt),9),BB(SR(a,a.length),9),0))),new xI(E,f)}function KUn(n){var t,i,r,c,a,u,o,s,h,f,l;if(f=JJ(PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)))==JJ(PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))),u=new Gj,(t=BB(ZAn(n,(Xsn(),hIt)),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,gIt),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 q_n(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]=KVn;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(),jIt)?(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(),jIt)?(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(),jIt)?(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(),jIt)?(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,I,C,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,C=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()),I=(o=BB(h.d.Xb(h.c=h.b++),33)).g,l=o.f,C+I>w&&(a&&(fO(j,b),fO(T,iln(h.b-1))),C=i.b,O+=b+t,b=0,f=e.Math.max(f,i.b+i.c+I)),Pen(o,C),Ien(o,O),f=e.Math.max(f,C+I+i.c),b=e.Math.max(b,l),C+=I+t;if(f=e.Math.max(f,r),(P=O+b+i.a)<c&&(b+=c-P,P=c),a)for(C=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&&(C=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-C-i.c,m=o.g,Sen(o,g),lIn(o,new xI(g,d),new xI(m,v))),C+=o.g+t;return new xI(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 tK(o.cc(p)),SQ(),m$(u,new Kw(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=KVn,h=KVn,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 xI(f,l)),hon(i,uat,new xI(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),V_n(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 IT(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 IT(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(),Cut)){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(),ICt)).Kc().Pb(),11),g=BB(DSn(r,oCt).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(_$(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(_$(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,IPn(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,IPn(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,IPn(r,c);if(n.b){if(b=new xI(-i,-i),BB(t.We((sWn(),fPt)),174).Hc((lCn(),rCt)))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),XKn(r,s.Bf(),s.zf(),t,s,b,i)}}n.b&&XKn(r,t.Bf(),t.zf(),t,null,null,i),(o=new AK(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=Con(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 IC(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 34:u=lx(t,34,++h),WB(o,new IC(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 91:WB(o,new IC(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 IC(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((lCn(),nCt)),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(CNt,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]),m_(o=eNt[c],"Specials")&&Yxn(h,65520,65533),m_(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(),sCt)){a=!0;break n}if(b.j==SCt){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(),_lt)),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,_lt,c)):(r=BB(mMn(i,(hWn(),Dft)),15))?f?c=r:(g=BB(mMn(i,_lt),15))?c=r.gc()<=g.gc()?r:g:(c=new Np,hon(i,_lt,c)):(c=new Np,hon(i,Dft,c)),c.Fc(n),hon(n,(hWn(),_ft),e),t.d==e?(MZ(t,null),e.e.c.length+e.g.c.length==0&&IZ(e,null),gsn(e)):(SZ(t,null),e.e.c.length+e.g.c.length==0&&IZ(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,I,C;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(),VIt)),PZ(a,r),Bl(a,(uSn(),Tut)),IZ(g=new ISn,a),qIn(g,(kUn(),ICt)),IZ(S=new ISn,a),qIn(S,oCt),hon(i=new $vn(n),ept,VIt),PZ(i,c),Bl(i,Tut),IZ(p=new ISn,i),qIn(p,ICt),IZ(P=new ISn,i),qIn(P,oCt),SZ(j=new wY,T.c),MZ(j,g),SZ(C=new wY,S),MZ(C,p),SZ(T,P),u=new v3(a,i,j,C,T),hon(a,(hWn(),Rft),u),hon(i,Rft,u),(I=j.c.i).k==Tut&&((o=BB(mMn(I,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))))||(GC(ZAn(t,Ldt))===GC((mon(),Nvt))&&GC(ZAn(t,Gdt))!==GC((Vvn(),Eht))&&GC(ZAn(t,Gdt))!==GC((Vvn(),kht))&&!qy(TD(ZAn(t,xdt)))&&GC(ZAn(t,Idt))===GC((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(KOt,t,12,3)),t.b));s.e!=s.i.gc();)u=BB(kpn(s),79),(GC(ZAn(t,(HXn(),Ldt)))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((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&&QCn(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&&QCn(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,I,C,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(),Iut)&&(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 _d(n))),g=RQn,d=DWn,u=null,O=A,C=A,a=o,c=o,A<0&&(O=BB(Tmt.a.zd(),19).a,C=BB(Tmt.b.zd(),19).a),o<0&&(a=BB(Emt.a.zd(),19).a,c=BB(Emt.b.zd(),19).a),I=O;I<=C;I++)for(r=a;r<=c;r++)v=Gy(MD((S=LBn(n,I,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((qK(),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 rC(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,I;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=VC((s=BB(xq(t.b,0),29)).a,(dxn(),jyt)),l=VC((d=BB(xq(t.b,t.b.c.length-1),29)).a,jyt),g=new Wb(t.b),p=null,I=0;do{for(RUn(n,p,m=g.a<g.c.c.length?BB(n0(g),29):null),MFn(n),P=0,y=I,b=!p||f&&p==s,w=!m||l&&m==d,(M=Kk(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=I,k.a.b=y-I,k.F=P,k.p=!p;gun(n.a,n.i),I=y,m&&(I+=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=I,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]):GC(b)===GC(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(GC(b)===GC(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=z_(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=q_(n,BB(b=r.Pb(),72),l);l?(l.Ei(f),l.Fi()):ban(n.e,f)}else{for(l=$_(t.gc()),r=t.Kc();r.Ob();)l=q_(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||gKn(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||JCn(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 xI(c.c+c.b,c.d)),zH(s,new xI(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 xI(c.c,c.d)),zH(s,new xI(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 xI(c.c,c.d+c.a)),zH(s,new xI(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 xI(c.c,c.d)),zH(s,new xI(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)?_Qn: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=_$(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 h_(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 h_(FOt,g,9,10)),f9(g.g,b)}!e.b&&(e.b=new h_(_Ot,e,4,7)),0!=e.b.i&&(!e.c&&(e.c=new h_(_Ot,e,5,8)),0!=e.c.i)&&(!e.b&&(e.b=new h_(_Ot,e,4,7)),e.b.i<=1&&(!e.c&&(e.c=new h_(_Ot,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 h_(_Ot,e,4,7)),e.b),0),82)),Nin(v,BB(Wtn((!e.c&&(e.c=new h_(_Ot,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=_$(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=_$(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 a_n(n,e,t),-1;if(f==h)return a_n(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 a_n(n,e,t),-1;if(b==s)return a_n(n,t,e),1}}if(!Lx(t,(hWn(),wlt))||!Lx(e,wlt))return(r=iEn(n,t))>(a=iEn(n,e))?a_n(n,t,e):a_n(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)?a_n(n,t,e):a_n(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=yCn(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=OI(r,(hAn(),nAt)),Ngn(t),!o&&s&&!d)return SQ(),SQ(),set;if(u=new Np,GC(ZAn(t,ESt))===GC((ufn(),pIt))&&(OI(r,YOt)||OI(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)),GC(ZAn(f,ESt))===GC(mIt)||P8(f,eSt)&&!j5(r,ZAn(f,mPt))?(gun(u,lXn(n,f,e,i)),Ypn(f,ESt,mIt),__n(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)),__n(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)),wKn(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(),XIt)),d=Gy(MD(n.We(tpt))),hon(h,tpt,d),IZ(f=new ISn,h),t!=QIt&&t!=YIt||(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),qIn(f,(kUn(),oCt)),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),qIn(f,(kUn(),ICt)),l||(s.a=0);break;case 1:hon(h,ilt,(z7(),Ift)),h.o.a=a.a,d<0&&(h.o.b=-d),qIn(f,(kUn(),SCt)),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),qIn(f,(kUn(),sCt)),l||(s.b=0)}if(Hx(f.n,s),hon(h,npt,s),t==UIt||t==WIt||t==XIt){if(w=0,t==UIt&&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==WIt&&(w/=r.b);break;case 1:case 3:w=c.a,t==WIt&&(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(),Kdt)))))<-1||!n.a.i||L_(BB(mMn(n.a.o,ept),98))||abn(n.a.o,(kUn(),oCt)).gc()<2&&abn(n.a.o,ICt).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(),Cut)){for(i=n.b[f.c.p][f.p],f.k==Mut?(i.b=1,BB(mMn(f,(hWn(),dlt)),11).j==(kUn(),oCt)&&(m+=i.a)):(E=abn(f,(kUn(),ICt))).dc()||!tL(E,new Nc)?i.c=1:((r=abn(f,oCt)).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(),sCt)),abn(f,SCt)]))).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),_rn(n.fb,5),n.qb=kan(n,3),Rrn(n.qb,0),_rn(n.qb,1),_rn(n.qb,2),Rrn(n.qb,3),Rrn(n.qb,4),_rn(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),qIn(y,Ccn(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),Ccn(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(),CMt));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),qIn(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 _J(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(AKn(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,I,C,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()),C=iG(s=BB(f.d.Xb(f.c=f.b++),157)),b=eG(s),O+C>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+C)),o.c[o.c.length]=s,Mpn(s,O,A),l=e.Math.max(l,O+C+i.c),w=e.Math.max(w,b),O+=C+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),(I=A+w+i.a)<c&&(w+=c-I,I=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 xI(l,I)}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=DCn(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$(),C8n))));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$(),C8n))))}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(IZ(w=new ISn,t),qIn(w,(kUn(),sCt)),w.n.a=t.o.a/2,IZ(g=new ISn,t),qIn(g,SCt),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,kCn(zJ(s,T6n))),33),i=null,(a=zJ(s,"sourcePort"))&&(i=kCn(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 h_(_Ot,o,4,7)),f9(o.b,f||h),l=BB(sen(n.g,kCn(zJ(s,Y6n))),33),r=null,(u=zJ(s,"targetPort"))&&(r=kCn(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 h_(_Ot,o,5,8)),f9(o.c,b||l),0==(!o.b&&(o.b=new h_(_Ot,o,4,7)),o.b).i||0==(!o.c&&(o.c=new h_(_Ot,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=IFn(HN(n,(kUn(),wCt)),t),w=ayn(HN(n,dCt),t),y=ayn(HN(n,ECt),t),T=uyn(HN(n,MCt),t),l=uyn(HN(n,hCt),t),v=ayn(HN(n,jCt),t),d=ayn(HN(n,gCt),t),j=ayn(HN(n,TCt),t),k=ayn(HN(n,fCt),t),M=uyn(HN(n,bCt),t),p=ayn(HN(n,yCt),t),m=ayn(HN(n,mCt),t),E=ayn(HN(n,lCt),t),S=uyn(HN(n,kCt),t),b=uyn(HN(n,pCt),t),g=ayn(HN(n,vCt),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,wCt),e+r,s+h),w9(HN(n,vCt),e+r,s+h),w9(HN(n,dCt),e+r,0),w9(HN(n,ECt),e+r,s+h+o),w9(HN(n,MCt),0,s+h),w9(HN(n,hCt),e+r+i,s+h),w9(HN(n,gCt),e+r+i,0),w9(HN(n,TCt),0,s+h+o),w9(HN(n,fCt),e+r+i,s+h+o),w9(HN(n,bCt),0,s),w9(HN(n,yCt),e,0),w9(HN(n,lCt),0,s+h+o),w9(HN(n,pCt),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(),sCt)&&((g=new PBn(t,new xI(t.a,r.d.d),r,a)).f.a=!0,g.a=a.c,d.c[d.c.length]=g),a.c.j==SCt&&((g=new PBn(t,new xI(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(),sCt)&&((g=new PBn(t,new xI(t.a,r.d.d),r,a)).f.a=!0,g.a=a.d,d.c[d.c.length]=g),a.d.j==SCt&&((g=new PBn(t,new xI(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,W_n(Qk(Yk(BK(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(Cz($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;W_n(Qk(Yk(BK(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 IT(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 IT(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=IJ(e.Math.floor((r+1)/2))-1,c=IJ(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 IXn(){IXn=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 CXn(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=KVn,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(),sCt)&&c.d.j==SCt){d.c[d.c.length]=c;continue}}for(o=new Wb(d);o.a<o.c.c.length;)KKn(n,c=BB(n0(o),17),e,i,(kUn(),oCt));for(a=new Wb(j);a.a<a.c.c.length;)c=BB(n0(a),17),Bl(E=new $vn(n),(uSn(),Cut)),hon(E,(HXn(),ept),(QEn(),XIt)),hon(E,(hWn(),dlt),c),hon(T=new ISn,dlt,c.d),qIn(T,(kUn(),ICt)),IZ(T,E),hon(M=new ISn,dlt,c.c),qIn(M,oCt),IZ(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 xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(t.a-d.a,t.b-d.b),h=new ZFn(new xI(d.a-50,d.b-s.a-50),new xI(d.a-50,t.b+s.a+50),new xI(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),Cbn(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();)(_7(h,(f=BB(r.Pb(),168)).a)||_7(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(),pIt)&&Jcn(t,xat),qy(TD(mMn(n,ugt)))?dq(t,(yMn(),Rat),(lWn(),Hot)):dq(t,(yMn(),Kat),(lWn(),Hot)),null!=mMn(n,(I6(),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),GC(mMn(n,Sgt))!==GC((sNn(),Cvt))&&dq(t,(yMn(),Kat),(lWn(),Not)),e.Hc(pft)&&(dq(t,(yMn(),Rat),(lWn(),Fot)),dq(t,_at,_ot),dq(t,Kat,Kot)),GC(mMn(n,Pdt))!==GC((JMn(),cft))&&GC(mMn(n,Zdt))!==GC((Mbn(),YPt))&&WG(t,(yMn(),Bat),(lWn(),pot)),qy(TD(mMn(n,fgt)))&&dq(t,(yMn(),Kat),(lWn(),got)),qy(TD(mMn(n,Hdt)))&&dq(t,(yMn(),Kat),(lWn(),Wot)),_Ln(n)&&(i=(GC(mMn(n,sgt))===GC(pIt)?BB(mMn(n,Rdt),292):BB(mMn(n,_dt),292))==(_an(),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(),Kat),(lWn(),Vut)),Fat,Qut),Bat,Yut)}return GC(mMn(n,Ldt))!==GC((mon(),Nvt))&&dq(t,(yMn(),Kat),(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,CEt),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,IZn,mpn(kEt)),u2(n,$4n,MZn,mpn(MEt)),u2(n,$4n,CZn,mpn(OEt)),u2(n,$4n,E4n,mpn(PEt)),u2(n,$4n,T4n,mpn(yEt)),u2(n,$4n,P4n,mpn(SEt)),u2(n,$4n,I4n,mpn(AEt)),u2(n,$4n,C4n,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 Ky(d6n+t.ne()+g6n));if(cL(t,457)){if(!(d=SDn(BB(t,671),e)))throw Hp(new Ky(p6n+e+"' is not a valid enumerator of '"+t.ne()+"'"));return d}switch(Ifn((CPn(),Z$t),t).cl()){case 2:e=FBn(e,!1);break;case 3:e=FBn(e,!0)}if(i=Ifn(Z$t,t).$k())return i.Aj().Nh().Kh(i,e);if(f=Ifn(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=Ifn(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 Ky(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=lKn(e,KVn,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<COt.length;++a)try{return BM(COt[a],e)}catch(g){if(!cL(g=lun(g),32))throw Hp(g)}throw Hp(new Ky(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 Ky(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 Ck,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-lKn(u,KVn,DWn),n.e!=IJ(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=aCn(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,JCn(fut=new pJ,(kUn(),wCt),vCt),JCn(fut,MCt,vCt),JCn(fut,MCt,kCt),JCn(fut,hCt,pCt),JCn(fut,hCt,vCt),JCn(fut,dCt,vCt),JCn(fut,dCt,mCt),JCn(fut,ECt,lCt),JCn(fut,ECt,vCt),JCn(fut,yCt,bCt),JCn(fut,yCt,vCt),JCn(fut,yCt,mCt),JCn(fut,yCt,lCt),JCn(fut,bCt,yCt),JCn(fut,bCt,kCt),JCn(fut,bCt,pCt),JCn(fut,bCt,vCt),JCn(fut,jCt,jCt),JCn(fut,jCt,mCt),JCn(fut,jCt,kCt),JCn(fut,gCt,gCt),JCn(fut,gCt,mCt),JCn(fut,gCt,pCt),JCn(fut,TCt,TCt),JCn(fut,TCt,lCt),JCn(fut,TCt,kCt),JCn(fut,fCt,fCt),JCn(fut,fCt,lCt),JCn(fut,fCt,pCt),JCn(fut,mCt,dCt),JCn(fut,mCt,yCt),JCn(fut,mCt,jCt),JCn(fut,mCt,gCt),JCn(fut,mCt,vCt),JCn(fut,mCt,mCt),JCn(fut,mCt,kCt),JCn(fut,mCt,pCt),JCn(fut,lCt,ECt),JCn(fut,lCt,yCt),JCn(fut,lCt,TCt),JCn(fut,lCt,fCt),JCn(fut,lCt,lCt),JCn(fut,lCt,kCt),JCn(fut,lCt,pCt),JCn(fut,lCt,vCt),JCn(fut,kCt,MCt),JCn(fut,kCt,bCt),JCn(fut,kCt,jCt),JCn(fut,kCt,TCt),JCn(fut,kCt,mCt),JCn(fut,kCt,lCt),JCn(fut,kCt,kCt),JCn(fut,kCt,vCt),JCn(fut,pCt,hCt),JCn(fut,pCt,bCt),JCn(fut,pCt,gCt),JCn(fut,pCt,fCt),JCn(fut,pCt,mCt),JCn(fut,pCt,lCt),JCn(fut,pCt,pCt),JCn(fut,pCt,vCt),JCn(fut,vCt,wCt),JCn(fut,vCt,MCt),JCn(fut,vCt,hCt),JCn(fut,vCt,dCt),JCn(fut,vCt,ECt),JCn(fut,vCt,yCt),JCn(fut,vCt,bCt),JCn(fut,vCt,mCt),JCn(fut,vCt,lCt),JCn(fut,vCt,kCt),JCn(fut,vCt,pCt),JCn(fut,vCt,vCt)}function _Xn(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 xI(RQn,RQn),n.c=new xI(_Qn,_Qn),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),n_n(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(_x(E=new _j((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 KXn(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(),Iut)&&s!=Cut&&s!=Mut&&s!=Tut)throw Hp(new Ky("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(),yCt).Hc(f.j)&&(b=Gy(MD(mMn(f,(hWn(),Llt)))),r5(r,new xI(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,yCt.Hc(l.j)&&(b=Gy(MD(mMn(l,(hWn(),Llt)))),r5(r,new xI(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 xI(d.a,d.b),w),UR(v=new xI(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 xI(y.a,y.b),m),UR(k=new xI(iZ(g.a,p.a),iZ(g.b,p.b)),m),_x(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,I,C,O,A,$,L,N,x;if(y=(v=BB(Wtn((!n.b&&(n.b=new h_(_Ot,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,I=(S=BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)).Dg(),C=S.Eg(),P=S.Cg()/2,j=S.Bg()/2,cL(S,186)&&(I+=WJ(M=BB(S,118)).i,I+=WJ(M).i),I+=P,C+=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=I,I>y+m?d=y+m:I<y-m&&(d=y-m),g=C,C>k+w?g=k+w:C<k-w&&(g=k-w),d>y-m&&d<y+m&&g>k-w&&g<k+w&&(d=y+m),Cen(u=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),d),Aen(u,g),E=y,y>I+P?E=I+P:y<I-P&&(E=I-P),T=k,k>C+j?T=C+j:k<C-j&&(T=C-j),E>I-P&&E<I+P&&T>C-j&&T<C+j&&(T=C+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=CPt,Ipt=APt,Cpt=$Pt,Ppt=OPt,Opt=LPt,$pt=NPt,Npt=RPt,Mpt=IPt,fWn(),gpt=Kwt,kpt=Fwt,Tpt=Bwt,Apt=Hwt,hpt=new XA(pPt,iln(0)),fpt=Dwt,lpt=Rwt,bpt=_wt,zpt=ldt,Rpt=zwt,_pt=Wwt,Bpt=edt,Kpt=Ywt,Fpt=Zwt,Xpt=pdt,Upt=wdt,qpt=odt,Hpt=adt,Gpt=hdt,Rgt=Pwt,_gt=Iwt,rgt=_bt,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=_St,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=qIt),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,_dt=bbt,Rdt=sbt,Hdt=ybt,Cgt=wwt,Ogt=dwt,pgt=Vbt,Kgt=$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,Kdt=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=Ibt,Igt=$St,mgt=Zbt,xgt=jwt,Lpt=xPt,Xdt=Sbt,opt=Nwt,tgt=$bt,ygt=twt,Fdt=vbt,ggt=CSt,jgt=rwt,Bdt=mbt,Ldt=cbt,Adt=ebt,Cdt=nbt,Odt=tbt,$dt=rbt,Idt=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,I;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 Ik).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){I=e0(u,UQn);do{d=I,I=Ojn(I,10),y[--e]=48+dG(ibn(d,cbn(I,10)))&QVn}while(0!=Vhn(I,0))}else{I=u;do{d=I,I=I/10|0,y[--e]=d-10*I+48&QVn}while(0!=I)}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 Ck,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 Ky(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 xI(s.i+l,s.j+f);hU(n.g,k);)Kx(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 rC(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())&&m_(b,v)&&(n.d.d=d);break;case 1:for((i=new xI(n.c.g,n.c.f)).a*=.5,i.b*=.5,Kx(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 Ky(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),jIn(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 h_(KOt,t,8,5)),t.d),(!t.e&&(t.e=new h_(KOt,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 Ky(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(qC(AY(k.f,p)),12))||(g=tFn(p),jIn(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))),jIn(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(qC(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(qC(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,I,C,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;)I=BB(dH(n.e),10),n.b[I.p]=w--,Q_n(n,I),--A;for(;0!=n.f.b;)C=BB(dH(n.f),10),n.b[C.p]=b++,Q_n(n,C),--A;if(A>0){for(l=KVn,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++,Q_n(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=C2((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 Ky("no archive separator"));a=!0,i=fx(n,u,++o),u=o}else u>=0&&m_(n.substr(u,2),"//")?(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,I,C,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=KVn,T=KVn,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&&((C=new rm).b=p++,jRn(n,y,C),O.c[O.c.length]=C);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[(C=BB(s6(m,0),257)).b]=v++;!j[C.b].dc();)--h[($=BB(j[C.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],I=g[a],n.a[I]=d,d.b=I,k=new Wb(d.e);k.a<k.c.c.length;)(y=BB(n0(k),10)).p=I;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(),QIt)&&j!=YIt){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=oCn(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=oCn(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],JCn(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,dKn(e)),i=!0;break;case 105:case 73:case 99:case 67:sHn(a,dKn(e)),(e=-1)<0&&(i=!0);break;case 112:case 80:if(!(u=DCn(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,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#decimal"])),V$n(n.d,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#integer"])),V$n(n.e,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#boolean"])),V$n(n.f,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EBoolean",t8n,"EBoolean:Object"])),V$n(n.i,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#byte"])),V$n(n.g,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#hexBinary"])),V$n(n.j,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EByte",t8n,"EByte:Object"])),V$n(n.n,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EChar",t8n,"EChar:Object"])),V$n(n.t,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#double"])),V$n(n.u,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EDouble",t8n,"EDouble:Object"])),V$n(n.F,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#float"])),V$n(n.G,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EFloat",t8n,"EFloat:Object"])),V$n(n.I,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#int"])),V$n(n.J,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EInt",t8n,"EInt:Object"])),V$n(n.N,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#long"])),V$n(n.O,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"ELong",t8n,"ELong:Object"])),V$n(n.Z,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#short"])),V$n(n.$,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EShort",t8n,"EShort:Object"])),V$n(n._,K9n,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,I;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=KVn,w=KVn,v=spn(u.b,0);v.b!=v.d.c;)p=BB(b3(v),86),m+=BB(mMn(p,(IAn(),$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,(IAn(),$kt),iln(m)),hon(u,(qqn(),nkt),new xI(d,g)),hon(u,Zyt,new xI(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,(IAn(),jkt))))),P=0,I=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,I+=f+E,f=0),ELn(k,u,P,I),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())?GC(BB(c.cd(),146).wg())!==GC(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(),JCn(put=new pJ,(kUn(),dCt),wCt),JCn(put,MCt,wCt),JCn(put,gCt,wCt),JCn(put,jCt,wCt),JCn(put,kCt,wCt),JCn(put,mCt,wCt),JCn(put,jCt,dCt),JCn(put,wCt,hCt),JCn(put,dCt,hCt),JCn(put,MCt,hCt),JCn(put,gCt,hCt),JCn(put,yCt,hCt),JCn(put,jCt,hCt),JCn(put,kCt,hCt),JCn(put,mCt,hCt),JCn(put,bCt,hCt),JCn(put,wCt,ECt),JCn(put,dCt,ECt),JCn(put,hCt,ECt),JCn(put,MCt,ECt),JCn(put,gCt,ECt),JCn(put,yCt,ECt),JCn(put,jCt,ECt),JCn(put,bCt,ECt),JCn(put,TCt,ECt),JCn(put,kCt,ECt),JCn(put,pCt,ECt),JCn(put,mCt,ECt),JCn(put,dCt,MCt),JCn(put,gCt,MCt),JCn(put,jCt,MCt),JCn(put,mCt,MCt),JCn(put,dCt,gCt),JCn(put,MCt,gCt),JCn(put,jCt,gCt),JCn(put,gCt,gCt),JCn(put,kCt,gCt),JCn(put,wCt,fCt),JCn(put,dCt,fCt),JCn(put,hCt,fCt),JCn(put,ECt,fCt),JCn(put,MCt,fCt),JCn(put,gCt,fCt),JCn(put,yCt,fCt),JCn(put,jCt,fCt),JCn(put,TCt,fCt),JCn(put,bCt,fCt),JCn(put,mCt,fCt),JCn(put,kCt,fCt),JCn(put,vCt,fCt),JCn(put,wCt,TCt),JCn(put,dCt,TCt),JCn(put,hCt,TCt),JCn(put,MCt,TCt),JCn(put,gCt,TCt),JCn(put,yCt,TCt),JCn(put,jCt,TCt),JCn(put,bCt,TCt),JCn(put,mCt,TCt),JCn(put,pCt,TCt),JCn(put,vCt,TCt),JCn(put,dCt,bCt),JCn(put,MCt,bCt),JCn(put,gCt,bCt),JCn(put,jCt,bCt),JCn(put,TCt,bCt),JCn(put,mCt,bCt),JCn(put,kCt,bCt),JCn(put,wCt,lCt),JCn(put,dCt,lCt),JCn(put,hCt,lCt),JCn(put,MCt,lCt),JCn(put,gCt,lCt),JCn(put,yCt,lCt),JCn(put,jCt,lCt),JCn(put,bCt,lCt),JCn(put,mCt,lCt),JCn(put,dCt,kCt),JCn(put,hCt,kCt),JCn(put,ECt,kCt),JCn(put,gCt,kCt),JCn(put,wCt,pCt),JCn(put,dCt,pCt),JCn(put,ECt,pCt),JCn(put,MCt,pCt),JCn(put,gCt,pCt),JCn(put,yCt,pCt),JCn(put,jCt,pCt),JCn(put,jCt,vCt),JCn(put,gCt,vCt),JCn(put,bCt,wCt),JCn(put,bCt,MCt),JCn(put,bCt,hCt),JCn(put,yCt,wCt),JCn(put,yCt,dCt),JCn(put,yCt,ECt)}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(Ckn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 50:return new yin(BB(Ckn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 5:return new i_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 47:return new r_(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 e_(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 KL(n.a,t,Awn(t.Tg(),n.c));case 13:return new _L(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 f_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 27:return new h_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 29:return new o_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 31:return new c_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 33:return new s_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 35:return new u_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 37:return new a_(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 q_n(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),d.c[d.c.length]=g;break;case 1:p=new q_n(t,n.c.d,(oZ(),cyt),(gJ(),nyt)),d.c[d.c.length]=p;break;case 4:y=new q_n(t,n.c.d,(oZ(),ryt),(gJ(),tyt)),d.c[d.c.length]=y;break;case 2:k=new q_n(t,n.c.d,(oZ(),cyt),(gJ(),tyt)),d.c[d.c.length]=k;break;default:g=new q_n(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),p=new q_n(t,n.c.d,cyt,nyt),y=new q_n(t,n.c.d,ryt,tyt),k=new q_n(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 iI(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&&CBn(t,h=FUn(n,d,n.c.d),e)&&(f=h),!f)for(s=new Wb(d);s.a<s.c.c.length;)CBn(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),(GC(ZAn(t,Ldt))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((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=GC(ZAn(s,sgt))===GC((ufn(),pIt)),g=null,(T=!P8(s,(sWn(),eSt))||m_(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(KOt,c,12,3)),c.b));o.e!=o.i.gc();)t_n(u=BB(kpn(o),79)),(GC(ZAn(t,Ldt))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((Bfn(),wut)))&&Ypn(u,(hWn(),wlt),iln(w++)),j=PTn(BB(Wtn((!u.b&&(u.b=new h_(_Ot,u,4,7)),u.b),0),82)),E=PTn(BB(Wtn((!u.c&&(u.c=new h_(_Ot,u,5,8)),u.c),0),82)),qy(TD(ZAn(u,Ggt)))||qy(TD(ZAn(j,Ggt)))||qy(TD(ZAn(E,Ggt)))||(p=c,QCn(u)&&qy(TD(ZAn(j,wgt)))&&qy(TD(ZAn(u,dgt)))||Itn(E,j)?p=j:Itn(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=GC(ZAn(c,sgt))===GC((ufn(),pIt)))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))||m_(SD(ZAn(i,eSt)),w1n),k=GC(ZAn(i,sgt))===GC(pIt),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:X_n(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?nCn(c):3==e?wCn(c):dCn(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,I;if(t_n(t),o=BB(Wtn((!t.b&&(t.b=new h_(_Ot,t,4,7)),t.b),0),82),h=BB(Wtn((!t.c&&(t.c=new h_(_Ot,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 xI(a.j,a.k),XJ(t)),t5(T,e),Itn(s,u)&&(y=Hvt,UR(T,j.n))),E=dHn(j,T,y,i)),P||(ain(),y=Hvt,I=null,a&&vA(BB(mMn(S,ept),98))&&(Y3(I=new xI(a.b,a.c),XJ(t)),t5(I,e)),P=dHn(S,I,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,Kgt),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),_rn(n.b,19),n.a=kan(n,1),Rrn(n.a,1),_rn(n.a,2),_rn(n.a,3),_rn(n.a,4),_rn(n.a,5),n.o=kan(n,2),Rrn(n.o,8),Rrn(n.o,9),_rn(n.o,10),_rn(n.o,11),_rn(n.o,12),_rn(n.o,13),_rn(n.o,14),_rn(n.o,15),_rn(n.o,16),_rn(n.o,17),_rn(n.o,18),_rn(n.o,19),_rn(n.o,20),_rn(n.o,21),_rn(n.o,22),_rn(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),_rn(n.p,6),_rn(n.p,7),otn(n.p),otn(n.p),n.q=kan(n,4),Rrn(n.q,8),n.v=kan(n,5),_rn(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),_rn(n.w,5),n.B=kan(n,7),_rn(n.B,1),otn(n.B),otn(n.B),otn(n.B),n.Q=kan(n,8),_rn(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),_rn(n.T,10),_rn(n.T,11),_rn(n.T,12),_rn(n.T,13),_rn(n.T,14),otn(n.T),otn(n.T),n.U=kan(n,12),Rrn(n.U,2),Rrn(n.U,3),_rn(n.U,4),_rn(n.U,5),_rn(n.U,6),_rn(n.U,7),otn(n.U),n.V=kan(n,13),_rn(n.V,10),n.W=kan(n,14),Rrn(n.W,18),Rrn(n.W,19),Rrn(n.W,20),_rn(n.W,21),_rn(n.W,22),_rn(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),_rn(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),_rn(n.eb,8),_rn(n.eb,9),n.ab=kan(n,17),Rrn(n.ab,0),Rrn(n.ab,1),n.H=kan(n,18),_rn(n.H,0),_rn(n.H,1),_rn(n.H,2),_rn(n.H,3),_rn(n.H,4),_rn(n.H,5),otn(n.H),n.db=kan(n,19),_rn(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=IMt),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=vIt),WSt=new WA(12),XSt=new $O(QJn,WSt),ISt=new $O(jZn,!1),CSt=new $O(m3n,!1),USt=new $O(MZn,!1),QEn(),uPt=new $O(EZn,oPt=YIt),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),CPt=new $O(R2n,0),OPt=new $O(F2n,5),APt=new $O(_2n,1),$Pt=new $O(K2n,1),LPt=new $O(vZn,20),NPt=new $O(B2n,10),RPt=new $O(H2n,10),IPt=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(GIt),9),RSt=new Y_(t,BB(SR(t,t.length),9),0),DSt=new $O(IZn,RSt),cpn(),ZSt=new $O(e3n,nPt=BIt),ePt=new up(i3n),iPt=new up(r3n),rPt=new up(c3n),tPt=new up(a3n),n=BB(Vj(YCt),9),KSt=new Y_(n,BB(SR(n,n.length),9),0),_St=new $O(PZn,KSt),GSt=nbn((nKn(),GCt)),qSt=new $O(SZn,GSt),HSt=new xI(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(I5n),iln(1),new $O(C5n,null),cPt=new up(b3n),sPt=new up(h3n),kUn(),wPt=new $O(U2n,dPt=PCt),aPt=new up(G2n),lCn(),lPt=nbn(rCt),fPt=new $O(CZn,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=aIt),JSt=!0}function hWn(){var n,t;hWn=O,dlt=new up(OZn),Fft=new up("coordinateOrigin"),Mlt=new up("processors"),Kft=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(),MIt)),blt=new iR("maxEdgeThickness",0),Ilt=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 Y_(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),Qft=new iR("externalPortSide",(kUn(),PCt)),Yft=new iR("externalPortSize",new Gj),Wft=new up("externalPortReplacedDummies"),Vft=new up("externalPortReplacedDummy"),Xft=new iR("externalPortConnections",new Y_(n=BB(Vj(FCt),9),BB(SR(n,n.length),9),0)),Tlt=new iR(dJn,0),xft=new up("barycenterAssociates"),_lt=new up("TopSideComments"),Dft=new up("BottomSideComments"),_ft=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),Clt=new iR(z1n,!1),nlt=new up("layerConstraints.hiddenNodes"),mlt=new up("layerConstraints.opposidePort"),Dlt=new up("targetNode.modelOrder")}function fWn(){fWn=O,Knn(),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=_vt),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=Cvt),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)),_an(),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(),Iwt=new $O(P0n,Cwt=lvt),Hcn(),Nbt=new $O(I0n,xbt=Wvt),A6(),Dbt=new $O(C0n,Rbt=Zvt),Usn(),_bt=new $O(O0n,Kbt=rmt),Bbt=new $O(A0n,.2),$bt=new $O($0n,2),Kwt=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(_0n,iln(0)),iln(0),_wt=new $O(K0n,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=Kht),$Pn(),Ibt=new $O(r2n,Cbt=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=pIt,kbt=hht,dbt=hht,fbt=hht,lbt=pIt,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),_ot=new nP("PARTITION_MIDPROCESSOR",8),got=new nP("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Not=new nP("NODE_PROMOTION",10),Cot=new nP("LAYER_CONSTRAINT_POSTPROCESSOR",11),Kot=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),Iot=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,I,C,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((I=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),I.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(_=0,G=new Wb((I=A[N]).j);G.a<G.c.c.length&&(q=BB(n0(G),11)).j==(kUn(),sCt);)for(o=new Wb(q.e);o.a<o.c.c.length;)if(u=BB(n0(o),17),I.c!=u.c.i.c){++_;break}for(F=0,X=new M2(I.j,I.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),I.c!=u.c.i.c&&++U;U>0&&(q.j==(kUn(),sCt)?(n.a[q.p]=rn,++rn):(n.a[q.p]=rn+_+F,++F))}rn+=F}for(z=new xp,d=new fA,$=0,x=(C=t).length;$<x;++$)for(tn=new Wb((I=C[$]).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,I.c!=an.i.c)if(Z=BB(qC(AY(z.f,nn)),467),cn=BB(qC(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),jIn(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),jIn(z.f,an,Z);else WB(cn.a,u),WB(cn.d,nn),jIn(z.f,nn,cn);else w=new DR,d.a.zc(w,d),WB(w.a,u),WB(w.d,nn),jIn(z.f,nn,w),WB(w.d,an),jIn(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),K=0,j=0;j<S.length;j++)switch(S[j].d.g){case 0:++K;break;case 1:c+=--K}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),K=0,p=0;p<Q.length;p++)switch(Q[p].d.g){case 0:++K;break;case 1:c+=--K}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(),LIt),Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt]))])),Srt=new ocn("OUT_T_C",1,Qit,irt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt,OIt]))])),Irt=new ocn("OUT_T_R",2,Jit,irt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt]))])),vrt=new ocn("OUT_B_L",3,Yit,crt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt]))])),prt=new ocn("OUT_B_C",4,Qit,crt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt,OIt]))])),mrt=new ocn("OUT_B_R",5,Jit,crt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt]))])),jrt=new ocn("OUT_L_T",6,Jit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,DIt,OIt]))])),krt=new ocn("OUT_L_C",7,Jit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,xIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,xIt,OIt]))])),yrt=new ocn("OUT_L_B",8,Jit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,NIt,OIt]))])),Mrt=new ocn("OUT_R_T",9,Yit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,DIt,OIt]))])),Trt=new ocn("OUT_R_C",10,Yit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,xIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,xIt,OIt]))])),Ert=new ocn("OUT_R_B",11,Yit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,NIt,OIt]))])),drt=new ocn("IN_T_L",12,Yit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt,OIt]))])),wrt=new ocn("IN_T_C",13,Qit,crt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt,OIt]))])),grt=new ocn("IN_T_R",14,Jit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt,OIt]))])),lrt=new ocn("IN_C_L",15,Yit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,CIt,OIt]))])),frt=new ocn("IN_C_C",16,Qit,rrt,zit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,IIt,OIt]))])),brt=new ocn("IN_C_R",17,Jit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,AIt,OIt]))])),srt=new ocn("IN_B_L",18,Yit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt,OIt]))])),ort=new ocn("IN_B_C",19,Qit,irt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt,OIt]))])),hrt=new ocn("IN_B_R",20,Jit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt,OIt]))])),Crt=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,_9n,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,_9n,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,K7n,!0),dV(n.u,DNt,"Float",!0),dV(n.v,Itt,"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,Ktt,"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,Ktt,"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 Ic),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,_2n,mpn(Ipt)),u2(n,w1n,K2n,mpn(Cpt)),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,_0n,mpn(lpt)),u2(n,w1n,K0n,mpn(bpt)),u2(n,w1n,U0n,mpn(zpt)),u2(n,w1n,X0n,mpn(Rpt)),u2(n,w1n,W0n,mpn(_pt)),u2(n,w1n,V0n,mpn(Bpt)),u2(n,w1n,Q0n,mpn(Kpt)),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(_gt)),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,IZn,mpn($gt)),u2(n,w1n,Z2n,mpn(Agt)),u2(n,w1n,CZn,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(_dt)),u2(n,w1n,y0n,mpn(Rdt)),u2(n,w1n,d0n,mpn(Hdt)),u2(n,w1n,V1n,mpn(Cgt)),u2(n,w1n,Q1n,mpn(Ogt)),u2(n,w1n,W1n,mpn(pgt)),u2(n,w1n,k0n,mpn(Kgt)),u2(n,w1n,T0n,mpn(Ngt)),u2(n,w1n,X1n,mpn(ugt)),u2(n,w1n,M0n,mpn(Dgt)),u2(n,w1n,I0n,mpn(egt)),u2(n,w1n,C0n,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(Kdt)),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(Igt)),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(Cdt)),u2(n,w1n,h2n,mpn(Odt)),u2(n,w1n,a2n,mpn($dt)),u2(n,w1n,u2n,mpn(Idt)),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,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anySimpleType"])),V$n(n.b,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyType",F9n,_9n])),V$n(BB(Wtn(QQ(n.b),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.b),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,M7n,P7n,t8n,":1",D7n,"lax"])),V$n(BB(Wtn(QQ(n.b),2),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,p7n,M7n,P7n,t8n,":2",D7n,"lax"])),V$n(n.c,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyURI",T7n,y7n])),V$n(n.d,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"base64Binary",T7n,y7n])),V$n(n.e,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$Wn,T7n,y7n])),V$n(n.f,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"boolean:Object",J9n,$Wn])),V$n(n.g,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,S9n])),V$n(n.i,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"byte:Object",J9n,S9n])),V$n(n.j,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"date",T7n,y7n])),V$n(n.k,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"dateTime",T7n,y7n])),V$n(n.n,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"decimal",T7n,y7n])),V$n(n.o,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,I9n,T7n,y7n])),V$n(n.p,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"double:Object",J9n,I9n])),V$n(n.q,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"duration",T7n,y7n])),V$n(n.s,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ENTITIES",J9n,R7n,_7n,"1"])),V$n(n.r,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,R7n,k7n,K7n])),V$n(n.t,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,K7n,J9n,F7n])),V$n(n.u,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,C9n,T7n,y7n])),V$n(n.v,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"float:Object",J9n,C9n])),V$n(n.w,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gDay",T7n,y7n])),V$n(n.B,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonth",T7n,y7n])),V$n(n.A,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonthDay",T7n,y7n])),V$n(n.C,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYear",T7n,y7n])),V$n(n.D,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYearMonth",T7n,y7n])),V$n(n.F,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"hexBinary",T7n,y7n])),V$n(n.G,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ID",J9n,F7n])),V$n(n.H,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREF",J9n,F7n])),V$n(n.J,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREFS",J9n,B7n,_7n,"1"])),V$n(n.I,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,B7n,k7n,"IDREF"])),V$n(n.K,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,O9n])),V$n(n.M,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,H7n])),V$n(n.L,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"int:Object",J9n,O9n])),V$n(n.P,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"language",J9n,q7n,G7n,z7n])),V$n(n.Q,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,A9n])),V$n(n.R,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"long:Object",J9n,A9n])),V$n(n.S,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"Name",J9n,q7n,G7n,U7n])),V$n(n.T,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,F7n,J9n,"Name",G7n,X7n])),V$n(n.U,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"negativeInteger",J9n,W7n,V7n,"-1"])),V$n(n.V,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Q7n,J9n,q7n,G7n,"\\c+"])),V$n(n.X,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NMTOKENS",J9n,Y7n,_7n,"1"])),V$n(n.W,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Y7n,k7n,Q7n])),V$n(n.Y,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,J7n,J9n,H7n,Z7n,"0"])),V$n(n.Z,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,W7n,J9n,H7n,V7n,"0"])),V$n(n.$,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,nnt,J9n,NWn,T7n,"replace"])),V$n(n._,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NOTATION",T7n,y7n])),V$n(n.ab,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"positiveInteger",J9n,J7n,Z7n,"1"])),V$n(n.bb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"processingInstruction_._type",F9n,"empty"])),V$n(BB(Wtn(QQ(n.bb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"data"])),V$n(BB(Wtn(QQ(n.bb),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,Y6n])),V$n(n.cb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"QName",T7n,y7n])),V$n(n.db,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$9n])),V$n(n.eb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"short:Object",J9n,$9n])),V$n(n.fb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"simpleAnyType",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":3",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":4",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),2),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":5",F9n,d7n])),V$n(n.gb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,NWn,T7n,"preserve"])),V$n(n.hb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"time",T7n,y7n])),V$n(n.ib,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,q7n,J9n,nnt,T7n,y7n])),V$n(n.jb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,tnt,V7n,"255",Z7n,"0"])),V$n(n.kb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedByte:Object",J9n,tnt])),V$n(n.lb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,ent,V7n,"4294967295",Z7n,"0"])),V$n(n.mb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedInt:Object",J9n,ent])),V$n(n.nb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedLong",J9n,J7n,V7n,int,Z7n,"0"])),V$n(n.ob,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,rnt,V7n,"65535",Z7n,"0"])),V$n(n.pb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedShort:Object",J9n,rnt])),V$n(n.qb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"",F9n,_9n])),V$n(BB(Wtn(QQ(n.qb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.qb),1),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xmlns:prefix"])),V$n(BB(Wtn(QQ(n.qb),2),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xsi:schemaLocation"])),V$n(BB(Wtn(QQ(n.qb),3),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"cDATA",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),4),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"comment",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),5),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,cnt,j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),6),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,O6n,j7n,E7n]))}function kWn(n){return m_("_UI_EMFDiagnostic_marker",n)?"EMF Problem":m_("_UI_CircularContainment_diagnostic",n)?"An object may not circularly contain itself":m_(w8n,n)?"Wrong character.":m_(d8n,n)?"Invalid reference number.":m_(g8n,n)?"A character is required after \\.":m_(p8n,n)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":m_(v8n,n)?"'(?<' or '(?<!' is expected.":m_(m8n,n)?"A comment is not terminated.":m_(y8n,n)?"')' is expected.":m_(k8n,n)?"Unexpected end of the pattern in a modifier group.":m_(j8n,n)?"':' is expected.":m_(E8n,n)?"Unexpected end of the pattern in a conditional group.":m_(T8n,n)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":m_(M8n,n)?"There are more than three choices in a conditional group.":m_(S8n,n)?"A character in U+0040-U+005f must follow \\c.":m_(P8n,n)?"A '{' is required before a character category.":m_(I8n,n)?"A property name is not closed by '}'.":m_(C8n,n)?"Unexpected meta character.":m_(O8n,n)?"Unknown property.":m_(A8n,n)?"A POSIX character class must be closed by ':]'.":m_($8n,n)?"Unexpected end of the pattern in a character class.":m_(L8n,n)?"Unknown name for a POSIX character class.":m_("parser.cc.4",n)?"'-' is invalid here.":m_(N8n,n)?"']' is expected.":m_(x8n,n)?"'[' is invalid in a character class. Write '\\['.":m_(D8n,n)?"']' is invalid in a character class. Write '\\]'.":m_(R8n,n)?"'-' is an invalid character range. Write '\\-'.":m_(_8n,n)?"'[' is expected.":m_(K8n,n)?"')' or '-[' or '+[' or '&[' is expected.":m_(F8n,n)?"The range end code point is less than the start code point.":m_(B8n,n)?"Invalid Unicode hex notation.":m_(H8n,n)?"Overflow in a hex notation.":m_(q8n,n)?"'\\x{' must be closed by '}'.":m_(G8n,n)?"Invalid Unicode code point.":m_(z8n,n)?"An anchor must not be here.":m_(U8n,n)?"This expression is not supported in the current option setting.":m_(X8n,n)?"Invalid quantifier. A digit is expected.":m_(W8n,n)?"Invalid quantifier. Invalid quantity or a '}' is missing.":m_(V8n,n)?"Invalid quantifier. A digit or '}' is expected.":m_(Q8n,n)?"Invalid quantifier. A min quantity must be <= a max quantity.":m_(Y8n,n)?"Invalid quantifier. A quantity value overflow.":m_("_UI_PackageRegistry_extensionpoint",n)?"Ecore Package Registry for Generated Packages":m_("_UI_DynamicPackageRegistry_extensionpoint",n)?"Ecore Package Registry for Dynamic Packages":m_("_UI_FactoryRegistry_extensionpoint",n)?"Ecore Factory Override Registry":m_("_UI_URIExtensionParserRegistry_extensionpoint",n)?"URI Extension Parser Registry":m_("_UI_URIProtocolParserRegistry_extensionpoint",n)?"URI Protocol Parser Registry":m_("_UI_URIContentParserRegistry_extensionpoint",n)?"URI Content Parser Registry":m_("_UI_ContentHandlerRegistry_extensionpoint",n)?"Content Handler Registry":m_("_UI_URIMappingRegistry_extensionpoint",n)?"URI Converter Mapping Registry":m_("_UI_PackageRegistryImplementation_extensionpoint",n)?"Ecore Package Registry Implementation":m_("_UI_ValidationDelegateRegistry_extensionpoint",n)?"Validation Delegate Registry":m_("_UI_SettingDelegateRegistry_extensionpoint",n)?"Feature Setting Delegate Factory Registry":m_("_UI_InvocationDelegateRegistry_extensionpoint",n)?"Operation Invocation Delegate Factory Registry":m_("_UI_EClassInterfaceNotAbstract_diagnostic",n)?"A class that is an interface must also be abstract":m_("_UI_EClassNoCircularSuperTypes_diagnostic",n)?"A class may not be a super type of itself":m_("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",n)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":m_("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",n)?"The opposite of the opposite may not be a reference different from this one":m_("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",n)?"The opposite must be a feature of the reference's type":m_("_UI_EReferenceTransientOppositeNotTransient_diagnostic",n)?"The opposite of a transient reference must be transient if it is proxy resolving":m_("_UI_EReferenceOppositeBothContainment_diagnostic",n)?"The opposite of a containment reference must not be a containment reference":m_("_UI_EReferenceConsistentUnique_diagnostic",n)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":m_("_UI_ETypedElementNoType_diagnostic",n)?"The typed element must have a type":m_("_UI_EAttributeNoDataType_diagnostic",n)?"The generic attribute type must not refer to a class":m_("_UI_EReferenceNoClass_diagnostic",n)?"The generic reference type must not refer to a data type":m_("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",n)?"A generic type can't refer to both a type parameter and a classifier":m_("_UI_EGenericTypeNoClass_diagnostic",n)?"A generic super type must refer to a class":m_("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",n)?"A generic type in this context must refer to a classifier or a type parameter":m_("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",n)?"A generic type may have bounds only when used as a type argument":m_("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",n)?"A generic type must not have both a lower and an upper bound":m_("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",n)?"A generic type with bounds must not also refer to a type parameter or classifier":m_("_UI_EGenericTypeNoArguments_diagnostic",n)?"A generic type may have arguments only if it refers to a classifier":m_("_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 _p,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 _p,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 _p,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,I6n,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,I6n),$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),C6n,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,_Ot,W5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.c),0),18),n.d,BB(Wtn(QQ(n.d),1),18),"outgoingEdges",0,-1,_Ot,!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,_Ot,!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),C6n,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),C6n,0,1,XOt,!1,!1,!0,!1,!1,!1,!1),z0(n.d,KOt,V5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.d),0),18),n.i,BB(Wtn(QQ(n.i),3),18),"containingNode",0,1,KOt,!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,KOt,!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,KOt,!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,KOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.d),4),34),n.wb.e,"hyperedge",null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),5),34),n.wb.e,$6n,null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),6),34),n.wb.e,"selfloop",null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),7),34),n.wb.e,"connected",null,0,1,KOt,!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),C6n,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,_6n,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),K6n,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 _p,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),KOn(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,_At,s9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.a),0),34),n._,T6n,null,0,1,_At,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.a),1),18),n.ab,null,"details",0,-1,_At,!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,_At,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),3),18),n.S,null,"contents",0,-1,_At,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),4),18),n.S,null,"references",0,-1,_At,!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),KOn(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"),KW(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,KAt,h9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.eb),0),34),n.e,"ordered",a5n,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),1),34),n.e,"unique",a5n,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),2),34),n.I,"lowerBound",null,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),3),34),n.I,"upperBound","1",0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),4),34),n.e,"many",null,0,1,KAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.eb),5),34),n.e,"required",null,0,1,KAt,!0,!0,!1,!1,!0,!0),Myn(BB(Wtn(QQ(n.eb),6),18),n.p,null,"eType",0,1,KAt,!1,!0,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.eb),7),18),n.H,null,"eGenericType",0,1,KAt,!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,KNt,"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,Itt,"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.$,Ktt,"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,IWn,CWn,OWn,AWn="object",$Wn="boolean",LWn="number",NWn="string",xWn="function",DWn=2147483647,RWn="java.lang",_Wn={3:1},KWn="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,IVn={3:1,6:1,4:1,5:1,165:1},CVn="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},_Vn=1e-4,KVn=-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,IQn=524288,CQn=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,_Qn=-1/0,KQn=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",IYn="org.eclipse.elk.alg.common.compaction.oned",CYn="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",_Yn="ScanlineConstraintCalculator",KYn="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.",IJn=" Given center based coordinates were (",CJn="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",_Jn="org.eclipse.elk.alg.disco.graph",KJn="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",IZn="org.eclipse.elk.nodeLabels.placement",CZn="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",_Zn="org.eclipse.elk.stress.iterationLimit",KZn="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 '",I1n="FIRST_SEPARATE",C1n="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",_1n="org.eclipse.elk.alg.layered.intermediate.preserveorder",K1n="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",I0n="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",C0n="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",_0n="org.eclipse.elk.layered.priority.shortness",K0n="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",I2n="wrapping.cutting",C2n="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",_2n="org.eclipse.elk.spacing.labelPortHorizontal",K2n="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},I3n="org.eclipse.elk.alg.layered.p3order",C3n="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",_3n=.09999999999999998,K3n=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",I4n="org.eclipse.elk.rectpacking.rowCompaction",C4n="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",_4n="org.eclipse.elk.underlyingLayoutAlgorithm",K4n="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",I5n="org.eclipse.elk.font.name",C5n="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",_5n="org.eclipse.elk.fixed",K5n="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",I6n="width",C6n="parent",O6n="text",A6n="children",$6n="hierarchical",L6n="sources",N6n="targets",x6n="sections",D6n="bendPoints",R6n="outgoingShape",_6n="incomingShape",K6n="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",I8n="parser.atom.3",C8n="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",_8n="parser.ope.1",K8n="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",I9n="double",C9n="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},_9n="mixed",K9n="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",I7n="uninitialized",C7n="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",_7n="minLength",K7n="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",Int="default",Cnt="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,_Wn),vX(KWn,"Optional",1998),wAn(1170,1998,_Wn,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(KWn,"Absent",1170),wAn(628,1,{},mk),vX(KWn,"Joiner",628);var Lnt=bq(KWn,"Predicate");wAn(582,1,{169:1,582:1,3:1,45:1},Hf),MWn.Mb=function(n){return _on(this,n)},MWn.Lb=function(n){return _on(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(KWn,"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(KWn,"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(),GC(n)===GC(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 qC(FEn(this,n,!1))},MWn.Hb=function(){return Hun(this.vc())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return new Ib(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 qC(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():Iq(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(){Iq(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},ID),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,CD),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){Krn(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 _nt,Knt,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 Csn(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 ECn(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())))&&TCn(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 CX(new dE(this.b))},MWn.hd=function(){return CX(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)?CX(BB(n,271)):(SQ(),new dN(BB(n,84)))},MWn.Zb=function(){return this.f||(this.f=cL(this.c,171)?new CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 Ijn(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),WC(t.c.e,t.b)),83))&&wfn(e.vc(),new vT(WC(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),WC(t.c.e,t.b)),83))&&dfn(e.vc(),new vT(WC(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(WC(this.c.e,this.b),WC(t.c.e,t.b))&&wW(WC(this.c.c,this.a),WC(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,[WC(this.c.e,this.b),WC(this.c.c,this.a),U6(this.c,this.b,this.a)]))},MWn.Ib=function(){return"("+WC(this.c.e,this.b)+","+WC(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(){Iq(this.kc())},MWn.vc=function(){return new ml(this)},MWn.lc=function(){return new IV(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(U_(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(U_(this.c,n),19)))throw Hp(new Ky(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 JC(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){d_(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,w_),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(),Knt)?1:n==(ey(),_nt)?-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){Krn(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 Can(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 CT(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 WC(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 KT(this.b,n)},MWn.Id=function(){return hfn(new el(this))},MWn.Jd=function(){return hfn(iV(this.b))},MWn.Kd=function(){return sK(),new rv(tV(this.b))},MWn.Fb=function(n){return BT(this.b,n)},MWn.xc=function(n){return U_(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 _T(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=CY(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 w_n(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&&(GC(n)===GC(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),YIn(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 IKn(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&&(GC(n)===GC(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,YIn(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 sK(),new yk(this.a)},MWn.Cc=function(){return sK(),new yk(this.a)},MWn.pd=function(){return sK(),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,b_),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){sK(),this.a.td(n)},vX(XWn,"ImmutableMapKeySet/lambda$0$Type",1181),wAn(1178,1980,mVn,av),MWn.Kc=function(){return new _H(this)},MWn.Hc=function(n){return null!=n&&Pjn(new _H(this),n)},MWn.Ed=function(){return new _H(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,_H),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,KH),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){Krn(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){_x(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),Iq(new I7(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,I7,_Pn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.e=y_n(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,ZIn(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,CT),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},IT),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,KO(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 KO(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){Cq(BB(n,416))},vX(XWn,"Multiset/lambda$0$Type",1110),wAn(737,1,lVn,pl),MWn.td=function(n){Ctn(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,_Wn),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 WC(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 IG(this.a,n)&&this.b.Hc(n)},MWn.Ic=function(n){return oun(this.a,n)&&this.b.Ic(n)},MWn.dc=function(){return _pn(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 Ian(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 sK(),new yk(this.a)},MWn.Cc=function(){return sK(),new yk(this.a)},MWn.pd=function(){return sK(),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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 Kwn($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(IY(this,this.g)))),ov(this)},MWn.Ib=function(){return IY(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 GC(this.b)===GC(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(m_((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)&&QC(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},Il,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 XC(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)&&m_(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),IWn={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,_y),vX(RWn,"ClassCastException",205),CWn={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)&&v_(this.a,BB(n,155).a)},MWn.Hb=function(){return IJ(this.a)},MWn.Ib=function(){return""+this.a},MWn.a=0;var Itt=vX(RWn,"Float",155);wAn(32,60,{3:1,102:1,32:1,60:1,78:1},wv,Ky,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 Ctt,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)&&QC(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 _tt,Ktt=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},Ik,Ck,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 JKn(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==JKn(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+IJ(this.e),this.b):(this.b=17*_hn(this.c)+IJ(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,Ign,$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 _hn(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,Ib),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a._b(n)},MWn.Kc=function(){return new Cb(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,Cb),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 _b(this.a.vc().Kc())},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/2",226),wAn(294,1,QWn,_b),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 _A(this.d)^_A(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 _A(this.cd())^_A(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 D_(this,n)},MWn.vc=function(){return new Bb(this)},MWn.xc=function(n){return qC(lsn(this,n))},MWn.ec=function(){return new Kb(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,Kb),MWn.Nc=function(){return new wS(this)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return D_(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(this.a).b))},MWn.Mc=function(n){return!!D_(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(){eK(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 Khn(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,tK),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,I),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 KT(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 _T(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 CY(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 Kq(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,_),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,K),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=_Qn,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 IS(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,IS),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},Y_),MWn.Fc=function(n){return orn(this,BB(n,22))},MWn.Hc=function(n){return IG(this,n)},MWn.Kc=function(){return new QT(this)},MWn.Mc=function(n){return CG(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 GC(n)===GC(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=KVn,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 J_(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,J_),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},Ix,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,nK),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,Iet,Cet=vX(YWn,"LinkedList",68);wAn(970,1,cVn,Z_),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 _A(this.a)},MWn.Ib=function(){return null!=this.a?GWn+kN(this.a)+")":"Optional.empty()"},vX(YWn,"Optional",404),wAn(463,1,{463:1},IO,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?IJ(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},CO,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,I4),MWn.a=0,MWn.b=0;var Oet,Aet,$et,Let=0;vX(YWn,"Random",230),wAn(27,1,fVn,w1,zU,IV),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 _6(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 _6(this,n)},MWn.sd=function(n){return cL(n,182)?_6(this,BB(n,182)):_6(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,Kv),MWn.Vc=function(n,t){_z(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 _z(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 _z(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 _z(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 _z(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(){eK(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,_et=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 Ket,Fet=Ben(YWn,"TreeMap/SubMapType",297,Unt,J2,hK);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 D_(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(new Kb(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,_Wn),MWn.ne=function(){return"DUMMY"},MWn.Ib=function(){return this.ne()},vX(wYn,"Level",2007),wAn(1621,2007,_Wn,U),MWn.ne=function(){return"INFO"},vX(wYn,"Level/LevelInfo",1621),wAn(1640,1,{},_v),vX(wYn,"LogManager",1640),wAn(1780,1,_Wn,iK),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,fK);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 Kz(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),CL(),$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,__),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 j_(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 E_(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 T_(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){Cl(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 FK(this.a,n,t)},vX(pYn,"StreamImpl/lambda$4$Type",1082),wAn(1083,1,lVn,CS),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 _A(this.a)+_A(this.b)};var uit=vX(TYn,"TEdge",168);wAn(308,1,{308:1},ZFn),MWn.Fb=function(n){var t;return!!cL(n,308)&&_7(this,(t=BB(n,308)).a)&&_7(this,t.b)&&_7(this,t.c)},MWn.Hb=function(){return _A(this.a)+_A(this.b)+_A(this.c)},vX(TYn,"TTriangle",308),wAn(221,1,{221:1},I$),vX(TYn,"Tree",221),wAn(1254,1,{},CZ),vX(SYn,"Scanline",1254);var oit=bq(SYn,PYn);wAn(1692,1,{},ltn),vX(IYn,"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=_Qn,vX(IYn,"CGroup",307),wAn(815,1,{},Xv),vX(IYn,"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=_Qn;var sit,hit,fit,lit,bit=vX(IYn,"CNode",57);wAn(814,1,{},Wv),vX(IYn,"CNode/CNodeBuilder",814),wAn(1525,1,{},dn),MWn.Oe=function(n,t){return 0},MWn.Pe=function(n,t){return 0},vX(IYn,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==_Pt?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(IYn,"LongestPathCompaction",1790),wAn(1690,1,{},yOn),MWn.e=!1;var wit,dit,git=vX(IYn,xYn,1690);wAn(1691,1,lVn,Mw),MWn.td=function(n){iun(this.a,BB(n,46))},vX(IYn,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)&&_dn(r.d.d,e.d.d+e.d.a+a)&&e.c.Fc(r)))},vX(IYn,"QuadraticConstraintCalculation",1791),wAn(522,1,{522:1},Dp),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(IYn,RYn,522),wAn(803,1,{},RG),MWn.Me=function(n){this.c=n,pIn(this,new yn)},vX(IYn,_Yn,803),wAn(1718,1,{679:1},fY),MWn.Ke=function(n){KPn(this,BB(n,464))},vX(IYn,KYn,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(IYn,FYn,1719),wAn(464,1,{464:1},OS),MWn.a=!1,vX(IYn,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(IYn,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(IYn,"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,lK);wAn(427,22,{3:1,35:1,22:1,427:1},BS);var kit,jit,Eit,Tit,Mit,Sit,Pit,Iit,Cit,Oit,Ait,$it,Lit,Nit,xit,Dit,Rit,_it=Ben(GYn,"LowLevelSortingCriterion",427,Unt,cJ,bK),Kit=bq(zYn,"ILayoutMetaDataProvider");wAn(853,1,QYn,Gh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,UYn),YYn),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Iit),(PPn(),gMt)),Bit),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),_it),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,wK);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){Krn(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 _N(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,dK);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,gK);wAn(306,212,{212:1,306:1},yJ,wtn,_Y),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},Cgn),MWn.Re=function(){return MCn(this)},MWn.Se=function(){return SCn(this)},MWn.Te=function(){KFn(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,Irt,Crt,Ort=Ben(tJn,"VerticalLabelAlignment",462,Unt,y1,pK);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,In),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,_rt=Ben(sJn,"NodeLabelLocation",159,Unt,tpn,vK);wAn(111,1,{111:1},MOn),MWn.a=!1,vX(sJn,"PortContext",111),wAn(1476,1,lVn,Cn),MWn.td=function(n){IE(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){IE(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,$K),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,Iw),MWn.td=function(n){Cv(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 Krt,Frt,Brt,Hrt,qrt,Grt=Ben(gJn,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Unt,Y2,mK);wAn(222,1,{222:1},xG),vX(gJn,"RectangleStripOverlapRemover/RectangleNode",222),wAn(1788,1,lVn,Cw),MWn.td=function(n){Imn(this.a,BB(n,222))},vX(gJn,"RectangleStripOverlapRemover/lambda$1$Type",1788),wAn(1304,1,MYn,_n),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,{},Kn),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 B_n(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 XCn((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},KS),MWn.a=!1;var zrt,Urt=Ben(EJn,TJn,323,Unt,n3,yK);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(CJn,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(CJn,"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){_W(this.a,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$1$Type",810),wAn(1767,1,lVn,NK),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,{},C$),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},xK),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(_Jn,"DCComponent",561),wAn(394,22,{3:1,35:1,22:1,394:1},_S),MWn.a=!1;var ict,rct,cct=Ben(_Jn,"DCDirection",394,Unt,Z2,kK);wAn(266,134,{3:1,266:1,94:1,134:1},EAn),vX(_Jn,"DCElement",266),wAn(395,1,{395:1},Cmn),MWn.c=0,vX(_Jn,"DCExtension",395),wAn(755,134,AJn,Kj),vX(_Jn,"DCGraph",755),wAn(481,22,{3:1,35:1,22:1,481:1},Cx);var act,uct,oct,sct,hct,fct,lct,bct,wct,dct,gct,pct,vct,mct,yct,kct,jct,Ect,Tct,Mct,Sct,Pct=Ben(KJn,FJn,481,Unt,RV,jK);wAn(854,1,QYn,Hh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(KJn,"DisCoMetaDataProvider",854),wAn(998,1,QYn,qh),MWn.Qe=function(n){BBn(n)},vX(KJn,"DisCoOptions",998),wAn(999,1,{},at),MWn.$e=function(){return new rt},MWn._e=function(n){},vX(KJn,"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 _X(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 ICn(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},CR),MWn.Ib=function(){return u5(this)},vX(cZn,"FEdge",282),wAn(231,134,{3:1,231:1,94:1,134:1},y6);var Ict,Cct,Oct,Act,$ct,Lct,Nct,xct,Dct,Rct,_ct=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 tCn(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?-KU(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 tCn(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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 Kct,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,Iat,Cat,Oat,Aat,$at=Ben(wZn,"ForceModelStrategy",424,Unt,aJ,EK);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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,RZn),""),"Stress Epsilon"),"Termination criterion for the iterative process."),lZn),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_Zn),""),"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){KBn(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,_at,Kat,Fat,Bat,Hat=Ben(HZn,"StressMajorization/Dimension",379,Unt,j1,TK);wAn(991,1,MYn,xw),MWn.ue=function(n,t){return S_(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){RCn(BB(n,37))},vX(GZn,"ElkLayered/lambda$0$Type",1230),wAn(1231,1,lVn,Dw),MWn.td=function(n){P_(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,_w),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),GC(ZAn(n,(HXn(),sgt)))===GC((ufn(),pIt))?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,MK);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=_Qn;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=_Qn,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,{},It),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,_Yn,1825);var Jat=bq(WZn,PYn);wAn(1826,1,{369:1},lY),MWn.Ke=function(n){Gxn(this,BB(n,466))},vX(XZn,KYn,1826),wAn(1827,1,MYn,Ct),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,SK);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){K9(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)&&(JCn(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)))&&GC(mMn(a,Zdt))===GC((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(_Xn(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(),sCt))){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(),ICt))){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(),SCt))){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(),oCt))){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)))&&GC(mMn(a,Zdt))===GC((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(_Xn(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,PK);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(GC(mMn(t,(HXn(),Idt)))===GC((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(_Xn(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),$_n(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,_t),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},LK),MWn.Ib=function(){return dx(this.c)+":"+OCn(this.b)},vX(ZZn,"CrossHierarchyEdge",243),wAn(763,1,MYn,Kw),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 OCn(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 KK(this,i,this.e)),this.d)){if(Lx(i,(hWn(),_lt)))for(t=BB(mMn(i,_lt),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new KK(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 KK(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},KK),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(),Kft))))},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(),Cut))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(),Cut))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,Kt),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=k_n(n.substr(r,t-r),",|;");try{for(a=0,u=(c=o).length;a<u;++a){if(2!=(i=k_n(c[a],"=")).length)throw Hp(new Ky("Expecting a list of key-value pairs."));e=RMn(i[0]),s=bSn(RMn(i[1])),m_(e,"top")?this.d=s:m_(e,"left")?this.b=s:m_(e,"bottom")?this.a=s:m_(e,"right")&&(this.c=s)}}catch(h){throw cL(h=lun(h),127)?Hp(new Ky(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,AK);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,Iut,Cut,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,CK);wAn(116,207,b1n,bm,WA,OK);var Lut,Nut,xut,Dut,Rut,_ut,Kut=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},ISn),MWn.Ib=function(){var n,t,e;return oO(((n=new Ik).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(),sCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),sCt)},vX(t1n,"LPort/lambda$2$Type",1286),wAn(1287,1,qYn,Gt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),oCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),oCt)},vX(t1n,"LPort/lambda$3$Type",1287),wAn(1288,1,qYn,zt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),SCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),SCt)},vX(t1n,"LPort/lambda$4$Type",1288),wAn(1289,1,qYn,Ut),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),ICt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),ICt)},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 KA(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,DK),MWn.td=function(n){_M(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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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){Iln(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(),Iut)},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(),GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),UPt))},vX(j1n,"EndLabelSorter/lambda$3$Type",1556),wAn(1557,1,DVn,ve),MWn.Mb=function(n){return EM(),GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),XPt))},vX(j1n,"EndLabelSorter/lambda$4$Type",1557),wAn(1503,1,n1n,me),MWn.pf=function(n,t){CHn(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){z_n(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 Cpn(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,Ie),MWn.pf=function(n,t){jBn(BB(n,37),t)},vX(j1n,"HierarchicalPortDummySizeProcessor",1513),wAn(1514,1,n1n,Ce),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 KN(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 qK(),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 qK(),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,{},RK),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,{},_e),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,Ke),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=_Qn,MWn.b=_Qn,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,Iot,Cot,Oot,Aot,$ot,Lot,Not,xot,Dot,Rot,_ot,Kot,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 Ie;case 44:return new Ce;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 Ii;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 Ky(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){L_n(BB(n,37),t)},vX(j1n,"LabelAndNodeSizeProcessor",1541),wAn(1542,1,DVn,Ve),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Iut)},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){KM(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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),zPt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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},c_n),MWn.c=0,MWn.d=null,MWn.f=0,vX(j1n,"LabelDummySwitcher/LabelDummyInfo",286),wAn(1360,1,{},Ze),MWn.Kb=function(n){return Crn(),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 Crn(),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,zK);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){$Kn(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){uKn(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,Ii),MWn.pf=function(n,t){CRn(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,{},Ci),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(),Iut)},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(),Iut)},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,_i),MWn.td=function(n){Ljn(BB(n,10))},vX(j1n,"SelfLoopPostProcessor/lambda$3$Type",1601),wAn(1602,1,{},Ki),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(),Iut)},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(),Iut)},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)),pIn(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)),pIn(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)),pIn(this,new fr),Otn(t,new er),t.c=x8(Ant,HWn,1,0,5,1);break;case 3:i=new Np,pIn(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)),pIn(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 GIn(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 zIn(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 KQ(this.a,n,t)},vX(A1n,"HorizontalGraphCompactor/lambda$1$Type",1524),wAn(1664,1,{},C7),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 GK(),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 GK(),mfn(BB(BB(n,57).g,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$1$Type",1666),wAn(1675,1,DVn,yr),MWn.Mb=function(n){return GK(),cL(BB(n,57).g,10)},vX(A1n,"LGraphToCGraphTransformer/lambda$10$Type",1675),wAn(1676,1,lVn,kr),MWn.td=function(n){_Q(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$11$Type",1676),wAn(1677,1,DVn,jr),MWn.Mb=function(n){return GK(),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 GK(),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 GK(),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 GK(),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 GK(),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,{},Ir),MWn.Kb=function(n){return GK(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$22$Type",1687),wAn(1688,1,DVn,Cr),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){PIn(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 GK(),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 GK(),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 GK(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$6$Type",1671),wAn(1673,1,lVn,Id),MWn.td=function(n){_Cn(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),W_n(BK(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,Ist,Cst=Ben(x1n,"SelfHyperLoopLabels/Alignment",411,Unt,r3,UK);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,_st=Ben(x1n,"SelfLoopType",363,Unt,x5,YK);wAn(1732,1,{},uf),vX(D1n,"PortRestorer",1732),wAn(361,22,{3:1,35:1,22:1,361:1},kP);var Kst,Fst,Bst,Hst,qst,Gst,zst,Ust,Xst,Wst=Ben(D1n,"PortRestorer/PortSideArea",361,Unt,P1,JK);wAn(1733,1,{},Wr),MWn.Kb=function(n){return KMn(),BB(n,15).Oc()},vX(D1n,"PortRestorer/lambda$0$Type",1733),wAn(1734,1,lVn,Vr),MWn.td=function(n){KMn(),BB(n,113).c=!1},vX(D1n,"PortRestorer/lambda$1$Type",1734),wAn(1743,1,DVn,Qr),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),ICt)},vX(D1n,"PortRestorer/lambda$10$Type",1743),wAn(1744,1,{},Yr),MWn.Kb=function(n){return KMn(),BB(n,113).d},vX(D1n,"PortRestorer/lambda$11$Type",1744),wAn(1745,1,lVn,Cd),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 KMn(),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 KMn(),BB(n,11).j==(kUn(),sCt)},vX(D1n,"PortRestorer/lambda$6$Type",1739),wAn(1740,1,DVn,Dr),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),oCt)},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,_r),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),SCt)},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,XK);wAn(1725,1,{},Kr),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){qIn(BB(n,11),(kUn(),sCt))},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 C_(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 I_(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 _x(e,0,UR(B$((i=n.c.d).n),i.a)),DH(e,UR(B$((r=n.d.d).n),r.a)),EKn(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 II(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(_1n,"ModelOrderNodeComparator",578),wAn(1755,1,DVn,sc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"ModelOrderNodeComparator/lambda$0$Type",1755),wAn(1756,1,{},hc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(_1n,"ModelOrderNodeComparator/lambda$1$Type",1756),wAn(1757,1,DVn,fc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"ModelOrderNodeComparator/lambda$2$Type",1757),wAn(1758,1,{},lc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(_1n,"ModelOrderNodeComparator/lambda$3$Type",1758),wAn(1759,1,DVn,bc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"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(_1n,"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(K1n,"ARDCutIndexHeuristic",801),wAn(1479,1,n1n,dc),MWn.pf=function(n,t){o_n(BB(n,37),t)},vX(K1n,"BreakingPointInserter",1479),wAn(305,1,{305:1},v3),MWn.Ib=function(){var n;return(n=new Ik).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(K1n,"BreakingPointInserter/BPInfo",305),wAn(652,1,{652:1},Hd),MWn.a=!1,MWn.b=0,MWn.c=0,vX(K1n,"BreakingPointInserter/Cut",652),wAn(1480,1,n1n,gc),MWn.pf=function(n,t){mLn(BB(n,37),t)},vX(K1n,"BreakingPointProcessor",1480),wAn(1481,1,DVn,pc),MWn.Mb=function(n){return Jnn(BB(n,10))},vX(K1n,"BreakingPointProcessor/0methodref$isEnd$Type",1481),wAn(1482,1,DVn,vc),MWn.Mb=function(n){return Znn(BB(n,10))},vX(K1n,"BreakingPointProcessor/1methodref$isStart$Type",1482),wAn(1483,1,n1n,mc),MWn.pf=function(n,t){rNn(this,BB(n,37),t)},vX(K1n,"BreakingPointRemover",1483),wAn(1484,1,lVn,yc),MWn.td=function(n){BB(n,128).k=!0},vX(K1n,"BreakingPointRemover/lambda$0$Type",1484),wAn(797,1,{},MAn),MWn.b=0,MWn.e=0,MWn.f=0,MWn.j=0,vX(K1n,"GraphStats",797),wAn(798,1,{},kc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(K1n,"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(K1n,"GraphStats/2methodref$max$Type",799),wAn(1660,1,{},Ec),MWn.Ce=function(n,t){return vB(MD(n),MD(t))},vX(K1n,"GraphStats/lambda$1$Type",1660),wAn(1661,1,{},Nd),MWn.Kb=function(n){return wpn(this.a,BB(n,29))},vX(K1n,"GraphStats/lambda$2$Type",1661),wAn(1662,1,{},xd),MWn.Kb=function(n){return VLn(this.a,BB(n,29))},vX(K1n,"GraphStats/lambda$6$Type",1662),wAn(800,1,{},Tc),MWn.Vf=function(n,t){return BB(mMn(n,(HXn(),Kpt)),15)||(SQ(),SQ(),set)},MWn.Wf=function(){return!1},vX(K1n,"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=_Qn,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=_Qn,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(K1n,"MSDCutIndexHeuristic",802),wAn(1617,1,n1n,Sc),MWn.pf=function(n,t){bBn(BB(n,37),t)},vX(K1n,"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,WK);wAn(422,22,{3:1,35:1,22:1,422:1},EP);var oht,sht,hht,fht,lht=Ben(F1n,"ConstraintCalculationStrategy",422,Unt,GY,VK);wAn(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},TP),MWn.Kf=function(){return sCn(this)},MWn.Xf=function(){return sCn(this)};var bht,wht,dht,ght,pht=Ben(F1n,"CrossingMinimizationStrategy",314,Unt,T1,QK);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,ZK);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,Iht=Ben(F1n,"CycleBreakingStrategy",335,Unt,L5,nF);wAn(419,22,{3:1,35:1,22:1,419:1},PP);var Cht,Oht,Aht,$ht,Lht=Ben(F1n,"DirectionCongruency",419,Unt,qY,tF);wAn(450,22,{3:1,35:1,22:1,450:1},IP);var Nht,xht,Dht,Rht,_ht,Kht,Fht,Bht=Ben(F1n,"EdgeConstraint",450,Unt,S1,eF);wAn(276,22,{3:1,35:1,22:1,276:1},CP);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,Ift,Cft=Ben(F1n,"GreedySwitchType",292,Unt,C1,oF);wAn(303,22,{3:1,35:1,22:1,303:1},xP);var Oft,Aft,$ft,Lft=Ben(F1n,"InLayerConstraint",303,Unt,I1,sF);wAn(420,22,{3:1,35:1,22:1,420:1},DP);var Nft,xft,Dft,Rft,_ft,Kft,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,Ilt,Clt,Olt,Alt,$lt,Llt,Nlt,xlt,Dlt,Rlt,_lt,Klt,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,Ibt,Cbt,Obt,Abt,$bt,Lbt,Nbt,xbt,Dbt,Rbt,_bt,Kbt,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,Iwt,Cwt,Owt,Awt,$wt,Lwt,Nwt,xwt,Dwt,Rwt,_wt,Kwt,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,Idt,Cdt,Odt,Adt,$dt,Ldt,Ndt,xdt,Ddt,Rdt,_dt,Kdt,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,Igt,Cgt,Ogt,Agt,$gt,Lgt,Ngt,xgt,Dgt,Rgt,_gt,Kgt,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,Ipt,Cpt,Opt,Apt,$pt,Lpt,Npt,xpt,Dpt,Rpt,_pt,Kpt,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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),Iht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,i0n),f2n),"Node Layering Strategy"),"Strategy for node layering."),bwt),gMt),ovt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,l0n),w2n),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),Ebt),gMt),pht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),Cft),nbn(hMt)))),a2(n,m0n,l0n,dbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),Cft),nbn(hMt)))),a2(n,y0n,l0n,fbt),a2(n,y0n,d2n,lbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,k0n),p2n),"Node Placement Strategy"),"Strategy for node placement."),Lwt),gMt),Avt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,P0n),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Cwt),gMt),kvt),nbn(hMt)))),a2(n,P0n,k0n,Owt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,I0n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,C0n),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(Cj(Aj(Tj(Ej(Ij(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."),Kbt),gMt),hmt),nbn(hMt)))),a2(n,O0n,y2n,Fbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_0n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K0n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,B0n),T2n),"Post Compaction Strategy"),M2n),Ylt),gMt),mft),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,H0n),T2n),"Post Compaction Constraint Calculation"),M2n),Vlt),gMt),lht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,V0n),I2n),"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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,Q0n),I2n),"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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,J0n),C2n),"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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,Z0n),C2n),"Valid Indices for Wrapping"),null),mMt),Rnt),nbn(hMt)))),a2(n,Z0n,U0n,ddt),a2(n,Z0n,U0n,gdt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,r2n),A2n),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Cbt),gMt),uht),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,{},Ic),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},_P);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},KP);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,Ivt,Cvt,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,_vt,Kvt,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,_G),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,TC),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){Cqn(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 BCn(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,Cc),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),kot)),_at,Oot),Kat,Cot)},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)),_at,Oot),Kat,Cot)},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,_d),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)),_at,Oot),Kat,Cot)},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 rKn(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(I3n,"AbstractBarycenterPortDistributor",402),wAn(1633,1,MYn,Kd),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(I3n,"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(I3n,"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(I3n,"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(I3n,"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(I3n,"ForsterConstraintResolver",816),wAn(233,1,{233:1},DY,uGn),MWn.Ib=function(){var n,t;for((t=new Ik).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),ZC(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 Imt,Cmt,Omt,Amt,$mt,Lmt=vX(I3n,"ForsterConstraintResolver/ConstraintGroup",233);wAn(1797,1,lVn,qd),MWn.td=function(n){Dgn(this.a,BB(n,10),!1)},vX(I3n,"ForsterConstraintResolver/lambda$0$Type",1797),wAn(214,1,{214:1,225:1},IGn),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(I3n,"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(),ICt):(kUn(),oCt)),bLn(this,n,t,e)},MWn.Mf=function(){this.d=x8(ANt,hQn,25,this.c,15,1),this.a=new Q_(this.d)},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c+=i.j.c.length},MWn.c=0,vX(I3n,"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(I3n,"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(I3n,"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(Cmt),(yMn(),Kat),(lWn(),Bot)),t},MWn.pf=function(n,t){PKn(this,BB(n,37),t)},MWn.e=0,vX(I3n,"LayerSweepCrossingMinimizer",507),wAn(1398,1,lVn,zd),MWn.td=function(n){wBn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),wAn(1399,1,lVn,Ud),MWn.td=function(n){Ohn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),wAn(1400,1,lVn,Xd),MWn.td=function(n){pFn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),wAn(454,22,{3:1,35:1,22:1,454:1},YP);var Nmt,xmt=Ben(I3n,"LayerSweepCrossingMinimizer/CrossMinType",454,Unt,D1,MF);wAn(1397,1,DVn,Ac),MWn.Mb=function(n){return Kcn(),0==BB(n,29).a.c.length},vX(I3n,"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(Kmt,{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(I3n,"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,_mt,Kmt=vX(I3n,"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(I3n,"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(I3n,"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(),sCt)&&++r);for(c=t+r,f=t+i,u=xwn(n,(ain(),Hvt)).Kc();u.Ob();)(a=BB(u.Pb(),11)).j==(kUn(),sCt)?(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(I3n,"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(I3n,"ModelOrderBarycenterHeuristic",660),wAn(1803,1,MYn,Wd),MWn.ue=function(n,t){return _Sn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"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(),Kat),(lWn(),Bot)),t},MWn.pf=function(n,t){mY((BB(n,37),t))},vX(I3n,"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(),sCt)&&++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(),sCt)?(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 Ky("Port type is undefined"))}return 1},vX(I3n,"NodeRelativePortDistributor",796),wAn(807,1,{},Vz,HMn),vX(I3n,"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 Q_(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(),Cut)},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(),oCt)?this.b[n]=!0:r.j==ICt&&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,{},Q_),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 yC(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$5$Type",1911),wAn(1912,1,lVn,tg),MWn.td=function(n){mC(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(C3n,"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(C3n,"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(C3n,"LinearSegmentsNodePlacer/LinearSegment",257);wAn(1408,1,E3n,KG),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(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/1methodref$compare$Type",1429),wAn(649,1,{649:1},nI);var Jmt=vX(C3n,"NetworkSimplexPlacer/EdgeRep",649);wAn(401,1,{401:1},GV),MWn.b=!1;var Zmt,nyt,tyt,eyt=vX(C3n,"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(C3n,"NetworkSimplexPlacer/Path",508),wAn(1409,1,{},_c),MWn.Kb=function(n){return BB(n,17).d.i.k},vX(C3n,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),wAn(1410,1,DVn,Kc),MWn.Mb=function(n){return BB(n,267)==(uSn(),Put)},vX(C3n,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),wAn(1411,1,{},Fc),MWn.Kb=function(n){return BB(n,17).d.i},vX(C3n,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),wAn(1412,1,DVn,ig),MWn.Mb=function(n){return HD(tdn(BB(n,10)))},vX(C3n,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),wAn(1413,1,DVn,Bc),MWn.Mb=function(n){return hq(BB(n,11))},vX(C3n,"NetworkSimplexPlacer/lambda$0$Type",1413),wAn(1414,1,lVn,tI),MWn.td=function(n){D$(this.a,this.b,BB(n,11))},vX(C3n,"NetworkSimplexPlacer/lambda$1$Type",1414),wAn(1423,1,lVn,rg),MWn.td=function(n){WIn(this.a,BB(n,17))},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$11$Type",1424),wAn(1425,1,lVn,cg),MWn.td=function(n){BDn(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$12$Type",1425),wAn(1426,1,{},qc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(C3n,"NetworkSimplexPlacer/lambda$13$Type",1426),wAn(1428,1,{},Gc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(C3n,"NetworkSimplexPlacer/lambda$15$Type",1428),wAn(1430,1,DVn,zc),MWn.Mb=function(n){return BZ(),BB(n,401).c.k==(uSn(),Iut)},vX(C3n,"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(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$2$Type",1415),wAn(1433,1,lVn,ag),MWn.td=function(n){N$(this.a,BB(n,11))},MWn.a=0,vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$21$Type",1434),wAn(1435,1,lVn,ug),MWn.td=function(n){dL(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$22$Type",1435),wAn(1436,1,DVn,Vc),MWn.Mb=function(n){return HD(n)},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$24$Type",1437),wAn(1438,1,DVn,og),MWn.Mb=function(n){return EO(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$25$Type",1438),wAn(1439,1,lVn,eI),MWn.td=function(n){MPn(this.a,this.b,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$26$Type",1439),wAn(1440,1,DVn,Yc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$27$Type",1440),wAn(1441,1,DVn,Jc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$3$Type",1416),wAn(1417,1,DVn,na),MWn.Mb=function(n){return BZ(),t2(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$4$Type",1417),wAn(1418,1,lVn,hg),MWn.td=function(n){iBn(this.a,BB(n,17))},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$6$Type",1419),wAn(1420,1,DVn,ea),MWn.Mb=function(n){return BZ(),BB(n,10).k==(uSn(),Iut)},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$8$Type",1421),wAn(1422,1,DVn,ra),MWn.Mb=function(n){return BZ(),UH(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$9$Type",1422),wAn(1404,1,E3n,If),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(C3n,"SimpleNodePlacer",1404),wAn(180,1,{180:1},q_n),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},cI);var iyt,ryt,cyt,ayt=Ben($3n,"BKAlignedLayout/HDirection",516,Unt,VY,PF);wAn(515,22,{3:1,35:1,22:1,515:1},rI);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,IF);wAn(1634,1,{},iI),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,jC),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:_Qn},MWn.cg=function(){},vX($3n,"ThresholdStrategy/NullThresholdStrategy",1763),wAn(579,1,{579:1},aI),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,Cf),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,EC),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"+A_(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},uI);var Pyt,Iyt,Cyt,Oyt,Ayt,$yt,Lyt,Nyt,xyt=Ben(N3n,"HyperEdgeSegmentDependency/DependencyType",520,Unt,WY,CF);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 O_(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 xI(l,a=f),DH(u.a,r),FKn(this,u,c,r,!1),(b=n.r)&&(r=new xI(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),FKn(this,u,c,r,!1),c=b,r=new xI(w,a=t+b.o*i),DH(u.a,r),FKn(this,u,c,r,!1)),r=new xI(g,a),DH(u.a,r),FKn(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(),SCt},MWn.gg=function(){return kUn(),sCt},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 xI(l,a=f),DH(u.a,r),FKn(this,u,c,r,!1),(b=n.r)&&(r=new xI(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),FKn(this,u,c,r,!1),c=b,r=new xI(w,a=t-b.o*i),DH(u.a,r),FKn(this,u,c,r,!1)),r=new xI(g,a),DH(u.a,r),FKn(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(),sCt},MWn.gg=function(){return kUn(),SCt},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 xI(a=f,l),DH(u.a,r),FKn(this,u,c,r,!0),(b=n.r)&&(r=new xI(a,w=Gy(MD(Dpn(b.e,0)))),DH(u.a,r),FKn(this,u,c,r,!0),c=b,r=new xI(a=t+b.o*i,w),DH(u.a,r),FKn(this,u,c,r,!0)),r=new xI(a,g),DH(u.a,r),FKn(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(),oCt},MWn.gg=function(){return kUn(),ICt},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},oI);var Dyt,Ryt,_yt,Kyt,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,sI),MWn.td=function(n){iq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$2$Type",1456),wAn(1457,1,lVn,hI),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},tIn,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 CCn(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},fI),MWn.Kf=function(){return ACn(this)},MWn.Xf=function(){return ACn(this)};var Hyt,qyt=Ben(H3n,"TreeLayoutPhases",393,Unt,j3,AF);wAn(1130,209,NJn,KR),MWn.Ze=function(n,t){var e,i,r,c,a,u;for(qy(TD(ZAn(n,(IAn(),Ikt))))||jJ(new Tw((GM(),new Dy(n)))),qan(a=new P6,n),hon(a,(qqn(),skt),n),vKn(n,a,u=new xp),WKn(n,a,u),c=a,i=new Wb(r=xKn(this.a,c));i.a<i.c.c.length;)e=BB(n0(i),135),WEn(this.b,e,mcn(t,1/r.c.length));Czn(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,_R),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},lI),MWn.Kf=function(){switch(this.g){case 0:return new Qm;case 1:return new _R;case 2:return new Oa;case 3:return new Ia;case 4:return new $a;case 5:return new La;default:throw Hp(new Ky(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,Ikt,Ckt,Okt,Akt,$kt,Lkt,Nkt,xkt,Dkt,Rkt,_kt,Kkt=Ben(G3n,S1n,327,Unt,r9,$F);wAn(1843,1,n1n,Ia),MWn.pf=function(n,t){u$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"LevelHeightProcessor",1843),wAn(1844,1,pVn,Ca),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,W3n),""),"Search Order"),"Which search order to use when computing a spanning tree."),mkt),gMt),Jkt),nbn(hMt)))),_Gn((new Sf,n))},vX(V3n,"MrTreeMetaDataProvider",851),wAn(994,1,QYn,Sf),MWn.Qe=function(n){_Gn(n)},vX(V3n,"MrTreeOptions",994),wAn(995,1,{},Na),MWn.$e=function(){return new KR},MWn._e=function(n){},vX(V3n,"MrTreeOptions/MrtreeFactory",995),wAn(480,22,{3:1,35:1,22:1,480:1},bI);var Fkt,Bkt,Hkt,qkt=Ben(V3n,"OrderWeighting",480,Unt,ZY,LF);wAn(425,22,{3:1,35:1,22:1,425:1},wI);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){fIn(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},dI),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",EIn(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 Ky("The given graph is not a tree!"));for(0==(e=Gy(MD(ZAn(n,Djt))))&&(e=fCn(n)),Ypn(n,Djt,e),i=new Wb(EIn(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,CE),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},gI),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 Ky(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),v_n(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,{},_a),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,{},Ka),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 h_(_Ot,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 xI(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 xI(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 h_(_Ot,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},pI);var ojt,sjt,hjt,fjt,ljt=Ben(a4n,"AnnulusWedgeCriteria",426,Unt,tJ,RF);wAn(380,22,{3:1,35:1,22:1,380:1},vI);var bjt,wjt,djt,gjt,pjt,vjt,mjt,yjt,kjt,jjt,Ejt,Tjt,Mjt,Sjt,Pjt,Ijt,Cjt,Ojt,Ajt,$jt,Ljt,Njt,xjt,Djt,Rjt,_jt,Kjt,Fjt,Bjt,Hjt,qjt,Gjt=Ben(a4n,FJn,380,Unt,_1,_F);wAn(852,1,QYn,yf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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},mI);var zjt,Ujt,Xjt,Wjt,Vjt=Ben(a4n,"RadialTranslationStrategy",340,Unt,E3,KF);wAn(293,22,{3:1,35:1,22:1,293:1},yI);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,IEt),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=O_n(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(),KEt)),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),_Un(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=_Qn,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},kI);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,IEt,CEt,OEt,AEt,$Et,LEt,NEt=Ben(j4n,"OptimizationGoal",381,Unt,K1,BF);wAn(856,1,QYn,Of),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,I4n),""),"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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,C4n),""),"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,C4n,A4n,null),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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},_J),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,_Et,KEt,FEt=vX(L4n,"DrawingData",220);wAn(355,22,{3:1,35:1,22:1,355:1},jI);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(),KTt)),19).a,OTn(t,"Overlap removal",1),qy(TD(ZAn(n,_Tt))),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 C$(o),e.i),0==u.a.gc())break;e.e=u}for(h2(this.b),IU(this.b,(Pbn(),HEt),(OM(),GTt)),IU(this.b,qEt,e.g),IU(this.b,GEt,(CM(),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},EI);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,_V,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,KV,zF);wAn(430,22,{3:1,35:1,22:1,430:1},TI);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},MI);var sTt,hTt,fTt,lTt,bTt,wTt,dTt,gTt,pTt,vTt,mTt,yTt,kTt,jTt,ETt,TTt,MTt,STt,PTt,ITt,CTt,OTt,ATt,$Tt,LTt,NTt,xTt,DTt,RTt,_Tt,KTt,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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,_4n),""),"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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K4n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,ITt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,X4n),V4n),"Whether to run a supplementary scanline overlap check."),null),!0),wMt),ktt),nbn(hMt)))),A_n((new Mf,n)),yHn((new Ef,n))},vX(D4n,"SporeMetaDataProvider",855),wAn(VVn,1,QYn,Mf),MWn.Qe=function(n){A_n(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},SI),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,_un(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,_un(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 CI(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,LI),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,{},INn),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,NI),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))))&&_Fn(BB(n,33))},vX(zYn,"LayoutAlgorithmResolver",1017),wAn(229,1,{686:1,229:1},UZ),MWn.Fb=function(n){return!!cL(n,229)&&m_(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 tK(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,Iu),MWn.vg=function(n){return S4(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$17$Type",886),wAn(887,1,e5n,Cu),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 _j(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 AK(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 OK(BB(n,116))},vX(zYn,"LayoutMetaDataService/lambda$7$Type",876),wAn(877,1,e5n,_u),MWn.ug=function(){return new Yu},vX(zYn,"LayoutMetaDataService/lambda$8$Type",877),wAn(878,1,i5n,Ku),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(CJn,"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)?m_(this.f,BB(n,23).f):cL(n,146)&&m_(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},AI);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},$I);var EMt,TMt,MMt,SMt=Ben(zYn,"LayoutOptionData/Type",277,Unt,Ktn,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,xI,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 Ky("The given string does not contain any numbers."));if(2!=(i=k_n(n.substr(e,t-e),",|;|\r|\n")).length)throw Hp(new Ky("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 Ky(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,_j,Ux),MWn.Pc=function(){return Vsn(this)},MWn.Jf=function(n){var t,e,i,r,c;e=k_n(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 xI(i,c)),++r),++t}catch(a){throw cL(a=lun(a),127)?Hp(new Ky("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 IMt,CMt,OMt,AMt,$Mt,LMt,NMt=vX(f1n,"KVectorChain",74);wAn(248,22,{3:1,35:1,22:1,248:1},DI);var xMt,DMt,RMt,_Mt,KMt,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){GKn(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},RI);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,ISt,CSt,OSt,ASt,$St,LSt,NSt,xSt,DSt,RSt,_St,KSt,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,IPt,CPt,OPt,APt,$Pt,LPt,NPt,xPt,DPt,RPt,_Pt,KPt,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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,w5n),""),"Layout Algorithm"),"Select a specific layout algorithm."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,d5n),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),mMt),aMt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),oIt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),SIt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),Kut),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,EZn),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oPt),gMt),aCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,p5n),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),mMt),_Nt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_2n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K2n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,Z2n),$5n),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),xSt),mMt),Kut),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,IZn),$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),GIt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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."),KSt),pMt),YCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,s3n),A2n),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pSt),gMt),nIt),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,I5n),"font"),"Font Name"),"Font name used for a label."),yMt),Qtt),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,C5n),"font"),"Font Size"),"Font size used for a label."),vMt),Att),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),FCt),nbn(fMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,CZn),D5n),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),lPt),pMt),CCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),yIt),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."))),b_n((new xf,n)),GKn((new Lf,n)),RDn((new Df,n))},vX(h5n,"CoreOptions",684),wAn(103,22,{3:1,35:1,22:1,103:1},_I);var GPt,zPt,UPt,XPt,WPt=Ben(h5n,TJn,103,Unt,I5,eB);wAn(272,22,{3:1,35:1,22:1,272:1},KI);var VPt,QPt,YPt,JPt,ZPt,nIt=Ben(h5n,"EdgeLabelPlacement",272,Unt,q1,iB);wAn(218,22,{3:1,35:1,22:1,218:1},FI);var tIt,eIt,iIt,rIt,cIt,aIt,uIt,oIt=Ben(h5n,"EdgeRouting",218,Unt,S3,rB);wAn(312,22,{3:1,35:1,22:1,312:1},BI);var sIt,hIt,fIt,lIt,bIt,wIt,dIt,gIt,pIt,vIt,mIt,yIt=Ben(h5n,"EdgeType",312,Unt,a9,cB);wAn(977,1,QYn,xf),MWn.Qe=function(n){b_n(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},HI);var kIt,jIt,EIt,TIt,MIt,SIt=Ben(h5n,"HierarchyHandling",334,Unt,H1,aB);wAn(285,22,{3:1,35:1,22:1,285:1},qI);var PIt,IIt,CIt,OIt,AIt,$It,LIt,NIt,xIt,DIt,RIt=Ben(h5n,"LabelSide",285,Unt,M3,uB);wAn(93,22,{3:1,35:1,22:1,93:1},GI);var _It,KIt,FIt,BIt,HIt,qIt,GIt=Ben(h5n,"NodeLabelPlacement",93,Unt,ken,oB);wAn(249,22,{3:1,35:1,22:1,249:1},zI);var zIt,UIt,XIt,WIt,VIt,QIt,YIt,JIt=Ben(h5n,"PortAlignment",249,Unt,C5,sB);wAn(98,22,{3:1,35:1,22:1,98:1},UI);var ZIt,nCt,tCt,eCt,iCt,rCt,cCt,aCt=Ben(h5n,"PortConstraints",98,Unt,S8,hB);wAn(273,22,{3:1,35:1,22:1,273:1},XI);var uCt,oCt,sCt,hCt,fCt,lCt,bCt,wCt,dCt,gCt,pCt,vCt,mCt,yCt,kCt,jCt,ECt,TCt,MCt,SCt,PCt,ICt,CCt=Ben(h5n,"PortLabelPlacement",273,Unt,c9,fB);wAn(61,22,{3:1,35:1,22:1,61:1},WI);var OCt,ACt,$Ct,LCt,NCt,xCt,DCt,RCt,_Ct,KCt,FCt=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},VI);var BCt,HCt,qCt,GCt,zCt,UCt,XCt,WCt,VCt,QCt,YCt=Ben(h5n,"SizeConstraint",374,Unt,T3,lB);wAn(259,22,{3:1,35:1,22:1,259:1},QI);var JCt,ZCt,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,KMt))),i=qy(TD(ZAn(n,FMt))),0===BB(ZAn(n,RMt),311).g?(u=new tK((!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),_Un(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},YI);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,Ig),MWn.td=function(n){Orn(this.a,BB(n,94))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),wAn(1369,1,DVn,JI),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,ZI),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,nC),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,tC),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,eC),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,iC),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,Cg),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 IJ(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(),gIt)),8))&&(SA(g,T.a,T.b),BB(ZAn(g,fIt),174).Hc((mdn(),DCt))&&(d=BB(ZAn(g,bIt),8)).a>0&&d.b>0&&_Un(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,gIt),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,gIt),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,gIt),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=KUn(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=KUn(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(),lIt))))||_Un(n,b+(m=BB(ZAn(n,wIt),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=k_n(n,";,;"),r=0,c=(i=a).length;r<c;++r){if(t=k_n(i[r],"\\:"),!(e=pGn(cin(),t[0])))throw Hp(new Ky("Invalid option id: "+t[0]));if(null==(u=Zqn(e,t[1])))throw Hp(new Ky("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},cC);var fOt,lOt,bOt,wOt=Ben(y3n,"LoggedGraph/Type",396,Unt,I3,gB);wAn(46,1,{20:1,46:1},rC),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(),NCt)),19))&&0!=e.a?new I4(e.a):new sbn,zy(MD(ZAn(n,ACt))),zy(MD(ZAn(n,xCt))),BB(ZAn(n,$Ct),116)),HSn(t)):HSn(t)},vX(y3n,"RandomLayoutProvider",1126),wAn(553,1,{}),MWn.qf=function(){return new xI(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 xI(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),Ien(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=I2(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 AK(n),Ypn(this.f,(sWn(),$St),t)},MWn.Ff=function(n){Ypn(this.f,(sWn(),XSt),new OK(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(){K7(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 h_(_Ot,n,5,8)),n.c));a.e!=a.i.gc();){if(Itn(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 h_(_Ot,n,4,7)),n.b));r.e!=r.i.gc();)if(Itn(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,IOt,COt,OOt,AOt,$Ot,LOt=bq(q5n,"EObject"),NOt=bq(G5n,z5n),xOt=bq(G5n,U5n),DOt=bq(G5n,X5n),ROt=bq(G5n,"ElkShape"),_Ot=bq(G5n,W5n),KOt=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=Ivn(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 TKn(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 Kqn(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){yIn(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=Kpn(c.Vk(),this,t),c.Zk(this)),(i=this.eh())&&(0!=(g_n(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((CPn(),Z$t),e,n)))throw Hp(new Ky(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 CC(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 IXn(),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)))}yIn(this,n,t)},MWn.zh=function(){return IXn(),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 Kfn(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 IXn(),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 IXn(),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){Ien(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 IXn(),vOt},MWn.Bh=function(n){xpn(this,n)},MWn.xg=function(){return!this.d&&(this.d=new h_(KOt,this,8,5)),this.d},MWn.yg=function(){return!this.e&&(this.e=new h_(KOt,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 h_(_Ot,this,4,7)),this.b;case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),this.c.i<=1));case 8:return hN(),!!nAn(this);case 9:return hN(),!!QCn(this);case 10:return hN(),!this.b&&(this.b=new h_(_Ot,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),0!=this.c.i)}return Kfn(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 h_(_Ot,this,4,7)),Ywn(this.b,n,e);case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),Kpn(this.b,n,e);case 5:return!this.c&&(this.c=new h_(_Ot,this,5,8)),Kpn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),Kpn(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 h_(_Ot,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),this.c.i<=1));case 8:return nAn(this);case 9:return QCn(this);case 10:return!this.b&&(this.b=new h_(_Ot,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),sqn(this.b),!this.b&&(this.b=new h_(_Ot,this,4,7)),void pX(this.b,BB(t,14));case 5:return!this.c&&(this.c=new h_(_Ot,this,5,8)),sqn(this.c),!this.c&&(this.c=new h_(_Ot,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 IXn(),mOt},MWn.Bh=function(n){switch(n){case 3:return void HLn(this,null);case 4:return!this.b&&(this.b=new h_(_Ot,this,4,7)),void sqn(this.b);case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(FOt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new h_(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 h_(FOt,this,9,10)),Ywn(this.g,n,e);case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),Ywn(this.e,n,e)}return BB(itn(BB(yan(this,16),26)||(IXn(),yOt),t),66).Nj().Qj(this,fgn(this),t-bX((IXn(),yOt)),n,e)},MWn.jh=function(n,t,e){switch(t){case 5:return!this.a&&(this.a=new $L(xOt,this,5)),Kpn(this.a,n,e);case 6:return QD(this,null,e);case 9:return!this.g&&(this.g=new h_(FOt,this,9,10)),Kpn(this.g,n,e);case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),Kpn(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 Cen(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 h_(FOt,this,9,10)),sqn(this.g),!this.g&&(this.g=new h_(FOt,this,9,10)),void pX(this.g,BB(t,14));case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),sqn(this.e),!this.e&&(this.e=new h_(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 IXn(),yOt},MWn.Bh=function(n){switch(n){case 1:return void Cen(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 h_(FOt,this,9,10)),void sqn(this.g);case 10:return!this.e&&(this.e=new h_(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(_At,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(_At,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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 NKn(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 Ky(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(_At,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(_At,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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 Ky(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 Ky(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 13:case 12:return null;default:throw Hp(new Ky(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(_At,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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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(_At,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 e_(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(_At,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 e_(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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 4:return jfn(this,null,e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),Kpn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new e_(GOt,this,6,7)),Kpn(this.vb,n,e);case 7:return TKn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 e_(GOt,this,6,7)),sqn(this.vb),!this.vb&&(this.vb=new e_(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(_At,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 e_(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!m_("",this.a)}return fwn(this,n)},MWn.sh=function(n,t){switch(n){case 7:return void CNn(this,BB(t,160));case 8:return void xin(this,SD(t))}zjn(this,n,t)},MWn.zh=function(){return IXn(),jOt},MWn.Bh=function(n){switch(n){case 7:return void CNn(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(KOt,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(KOt,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)),Kpn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),Kpn(this.a,n,e);case 11:return zR(this,null,e);case 12:return!this.b&&(this.b=new eU(KOt,this,12,3)),Kpn(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(KOt,this,12,3)),sqn(this.b),!this.b&&(this.b=new eU(KOt,this,12,3)),void pX(this.b,BB(t,14))}LAn(this,n,t)},MWn.zh=function(){return IXn(),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(KOt,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 IXn(),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 Kin(this,t)}yIn(this,n,t)},MWn.zh=function(){return IXn(),MOt},MWn.Bh=function(n){switch(n){case 0:return void Din(this,null);case 1:return void Kin(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,Kin(this,n),t},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):(oO(oO(oO(n=new Ik,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,{},aC),vX(G6n,"JsonImporter/lambda$0$Type",891),wAn(892,1,{},uC),vX(G6n,"JsonImporter/lambda$1$Type",892),wAn(900,1,{},$g),vX(G6n,"JsonImporter/lambda$10$Type",900),wAn(902,1,{},oC),vX(G6n,"JsonImporter/lambda$11$Type",902),wAn(903,1,{},sC),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,{},hC),vX(G6n,"JsonImporter/lambda$15$Type",904),wAn(905,1,{},fC),vX(G6n,"JsonImporter/lambda$16$Type",905),wAn(906,1,{},lC),vX(G6n,"JsonImporter/lambda$17$Type",906),wAn(907,1,{},bC),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,{},_g),vX(G6n,"JsonImporter/lambda$23$Type",913),wAn(914,1,{},Kg),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,wC),MWn.td=function(n){E9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$27$Type",918),wAn(919,1,lVn,dC),MWn.td=function(n){T9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$28$Type",919),wAn(920,1,{},gC),vX(G6n,"JsonImporter/lambda$29$Type",920),wAn(896,1,{},Hg),vX(G6n,"JsonImporter/lambda$3$Type",896),wAn(921,1,{},pC),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,SC),MWn.td=function(n){lO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$38$Type",927),wAn(928,1,lVn,PC),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){KX(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},MC);var cAt,aAt=Ben(CJn,"GraphFeature",237,Unt,_tn,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(CJn,"Property",13),wAn(818,1,MYn,ap),MWn.ue=function(n,t){return Kln(this,BB(n,94),BB(t,94))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CJn,"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 t_(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){Cfn(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 YCn(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 _En(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 _xn(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(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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(l_n(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,_xn(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,l_n(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 Cln(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,t_),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,R_),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 t_(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(GC(e[i])===GC(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 t_(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(GC(t[e])===GC(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 t_(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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,DC),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){Krn(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();)Cvn(this,BB(n.nj(),133));this.e=t}},MWn.Fb=function(n){return N_(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 CAn(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 BC(this,n)},MWn.uc=function(n){return YDn(this.a,n)},MWn.vc=function(){return C8(this.a)},MWn.Fb=function(n){return N_(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 I8(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()):GC(this.b)===GC(t.cd()))&&(null!=this.c?Nfn(this.c,t.dd()):GC(this.c)===GC(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(){_E()},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 KE()},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){Krn(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(){_E()},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 KE()},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){Krn(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 MKn(this)},MWn.f=0;var kAt,jAt,EAt,TAt=0,MAt=0,SAt=0,PAt=0,IAt=0,CAt=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,_At=bq(q5n,s9n),KAt=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 XC(n)?SJ(this,n):qC(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,Im),MWn.xc=function(n){return XC(n)?SJ(this,n):qC(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,I$t,C$t,O$t=bq(q5n,m9n),A$t=bq(q5n,"EValidator/PatternMatcher"),$$t=bq(y9n,"FeatureMap/Entry");wAn(535,1,{72:1},IC),MWn.ak=function(){return this.a},MWn.dd=function(){return this.b},vX(l6n,"BasicEObjectImpl/1",535),wAn(1027,1,k9n,CC),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},_f),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 _f),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(_At,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(_At,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(_At,this,0,3)),Kpn(this.Ab,n,e);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),B_(this.b,n,e);case 3:return QG(this,null,e);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 F_(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 B_(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 Cp(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 Cp(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(_At,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?Ckn(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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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(_At,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 Chn(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(){Ckn(this),this.Bb|=1},MWn.Yj=function(){return Ckn(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 _On(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(_At,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?Ckn(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&KQn);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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 17:return TKn(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&KQn);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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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((CPn(),Z$t),this)),Ckn(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=Ckn(this)).Bj())?0!=(1&a.i)?a==$Nt?ktt:a==ANt?Att:a==DNt?Itt:a==xNt?Ptt:a==LNt?Rtt:a==RNt?Ktt:a==NNt?Ttt:Stt:a:null,t=qLn(this),u=r.zj(),bbn(this),0!=(this.Bb&hVn)&&((c=mjn((CPn(),Z$t),e))&&c!=this||(c=Z1(B7(Z$t,this))))?this.p=new AC(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 IB(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?_$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?K$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?_$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?K$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 CB(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(_At,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(),!!NCn(this);case 7:return hN(),this.s>=1;case 8:return t?Ckn(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&KQn);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 NCn(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&KQn);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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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((CPn(),Z$t),this)),Ckn(this),this.Bb|=1},MWn.$j=function(){return NCn(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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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 Iwn(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},Kf),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(_At,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 ILn(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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(this.A,n,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),Kpn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),Kpn(this.s,n,e);case 22:return Kpn(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!=ILn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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),ILn(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));Ifn((CPn(),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 Kpn(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 Ivn(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(),Ivn(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(),Ivn(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 Ken(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(Cln(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 Kjn(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){AIn(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){Cfn(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(GC(this.g[t])===GC(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,Io),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())==Ivn(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(GC(Gz(this,this.Oi(i)))===GC(n))return!0;return a}if(this.Dk()&&!this.Ck()){if(GC(r=BB(n,56).ah(Ivn(BB(itn(jY(this.b),this.aj()),18))))===GC(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(GC(e=Gz(this,this.Oi(i)))===GC(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)&&!Ivn(BB(n,18)))},MWn.Ck=function(){var n,t,e;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!(t=Ivn(BB(n,18)))&&((e=t.t)>1||-1==e)},MWn.Dk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!Ivn(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(GC(Gz(this,this.Oi(t)))===GC(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,Ivn(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(),Ivn(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,Ivn(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(),Ivn(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(GC(t.Pb())!==GC(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),GC(n)===GC(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,Co),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,Cm),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(_At,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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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(){Ifn((CPn(),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();)NKn(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)?Iwn(this):((n=new fN(Iwn(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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(this.A,n,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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));Ifn((CPn(),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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 5:return TKn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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},_p),MWn.Sg=function(n,t,e){var i;return e=TKn(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)),Kpn(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):wIn(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):wIn(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,I0,Uen,C0,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(_At,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?Ckn(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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 10:return TKn(this,null,10,e);case 11:return!this.d&&(this.d=new NL(O$t,this,11)),Kpn(this.d,n,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),Kpn(this.c,n,e);case 14:return Kpn(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&&_vn(this.b));case 14:return!!this.b&&_vn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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(_At,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 Chn(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));Ckn(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(GC(t.Pb())!==GC(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),GC(n)===GC(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(Cln(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 _vn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EOperationImpl/2",1341),wAn(498,1,{1938:1,498:1},OC),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,e_),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 XC(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 Ikn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(_At,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?Ckn(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(_At,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Ikn(this,e):this.Cb.ih(this,-1-i,null,e)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 10:return TKn(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(_At,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?Ckn(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&KQn);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=Ivn(this))||0==(i.Bb&h6n));case 20:return hN(),0!=(this.Bb&BQn);case 21:return t?Ivn(this):this.b;case 22:return t?Con(this):_5(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&KQn);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=Ivn(this))&&0!=(t.Bb&h6n);case 20:return 0==(this.Bb&BQn);case 21:return!!this.b;case 22:return!!_5(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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)&&AIn(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(){Con(this),kV(B7((CPn(),Z$t),this)),Ckn(this),this.Bb|=1},MWn.Lj=function(){return Ivn(this)},MWn.qk=function(){var n;return!!(n=Ivn(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 _in(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 _in(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,_$t,K$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,{},AC),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 g_n(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 _y(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),GC(i)!==GC(r)||n.Vg()!=a&&null!=i){if(vkn(n,BB(i,56)))throw Hp(new Ky(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,{},IB),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:GC(c)===GC(R$t)?null:c},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&(GC(i)===GC(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:GC(c)===GC(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:GC(r)===GC(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 I0(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 C0(n,t,e,BB(i,155).a,BB(r,155).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),wAn(1337,W9n,{},_o),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,{},Ko),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 _y(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):GC(c)===GC(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):GC(r)===GC(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 _y(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()&&GC(s)===GC(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 _y(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 GC(a=t.Ch(e))===GC(R$t)&&(a=null),t.Dh(e,i),this.bj()?GC(a)!==GC(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 GC(c=t.Ch(e))===GC(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 _y(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));u=null!=(o=t.Ch(e)),this.Kj()&&GC(o)===GC(R$t)&&(o=null),a=null,this.bj()?GC(o)!==GC(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()&&GC(o)!==GC(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()&&GC(u)===GC(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,{},CB),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(_At,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(_At,this,0,3)),Kpn(this.Ab,n,e);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 K6(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 XC(n)?eY(this,n):!!AY(this.f,n)},MWn.xc=function(n){var t;return cL(t=XC(n)?SJ(this,n):qC(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$(COt[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 Ky(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 Kf;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 _p;case 19:return new Ho;default:throw Hp(new Ky(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(lKn(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(lKn(t,KVn,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(lKn(t,Q9n,32767)<<16>>16);case 50:return t;default:throw Hp(new Ky(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(KAt,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 zC(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(KNt,HWn,2110,n,0,1)},vX(l6n,"EcorePackageImpl/27",1210),wAn(1211,1,s7n,hs),MWn.wj=function(n){return UC(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(_At,{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(Itt,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(Ktt,sVn,184,n,0,1)},vX(l6n,"EcorePackageImpl/40",1223),wAn(1224,1,s7n,Ms),MWn.wj=function(n){return XC(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,Is),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,Cs),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){eIn(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=M_(n,YTn(63),i-2))>0&&(n=n.substr(0,e))}return jCn(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,Ip),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()):GC(n)===GC(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 GC(n)===GC(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,{},$C),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==I7n&&hb(this,Egn(this.d,this.b)),this.c},MWn.cl=function(){return 0},MWn.a=-2,MWn.c=I7n,vX(y9n,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),wAn(1161,1,{},K0),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,S_n(this.f,this.b)),this.d},MWn.ne=function(){return this.e==I7n&&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=I7n,MWn.g=-2,vX(y9n,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),wAn(1159,1,{},RC),MWn.b=!1,MWn.c=!1,vX(y9n,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),wAn(1162,1,{},_0),MWn.c=-2,MWn.e=I7n,MWn.f=I7n,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 H_(this,BB(n,72),t)},MWn.dj=function(n,t){return q_(this,BB(n,72),t)},MWn.ii=function(n,t){return aKn(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 G_(this,BB(n,72),t)},MWn.kj=function(n,t){return z_(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 x_n(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 T_n(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){_mn(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 _sn(this)},MWn.Sb=function(){return Ksn(this)},MWn.Pb=function(){return cvn(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(Ksn(this))return mz(this),this.g=--this.a,this.Lk()&&(n=FCn(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,_L),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,KL),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,i_),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,r_),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,c_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/ManyInverse",1176),wAn(625,546,R9n,a_),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,o_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),wAn(749,546,R9n,u_),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,h_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/ManyInverse",31),wAn(750,625,R9n,s_),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,f_),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,Cp),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){Cvn(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)),GC(e)===GC(t)&&BB(e,133).Th(c$(BB(t,133).cd())),Cvn(this.b,BB(t,133))},vX(y9n,"EcoreEMap/DelegateEObjectContainmentEList",746),wAn(1171,151,j9n,yin),vX(y9n,"EcoreEMap/Unsettable",1171),wAn(1172,746,R9n,l_),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},xC),MWn.Vc=function(n,t){Axn(this.c,this.b,n,t)},MWn.Fc=function(n){return x_n(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 HC(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 I_n(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 _ln(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);_sn(n);)cO(t,kN(cvn(n))),_sn(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(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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(GC(n.Ai())===GC(this.c)&&eln(this,null)==n.yi(null))return this.d=1,this.g=n.zi(),!0;break;case 4:if(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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 x_n(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){_mn(this.c,n)},vX(y9n,"FeatureMapUtil/FeatureFeatureMap",552),wAn(1259,1,k9n,_C),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,ILt,CLt,OLt,ALt,$Lt,LLt,NLt,xLt,DLt,RLt,_Lt,KLt,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 _f),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)),T_n(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)),T_n(this.b,n,e)}return BB(itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new _f),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 _f),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 _f),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 _f),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 _f),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 _f),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 _f),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 _f),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},Km),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 g_(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 _f),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!=g_(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 _f),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,p_(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 _f),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,p_(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 _f),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},_m),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(),KLt));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 _f),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)),T_n(this.a,n,e);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),B_(this.b,n,e);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),B_(this.c,n,e);case 5:return!this.a&&(this.a=new Ecn(this,0)),tR(n1(this.a,(Uqn(),KLt)),n,e)}return BB(itn(0==(2&this.j)?(Uqn(),xLt):(!this.k&&(this.k=new _f),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)),!HC(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),KLt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),FLt)))}return O3(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new _f),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(),KLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,KLt),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 _f),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(),KLt)));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 _f),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:_U(BB(t,155).a);case 27:return yD(BB(t,190));case 30:return Kmn((Uqn(),BB(t,15)));case 31:return Kmn(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 Ky(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 Km;case 3:return new _m;default:throw Hp(new Ky(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:KEn(t);case 9:return null==t?null:Pnn(lKn((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(lKn((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 CLn(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(),ILt),t));case 27:return Zgn(t);case 30:return qdn((Uqn(),t));case 31:return qdn(t);case 32:return null==t?null:iln(lKn((h=FBn(t,!0)).length>0&&(b1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,KVn,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(lKn((l=FBn(t,!0)).length>0&&(b1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,KVn,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(),CLt),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(lKn((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(lKn((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(lKn((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(lKn((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(lKn((e=FBn(t,!0)).length>0&&(b1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e,KVn,DWn));case 61:return null==t?null:iln(lKn(FBn(t,!0),KVn,DWn));default:throw Hp(new Ky(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},_s),MWn._j=function(){return fFn(),TNt},vX(N7n,"XMLTypePackageImpl/1",1852),wAn(1861,1,s7n,Ks),MWn.wj=function(n){return XC(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 XC(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 XC(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 UC(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 XC(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 XC(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(Itt,sVn,155,n,0,1)},vX(N7n,"XMLTypePackageImpl/18",1869),wAn(1870,1,s7n,Ws),MWn.wj=function(n){return XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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(Ktt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/45",1896),wAn(1897,1,s7n,Th),MWn.wj=function(n){return XC(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 XC(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 XC(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(Ktt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/49",sQn),wAn(1856,1,s7n,Ih),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,Ch),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 XC(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 XC(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 zC(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=DCn(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$(),K8n))));if(QXn(this),9!=this.c)throw Hp(new ak(kWn((u$(),_8n))));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 Kv),Iv(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 Kv),Iv(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 dKn(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),dKn(67)},MWn.Bl=function(){return QXn(this),dKn(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),dKn(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),dKn(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,dKn(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,INt=null,CNt=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),m_(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,_h),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(I9n,"D"),DNt=RW(C9n,"F"),RNt=RW($9n,"S"),_Nt=bq("org.eclipse.elk.core.labels","ILabelManager"),KNt=bq(B6n,"DiagnosticChain"),FNt=bq(f7n,"ResourceSet"),BNt=vX(B6n,"InvocationTargetException",null),HNt=(Dk(),f5),qNt=qNt=hEn;Zen(Qp),scn("permProps",[[[Pnt,Int],[Cnt,"gecko1_8"]],[[Pnt,Int],[Cnt,"ie10"]],[[Pnt,Int],[Cnt,"ie8"]],[[Pnt,Int],[Cnt,"ie9"]],[[Pnt,Int],[Cnt,"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)},4238:(n,t,e)=>{"use strict";e.d(t,{diagram:()=>k});var i=e(8955),r=e(4218),c=e(5269),a=e(5322),u=e(7295);e(7484),e(7967),e(7856);const o=new u;let s={};const h={};let f={};const l=(n,t,e)=>{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,a.l.info("abc88",e,t,n),i[e][t][n]},b=(n,t,e)=>{if(a.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 i="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),i},w=function(n,t,e,i){a.l.info("abc78 edges = ",n);const u=i.insert("g").attr("class","edgeLabels");let o,s,l={},w=t.db.getDirection();if(void 0!==n.defaultStyle){const t=(0,a.k)(n.defaultStyle);o=t.style,s=t.labelStyle}return n.forEach((function(t){const i="L-"+t.start+"-"+t.end;void 0===l[i]?(l[i]=0,a.l.info("abc78 new entry",i,l[i])):(l[i]++,a.l.info("abc78 new entry",i,l[i]));let d=i+"-"+l[i];a.l.info("abc78 new link id to be used is",i,d,l[i]);const g="LS-"+t.start,p="LE-"+t.end,v={style:"",labelStyle:""};switch(v.minlen=t.length||1,"arrow_open"===t.type?v.arrowhead="none":v.arrowhead="normal",v.arrowTypeStart="arrow_open",v.arrowTypeEnd="arrow_open",t.type){case"double_arrow_cross":v.arrowTypeStart="arrow_cross";case"arrow_cross":v.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":v.arrowTypeStart="arrow_point";case"arrow_point":v.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":v.arrowTypeStart="arrow_circle";case"arrow_circle":v.arrowTypeEnd="arrow_circle"}let m="",y="";switch(t.stroke){case"normal":m="fill:none;",void 0!==o&&(m=o),void 0!==s&&(y=s),v.thickness="normal",v.pattern="solid";break;case"dotted":v.thickness="normal",v.pattern="dotted",v.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v.thickness="thick",v.pattern="solid",v.style="stroke-width: 3.5px;fill:none;"}if(void 0!==t.style){const n=(0,a.k)(t.style);m=n.style,y=n.labelStyle}v.style=v.style+=m,v.labelStyle=v.labelStyle+=y,void 0!==t.interpolate?v.curve=(0,a.n)(t.interpolate,r.c_6):void 0!==n.defaultInterpolate?v.curve=(0,a.n)(n.defaultInterpolate,r.c_6):v.curve=(0,a.n)(h.curve,r.c_6),void 0===t.text?void 0!==t.style&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c"),v.labelType=t.labelType,v.label=t.text.replace(a.e.lineBreakRegex,"\n"),void 0===t.style&&(v.style=v.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),v.labelStyle=v.labelStyle.replace("color:","fill:"),v.id=d,v.classes="flowchart-link "+g+" "+p;const k=(0,c.f)(u,v),{source:j,target:E,sourceId:T,targetId:M}=((n,t)=>{let e=n.start,i=n.end;const r=e,c=i,a=f[e],u=f[i];return a&&u?("diamond"===a.type&&(e=`${e}-${b(e,"out",t)}`),"diamond"===u.type&&(i=`${i}-${b(i,"in",t)}`),{source:e,target:i,sourceId:r,targetId:c}):{source:e,target:i}})(t,w);a.l.debug("abc78 source and target",j,E),e.edges.push({id:"e"+t.start+t.end,sources:[j],targets:[E],sourceId:T,targetId:M,labelEl:k,labels:[{width:v.width,height:v.height,orgWidth:v.width,orgHeight:v.height,text:v.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:v})})),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,a,u){const o=d(t.sourceId,t.targetId,a),s=t.sections[0].startPoint,h=t.sections[0].endPoint,f=(t.sections[0].bendPoints?t.sections[0].bendPoints:[]).map((n=>[n.x+o.x,n.y+o.y])),l=[[s.x+o.x,s.y+o.y],...f,[h.x+o.x,h.y+o.y]],{x:b,y:w}=(0,c.j)(t.edgeData),g=(0,r.jvg)().x(b).y(w).curve(r.c_6),p=n.insert("path").attr("d",g(l)).attr("class","path "+e.classes).attr("fill","none"),v=n.insert("g").attr("class","edgeLabel"),m=(0,r.Ys)(v.node().appendChild(t.labelEl)),y=m.node().firstChild.getBoundingClientRect();m.attr("width",y.width),m.attr("height",y.height),v.attr("transform",`translate(${t.labels[0].x+o.x}, ${t.labels[0].y+o.y})`),function(n,t,e,i,r){let c="";switch(i&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),t.arrowTypeStart){case"arrow_cross":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-crossStart)");break;case"arrow_point":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-pointStart)");break;case"arrow_barb":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-barbStart)");break;case"arrow_circle":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-circleStart)");break;case"aggregation":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-aggregationStart)");break;case"extension":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-extensionStart)");break;case"composition":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-compositionStart)");break;case"dependency":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-dependencyStart)");break;case"lollipop":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-lollipopStart)")}switch(t.arrowTypeEnd){case"arrow_cross":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-crossEnd)");break;case"arrow_point":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-pointEnd)");break;case"arrow_barb":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-barbEnd)");break;case"arrow_circle":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-circleEnd)");break;case"aggregation":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-aggregationEnd)");break;case"extension":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-extensionEnd)");break;case"composition":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-compositionEnd)");break;case"dependency":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-dependencyEnd)");break;case"lollipop":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-lollipopEnd)")}}(p,e,i.type,i.arrowMarkerAbsolute,u)},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,i,r,c,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 i=r.insert("g").attr("class","subgraph");i.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 c=i.insert("g").attr("class","label"),o=(0,a.E)().flowchart.htmlLabels?e.labelData.width/2:0;c.attr("transform",`translate(${e.labels[0].x+n+e.x+o}, ${e.labels[0].y+t+e.y+3})`),c.node().appendChild(e.labelData.labelNode),a.l.info("Id (UGH)= ",e.type,e.labels)}else a.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,i,r,c,u+1)}))},m={getClasses:function(n,t){return a.l.info("Extracting classes"),t.db.getClasses()},draw:async function(n,t,e,i){var u;i.db.clear(),f={},s={},i.db.setGen("gen-2"),i.parser.parse(n);const h=(0,r.Ys)("body").append("div").attr("style","height:400px").attr("id","cy");let l={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(a.l.info("Drawing flowchart using v3 renderer",o),i.db.getDirection()){case"BT":l.layoutOptions["elk.direction"]="UP";break;case"TB":l.layoutOptions["elk.direction"]="DOWN";break;case"LR":l.layoutOptions["elk.direction"]="RIGHT";break;case"RL":l.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:b,flowchart:d}=(0,a.E)();let m;"sandbox"===b&&(m=(0,r.Ys)("#i"+t));const y="sandbox"===b?(0,r.Ys)(m.nodes()[0].contentDocument.body):(0,r.Ys)("body"),k="sandbox"===b?m.nodes()[0].contentDocument:document,j=y.select(`[id="${t}"]`);(0,c.a)(j,["point","circle","cross"],i.type,t);const E=i.db.getVertices();let T;const M=i.db.getSubGraphs();a.l.info("Subgraphs - ",M);for(let r=M.length-1;r>=0;r--)T=M[r],i.db.addVertex(T.id,{text:T.title,type:T.labelType},"group",void 0,T.classes,T.dir);const S=j.insert("g").attr("class","subgraphs"),P=function(n){const t={parentById:{},childrenById:{}},e=n.getSubGraphs();return a.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}(i.db);l=await async function(n,t,e,i,r,u,o){const s=e.select(`[id="${t}"]`).insert("g").attr("class","nodes"),h=Object.keys(n);return await Promise.all(h.map((async function(t){const e=n[t];let o="default";e.classes.length>0&&(o=e.classes.join(" ")),o+=" flowchart-label";const h=(0,a.k)(e.styles);let l=void 0!==e.text?e.text:e.id;const b={width:0,height:0},w=[{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 d=0,g="",p={};switch(e.type){case"round":d=5,g="rect";break;case"square":case"group":default:g="rect";break;case"diamond":g="question",p={portConstraints:"FIXED_SIDE"};break;case"hexagon":g="hexagon";break;case"odd":case"odd_right":g="rect_left_inv_arrow";break;case"lean_right":g="lean_right";break;case"lean_left":g="lean_left";break;case"trapezoid":g="trapezoid";break;case"inv_trapezoid":g="inv_trapezoid";break;case"circle":g="circle";break;case"ellipse":g="ellipse";break;case"stadium":g="stadium";break;case"subroutine":g="subroutine";break;case"cylinder":g="cylinder";break;case"doublecircle":g="doublecircle"}const v={labelStyle:h.labelStyle,shape:g,labelText:l,labelType:e.labelType,rx:d,ry:d,class:o,style:h.style,id:e.id,link:e.link,linkTarget:e.linkTarget,tooltip:r.db.getTooltip(e.id)||"",domId:r.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,a.E)().flowchart.padding};let m,y;if("group"!==v.type)y=await(0,c.e)(s,v,e.dir),m=y.node().getBBox();else{i.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:n,bbox:t}=await(0,c.l)(s,v,void 0,!0);b.width=t.width,b.wrappingWidth=(0,a.E)().flowchart.wrappingWidth,b.height=t.height,b.labelNode=n.node(),v.labelData=b}const k={id:e.id,ports:"diamond"===e.type?w:[],layoutOptions:p,labelText:l,labelData:b,domId:r.db.lookUpDomId(e.id),width:null==m?void 0:m.width,height:null==m?void 0:m.height,type:e.type,el:y,parent:u.parentById[e.id]};f[v.id]=k}))),o}(E,t,y,k,i,P,l);const I=j.insert("g").attr("class","edges edgePath"),C=i.db.getEdges();l=w(C,i,l,j);Object.keys(f).forEach((n=>{const t=f[n];t.parent||l.children.push(t),void 0!==P.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(l.children,P),a.l.info("after layout",JSON.stringify(l,null,2));const O=await o.layout(l);v(0,0,O.children,j,S,i,0),a.l.info("after layout",O),null==(u=O.edges)||u.map((n=>{g(I,n,n.edgeData,i,P,t)})),(0,a.o)({},j,d.diagramPadding,d.useMaxWidth),h.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.85;\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 .flowchart-label text {\n text-anchor: middle;\n }\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.d,renderer:m,parser:i.p,styles:y}}}]); \ No newline at end of file diff --git a/assets/js/4238.732f7e6d.js b/assets/js/4238.732f7e6d.js new file mode 100644 index 0000000..63fb8ce --- /dev/null +++ b/assets/js/4238.732f7e6d.js @@ -0,0 +1 @@ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4238],{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 I(){}function C(){}function O(){}function A(){}function $(){}function L(){}function N(){}function x(){}function D(){}function R(){}function _(){}function K(){}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 In(){}function Cn(){}function On(){}function An(){}function $n(){}function Ln(){}function Nn(){}function xn(){}function Dn(){}function Rn(){}function _n(){}function Kn(){}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 It(){}function Ct(){}function Ot(){}function At(){}function $t(){}function Lt(){}function Nt(){}function xt(){}function Dt(){}function Rt(){}function _t(){}function Kt(){}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 Ie(){}function Ce(){}function Oe(){}function Ae(){}function $e(){}function Le(){}function Ne(){}function xe(){}function De(){}function Re(){}function _e(){}function Ke(){}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 Ii(){}function Ci(){}function Oi(){}function Ai(){}function $i(){}function Li(){}function Ni(){}function xi(){}function Di(){}function Ri(){}function _i(){}function Ki(){}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 Ir(){}function Cr(){}function Or(){}function Ar(){}function $r(){}function Lr(){}function Nr(){}function xr(){}function Dr(){}function Rr(){}function _r(){}function Kr(){}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 Ic(){}function Cc(){}function Oc(){}function Ac(){}function $c(){}function Lc(){}function Nc(){}function xc(){}function Dc(){}function Rc(){}function _c(){}function Kc(){}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 Ia(){}function Ca(){}function Oa(){}function Aa(){}function $a(){}function La(){}function Na(){}function xa(){}function Da(){}function Ra(){}function _a(){}function Ka(){}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 Iu(){}function Cu(){}function Ou(){}function Au(){}function $u(){}function Lu(){}function Nu(){}function xu(){}function Du(){}function Ru(){}function _u(){}function Ku(){}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 Io(){}function Co(){}function Oo(){}function Ao(){}function $o(){}function Lo(){}function No(){}function xo(){}function Do(){}function Ro(){}function _o(){}function Ko(){}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 Is(){}function Cs(){}function Os(){}function As(){}function $s(){}function Ls(){}function Ns(){}function xs(){}function Ds(){}function Rs(){}function _s(){}function Ks(){}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 Ih(){}function Ch(){}function Oh(){}function Ah(){}function $h(){}function Lh(){}function Nh(){}function xh(){}function Dh(){}function Rh(){}function _h(){}function Kh(n){}function Fh(n){}function Bh(){iy()}function Hh(){Gsn()}function qh(){Epn()}function Gh(){Kkn()}function zh(){jSn()}function Uh(){fRn()}function Xh(){_yn()}function Wh(){rkn()}function Vh(){EM()}function Qh(){mM()}function Yh(){qK()}function Jh(){TM()}function Zh(){Crn()}function nf(){SM()}function tf(){C6()}function ef(){Pin()}function rf(){Q8()}function cf(){KZ()}function af(){zsn()}function uf(){KMn()}function of(){Iin()}function sf(){U2()}function hf(){fWn()}function ff(){Gyn()}function lf(){FZ()}function bf(){HXn()}function wf(){RZ()}function df(){Cin()}function gf(){Yun()}function pf(){GZ()}function vf(){I9()}function mf(){PM()}function yf(){_An()}function kf(){Uyn()}function jf(){Fcn()}function Ef(){MMn()}function Tf(){bRn()}function Mf(){Bvn()}function Sf(){IAn()}function Pf(){Ran()}function If(){HZ()}function Cf(){sKn()}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 _f(){uK()}function Kf(){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 Il(){this.a=[]}function Cl(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 _l(n,t){n.d=t}function Kl(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 Ib(n){this.a=n}function Cb(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 _b(n){this.a=n}function Kb(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 Iw(n){this.a=n}function Cw(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 _w(n){this.a=n}function Kw(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 Id(n){this.a=n}function Cd(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 _d(n){this.a=n}function Kd(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 Ig(n){this.a=n}function Cg(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 _g(n){this.a=n}function Kg(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 Ip(n){this.d=n}function Cp(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(){Kh(this)}function _p(){this.c=L$t}function Kp(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){qIn(t,n)}function ev(n,t,e){n.Od(e,t)}function iv(n,t){n.e=t,t.b=n}function rv(n){sK(),this.a=n}function cv(n){sK(),this.a=n}function av(n){sK(),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 Iv(n,t){WB(n.a,t)}function Cv(n,t){USn(n.c,t)}function Ov(n,t){TU(n.b,t)}function Av(n,t){Cvn(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 _v(){this.a=new xp}function Kv(){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(){Kv.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 Im(){xp.call(this)}function Cm(){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 _m(){yo.call(this)}function Km(){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,Knt=new xk}function ey(){ey=O,_nt=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){V_.call(this,n)}function hy(n){ySn.call(this,n)}function fy(n){IT.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){IL(),this.a=n}function my(n){n.b=null,n.c=0}function yy(n,t){n.e=t,Ixn(n,t)}function ky(n,t){n.a=t,aIn(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 Iy(n){return new Sl(n)}function Cy(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){Kcn(),this.a=n}function xy(n){aK(),this.a=n}function Dy(n){FG(),this.f=n}function Ry(n){FG(),this.f=n}function _y(n){dy.call(this,n)}function Ky(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){sK(),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){Ky.call(this,n)}function Sk(){Ab.call(this,"")}function Pk(){Ab.call(this,"")}function Ik(){Ab.call(this,"")}function Ck(){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 _k(n){return n.a?n.b:0}function Kk(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 Ij(n,t){return n.g=t,n}function Cj(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){KMn(),IZ(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 _j(n){nK.call(this,n)}function Kj(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=iIn()}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 IE(n){n.c?NDn(n):xDn(n)}function CE(n){this.a=0,this.b=n}function OE(){this.a=new INn(ijt)}function AE(){this.b=new INn(qyt)}function $E(){this.b=new INn(WEt)}function LE(){this.b=new INn(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 _E(){throw Hp(new pv)}function KE(){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 IT(n){this.a=BB(yX(n),15)}function CT(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 _T(n,t){return n.b.Hc(t)}function KT(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 IO}function fM(){fM=O,Iet=new CO}function lM(){lM=O,Het=new U}function bM(){bM=O,vut=new _t}function wM(){wM=O,rct=new Cx}function dM(){dM=O,tit=new hn}function gM(){gM=O,kut=new Kt}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 IM(){IM=O,XEt=new LM}function CM(){CM=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 _M(n,t,e,i){uNn(i,n,t,e)}function KM(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,IOt=new ho}function UM(){UM=O,RAt=new Pm}function XM(){XM=O,UAt=new Im}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 _h}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 IG(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){KJ.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(),V_.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 IS(n,t){this.b=n,this.a=t}function CS(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 _S(n,t){gT.call(this,n,t)}function KS(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 IP(n,t){gT.call(this,n,t)}function CP(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 _P(n,t){gT.call(this,n,t)}function KP(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 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){gT.call(this,n,t)}function cI(n,t){gT.call(this,n,t)}function aI(n,t){this.b=n,this.d=t}function uI(n,t){gT.call(this,n,t)}function oI(n,t){gT.call(this,n,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){gT.call(this,n,t)}function lI(n,t){gT.call(this,n,t)}function bI(n,t){gT.call(this,n,t)}function wI(n,t){gT.call(this,n,t)}function dI(n,t){gT.call(this,n,t)}function gI(n,t){gT.call(this,n,t)}function pI(n,t){gT.call(this,n,t)}function vI(n,t){gT.call(this,n,t)}function mI(n,t){gT.call(this,n,t)}function yI(n,t){gT.call(this,n,t)}function kI(n,t){gT.call(this,n,t)}function jI(n,t){gT.call(this,n,t)}function EI(n,t){gT.call(this,n,t)}function TI(n,t){gT.call(this,n,t)}function MI(n,t){gT.call(this,n,t)}function SI(n,t){gT.call(this,n,t)}function PI(n,t){return SN(n.c,t)}function II(n,t){return SN(t.b,n)}function CI(n,t){return-n.b.Je(t)}function OI(n,t){return SN(n.g,t)}function AI(n,t){gT.call(this,n,t)}function $I(n,t){gT.call(this,n,t)}function LI(n,t){this.a=n,this.b=t}function NI(n,t){this.a=n,this.b=t}function xI(n,t){this.a=n,this.b=t}function DI(n,t){gT.call(this,n,t)}function RI(n,t){gT.call(this,n,t)}function _I(n,t){gT.call(this,n,t)}function KI(n,t){gT.call(this,n,t)}function FI(n,t){gT.call(this,n,t)}function BI(n,t){gT.call(this,n,t)}function HI(n,t){gT.call(this,n,t)}function qI(n,t){gT.call(this,n,t)}function GI(n,t){gT.call(this,n,t)}function zI(n,t){gT.call(this,n,t)}function UI(n,t){gT.call(this,n,t)}function XI(n,t){gT.call(this,n,t)}function WI(n,t){gT.call(this,n,t)}function VI(n,t){gT.call(this,n,t)}function QI(n,t){gT.call(this,n,t)}function YI(n,t){gT.call(this,n,t)}function JI(n,t){this.a=n,this.b=t}function ZI(n,t){this.a=n,this.b=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){this.a=n,this.b=t}function cC(n,t){gT.call(this,n,t)}function aC(n,t){this.a=n,this.b=t}function uC(n,t){this.a=n,this.b=t}function oC(n,t){this.a=n,this.b=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){this.a=n,this.b=t}function lC(n,t){this.b=n,this.a=t}function bC(n,t){this.b=n,this.a=t}function wC(n,t){this.b=n,this.a=t}function dC(n,t){this.b=n,this.a=t}function gC(n,t){this.a=n,this.b=t}function pC(n,t){this.a=n,this.b=t}function vC(n,t){JLn(n.a,BB(t,56))}function mC(n,t){v7(n.a,BB(t,11))}function yC(n,t){return hH(),t!=n}function kC(){return Rk(),new ket}function jC(){qZ(),this.b=new Rv}function EC(){dxn(),this.a=new Rv}function TC(){_Z(),_G.call(this)}function MC(n,t){gT.call(this,n,t)}function SC(n,t){this.a=n,this.b=t}function PC(n,t){this.a=n,this.b=t}function IC(n,t){this.a=n,this.b=t}function CC(n,t){this.a=n,this.b=t}function OC(n,t){this.a=n,this.b=t}function AC(n,t){this.a=n,this.b=t}function $C(n,t){this.d=n,this.b=t}function LC(n,t){this.d=n,this.e=t}function NC(n,t){this.f=n,this.c=t}function xC(n,t){this.b=n,this.c=t}function DC(n,t){this.i=n,this.g=t}function RC(n,t){this.e=n,this.a=t}function _C(n,t){this.a=n,this.b=t}function KC(n,t){n.i=null,arn(n,t)}function FC(n,t){n&&VW(hAt,n,t)}function BC(n,t){return rdn(n.a,t)}function HC(n){return adn(n.c,n.b)}function qC(n){return n?n.dd():null}function GC(n){return null==n?null:n}function zC(n){return typeof n===$Wn}function UC(n){return typeof n===LWn}function XC(n){return typeof n===NWn}function WC(n,t){return n.Hd().Xb(t)}function VC(n,t){return Qcn(n.Kc(),t)}function QC(n,t){return 0==Vhn(n,t)}function YC(n,t){return Vhn(n,t)>=0}function JC(n,t){return 0!=Vhn(n,t)}function ZC(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){_jn(t,RPn(n,e))}function bO(n,t,e){_jn(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 IO(){this.b=0,this.a=!1}function CO(){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){t_.call(this,n,t)}function NO(n,t){DC.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 _O(n,t){return fx(n.a,0,t)}function KO(n,t){return n.a.a.a.cc(t)}function FO(n,t){return GC(n)===GC(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 IJ((kW(n),n))}function QO(n){return IJ((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=kC(),this.b=n}function iA(n){this.a=kC(),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 GK(),t.a+=n}function oA(n,t){return GK(),t.a+=n}function sA(n,t){return GK(),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==KPt||n==FPt}function gA(n){return n==HPt||n==_Pt}function pA(n){return n==fvt||n==hvt}function vA(n){return n!=QIt&&n!=YIt}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),Ien(n,e)}function PA(n,t,e){Ten(n,t),Oen(n,e)}function IA(n,t,e){Cen(n,t),Aen(n,e)}function CA(n,t){Dsn(n,t),xen(n,n.D)}function OA(n){NC.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 _A(n){return null!=n?nsn(n):0}function KA(n,t){return Itn(t,WJ(n))}function FA(n,t){return Itn(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(oIt)}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=IOt}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&&mC(t,n.a)}function P$(n){n.a=new $,n.c=new $}function I$(n){this.b=n,this.a=new Np}function C$(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 INn(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 _$(n,t,e){return Cdn(t,e,n.c)}function K$(n){return new xI(n.c,n.d)}function F$(n){return new xI(n.c,n.d)}function B$(n){return new xI(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<X_(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){Kx(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,CUn(n))}function IL(){IL=O,Set=new vy(null)}function CL(){(CL=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 _L(n,t,e){MH.call(this,n,t,e)}function KL(n,t,e){MH.call(this,n,t,e)}function FL(n,t,e){_L.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 Ik,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 _Pn(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 IN(n){return n.l+n.m*CQn+n.h*OQn}function CN(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 _N(n,t){return++n.b,y7(n.a,t)}function KN(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),Cvn(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 GK(),!!n&&!n.dc()}function ex(n){return new h4(3,n)}function ix(n,t){return new b_(n,n.gc(),t)}function rx(n){return ry(),Inn((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 Ix(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 Ix(n){nH.call(this,n,null,null)}function Cx(){gT.call(this,"POLYOMINO",0)}function Ox(n,t,e,i){sz.call(this,n,t,e,i)}function Ax(n,t){return KMn(),JCn(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 _x(n,t,e){n.Zc(t).Rb(e)}function Kx(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),Ien(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||zC(n)),n}function MD(n){return JH(null==n||UC(n)),n}function SD(n){return JH(null==n||XC(n)),n}function PD(n){this.q=new e.Date(j2(n))}function ID(n,t){this.c=n,pT.call(this,n,t)}function CD(n,t){this.a=n,ID.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 _D(n,t){return BB(lnn(n.b,t),149)}function KD(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 xI(n.c,n.d+n.a)}function HD(n){return BZ(),pA(BB(n,197))}function qD(){qD=O,$rt=nbn((mdn(),KCt))}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 Crn(),new c_n(t,n)}function WD(n,t){return OY(t,uJn),n.f=t,n}function VD(n,t,e){return e=TKn(n,t,3,e)}function QD(n,t,e){return e=TKn(n,t,6,e)}function YD(n,t,e){return e=TKn(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(),Cl(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 IR(n){return null==n?null:n.message}function CR(){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 _R(){this.b=new xp,this.a=new xp}function KR(){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=TKn(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(ILn(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):CTn(n,t)}function n_(n,t){return t.Hh(n.a)}function t_(n,t){Ay.call(this,e9n+n+o8n+t)}function e_(n,t,e,i){eU.call(this,n,t,e,i)}function i_(n,t,e,i){eU.call(this,n,t,e,i)}function r_(n,t,e,i){i_.call(this,n,t,e,i)}function c_(n,t,e,i){iU.call(this,n,t,e,i)}function a_(n,t,e,i){iU.call(this,n,t,e,i)}function u_(n,t,e,i){iU.call(this,n,t,e,i)}function o_(n,t,e,i){a_.call(this,n,t,e,i)}function s_(n,t,e,i){a_.call(this,n,t,e,i)}function h_(n,t,e,i){u_.call(this,n,t,e,i)}function f_(n,t,e,i){s_.call(this,n,t,e,i)}function l_(n,t,e,i){Zz.call(this,n,t,e,i)}function b_(n,t,e){this.a=n,ZN.call(this,t,e)}function w_(n,t,e){this.c=t,this.b=e,this.a=n}function d_(n,t,e){return n.d=BB(t.Kb(e),164)}function g_(n,t){return n.Aj().Nh().Kh(n,t)}function p_(n,t){return n.Aj().Nh().Ih(n,t)}function v_(n,t){return kW(n),GC(n)===GC(t)}function m_(n,t){return kW(n),GC(n)===GC(t)}function y_(n,t){return Qj(Mdn(n.a,t,!1))}function k_(n,t){return Qj(Sdn(n.a,t,!1))}function j_(n,t){return n.b.sd(new $S(n,t))}function E_(n,t){return n.b.sd(new LS(n,t))}function T_(n,t){return n.b.sd(new NS(n,t))}function M_(n,t,e){return n.lastIndexOf(t,e)}function S_(n,t,e){return Pln(n[t.b],n[e.b])}function P_(n,t){return hon(t,(HXn(),Rdt),n)}function I_(n,t){return E$(t.a.d.p,n.a.d.p)}function C_(n,t){return E$(n.a.d.p,t.a.d.p)}function O_(n,t){return Pln(n.c-n.s,t.c-t.s)}function A_(n){return n.c?E7(n.c.a,n,0):-1}function $_(n){return n<100?null:new Fj(n)}function L_(n){return n==UIt||n==WIt||n==XIt}function N_(n,t){return cL(t,15)&&QDn(n.c,t)}function x_(n,t){Qet||t&&(n.d=t)}function D_(n,t){return!!lsn(n,t)}function R_(n,t){this.c=n,GU.call(this,n,t)}function __(n){this.c=n,vO.call(this,bVn,0)}function K_(n,t){JB.call(this,n,n.length,t)}function F_(n,t,e){return BB(n.c,69).lk(t,e)}function B_(n,t,e){return BB(n.c,69).mk(t,e)}function H_(n,t,e){return oD(n,BB(t,332),e)}function q_(n,t,e){return sD(n,BB(t,332),e)}function G_(n,t,e){return CEn(n,BB(t,332),e)}function z_(n,t,e){return QTn(n,BB(t,332),e)}function U_(n,t){return null==t?null:lfn(n.b,t)}function X_(n){return UC(n)?(kW(n),n):n.ke()}function W_(n){return!isNaN(n)&&!isFinite(n)}function V_(n){sK(),this.a=(SQ(),new Ak(n))}function Q_(n){hH(),this.d=n,this.a=new Lp}function Y_(n,t,e){this.a=n,this.b=t,this.c=e}function J_(n,t,e){this.a=n,this.b=t,this.c=e}function Z_(n,t,e){this.d=n,this.b=e,this.a=t}function nK(n){P$(this),yQ(this),Frn(this,n)}function tK(n){xA(this),tH(this.c,0,n.Pc())}function eK(n){fW(n.a),z8(n.c,n.b),n.b=null}function iK(n){this.a=n,$T(),fan(Date.now())}function rK(){rK=O,iit=new r,rit=new r}function cK(){cK=O,Tet=new L,Met=new N}function aK(){aK=O,wAt=x8(Ant,HWn,1,0,5,1)}function uK(){uK=O,M$t=x8(Ant,HWn,1,0,5,1)}function oK(){oK=O,S$t=x8(Ant,HWn,1,0,5,1)}function sK(){sK=O,new rv((SQ(),SQ(),set))}function hK(n){return Z9(),Inn((n7(),Ket),n)}function fK(n){return qsn(),Inn((e8(),Zet),n)}function lK(n){return hpn(),Inn((C4(),pit),n)}function bK(n){return Rnn(),Inn((O4(),kit),n)}function wK(n){return tRn(),Inn((xan(),Fit),n)}function dK(n){return Dtn(),Inn((Z6(),Wit),n)}function gK(n){return J9(),Inn((n8(),trt),n)}function pK(n){return G7(),Inn((t8(),urt),n)}function vK(n){return dWn(),Inn((MO(),Art),n)}function mK(n){return Dan(),Inn((e7(),Krt),n)}function yK(n){return Hpn(),Inn((i7(),zrt),n)}function kK(n){return qpn(),Inn((r7(),ict),n)}function jK(n){return wM(),Inn((Q2(),act),n)}function EK(n){return _nn(),Inn((A4(),Kct),n)}function TK(n){return q7(),Inn((i8(),Lat),n)}function MK(n){return yMn(),Inn((Xnn(),qat),n)}function SK(n){return Aun(),Inn((t7(),rut),n)}function PK(n){return Bfn(),Inn((r8(),gut),n)}function IK(n,t){if(!n)throw Hp(new Ky(t))}function CK(n){return uSn(),Inn((hen(),Aut),n)}function OK(n){uG.call(this,n.d,n.c,n.a,n.b)}function AK(n){uG.call(this,n.d,n.c,n.a,n.b)}function $K(n,t,e){this.b=n,this.c=t,this.a=e}function LK(n,t,e){this.b=n,this.a=t,this.c=e}function NK(n,t,e){this.a=n,this.b=t,this.c=e}function xK(n,t,e){this.a=n,this.b=t,this.c=e}function DK(n,t,e){this.a=n,this.b=t,this.c=e}function RK(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 KK(n,t,e){this.e=t,this.b=n,this.d=e}function FK(n,t,e){return dM(),n.a.Od(t,e),t}function BK(n){var t;return(t=new jn).e=n,t}function HK(n){var t;return(t=new Zv).b=n,t}function qK(){qK=O,Uut=new Ne,Xut=new xe}function GK(){GK=O,dst=new vr,gst=new mr}function zK(n){return Cun(),Inn((a7(),ost),n)}function UK(n){return Oun(),Inn((o7(),Est),n)}function XK(n){return kDn(),Inn((Gcn(),Vst),n)}function WK(n){return $Pn(),Inn((ben(),rht),n)}function VK(n){return V8(),Inn((R4(),oht),n)}function QK(n){return Oin(),Inn((c8(),bht),n)}function YK(n){return LEn(),Inn((Hnn(),Ost),n)}function JK(n){return Irn(),Inn((o8(),Kst),n)}function ZK(n){return uin(),Inn((a8(),vht),n)}function nF(n){return Vvn(),Inn((Fnn(),Mht),n)}function tF(n){return Knn(),Inn((L4(),Cht),n)}function eF(n){return Jun(),Inn((u8(),Nht),n)}function iF(n){return gSn(),Inn((pen(),Hht),n)}function rF(n){return g7(),Inn((N4(),Uht),n)}function cF(n){return Bjn(),Inn((den(),nft),n)}function aF(n){return JMn(),Inn((wen(),oft),n)}function uF(n){return bDn(),Inn((Vun(),yft),n)}function oF(n){return _an(),Inn((h8(),Mft),n)}function sF(n){return z7(),Inn((s8(),Oft),n)}function hF(n){return z2(),Inn((_4(),Nft),n)}function fF(n){return Tbn(),Inn((qnn(),zlt),n)}function lF(n){return TTn(),Inn((gen(),rvt),n)}function bF(n){return Mhn(),Inn((f8(),svt),n)}function wF(n){return bvn(),Inn((s7(),dvt),n)}function dF(n){return ain(),Inn((w8(),Uvt),n)}function gF(n){return sNn(),Inn((qcn(),$vt),n)}function pF(n){return mon(),Inn((b8(),Rvt),n)}function vF(n){return U7(),Inn((D4(),Bvt),n)}function mF(n){return Hcn(),Inn((l8(),Yvt),n)}function yF(n){return Nvn(),Inn((Bnn(),jvt),n)}function kF(n){return A6(),Inn((x4(),tmt),n)}function jF(n){return Usn(),Inn((g8(),amt),n)}function EF(n){return dcn(),Inn((p8(),fmt),n)}function TF(n){return $un(),Inn((d8(),gmt),n)}function MF(n){return oin(),Inn((v8(),Nmt),n)}function SF(n){return Q4(),Inn((F4(),Gmt),n)}function PF(n){return gJ(),Inn((B4(),iyt),n)}function IF(n){return oZ(),Inn((H4(),uyt),n)}function CF(n){return O6(),Inn((K4(),Pyt),n)}function OF(n){return dJ(),Inn((q4(),Dyt),n)}function AF(n){return zyn(),Inn((c7(),Hyt),n)}function $F(n){return DPn(),Inn((ven(),Jyt),n)}function LF(n){return sZ(),Inn((U4(),Fkt),n)}function NF(n){return Prn(),Inn((z4(),Zkt),n)}function xF(n){return B0(),Inn((G4(),Gkt),n)}function DF(n){return Ibn(),Inn((m8(),rjt),n)}function RF(n){return D9(),Inn((X4(),ojt),n)}function _F(n){return Hsn(),Inn((y8(),bjt),n)}function KF(n){return Omn(),Inn((u7(),zjt),n)}function FF(n){return Bcn(),Inn((j8(),Qjt),n)}function BF(n){return Sbn(),Inn((k8(),eEt),n)}function HF(n){return YLn(),Inn((Unn(),BEt),n)}function qF(n){return Pbn(),Inn((E8(),UEt),n)}function GF(n){return IM(),Inn((W2(),VEt),n)}function zF(n){return CM(),Inn((X2(),JEt),n)}function UF(n){return $6(),Inn((V4(),eTt),n)}function XF(n){return $Sn(),Inn((Gnn(),sTt),n)}function WF(n){return OM(),Inn((V2(),UTt),n)}function VF(n){return Lun(),Inn((W4(),QTt),n)}function QF(n){return rpn(),Inn((znn(),bMt),n)}function YF(n){return PPn(),Inn((zcn(),EMt),n)}function JF(n){return wvn(),Inn((len(),xMt),n)}function ZF(n){return wEn(),Inn((fen(),tSt),n)}function nB(n){return lWn(),Inn((SO(),Zot),n)}function tB(n){return Srn(),Inn(($4(),zut),n)}function eB(n){return Ffn(),Inn((Wnn(),GPt),n)}function iB(n){return Rtn(),Inn((M8(),VPt),n)}function rB(n){return Mbn(),Inn((l7(),tIt),n)}function cB(n){return nMn(),Inn((yen(),sIt),n)}function aB(n){return ufn(),Inn((T8(),kIt),n)}function uB(n){return Xyn(),Inn((f7(),PIt),n)}function oB(n){return n$n(),Inn((Nan(),_It),n)}function sB(n){return cpn(),Inn((Vnn(),zIt),n)}function hB(n){return QEn(),Inn((Htn(),ZIt),n)}function fB(n){return lCn(),Inn((men(),uCt),n)}function lB(n){return mdn(),Inn((w7(),BCt),n)}function bB(n){return nKn(),Inn((Qun(),JCt),n)}function wB(n){return kUn(),Inn((Qnn(),OCt),n)}function dB(n){return Fwn(),Inn((b7(),rOt),n)}function gB(n){return Bsn(),Inn((h7(),fOt),n)}function pB(n){return hAn(),Inn((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 IB(n,t,e){f$(),mJ.call(this,n,t,e)}function CB(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$(),CB.call(this,n,t,e)}function LB(n,t,e){f$(),CB.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 _B(n,t){return yX(n),yX(t),new KH(n,t)}function KB(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){KIn(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(),ICt)?n.c:n.d}function hH(){hH=O,kUn(),Rmt=ICt,_mt=oCt}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 xI(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 Ky(t))}function mH(n,t,e){dP.call(this,n,t),this.b=e}function yH(n,t,e){LC.call(this,n,t),this.c=e}function kH(n,t,e){btn.call(this,t,e),this.d=n}function jH(n){oK(),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){LC.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 IH(n,t){return(Wfn(n)<<4|Wfn(t))&QVn}function CH(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,_in(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 _H(n){this.b=n,this.a=lz(this.b.a).Ed()}function KH(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 _y(null))}function ZH(){ZH=O,SQ(),uLt=new Gb(P7n)}function nq(){nq=O,new svn((ty(),Knt),(ey(),_nt))}function tq(){tq=O,Ctt=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 xI(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(),bCt).Hc(n.j)}function fq(n){oK(),jH.call(this,n),this.a=-1}function lq(n,t){xC.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){_zn(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 w_(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,_tt=x8(Ktt,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 Iq(n){for(yX(n);n.Ob();)n.Pb(),n.Qb()}function Cq(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 _q(n,t){return jgn(rbn(jgn(n.a).a,t.a))}function Kq(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 _q(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){Kh(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 xI(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:m_(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 IG(n,t){return cL(t,22)&&SN(n,BB(t,22))}function CG(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===C}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 xI(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 _G(){_Z(),this.f=new YT,this.e=new YT}function KG(){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=TKn(n,BB(t,49),7,e)}function QG(n,t,e){return e=TKn(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===C)}function iz(n){return!Array.isArray(n)&&n.im===C}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 Iz(n,t){return M$(n.l^t.l,n.m^t.m,n.h^t.h)}function Cz(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 Crn(),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 _z(n,t){if(n<0||n>=t)throw Hp(new Sv)}function Kz(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 lCn(),!n.Hc(eCt)&&!n.Hc(rCt)}function qz(n){return new xI(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 tK(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,e_.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){NC.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 m_(n.substr(0,t.length),t)}function hU(n,t){return XC(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){_z(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 IU(n,t,e){return ehn(n,t.g,e),orn(n.c,t),n}function CU(n){return Mzn(n,(Ffn(),KPt)),n.d=!0,n}function OU(n){return!n.j&&yb(n,F_n(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==_Qn?"-INF":""+n}function _U(n){return n==RQn?x7n:n==_Qn?"-INF":""+n}function KU(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 Cd(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),zCn(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 IX(n){return yX(n),cL(n,475)?BB(n,475):Bbn(n)}function CX(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||QKn(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 XC(t)?SJ(n,t):qC(AY(n.f,t))}function _X(n,t){return MQ(),n==PMn(t)?OMn(t):PMn(t)}function KX(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,sK(),Fnt=new SY((SQ(),SQ(),set))}function VX(){VX=O,sK(),Vnt=new vS((SQ(),SQ(),fet))}function QX(){QX=O,t$t=GCn(),gWn(),i$t&&Rkn()}function YX(n,t){return Crn(),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(K9n),K9n),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 _z(t,n.a.c.length),xq(n.a,t)}function wW(n,t){return GC(n)===GC(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):cCn(n,t)}function IW(n){return n.c.i.c==n.d.i.c}function CW(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 _W(n,t){LG(BB(t.b,65),n),Otn(t.a,new Aw(n))}function KW(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,R_.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 XC(t)?mZ(n,t,e):jIn(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 GC(n)===GC(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 IG(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((lCn(),eCt))&&PCn(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 h_(_Ot,n,5,8)),n.c}function vV(n){return!n.b&&(n.b=new h_(_Ot,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==I7n&&vb(n,Tgn(n.g,n.b)),n.e}function jV(n){return n.f==I7n&&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 IV(n,t){this.d=(kW(n),n),this.a=16449,this.c=t}function CV(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 _V(){return IM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])}function KV(){return CM(),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=IJ(e))&&++i,i}function ZV(n){var t;return cen(t=new _p,n),t}function nQ(n){var t;return DMn(t=new _p,n),t}function tQ(n,t){return _cn(t,RX(n.f,t)),null}function eQ(n){return Yin(n)||null}function iQ(n){return!n.b&&(n.b=new eU(KOt,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?Ien(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===C)),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 I,fet=new M}function PQ(){PQ=O,wet=new R,det=new R,get=new _}function IQ(){IQ=O,hit=new gn,lit=new RG,fit=new pn}function CQ(){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 QCn(n)&&qy(TD(ZAn(n,(HXn(),dgt))))}function $Q(n,t){return JCn(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 _Q(n){var t;GK(),(t=BB(n.g,10)).n.a=n.d.c+t.d.b}function KQ(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(X_(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){LC.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 Ct),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)&&m_(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(),Iut)&&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 IY(n,t){var e;return e=nE(n.gm),null==t?e:e+": "+t}function CY(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&&m_(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 _Y(n,t){NR.call(this),xtn(this),this.a=n,this.c=t}function KY(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 Knn(),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,[_vt,Kvt])}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,_kt])}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(_it,1),$Vn,427,0,[vit,mit])}function aJ(){return _nn(),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 GC(n.a)===GC((wcn(),C$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 xI(n.a,n.b)),nb(this,zB(t))}function dJ(){dJ=O,Lyt=new oI(cJn,0),Nyt=new oI(aJn,1)}function gJ(){gJ=O,tyt=new cI(aJn,0),nyt=new cI(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 $K(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?qC(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 IJ(n){return 0|Math.max(Math.min(n,DWn),-2147483648)}function CJ(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 _J(n,t,e){this.a=new Np,this.e=n,this.f=t,this.c=e}function KJ(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):qCn(n,t)}function nZ(n,t){var e;return oMn(e=new Lq(t),n),new tK(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(Kmt,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 rI(pJn,0),cyt=new rI("UP",1)}function sZ(){sZ=O,Rkt=new bI(U3n,0),_kt=new bI("FAN",1)}function hZ(){hZ=O,fAt=new xp,hAt=new xp,FC(yet,new wo)}function fZ(n){if(0!=n.p)throw Hp(new dv);return JC(n.f,0)}function lZ(n){if(0!=n.p)throw Hp(new dv);return JC(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?jIn(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 IZ(n,t){n.i&&y7(n.i.j,n),n.i=t,n.i&&WB(n.i.j,n)}function CZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new tK(e))}function OZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new tK(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 CG(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 _Z(){_Z=O,vmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function KZ(){KZ=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)&&AIn(P5(BB(n.Cb,88)),2)}function JZ(n,t){cL(n.Cb,88)&&AIn(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 xC(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 _p,n),t}function i1(n){var t;return iE(),cen(t=new _p,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&KQn)?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,Cat,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 Irn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])}function I1(){return z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Ift,Sft])}function C1(){return _an(),Pun(Gk(Cft,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 Ibn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])}function _1(){return Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])}function K1(){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(SIt,1),$Vn,334,0,[vIt,pIt,mIt])}function q1(){return Rtn(),Pun(Gk(nIt,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,N_n(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(Iz(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 tK(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):GC(n)===GC(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 I0(n,t,e,i,r,c){J5.call(this,n,t,e,i,r),c&&(this.o=-2)}function C0(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 _0(n,t){this.g=n,this.d=(R5(),eLt),this.a=eLt,this.b=t}function K0(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 wI("DFS",0),Bkt=new wI("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&&_vn(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 CZ(new tK(n),t,e))}function i2(n,t,e){yX(n),Dyn(new OZ(new tK(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),CDn(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=tKn(t=new lX,n),yzn(t),e}function s2(){var n,t;return n=new _p,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(LIn(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(CYn));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 K,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 I2(n){return new J6((lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))))}function C2(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 _2(n,t,e){var i;return i=Qdn(e),w_n(n.g,i,t),w_n(n.i,t,e),t}function K2(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((CM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])))}function W2(){W2=O,VEt=lhn((IM(),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 Cun(),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(Cst,1),$Vn,411,0,[vst,mst,yst,kst])}function c3(n){return n.j==(kUn(),SCt)&&SN(UOn(n),oCt)}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(Cz(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&&Cnn((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,_yt,Kyt,Fyt])}function E3(){return Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])}function T3(){return mdn(),Pun(Gk(YCt,1),$Vn,374,0,[_Ct,KCt,RCt,DCt])}function M3(){return Xyn(),Pun(Gk(RIt,1),$Vn,285,0,[MIt,jIt,EIt,TIt])}function S3(){return Mbn(),Pun(Gk(oIt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])}function P3(){return Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZCt,tOt,nOt])}function I3(){return Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])}function C3(n){return hZ(),hU(fAt,n)?BB(RX(fAt,n),331).ug():null}function O3(n,t,e){return t<0?qCn(n,e):BB(e,66).Nj().Sj(n,n.yh(),t)}function A3(n,t,e){var i;return i=Qdn(e),w_n(n.d,i,t),VW(n.e,t,e),t}function $3(n,t,e){var i;return i=Qdn(e),w_n(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 _3(n){if(7!=n.p)throw Hp(new dv);return dG(n.k)<<16>>16}function K3(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 Ck,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 rC(t,i))}function q3(n,t,e){return Tz(MD(qC(AY(n.f,t))),MD(qC(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(),Iut)&&t==Iut?4:n==Iut||t==Iut?8:32}function W3(n,t){return GC(t)===GC(n)?"(this Map)":null==t?zWn:Bbn(t)}function V3(n,t){return BB(null==t?qC(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;)Kx(n,e.i,e.j),e=JJ(e);return n}function J3(n,t){var e;return e=rY(HB(new I7(n,t))),Iq(new I7(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,mIn(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(Ckn(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):qC(AY(n.f,t)))}function k4(n,t){return iO(null!=t?SJ(n,t):qC(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 I4(n){yTn(),hL(this,dG(e0(kz(n,24),sYn)),dG(e0(n,sYn)))}function C4(){C4=O,pit=lhn((hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])))}function O4(){O4=O,kit=lhn((Rnn(),Pun(Gk(_it,1),$Vn,427,0,[vit,mit])))}function A4(){A4=O,Kct=lhn((_nn(),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,Cht=lhn((Knn(),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,[_vt,Kvt])))}function R4(){R4=O,oht=lhn((V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])))}function _4(){_4=O,Nft=lhn((z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])))}function K4(){K4=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,_kt])))}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;)Kx(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?jIn(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,_at,Kat,Fat,Bat])}function h5(){return kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])}function f5(n){return Dk(),function(){return K2(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 xI(RQn,RQn),this.a=new xI(_Qn,_Qn)}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)&&m_(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 I5(){return Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,KPt,_Pt,HPt])}function C5(){return cpn(),Pun(Gk(JIt,1),$Vn,249,0,[BIt,qIt,KIt,FIt,HIt])}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(Iht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])}function N5(){return YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,_Et,REt,KEt])}function x5(){return LEn(),Pun(Gk(_st,1),$Vn,363,0,[Mst,Pst,Ist,Sst,Tst])}function D5(){return Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,Klt,Flt,Blt,Hlt])}function R5(){var n,t;R5=O,iE(),t=new Ev,tLt=t,n=new Om,eLt=n}function _5(n){var t;return n.c||cL(t=n.r,88)&&(n.c=BB(t,26)),n.c}function K5(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):Cxn(n,-t)}function z5(n,t){return 0==t||0==n.e?n:t>0?Cxn(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),jIn(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 tK(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)&&W_(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(dIn(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 XC(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 I6(){I6=O,TMt=new up("org.eclipse.elk.labels.labelManager")}function C6(){C6=O,est=new iR("separateLayerConnections",(Cun(),ast))}function O6(){O6=O,Myt=new uI("REGULAR",0),Tyt=new uI("CRITICAL",1)}function A6(){A6=O,Zvt=new XP("STACKED",0),Jvt=new XP("SEQUENCED",1)}function $6(){$6=O,nTt=new TI("FIXED",0),ZEt=new TI("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 _6(n,t){return kW(t),n.c<n.d&&(n.ze(t,n.c++),!0)}function K6(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 Y_(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,(I6(),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,Cat,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,Kst=lhn((Irn(),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,Ift,Sft])))}function h8(){h8=O,Mft=lhn((_an(),Pun(Gk(Cft,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((Ibn(),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,kIt=lhn((ufn(),Pun(Gk(SIt,1),$Vn,334,0,[vIt,pIt,mIt])))}function M8(){M8=O,VPt=lhn((Rtn(),Pun(Gk(nIt,1),$Vn,272,0,[zPt,UPt,XPt])))}function S8(){return QEn(),Pun(Gk(aCt,1),$Vn,98,0,[YIt,QIt,VIt,UIt,WIt,XIt])}function P8(n,t){return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),rdn(n.o,t)}function I8(n){return!n.g&&(n.g=new oo),!n.g.d&&(n.g.d=new lp(n)),n.g.d}function C8(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 _8(n,t,e){BB(n.b,65),BB(n.b,65),BB(n.b,65),Otn(n.a,new NK(e,t,n))}function K8(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(_et,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,[IMt,AMt,$Mt,LMt,CMt,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,_ht,Rht,Fht,Kht])}function r9(){return DPn(),Pun(Gk(Kkt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])}function c9(){return lCn(),Pun(Gk(CCt,1),$Vn,273,0,[rCt,eCt,iCt,tCt,nCt,cCt])}function a9(){return nMn(),Pun(Gk(yIt,1),$Vn,312,0,[aIt,rIt,uIt,eIt,cIt,iIt])}function u9(){return uSn(),Pun(Gk($ut,1),$Vn,267,0,[Iut,Put,Mut,Cut,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();)$_n(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 I9(){I9=O,Ukt=ogn(ogn(FM(new B2,(zyn(),_yt)),(DPn(),Qyt)),Uyt)}function C9(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(!T_(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((lCn(),iCt)),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 pI("LEAF_NUMBER",0),ajt=new pI("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 _9(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 K9(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,gIn(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(CYn));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,Ket=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,Krt=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,_yt,Kyt,Fyt])))}function a7(){a7=O,ost=lhn((Cun(),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(Cst,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,PIt=lhn((Xyn(),Pun(Gk(RIt,1),$Vn,285,0,[MIt,jIt,EIt,TIt])))}function l7(){l7=O,tIt=lhn((Mbn(),Pun(Gk(oIt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])))}function b7(){b7=O,rOt=lhn((Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZCt,tOt,nOt])))}function w7(){w7=O,BCt=lhn((mdn(),Pun(Gk(YCt,1),$Vn,374,0,[_Ct,KCt,RCt,DCt])))}function d7(){d7=O,qBn(),HLt=RQn,BLt=_Qn,GLt=new Nb(RQn),qLt=new Nb(_Qn)}function g7(){g7=O,Ght=new OP(QZn,0),qht=new OP("IMPROVE_STRAIGHTNESS",1)}function p7(n,t){return hH(),WB(n,new rC(t,iln(t.e.c.length+t.g.c.length)))}function v7(n,t){return hH(),WB(n,new rC(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 CS(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 I7(n,t){var e;this.f=n,this.b=t,e=BB(RX(n.b,t),283),this.c=e?e.b:null}function C7(){GK(),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?IY(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 Ky($Rn(t,Pun(Gk(Ant,1),HWn,1,5,[e,i]))))}function _7(n,t){return cV(t,xq(n.f,0))||cV(t,xq(n.f,1))||cV(t,xq(n.f,2))}function K7(n,t){L_(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 RC(n,t)),i}function B7(n,t){var e,i;return!(i=(e=BB(t,677)).pk())&&e.tk(i=new _0(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),Cat=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),Ift=new xP("TOP",1),Sft=new xP(oJn,2)}function U7(){U7=O,_vt=new GP("INPUT_ORDER",0),Kvt=new GP("PORT_DEGREE",1)}function X7(){X7=O,btt=M$(SQn,SQn,524287),wtt=M$(0,0,IQn),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||fKn(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&&!_pn(e.k,i.k)}function nnn(n,t){Pen(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function tnn(n,t){Ien(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function enn(n,t){Sen(n,null==t||W_((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function inn(n,t){Men(n,null==t||W_((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),_8(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=Ckn(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 __(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 _kn(n,(X7(),gtt))<0?-IN(aon(n)):n.l+n.m*CQn+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 Inn(n,t){var e;return kW(t),xnn(!!(e=n[":"+t]),Pun(Gk(Ant,1),HWn,1,5,[t])),e}function Cnn(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=Cbn(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 Ky(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 _nn(){_nn=O,Dct=new XS("EADES",0),Rct=new XS("FRUCHTERMAN_REINGOLD",1)}function Knn(){Knn=O,Sht=new PP("READING_DIRECTION",0),Pht=new PP("ROTATION",1)}function Fnn(){Fnn=O,Mht=lhn((Vvn(),Pun(Gk(Iht,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(_st,1),$Vn,363,0,[Mst,Pst,Ist,Sst,Tst])))}function qnn(){qnn=O,zlt=lhn((Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,Klt,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,_Et,REt,KEt])))}function Xnn(){Xnn=O,qat=lhn((yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,_at,Kat,Fat,Bat])))}function Wnn(){Wnn=O,GPt=lhn((Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,KPt,_Pt,HPt])))}function Vnn(){Vnn=O,zIt=lhn((cpn(),Pun(Gk(JIt,1),$Vn,249,0,[BIt,qIt,KIt,FIt,HIt])))}function Qnn(){Qnn=O,OCt=lhn((kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])))}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,KVn)<0?KVn:dG(n)}function etn(n){return n<3?(lin(n,CVn),n+1):n<OVn?IJ(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==(cK(),cK(),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 Ky("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 IJ(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),JCn(n.a,i,new LK(a,t,e.f))}function Ptn(n,t){var e;if(!(e=NNn(n.Tg(),t)))throw Hp(new Ky(r6n+t+u6n));return e}function Itn(n,t){var e;for(e=n;JJ(e);)if((e=JJ(e))==t)return!0;return!1}function Ctn(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){L_(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 KI(eJn,0),UPt=new KI("HEAD",1),XPt=new KI("TAIL",2)}function _tn(){return hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])}function Ktn(){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,[Cvt,Tvt,Pvt,Mvt,Svt,Evt,Ivt,Ovt])}function Htn(){Htn=O,ZIt=lhn((QEn(),Pun(Gk(aCt,1),$Vn,98,0,[YIt,QIt,VIt,UIt,WIt,XIt])))}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 tK(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)),K$(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(_Vn),e.Math.abs(n-t)<=_Vn||n==t||isNaN(n)&&isNaN(t)}function uen(n,t){return h$(),rin(_Vn),e.Math.abs(n-t)<=_Vn||n==t||isNaN(n)&&isNaN(t)}function oen(n,t){return KMn(),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,[Iut,Put,Mut,Cut,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,[IMt,AMt,$Mt,LMt,CMt,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,_ht,Rht,Fht,Kht])))}function ven(){ven=O,Jyt=lhn((DPn(),Pun(Gk(Kkt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])))}function men(){men=O,uCt=lhn((lCn(),Pun(Gk(CCt,1),$Vn,273,0,[rCt,eCt,iCt,tCt,nCt,cCt])))}function yen(){yen=O,sIt=lhn((nMn(),Pun(Gk(yIt,1),$Vn,312,0,[aIt,rIt,uIt,eIt,cIt,iIt])))}function ken(){return n$n(),Pun(Gk(GIt,1),$Vn,93,0,[CIt,IIt,AIt,DIt,xIt,NIt,$It,LIt,OIt])}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 Ien(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 Cen(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 _en(n,t){var e,i;return tE(),i=new uo,!!t&&CNn(i,t),xin(e=i,n),e}function Ken(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,KIn(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 Ky("tolerance ("+n+") must be >= 0"));return n}function cin(){return cMt||ksn(cMt=new ORn,Pun(Gk(Kit,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 t_(t,e));return new R_(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 Chn(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 Ky(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 l_(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 nKn(),Pun(Gk(iOt,1),$Vn,259,0,[GCt,UCt,qCt,XCt,WCt,QCt,VCt,zCt,HCt])}function Tin(){return tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Cit])}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)),_at,Oot),Kat,Cot)}function Pin(){Pin=O,jmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),_at,Oot),Kat,Cot)}function Iin(){Iin=O,Mmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),_at,Oot),Kat,Cot)}function Cin(){Cin=O,Imt=WG(dq(dq(new B2,(yMn(),Kat),(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 _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 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 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 xC(t,n)):new _C(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),XC(n)?mZ(e,n,t):jIn(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 K5(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),_In(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),Ien(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 dI("P1_NODE_PLACEMENT",0),Ykt=new dI("P2_EDGE_ROUTING",1)}function Irn(){Irn=O,Rst=new kP("START",0),Dst=new kP("MIDDLE",1),xst=new kP("END",2)}function Crn(){Crn=O,tst=new iR("edgelabelcenterednessanalysis.includelabel",(hN(),ptt))}function Orn(n,t){JT(AV(new Rq(null,new w1(new Ib(n.b),1)),new JI(n,t)),new nC(n,t))}function Arn(){this.c=new CE(0),this.b=new CE(B3n),this.d=new CE(F3n),this.a=new CE(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 _rn(n,t){var e;(e=new pD).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function Krn(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 QC((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.b))}function icn(n){var t;return QC((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.c))}function rcn(n){var t;return QC((t=E2(n)).a,0)?(fM(),fM(),Iet):(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 bIn(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 Cm,C$t=Pun(Gk(FAt,1),N9n,170,0,[]),I$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,_ut=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 $Cn(new xI((e=KTn(n)).c,e.d),new xI(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,UIn(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 Icn(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 Ccn(n){switch(n.g){case 2:return kUn(),ICt;case 4:return kUn(),oCt;default:return n}}function Ocn(n){switch(n.g){case 1:return kUn(),SCt;case 3:return kUn(),sCt;default:return n}}function Acn(n){var t,e,i;return n.j==(kUn(),sCt)&&(e=SN(t=UOn(n),oCt),(i=SN(t,ICt))||i&&e)}function $cn(n){var t;return new Y_(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(),XC(n)?f6(n,SD(t)):UC(n)?Tz(n,MD(t)):zC(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&&KCn(n,t),i&&n.xk(!0)}function _cn(n,t){var e;qQ(e=BB(t,183),"x",n.i),qQ(e,"y",n.j),qQ(e,I6n,n.g),qQ(e,P6n,n.f)}function Kcn(){Kcn=O,Cmt=ogn(jO(dq(dq(new B2,(yMn(),Kat),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Fcn(){Fcn=O,Dmt=ogn(jO(dq(dq(new B2,(yMn(),Kat),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Bcn(){Bcn=O,Xjt=new yI(QZn,0),Wjt=new yI("POLAR_COORDINATE",1),Ujt=new yI("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,[Cvt,Tvt,Pvt,Mvt,Svt,Evt,Ivt,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 _v,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 IT(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*CQn:t==PQn?n.l+n.m*CQn-OQn:n}function oan(n){return qD(),n.A.Hc((mdn(),DCt))&&!n.B.Hc((nKn(),UCt))?ndn(n):null}function san(n){if(kW(n),0==n.length)throw Hp(new Mk("Zero length BigInteger"));i_n(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(U_(n.d,t),19),i=BB(U_(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),_Mn(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 Kf).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 EC;case 3:return new hyn;default:return new Cf}}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=IJ(i/CQn),M$(IJ(i-t*CQn),t,e)}function Ian(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 Can(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,_It=lhn((n$n(),Pun(Gk(GIt,1),$Vn,93,0,[CIt,IIt,AIt,DIt,xIt,NIt,$It,LIt,OIt])))}function xan(){xan=O,Fit=lhn((tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Cit])))}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 _an(){_an=O,jft=new NP("ONE_SIDED",0),Eft=new NP("TWO_SIDED",1),kft=new NP("OFF",2)}function Kan(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&&(J_n(n,t,!0),JT(new Rq(null,new w1(t,16)),new qd(n))),J_n(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)))?ZCn(t):ZCn(dG(n))+32)}function Qan(n){var t;return t=BB(mMn(n,(hWn(),Qft)),61),n.k==(uSn(),Mut)&&(t==(kUn(),ICt)||t==oCt)}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(),sCt)?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(),KPt)||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)),Kpn(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 aC(n,e)).a,i.b,r),r}function uun(n){var t;return(!n.a||0==(1&n.Bb)&&n.a.kh())&&cL(t=Ckn(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,Khn(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 Ky($Rn("value already present: %s",Pun(Gk(Ant,1),HWn,1,5,[t]))))}function kun(n,t){return!(!n||!t||n==t)&&Kdn(n.d.c,t.d.c+t.d.b)&&Kdn(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 NI(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=C,r.__elementTypeId$=e,r.__elementTypeCategory$=i,r}function Iun(n,t,i,r,c){return jDn(),e.Math.min(zGn(n,t,i,r,c),zGn(i,r,n,t,qx(new xI(c.a,c.b))))}function Cun(){Cun=O,ast=new tP(QZn,0),rst=new tP(I1n,1),cst=new tP(C1n,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 SI("MINIMUM_SPANNING_TREE",0),XTt=new SI("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 _un(n,t,e){var i;$U(n.a),Otn(e.i,new jg(n)),kgn(n,i=new I$(BB(RX(n.a,t.b),65)),t),e.f=i}function Kun(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((IXn(),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 EIt;case 2:return jIt;case 3:return TIt;default:return MIt}}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,JCt=lhn((nKn(),Pun(Gk(iOt,1),$Vn,259,0,[GCt,UCt,qCt,XCt,WCt,QCt,VCt,zCt,HCt])))}function Yun(){Yun=O,Xkt=dq(ogn(ogn(FM(dq(new B2,(zyn(),_yt),(DPn(),Qyt)),Kyt),Xyt),Wyt),Fyt,Vyt)}function Jun(){Jun=O,Aht=new IP(QZn,0),Oht=new IP("INCOMING_ONLY",1),$ht=new IP("OUTGOING_ONLY",2)}function Zun(){Zun=O,ftt={boolean:UT,number:Iy,string:Cy,object:TIn,function:TIn,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)&&JC(n<64?e0(yz(1,n),e):e0(yz(1,n-64),t),0)}function eon(n,t){return!(!n||!t||n==t)&&Cbn(n.b.c,t.b.c+t.b.b)<0&&Cbn(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(),SCt)),Son(n,t,sCt)}function con(n){var t,e;for(null==n.j&&(n.j=(PY(),Cjn(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 t_(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(),C$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 KVn;if(0==n)return 0;for(t=OVn;0==(t&n);t>>=1);return t}function jon(n){var t,e;return 32==(e=ZCn(n.h))?32==(t=ZCn(n.m))?ZCn(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 Ion(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 Con(n){var t;return(!n.c||0==(1&n.Bb)&&0!=(64&n.c.Db))&&cL(t=Ckn(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(),oCt),!0,!1),jxn(n,e,i,ICt,!1,!1),i}function xon(n,t,e){var i,r;return r=N2(t,"labels"),XAn((i=new gC(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 _on(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 Kon(n,t,e){if(yX(t),e.Ob())for(sO(t,IX(e.Pb()));e.Ob();)sO(t,n.a),sO(t,IX(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);)vC(t,aLn(n))}function Xon(n,t,e){n.g=APn(n,t,(kUn(),oCt),n.b),n.d=APn(n,e,oCt,n.b),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Won(n,t,e){n.g=APn(n,t,(kUn(),ICt),n.j),n.d=APn(n,e,ICt,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 ZI(t,e)))).sd((dM(),tit))}function Qon(n){var t;return EW(n),t=new sn,n.a.sd(t)?(IL(),new vy(kW(t.a))):(IL(),IL(),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;)_x(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 XC(n)?vvn(n):UC(n)?VO(n):zC(n)?(kW(n),n?1231:1237):iz(n)?n.Hb():AG(n)?PN(n):tY(n)}function tsn(n){return XC(n)?Qtt:UC(n)?Ptt:zC(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 Ky(N4n+(null!=n.f?n.f:""+n.g)))}function isn(n){if(0===n.g)return new iu;throw Hp(new Ky(N4n+(null!=n.f?n.f:""+n.g)))}function rsn(n,t,e){if(0===t)return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),void tan(n.o,e);yIn(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 Ig(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)&&(JCn(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),_In(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,IVn,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 Isn(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 Csn(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 Ky("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 _sn(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.pl()}}function Ksn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n.ql()}}function Fsn(n){KJ.call(this,"The given string does not match the expected format for individual spacings.",n)}function Bsn(){Bsn=O,uOt=new cC("ELK",0),oOt=new cC("JSON",1),aOt=new cC("DOT",2),sOt=new cC("SVG",3)}function Hsn(){Hsn=O,sjt=new vI(QZn,0),hjt=new vI("RADIAL_COMPACTION",1),fjt=new vI("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,dIt=new WA(15),wIt=new XA((sWn(),XSt),dIt),gIt=gPt,hIt=aSt,fIt=_St,bIt=BSt,lIt=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)|YC(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 _z(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 Ky(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),IK(!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)<K3n||e.Math.abs(i-n)<K3n||(t-n>K3n?n-i>K3n:i-n>K3n)}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[IJ(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,Ixn(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 _P("DUMMY_NODE_OVER",0),avt=new _P("DUMMY_NODE_UNDER",1),uvt=new _P("EQUAL",2)}function Shn(){Shn=O,Xat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[(Ffn(),KPt),FPt])),Wat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[HPt,_Pt]))}function Phn(n){return(kUn(),yCt).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 Ihn(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 Chn(n,t){var e,i;e=n.nk(t,null),i=null,t&&(iE(),cen(i=new _p,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 Ip(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 _hn(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 Khn(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(Imt),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),dft))&&dq(t,(yMn(),Kat),(lWn(),Bot)),t}function Whn(n,t,e){var i;i=new MOn(n,t),JCn(n.r,t.Hf(),i),e&&!Hz(n.u)&&(i.c=new yJ(n.d),Otn(t.wf(),new Iw(i)))}function Vhn(n,t){var e;return JO(n)&&JO(t)&&(e=n-t,!isNaN(e))?e:_kn(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=kIn((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,vIt=new HI("INHERIT",0),pIt=new HI("INCLUDE_CHILDREN",1),mIt=new HI("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(sK(),n.gc()){case 0:return VX(),Vnt;case 1:return new yk(n.Kc().Pb());default:return new vS(n)}}function ffn(n){switch(sK(),n.c){case 0:return VX(),Vnt;case 1:return new yk(JIn(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;GK(),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 Ik).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 Ifn(n,t){var e,i;return!(i=(e=BB(t,676)).vk())&&e.wk(i=cL(t,88)?new $C(n,BB(t,26)):new K0(n,BB(t,148))),i}function Cfn(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)?(IL(),new vy(kW(T7(n,e.a,t)))):(EW(n),IL(),IL(),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 XC(n)?m_(n,t):UC(n)?v_(n,t):zC(n)?(kW(n),GC(n)===GC(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?Itt:n==xNt?Ptt:n==LNt?Rtt:n==RNt?Ktt: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 _fn(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 Kfn(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 _I(hJn,0),FPt=new _I(aJn,1),KPt=new _I(cJn,2),_Pt=new _I(pJn,3),HPt=new _I("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 Ky(mYn+n+yYn+t))}function qfn(n,t,e){if(t<0)cCn(n,e);else{if(!e.Ij())throw Hp(new Ky(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),GC(t)===GC(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 Crt}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?_En(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(),Ctt)[t])&&(e=Ctt[t]=new xb(n)),e):new xb(n)}function rln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(Tq(),_tt)[t])&&(e=_tt[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(),sCt)||t==SCt)}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),GC(t)===GC(e))return!0;return!1}function sln(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new t_(t,i));if(n.hi()&&n.Hc(e))throw Hp(new Ky(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 _cn(t,e),null}function fln(n,t){var e;if(cL(e=NNn(n,t),322))return BB(e,34);throw Hp(new Ky(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(),Ift))}}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(),UIt)))}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 KPt;case 4:return _Pt;case 3:return HPt;default:return BPt}}function Eln(n){switch(n.g){case 1:return ICt;case 2:return sCt;case 3:return oCt;case 4:return SCt;default:return PCt}}function Tln(n){switch(n.g){case 1:return SCt;case 2:return ICt;case 3:return sCt;case 4:return oCt;default:return PCt}}function Mln(n){switch(n.g){case 1:return oCt;case 2:return SCt;case 3:return ICt;case 4:return sCt;default:return PCt}}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 Iln(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 Cln(n,t,e){var i,r;return n.ej()?(r=n.fj(),i=YCn(n,t,e),n.$i(n.Zi(7,iln(e),i,t,r)),i):YCn(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&KQn),t?n.Bb|=KQn: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 _cn(t,e),null}function Rln(n){var t,e;for(e=G$n(Utn(n)).Kc();e.Ob();)if(NKn(n,t=SD(e.Pb())))return y4((UM(),RAt),t);return null}function _ln(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 Kln(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 Ik,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:_Pt: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 Y_(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{Kon(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||eCn(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,IJ(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=IJ(e.Math.floor(i*uYn))&sYn,t=IJ(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(NKn(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 Ky(r6n+t+"' is not a valid reference"))}function gbn(n){var t;return(t=bSn(n))>34028234663852886e22?RQn:t<-34028234663852886e22?_Qn: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(),Ilt))))||++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),Klt=new BP("FIRST",1),Flt=new BP(I1n,2),Blt=new BP("LAST",3),Hlt=new BP(C1n,4)}function Mbn(){Mbn=O,ZPt=new FI(hJn,0),YPt=new FI("POLYLINE",1),QPt=new FI("ORTHOGONAL",2),JPt=new FI("SPLINES",3)}function Sbn(){Sbn=O,Zjt=new kI("ASPECT_RATIO_DRIVEN",0),nEt=new kI("MAX_SCALE_DRIVEN",1),Jjt=new kI("AREA_DRIVEN",2)}function Pbn(){Pbn=O,HEt=new EI("P1_STRUCTURE",0),qEt=new EI("P2_PROCESSING_ORDER",1),GEt=new EI("P3_EXECUTION",2)}function Ibn(){Ibn=O,ejt=new gI("OVERLAP_REMOVAL",0),njt=new gI("COMPACTION",1),tjt=new gI("GRAPH_SIZE_CALCULATION",2)}function Cbn(n,t){return h$(),rin(_Vn),e.Math.abs(n-t)<=_Vn||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 Ky(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 Ky("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 Kfn(n,t,e,i)}function _bn(n){return n.k==(uSn(),Iut)&&o5(new Rq(null,new zU(new oz(ZL(lbn(n).a.Kc(),new h)))),new qr)}function Kbn(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==IQn&&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===C?nE(tsn(n))+"@"+(nsn(n)>>>0).toString(16):n.toString()}function Hbn(n){var t;this.a=new Y_(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(),SCt)),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)||CIn(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))&&Cln(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 Il),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)),_qn(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 GC(n)===GC(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 sCt;case 1:return oCt;case 3:return SCt;case 2:return ICt;default:return PCt}}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 Ky(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 Ky(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 Ky(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 Ky(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&&Icn(n)==n.d-1&&(--e,e|=0),t-=ZCn(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(),GC(t)===GC(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((nKn(),VCt))&&(BB(n.We(fPt),174).Fc((lCn(),cCt)),BB(n.We(qSt),174).Mc(VCt))}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 Il,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),Y_n(n),t=lDn(n),JT(new Rq(null,new w1(n.d,16)),new Cw(n)),t}function Iwn(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 Cwn(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"),Cen(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 _B(n.j,(gcn(),Nut));case 2:return _B(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 Ien(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,Ipt,Cpt,$pt,Npt,kpt,Tpt,Apt]))}function _wn(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 Kwn(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 YI("SIMPLE",0),ZCt=new YI("GROUP_DEC",1),tOt=new YI("GROUP_MIXED",2),nOt=new YI("GROUP_INC",3)}function Bwn(){Bwn=O,z$t=new $o,_$t=new Lo,K$t=new No,F$t=new xo,B$t=new Do,H$t=new Ro,q$t=new _o,G$t=new Ko,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,IJ(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(),Cfn(n,i,t),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):Cfn(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((nKn(),GCt))&&(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),_gt),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,LCt=new WA(15),$Ct=new XA((sWn(),XSt),LCt),xCt=new XA(LPt,15),NCt=new XA(vPt,iln(0)),ACt=new XA(cSt,dZn)}function mdn(){mdn=O,_Ct=new VI("PORTS",0),KCt=new VI("PORT_LABELS",1),RCt=new VI("NODE_LABELS",2),DCt=new VI("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 Idn(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 Cdn(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(_Vn),(e.Math.abs(n-t)<=_Vn||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(_Vn),(e.Math.abs(n-t)<=_Vn||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(_Vn),(e.Math.abs(n-t)<=_Vn||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(K8(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=tKn(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 kCn(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 Ky("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 Ky("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 GC(t)===GC(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(uCn(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=n_(n.e,n.a))||!m_(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,_8(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&&(!!m_(n,t)||n.length==t.length&&m_(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))&&tKn(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 I$(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 Ign(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 Cgn(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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;GC(ZAn(n,(sWn(),ESt)))===GC((ufn(),vIt))&&(JJ(n)?(t=BB(ZAn(JJ(n),ESt),334),Ypn(n,ESt,t)):Ypn(n,ESt,mIt))}function xgn(n,t,e){var i,r;fMn(n.e,t,e,(kUn(),ICt)),fMn(n.i,t,e,oCt),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))&&JCn(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 _gn(n,t,e){var i;(Wet?(gwn(n),1):Vet||Jet?(lM(),1):Yet&&(lM(),0))&&((i=new iK(t)).b=e,aSn(n,i))}function Kgn(n,t){var e;e=!n.A.Hc((mdn(),KCt))||n.q==(QEn(),XIt),n.u.Hc((lCn(),eCt))?e?NUn(n,t):aUn(n,t):n.u.Hc(rCt)&&(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 xI(0,i);case 2:case 4:return new xI(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(_rt,1),$Vn,159,0,[Prt,Srt,Irt,vrt,prt,mrt,jrt,krt,yrt,Mrt,Trt,Ert,drt,wrt,grt,lrt,frt,brt,srt,ort,hrt,Crt])}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 AI("PARENTS",0),sMt=new AI("NODES",1),uMt=new AI("EDGES",2),fMt=new AI("PORTS",3),oMt=new AI("LABELS",4)}function cpn(){cpn=O,BIt=new zI("DISTRIBUTED",0),qIt=new zI("JUSTIFIED",1),KIt=new zI("BEGIN",2),FIt=new zI(eJn,3),HIt=new zI("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(),KPt;case 2:return Ffn(),FPt;case 3:return Ffn(),_Pt}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 Z_(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=uIn(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((IXn(),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;L_(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(),IPt))&&(e=BB(mMn(n,IPt),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(),Iut)&&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):qCn(n,i):e<0?qCn(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,Kkn(),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=_Qn}}function Mpn(n,t,e){var i;if(n.c)Pen(n.c,n.c.i+t),Ien(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(!m_(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 Ipn(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 Cpn(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,K$(e.b))-W8(t.b,K$(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 Ik).a+="n",n.k!=(uSn(),Iut)&&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 _i),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 h_(KOt,n,7,4)),void sqn(n.e);case 8:return!n.d&&(n.d=new h_(KOt,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 _pn(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 Kpn(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 KS(mJn,0),Frt=new KS(yJn,1),Hrt=new KS(kJn,2),qrt=new KS(jJn,3),Brt.a=!1,Frt.a=!0,Hrt.a=!1,qrt.a=!0}function qpn(){qpn=O,Zrt=new _S(mJn,0),Jrt=new _S(yJn,1),nct=new _S(kJn,2),tct=new _S(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 tK(i)),e=new Wb(i);e.a<e.c.c.length;)(t=BB(n0(e),10)).p=hIn(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 XC(n)?!!OWn[t]:n.hm?!!n.hm[t]:UC(n)?!!CWn[t]:!!zC(n)&&!!IWn[t]}function Ypn(n,t,e){return null==e?(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((IXn(),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(),Crt)&&(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)&&Kp(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 IJ(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(_sn(n))return mz(n),n.Lk()&&(t=FCn(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(GC(n.Gk(BB(n.g[e],56)))===GC(t))return e;return-1}function ovn(n,t,e){var i,r;if(t>=(r=n.gc()))throw Hp(new t_(t,r));if(n.hi()&&(i=n.Xc(e))>=0&&i!=t)throw Hp(new Ky(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(),_nt)||t==(ty(),Knt))throw Hp(new Ky("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(),Iut)}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 KP(QZn,0),bvt=new KP("PORT_POSITION",1),fvt=new KP("NODE_SIZE_WHERE_SPACE_PERMITS",2),hvt=new KP("NODE_SIZE",3)}function wvn(){wvn=O,IMt=new DI("AUTOMATIC",0),AMt=new DI(cJn,1),$Mt=new DI(aJn,2),LMt=new DI("TOP",3),CMt=new DI(oJn,4),OMt=new DI(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 IJ(t*H$n(n,31)*4.656612873077393e-10);do{i=(e=H$n(n,31))%t}while(e-i+(t-1)<0);return IJ(i)}function vvn(n){var t,e,i;return rK(),null!=(i=rit[e=":"+n])?IJ((kW(i),i)):(t=null==(i=iit[e])?JNn(n):IJ((kW(i),i)),CQ(),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],(Irn(),xst),0),iX(n,e,t[1],Rst,1)}function jvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Ist)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Irn(),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 Ky(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 Ivn(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 Cvn(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,CVn),n=Jin(16),this.b=x8(Gnt,IVn,317,n,0,1),this.c=x8(Gnt,IVn,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(),Iut),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(),SCt))).a,19).a,BB(t.b,19).a),dPn(n,BB((e=EDn(n,ICt)).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){L_(BB(mMn(t,(HXn(),ept)),98))||(W7(n,t,DSn(t,e)),W7(n,t,DSn(t,(kUn(),SCt))),W7(n,t,DSn(t,sCt)),SQ(),m$(t.j,new Kd(n)))}function Dvn(n,t,e,i){var r;for(r=BB(h6(i?n.a:n.b,t),21).Kc();r.Ob();)if(KDn(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 _vn(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(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,KTt=MTt,FTt=STt,_Tt=new XA(lSt,(hN(),!1))}function Hvn(n,t,e,i){switch(t){case 7:return!n.e&&(n.e=new h_(KOt,n,7,4)),n.e;case 8:return!n.d&&(n.d=new h_(KOt,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(),!(GC(e)===GC(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+IJn+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+IJn+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+IJn+t+FWn+e+").")):Hp(i)}}function amn(n){switch(n.g){case 1:return kUn(),ICt;case 4:return kUn(),sCt;case 3:return kUn(),oCt;case 2:return kUn(),SCt;default:return kUn(),PCt}}function umn(n,t,e){t.k==(uSn(),Iut)&&e.k==Put&&(n.d=Efn(t,(kUn(),SCt)),n.b=Efn(t,sCt)),e.k==Iut&&t.k==Put&&(n.d=Efn(e,(kUn(),sCt)),n.b=Efn(e,SCt))}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)),Ien(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 xI(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),Cyn(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)),_6(n.a,t)}function vmn(n,t,e){try{return QC(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 QC(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 QC(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),!(!(GC(r)===GC(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 Imn(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 Cmn(n,t,e,i){var r,c;this.a=t,this.c=i,$l(this,new xI(-(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 mI(QZn,0),Bjt=new mI(q1n,1),Hjt=new mI("EDGE_LENGTH_BY_POSITION",2),Fjt=new mI("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 Ky("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 Ky("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(),sCt)||e==ICt?-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 _mn(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 Kmn(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 _O(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),Kxn(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;)KBn(BB(n0(i),447));BIn(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+IJn+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+IJn+t+FWn+e+").")):Hp(i)}}function Vmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),CIt))?(t.Mc(CIt),t.Fc(AIt)):t.Hc(AIt)&&(t.Mc(AIt),t.Fc(CIt)))}function Qmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),DIt))?(t.Mc(DIt),t.Fc(NIt)):t.Hc(NIt)&&(t.Mc(NIt),t.Fc(DIt)))}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 Ci),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=I2(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=I2(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=I2(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(),sCt)),kjn(n,SCt);break;case 4:cGn(n,(kUn(),sCt)),cGn(n,SCt);break;default:FPn(n,(kUn(),sCt)),FPn(n,SCt)}}function cyn(n){switch(n.q.g){case 5:jjn(n,(kUn(),oCt)),jjn(n,ICt);break;case 4:aGn(n,(kUn(),oCt)),aGn(n,ICt);break;default:BPn(n,(kUn(),oCt)),BPn(n,ICt)}}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(),ICt)),e+=ZX(n.a,t[t.length-1],oCt),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=Ivn(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(),ICt)?-e.rf().a-Gy(MD(e.We(aPt))):t+Gy(MD(e.We(aPt))):e.Hf()==(kUn(),ICt)?-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 rC(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=_Qn,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=I2(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((IXn(),MOt),rAt,n,0)),n.o):(!n.o&&(n.o=new y9((IXn(),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((CPn(),Z$t),n),n.Bb|=1}function Myn(n,t,e,i,r,c,a,u,o,s,h,f,l,b){return bIn(n,t,i,null,r,c,a,u,o,s,l,!0,b),zln(n,h),cL(n.Cb,88)&&AIn(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=lKn(n,KVn,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=lKn(n,KVn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Iyn(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 Cyn(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 _ht;case 4:return Kht;case 5:return Fht;default:return null}}function $yn(n,t,e){var i,r;return Chn(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=Ivn(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 _yn(){_yn=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(_Zn,iln(DWn))}function Kyn(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();)JCn(n,t,kCn(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();)JCn(n,t,kCn(dnn(e,BB(r.Pb(),19).a)))}function Hyn(n){var t;return KMn(),z9(t=BB(Emn(gz(n.k),x8(FCt,YZn,61,2,0,1)),122),0,t.length,null),t[0]==(kUn(),sCt)&&t[1]==ICt&&($X(t,0,ICt),$X(t,1,sCt)),t}function qyn(n,t,e){var i,r,c;return c=sDn(n,r=XNn(n,t,e)),_9(n.b),k0(n,t,e),SQ(),m$(r,new Vd(n)),i=sDn(n,r),_9(n.b),k0(n,e,t),new rC(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 fI("P1_TREEIFICATION",0),_yt=new fI("P2_NODE_ORDERING",1),Kyt=new fI("P3_NODE_PLACEMENT",2),Fyt=new fI("P4_EDGE_ROUTING",3)}function Uyn(){Uyn=O,sWn(),xjt=gPt,_jt=LPt,Ijt=_St,Cjt=BSt,Ojt=qSt,Pjt=DSt,Ajt=USt,Njt=fPt,_An(),Mjt=wjt,Sjt=djt,$jt=pjt,Ljt=mjt,Djt=yjt,Rjt=kjt,Kjt=Ejt}function Xyn(){Xyn=O,MIt=new qI("UNKNOWN",0),jIt=new qI("ABOVE",1),EIt=new qI("BELOW",2),TIt=new qI("INLINE",3),new iR("org.eclipse.elk.labelSide",MIt)}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(GC(n.g[e])===GC(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 Ky("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),GC(mMn(n,(HXn(),Lgt)))===GC((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(),IPt))&&(e=BB(n.We(IPt),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 Ky(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=ISt,new XA(dSt,(hN(),!0)),Tat=_St,Mat=BSt,Sat=qSt,Eat=DSt,Pat=USt,Iat=fPt,_yn(),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 Ky("'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,KOt,t):(e=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(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=Ivn(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=Ivn(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(GC(t)===GC(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)),m_(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:vCn(n,(kUn(),sCt)),vCn(n,SCt);break;case 4:z$n(n,(kUn(),sCt)),z$n(n,SCt);break;default:vUn(n,(kUn(),sCt)),vUn(n,SCt)}}function ykn(n){switch(DN(),n.q.g){case 5:SOn(n,(kUn(),oCt)),SOn(n,ICt);break;case 4:Ipn(n,(kUn(),oCt)),Ipn(n,ICt);break;default:mUn(n,(kUn(),oCt)),mUn(n,ICt)}}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 I4(e))):hon(n,(Mrn(),hat),new I4(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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(IXn(),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=Ivn(BB(itn(BB(yan(n,16),26)||(gWn(),g$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ikn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,12,QAt,t):(e=Ivn(BB(itn(BB(yan(n,16),26)||(gWn(),m$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ckn(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),(Irn(),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)),KXn(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 _kn(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 Kkn(){Kkn=O,tRn(),Pit=new $O(UYn,Iit=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,IVn,317,e,0,1),n.c=x8(Gnt,IVn,317,e,0,1),n.f=e-1,n.i=0,t=n.a;t;t=t.c)YIn(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=KVn,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=KVn}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,U_n(n,n.d,0,0,Z3n,e),(c=n.b.ig(n.d))<r&&(i=e,r=c);U_n(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=$In(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),_9(n.b),SQ(),m$(c,new Qd(n)),r=NRn(n,c),fMn(n,e,t,i),_9(n.b),new rC(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(IA(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 h_(KOt,n,7,4)),Ywn(n.e,t,i);case 8:return!n.d&&(n.d=new h_(KOt,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 h_(KOt,n,7,4)),Kpn(n.e,t,i);case 8:return!n.d&&(n.d=new h_(KOt,n,8,5)),Kpn(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))&&bCn(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(Ifn(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,IVn,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 Ky("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(GC(n.g[e])===GC(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 Ijn(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 Cjn(n){var t,i,r;for(t="Sz",i="ez",r=e.Math.min(n.length,5)-1;r>=0;r--)if(m_(n[r].d,t)||m_(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 Ky("'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),Kx(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 Ki),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(),Iut)&&(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 _jn(n,t){var e;if(e=!1,XC(t)&&(e=!0,nW(n,new GX(SD(t)))),e||cL(t,236)&&(e=!0,nW(n,new Sl(X_(BB(t,236))))),!e)throw Hp(new Ly(H6n))}function Kjn(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 xI(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 Ka;case 2:return new Fa;case 3:return new _a;case 0:return null;default:throw Hp(new Ky(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 Ien(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(U_(n.d,t),19)),"Row %s not in %s",t,n.e),R7(!!(r=BB(U_(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),Ien(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length;i<r;++i)if((t=e[i])!=PCt&&!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 h_(_Ot,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((CPn(),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(tKn(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 Kr),new Fr),new Br);break;case 2:vRn(n);break;case 0:IIn(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 RI("V_TOP",0),JMt=new RI("V_CENTER",1),YMt=new RI("V_BOTTOM",2),VMt=new RI("H_LEFT",3),WMt=new RI("H_CENTER",4),QMt=new RI("H_RIGHT",5)}function dEn(n){var t;return 0!=(64&n.Db)?Iwn(n):((t=new fN(Iwn(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=GC(n.b)===GC(Ynt)?null:n.b,n.d=null==t?zWn:ez(t)?jN(EQ(t)):XC(t)?qVn:nE(tsn(t)),n.a=n.a+": "+(ez(t)?IR(EQ(t)):t+""),n.c="("+n.d+") "+n.a)}function vEn(n,t){this.e=n,QC(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 _O(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 _O(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),CV(new $g(n).a,i)}function IEn(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 CEn(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<1;n++){if(0==(e=QOn((b1(n,1),"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)),IZ(r=new ISn,t),e.g){case 1:qIn(r,Tln(hwn(i)));break;case 2:qIn(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(),Ilt))))||qy(TD(mMn(e,Ilt)))}function LEn(){LEn=O,Mst=new yP("ONE_SIDE",0),Pst=new yP("TWO_SIDES_CORNER",1),Ist=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 _En(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 KEn(n){if(n=FBn(n,!0),m_(a5n,n)||m_("1",n))return hN(),vtt;if(m_(u5n,n)||m_("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(),GC(t)===GC(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((nKn(),qCt))&&(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(HK(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&&Kyn(this,this.c-1,(kUn(),oCt)),this.c<this.a.length-1&&Kyn(this,this.c+1,(kUn(),ICt))}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 _c),new Kc))}function WEn(n,t,e){return OTn(e,"Tree layout",1),h2(n.b),IU(n.b,(zyn(),Ryt),Ryt),IU(n.b,_yt,_yt),IU(n.b,Kyt,Kyt),IU(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,YIt=new UI(hJn,0),QIt=new UI("FREE",1),VIt=new UI("FIXED_SIDE",2),UIt=new UI("FIXED_ORDER",3),WIt=new UI("FIXED_RATIO",4),XIt=new UI("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<(CPn(),nLt).length;++i)if(m_(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,Iyt),(e=BB(mMn(n,(hWn(),Zft)),21)).Hc((bDn(),vft))&&Jcn(t,$yt),e.Hc(sft)&&Jcn(t,Cyt),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,KGn(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(Ken(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],GC(t)===GC(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 Ign(CKn(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(QCn(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 Y_(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 wC(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 ITn(n,t,e,i){return t>=0&&m_(n.substr(t,3),"GMT")||t>=0&&m_(n.substr(t,3),"UTC")?(e[0]=t+3,yKn(n,e,i)):yKn(n,e,i)}function CTn(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(),sCt)?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 _Tn(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 KTn(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?IPn(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 IK(0==(e&hVn),"flatMap does not support SUBSIZED characteristic"),IK(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),(cK(),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((lCn(),tCt)),c=n.u.Hc(cCt),!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,aIt=new BI(QZn,0),rIt=new BI("DIRECTED",1),uIt=new BI("UNDIRECTED",2),eIt=new BI("ASSOCIATION",3),cIt=new BI("GENERALIZATION",4),iIt=new BI("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(),oCt)&&i.i!=(kUn(),ICt)&&(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,XC(i)&&(r=!0,AH(t,e,SD(i))),r||zC(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<(CPn(),Y$t).length;++i)if(m_(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<(CPn(),J$t).length;++i)if(m_(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(Crn(),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(KOt,n,12,3)),n.b),new tC(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 lCn(),!(Ian(OJ(EG(eCt,Pun(Gk(CCt,1),$Vn,273,0,[rCt])),n))>1||Ian(OJ(EG(tCt,Pun(Gk(CCt,1),$Vn,273,0,[nCt,cCt])),n))>1)}function dMn(n,t){cL(SJ((WM(),zAt),n),498)?mZ(zAt,n,new OC(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<COt.length;++e)try{return BM(COt[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=m_(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),_at=new VS("P2_LAYERING",1),Kat=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&&iKn((l1(0,e.c.length),BB(e.c[0],29)),n),e.c.length>1&&iKn(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(KDn(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=CTt,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)),KMt=jSt,BMt=_St,qMt=qSt,DMt=new XA(cSt,f5n),FMt=ISt,HMt=BSt,RMt=uSt,_Mt=hSt}function PMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82))}function IMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return bun(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82))}function CMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))}function OMn(n){if(1!=(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new Ky(r8n));return PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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,GC(t=e.Pb())===GC(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|=KDn(n,BB(t.Xb(e),33),BB(t.Xb(e+1),33)):i|=KDn(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&&K6(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 _Mn(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 KMn(){KMn=O,$st=Pun(Gk(FCt,1),YZn,61,0,[(kUn(),sCt),oCt,SCt]),Ast=Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt,ICt]),Lst=Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt,sCt]),Nst=Pun(Gk(FCt,1),YZn,61,0,[ICt,sCt,oCt])}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 tK(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(),oCt)),c+=ZX(n.a,r,ICt)):c=C9(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),JCn(n.a,r,new LK(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=_3n*n.b+.9*t,n.f=_3n*n.b+.9*i):(n.b=.5*(t+r),n.g=_3n*n.b+.9*r,n.f=_3n*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 _w(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(),Iut)&&(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(),Klt));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((IXn(),MOt),rAt,n,0)),B_(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 _g(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new Kg(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"),Cen(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,Iut=new JS("NORMAL",0),Put=new JS("LONG_EDGE",1),Mut=new JS("EXTERNAL_PORT",2),Cut=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||(iCn(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,(I6(),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 Il,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 Ck),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 CP("ALWAYS_UP",0),xht=new CP("ALWAYS_DOWN",1),_ht=new CP("DIRECTION_UP",2),Rht=new CP("DIRECTION_DOWN",3),Fht=new CP("SMART_UP",4),Kht=new CP("SMART_DOWN",5)}function pSn(n,t){if(n<0||t<0)throw Hp(new Ky("k and n must be positive"));if(t>n)throw Hp(new Ky("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 Ky("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,_nn(),Cct=new $O(oZn,Oct=Rct),iln(1),Ict=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 _y(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()),GC(mMn(i=BB(r.d.Xb(r.c=r.b++),70),(hWn(),vlt)))===GC(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 ISn(){gcn(),LR.call(this),this.j=(kUn(),PCt),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 CSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Ilt))))&&(e=t.c.i,(n!=(Tbn(),Klt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Flt)}function OSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Ilt))))&&(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])&&IPn(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 MI("CENTER_DISTANCE",0),rTt=new MI("CIRCLE_UNDERLAP",1),uTt=new MI("RECTANGLE_UNDERLAP",2),cTt=new MI("INVERTED_OVERLAP",3),aTt=new MI("MINIMUM_ROOT_DISTANCE",4)}function LSn(n){var t,e,i,r;if(_Dn(),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 CH((t=BB(JIn(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 _B(n.j,(gcn(),xut));case 2:return _B(n.j,(gcn(),Lut));case 3:return _B(n.j,(gcn(),Rut));case 4:return _B(n.j,(gcn(),_ut));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 _Sn(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?u_n(n,t,e):r>0&&u_n(n,e,t),r):COn(n,t,e)}function KSn(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;KSn(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 xI(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 xI((t=BB(kpn(e),469)).a,t.b));return DH(i,new xI(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),DKn((a=new hQ(n,t,e,i)).a,a.b,a.c,a.d,u)}function zSn(n,t){var e;if(GC(n)===GC(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 Ky("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 Ky(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,n.j.c.length),i=new Wb(n.j);i.a<i.c.c.length;)t=(e=BB(n0(i),113)).d.j,JCn(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(),Iut)||r==Tut),e.e=(i=t.d.i.k)==Iut||i==Tut,e.b=t.c.j==(kUn(),ICt),e.c=t.d.j==oCt}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 rC(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?dIn(n,e,"start index"):t<0||t>e?dIn(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(qC(AY(n.f,c)),19).a),qy(TD(mMn(i=BB(xq(t.g,0),17),Ilt)))||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 Y_(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 Q_(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 Y_(t=BB(Vj(FCt),9),BB(SR(t,t.length),9),0),this.d=x8(ANt,hQn,25,(kUn(),Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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 Ky(o6n+t+s6n));if(!i.Ij())throw Hp(new Ky(r6n+i.ne()+c6n));(r=n.Yg(i))>=0?n.Bh(r):cCn(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 $I(hJn,0),wMt=new $I("BOOLEAN",1),vMt=new $I("INT",2),yMt=new $I("STRING",3),dMt=new $I("DOUBLE",4),gMt=new $I("ENUM",5),pMt=new $I("ENUMSET",6),mMt=new $I("OBJECT",7)}function IPn(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 CPn(){CPn=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,_9n,"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)&&(Kx(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(qC(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(),sCt;case 3:case 4:case 5:return kUn(),SCt;case 6:case 7:case 8:return kUn(),ICt;case 9:case 10:case 11:return kUn(),oCt;default:return kUn(),PCt}}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 lI("ROOT_PROC",0),Uyt=new lI("FAN_PROC",1),Wyt=new lI("NEIGHBORS_PROC",2),Xyt=new lI("LEVEL_HEIGHT",3),Vyt=new lI("NODE_POSITION_PROC",4),zyt=new lI("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 Ky(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function _Pn(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 KPn(n,t){var e,i;t.a?zNn(n,t):(!!(e=BB(k_(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(y_(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(),KCt))&&yRn(n,t),i=Xpn(n,t),PDn(n,t)==(cpn(),BIt)&&(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(),KCt))&&kRn(n,t),i=Wpn(n,t),PDn(n,t)==(cpn(),BIt)&&(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 xI(((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(),_St)),21).Hc((mdn(),DCt))?(e=BB(ZAn(n,qSt),21),t=new wA(BB(ZAn(n,BSt),8)),e.Hc((nKn(),GCt))&&(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 Io,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(FCt,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=Isn(r,(kW(e),e))):(r=WXn(t),a5(EAt,t,r),null!=e&&(r=Isn(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 DK(e,i,r)),HSn(t)}function nIn(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+=nIn(n,e));return u}function tIn(n,t,i){var r,c;Kan(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 eIn(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 iIn(){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 _s),Tyn(n),mZ(zAt,S7n,n),n)}function rIn(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 cIn(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 aIn(n){var t,e,i;for(K$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 uIn(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(qC(AY(e.f,t)),456).b,i);return new tK(new Ob(e))}function oIn(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 sIn(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 hIn(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 fIn(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 lIn(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 bIn(n,t,e,i,r,c,a,u,o,s,h,f,l){cL(n.Cb,88)&&AIn(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),Chn(n,t),null!=i&&(n.i=null,arn(n,i))}function wIn(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 dIn(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 Ky(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 gIn(n,t,e,i,r,c){var a,u,o;if(i-e<7)$bn(t,e,i,c);else if(gIn(t,n,u=e+r,o=u+((a=i+r)-u>>1),-r,c),gIn(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 pIn(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 vIn(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 mIn(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 yIn(n,t,e){var i,r,c;if(r=itn(n.Tg(),t),(i=t-n.Ah())<0){if(!r)throw Hp(new Ky(o6n+t+s6n));if(!r.Ij())throw Hp(new Ky(r6n+r.ne()+c6n));(c=n.Yg(r))>=0?n.sh(c,e):TLn(n,r,e)}else Lbn(n,i,r,e)}function kIn(n){var t,e,i,r;if(e=BB(n,49).qh())try{if(i=null,(t=$$n((WM(),zAt),MKn(Kbn(e))))&&(r=t.rh())&&(i=r.Wk(Xy(e.e))),i&&i!=n)return kIn(i)}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}return n}function jIn(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 EIn(n,t){var e;return h2(n.a),IU(n.a,(Prn(),Qkt),Qkt),IU(n.a,Ykt,Ykt),dq(e=new B2,Ykt,(Ibn(),ejt)),GC(ZAn(t,(Uyn(),Sjt)))!==GC((Hsn(),sjt))&&dq(e,Ykt,njt),dq(e,Ykt,tjt),aA(n.a,e),$qn(n.a,t)}function TIn(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 MIn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SCn(r),c.a=MCn(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}KFn(r),GFn(r)}function SIn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SCn(r),c.a=MCn(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}KFn(r),GFn(r)}function PIn(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 IIn(n){var t,e,i,r;for(m$(r=new tK(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;)IOn(BB(n0(i),101),t[e%t.length]),++e}function CIn(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 OIn(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,I6n),enn(new zg(t).a,r),c=Ren(a,P6n),inn(new Ug(t).a,c),c}function AIn(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 $In(n,t){var e,i;if(i=0,t.length>0)try{i=lKn(t,KVn,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 LIn(n,t){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,["index",iln(n)]));if(t<0)throw Hp(new Ky(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 NIn(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 xIn(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 DIn(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 RIn(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 _In(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 KIn(n,t,i,r,c,a){var u,o,s,h,f;for(GC(n)===GC(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 FIn(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 BIn(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 xI((u=n.d.d).a,u.b),a),1/(i+1)),c=new xI(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 HIn(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=Iun(c.a,c.b,u.a,u.b,i),s=e.Math.min(s,r);return s}function qIn(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 GIn(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 zIn(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 UIn(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(),ICt)?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 XIn(n,t){var e,i;if(t.dc())return SQ(),SQ(),set;for(WB(i=new Np,iln(KVn)),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 WIn(n,t){var e,i,r,c,a,u;e=ckn(t,u=t.c.i.k!=(uSn(),Iut)?t.d:t.c).i,r=BB(RX(n.k,u),121),i=n.i[e.p].a,A_(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 VIn(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,kCn(dnn(e,BB(r.Pb(),19).a))))&&(!t.b&&(t.b=new h_(_Ot,t,4,7)),f9(t.b,c))}function QIn(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,kCn(dnn(e,BB(r.Pb(),19).a))))&&(!t.c&&(t.c=new h_(_Ot,t,5,8)),f9(t.c,c))}function YIn(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 JIn(n){var t,e,i;if(t=n.Pb(),!n.Ob())return t;for(i=uO(oO(new Ik,"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 Ky(i.a))}function ZIn(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 nCn(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 tCn(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 eCn(n){var t,e,i,r;for(n.g=new Hbn(BB(yX(FCt),290)),i=0,kUn(),e=sCt,t=0;t<n.j.c.length;t++)(r=BB(xq(n.j,t),11)).j!=e&&(i!=t&&mG(n.g,e,new rC(iln(i),iln(t))),e=r.j,i=t);mG(n.g,e,new rC(iln(i),iln(t)))}function iCn(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 rCn(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(qC(AY(r.f,u)),112))||(c=new Fan(n.d),i.c[i.c.length]=c,UPn(c,u,r))}function cCn(n,t){var e,i,r;if(!(r=Fqn((CPn(),Z$t),n.Tg(),t)))throw Hp(new Ky(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 aCn(n){var t,i;return n>-0x800000000000&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),i=IJ(e.Math.floor(e.Math.log(n)/.6931471805599453)),(!t||n!=e.Math.pow(2,i))&&++i,i):Van(fan(n))}function uCn(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 oCn(n,t){var e,i,r;return qan(i=new $vn(n),t),hon(i,(hWn(),Vft),t),hon(i,(HXn(),ept),(QEn(),XIt)),hon(i,kdt,(wvn(),OMt)),Bl(i,(uSn(),Mut)),IZ(e=new ISn,i),qIn(e,(kUn(),ICt)),IZ(r=new ISn,i),qIn(r,oCt),i}function sCn(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 Ky("No implementation is available for the crossing minimizer "+(null!=n.f?n.f:""+n.g)))}}function hCn(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]||hCn(n,i)}function fCn(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=fCn(t),u=e.Math.max(a,u);return u}function lCn(){lCn=O,rCt=new XI("OUTSIDE",0),eCt=new XI("INSIDE",1),iCt=new XI("NEXT_TO_PORT_IF_POSSIBLE",2),tCt=new XI("ALWAYS_SAME_SIDE",3),nCt=new XI("ALWAYS_OTHER_SAME_SIDE",4),cCt=new XI("SPACE_EFFICIENT",5)}function bCn(n,t,e){var i,r,c,a;return $in(i=_2(n,(tE(),r=new jm,!!e&&nNn(r,e),r),t),R2(t,q6n)),STn(t,i),o$n(t,i),OIn(t,i),c=N2(t,"ports"),PLn((a=new pC(n,i)).a,a.b,c),xon(n,t,i),aun(n,t,i),i}function wCn(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 dCn(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 gCn(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 pCn(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,pCn(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 vCn(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(),sCt)?-e.rf().b-Gy(MD(e.We(aPt))):Gy(MD(e.We(aPt))):e.Hf()==(kUn(),sCt)?-e.rf().b:0}function mCn(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 yCn(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);)QCn(t=BB(U5(e),79))&&qy(TD(ZAn(t,PSt)))&&(i.c[i.c.length]=t);return i}return SQ(),SQ(),set}function kCn(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 jCn(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)?p_(uun(u),e.ah(u)):null)&&m_(i,t)){c=e;break}return c}function ECn(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 TCn(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&&ECn(n,t,-c),!0)}function MCn(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=_k(ecn(LV(AV(LU(n.a),new Mn),new Sn)));return a>0?a+n.n.d+n.n.a:0}function SCn(n){var t,e,i,r,c,a;if(a=0,0==n.b)a=_k(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 PCn(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 ICn(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 CCn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(IAn(),$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 OCn(n){var t,e;return(e=new Ik).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 ACn(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 Ky("No implementation is available for the layout phase "+(null!=n.f?n.f:""+n.g)))}}function $Cn(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 LCn(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?s_n(n,r,t):EXn(n,r,t),PL(BB(RX(n.b,Qdn(r)),79))}function NCn(n){var t,e;switch(n.b){case-1:return!0;case 0:return(e=n.t)>1||-1==e||(t=Ckn(n))&&(ZM(),t.Cj()==E9n)?(n.b=-1,!0):(n.b=1,!1);default:return!1}}function xCn(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 DCn(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$(),I8n))));return r=fx(n.i,i,e),n.d=e+1,b9(r,c,512==(512&n.e))}function RCn(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 _Cn(n,t){var e,i,r,c;for(GK(),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 KCn(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 FCn(n,t,e,i,r){var c,a,u,o;return GC(o=hD(n,BB(r,56)))!==GC(r)?(u=BB(n.g[e],72),jL(n,e,sTn(n,e,c=Z3(t,o))),mA(n.e)&&(_En(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 BCn(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 HCn(n,t){var e,i;try{return X1(n.a,t)}catch(r){if(cL(r=lun(r),32)){try{if(i=lKn(t,KVn,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 qCn(n,t){var e,i,r;if(r=Fqn((CPn(),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 Ky(r6n+t.ne()+u6n))}function GCn(){var n;return tS(),Q$t?BB($$n((WM(),zAt),V9n),1939):(RO(Hnt,new Is),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 zCn(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=CEn(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 UCn(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 XCn(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 rC(iln(i),iln(r))}function WCn(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 VCn(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(),oCt)?new xI(t+c.i.c.c.a+e,r):new xI(t-e,r),_x(n.a,0,i)}function QCn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,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 YCn(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 JCn(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 ZCn(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)-KQn)>>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 xI(a.c+a.b/2,a.d+a.a/2),new xI(c.c+c.b/2,c.d+c.a/2))),-(YKn(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 eC(n,t)),JT(new Rq(null,(!e.n&&(e.n=new eU(zOt,e,1,7)),new w1(e.n,16))),new iC(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((CPn(),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 Ky(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(GC((a=BB(c[u],133)).cd())===GC(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(GC(n)===GC(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],!(GC(i)===GC(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 It),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 _Y(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(),ICt)&&t!=oCt||(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 Ky("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)||m_(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 CJ(n,t)}))+'"'}function yOn(n){var t,e;for(IQ(),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&&CN(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 t_(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),eIn(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((lCn(),iCt)),n.u.Hc(eCt)?n.D?this.a=e&&!t.If():this.a=!0:n.u.Hc(rCt)?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(),ICt)?-i.rf().a-Gy(MD(i.We(aPt))):e+Gy(MD(i.We(aPt))):i.Hf()==(kUn(),ICt)?-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(),QIt)&&i!=YIt?r==(kUn(),PCt)&&(r=OFn(t,e))==PCt&&(r=hwn(e)):r=XHn(t)>0?hwn(e):Tln(hwn(e)),Ypn(t,upt,r)}function IOn(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&&qIn(c.d,t.a);for(e=r;e<a.c.length;e++)l1(e,a.c.length),(c=BB(a.c[e],113)).c&&qIn(c.d,t.b)}function COn(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?u_n(n,t,e):c>0&&u_n(n,e,t),c):null!=i.a?(u_n(n,t,e),-1):null!=r.a?(u_n(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 _On(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 KOn(n,t,e,i,r,c,a,u){var o;return cL(n.Cb,88)&&AIn(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(),x_(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,(Kkn(),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),Ihn(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(),oCt)).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(),Cfn(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)):(Cfn(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 rC(i,t)))),i.d.g=i.d.g&qy(TD(n.e.Kb(new rC(i,t))));return n}function UOn(n){var t,e,i,r,c;if(e=new Y_(t=BB(Vj(FCt),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;)GC(mMn(i=BB(n0(r),11),dlt))===GC(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(GC(n)!==GC(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 CKn(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 h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,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=C3(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(),Klt));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 MC(G1n,0),nAt=new MC("INSIDE_SELF_LOOPS",1),tAt=new MC("MULTI_EDGES",2),ZOt=new MC("EDGE_LABELS",3),eAt=new MC("PORTS",4),YOt=new MC("COMPOUND",5),QOt=new MC("CLUSTERS",6),JOt=new MC("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=Icn(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),HIn(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(g_n(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=C),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=_Kn(n,c=new Np),t=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(t.j);r.a<r.c.c.length;)GC(mMn(i=BB(n0(r),11),dlt))===GC(n)&&(a=e.Math.max(a,_Kn(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)&IQn))&&(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=_Qn,i=_Qn,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,_pt))),i==(Ffn(),KPt)||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 IAn(){IAn=O,Okt=new WA(20),Ckt=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=_St,Skt=BSt,Pkt=qSt,Tkt=DSt,Ikt=USt,Akt=fPt,Ran(),Dkt=ykt,Lkt=vkt}function CAn(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 CAn(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(),sCt))?t.Hc(oCt)?t.Hc(SCt)?t.Hc(ICt)?null:$st:Nst:Lst:Ast)[0],(Irn(),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=m_n(t)),iTn(n.a,BB(mMn(vW(t.b),(hWn(),Slt)),230)),bKn(n),DEn(n,t),i=x8(ANt,hQn,25,t.b.j.c.length,15,1),szn(n,t,(kUn(),sCt),i,e),szn(n,t,oCt,i,e),szn(n,t,SCt,i,e),szn(n,t,ICt,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(I4n,!0),cEt=new $O(C4n,!1),fEt=new $O(O4n,-1)}function LAn(n,t,e){switch(t){case 7:return!n.e&&(n.e=new h_(KOt,n,7,4)),sqn(n.e),!n.e&&(n.e=new h_(KOt,n,7,4)),void pX(n.e,BB(e,14));case 8:return!n.d&&(n.d=new h_(KOt,n,8,5)),sqn(n.d),!n.d&&(n.d=new h_(KOt,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(GC(t)===GC(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(),!(GC(e)===GC(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 _e),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Jc(new Ke),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 If;case 1:return new lf;case 2:return new ff;case 3:return new jC;case 4:return new KG;default:throw Hp(new Ky("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 _G;case 1:return new wf;case 2:return new rf;case 3:return new cf;case 4:return new TC;default:throw Hp(new Ky("No implementation is available for the cycle breaker "+(null!=n.f?n.f:""+n.g)))}}function _An(){_An=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 KAn(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(GC(t)===GC(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(),jIt)),hFn((l1(1,n.c.length),BB(n.c[1],10)),EIt);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=_en(R2(c,O6n),t),VW(n.f,a,c),q6n in c.a&&$in(a,R2(c,q6n)),STn(c,a),OIn(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 xI(f,b),new xI(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+_$(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=Kun(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+_$(n.k,a,s))))}while(f!=a);return c}function ZAn(n,t){var e,i;return!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),null!=(i=cdn(n.o,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((IXn(),MOt),rAt,n,0)),vjn(n.o,t,e))),e)}function n$n(){n$n=O,CIt=new GI("H_LEFT",0),IIt=new GI("H_CENTER",1),AIt=new GI("H_RIGHT",2),DIt=new GI("V_TOP",3),xIt=new GI("V_CENTER",4),NIt=new GI("V_BOTTOM",5),$It=new GI("INSIDE",6),LIt=new GI("OUTSIDE",7),OIt=new GI("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=k_n(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 Ky("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,FIn(n,u,t)&&!FIn(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=ZKn(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(),oCt)?r.a=c:n.a==yst||n.i==(kUn(),ICt)?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);KSn(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(),IPt))&&(e=new Yu,Ypn(t,IPt,e)),r=BB(ZAn(t,IPt),373),i=null,(a=c)&&(i=new TT(a,jrn(a,x8(Qtt,sVn,2,0,6,1)))),i&&e5(i,new dC(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),Cwn(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 rC(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),Ien(o,o.j+i*e),Sen(o,o.g+r),Men(o,n.a),++c,lIn(o,new xI(o.g,o.f),new xI(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=_Qn,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=j_n(n,t)).gc();u<s;++u)if(m_(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(m_(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=E_n(n,t)).gc();u<s;++u)if(m_(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(m_(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?FCn(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),Ien(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 I$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,KPt),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=_Qn;return n.b.Le(n),n}function C$n(n,t){var e,i,r,c,a;if(t<2*n.b)throw Hp(new Ky("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"),LCn((e=new uC(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(GC((a=BB(c[u],133)).cd())===GC(i))return u;return-1}function $$n(n,t){var e,i;return cL(e=null==t?qC(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?jIn(n.f,null,i):ubn(n.g,t,i))),i):null}function L$n(n){var t,e,i,r,c,a,u;if(_Dn(),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?FCn(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 _$n(n,t,e){var i,r,c,a,u,o,s;for(s=new Y_(i=BB(t.e&&t.e(),9),BB(SR(i,i.length),9),0),a=0,u=(c=k_n(e,"[\\[\\]\\s,]+")).length;a<u;++a)if(0!=RMn(r=c[a]).length){if(null==(o=HCn(n,r)))return null;orn(s,BB(o,22))}return s}function K$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(),sCt)||t==oCt?(jtn(BB(Eon(n),15),(Xyn(),jIt)),jtn(BB(Eon(n),15),EIt)):(jtn(BB(Eon(n),15),(Xyn(),EIt)),jtn(BB(Eon(n),15),jIt));else for(i=new bV(n);i.a!=i.b;)jtn(BB(Khn(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(),oCt)),n.d=i.dc()?0:uq(BB(i.Xb(0),11)),a=abn(t,ICt),n.b=a.dc()?0:uq(BB(a.Xb(0),11))):(r=abn(e,(kUn(),ICt)),n.d=r.dc()?0:uq(BB(r.Xb(0),11)),c=abn(t,oCt),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=k_n(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(),sCt)?-i.rf().b-Gy(MD(i.We(aPt))):Gy(MD(i.We(aPt))):i.Hf()==(kUn(),sCt)?-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,CEt=new WA(15),IEt=new XA(XSt,CEt),$Et=new XA(LPt,15),bEt=hSt,jEt=_St,EEt=BSt,TEt=qSt,kEt=DSt,MEt=USt,OEt=fPt,$An(),PEt=oEt,yEt=aEt,SEt=uEt,AEt=hEt,pEt=cEt,vEt=ISt,mEt=CSt,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(_At,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),mCn(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;)_bn(e=BB(n0(i),10))&&(c=new Ogn(e),hon(e,(hWn(),Olt),c),kKn(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(),!(Ian(OJ(EG($It,Pun(Gk(GIt,1),$Vn,93,0,[LIt])),n))>1||Ian(OJ(EG(CIt,Pun(Gk(GIt,1),$Vn,93,0,[IIt,AIt])),n))>1||Ian(OJ(EG(DIt,Pun(Gk(GIt,1),$Vn,93,0,[xIt,NIt])),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)),_gn(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 Cc;case 4:return new RR;case 5:return new sf;default:throw Hp(new Ky("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(),XIt)),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(Khn(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(),ICt)&&(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 xI(t.a,e.Math.min(n.d.b,t.b));case 2:return new xI(e.Math.max(n.c.a,t.a),t.b);case 3:return new xI(t.a,e.Math.max(n.c.b,t.b));case 4:return new xI(e.Math.min(t.a,n.d.a),t.b)}return new xI(t.a,t.b)}function bLn(n,t,e,i){var r,c,a,u,o,s,h,f,l;for(f=i?(kUn(),ICt):(kUn(),oCt),r=!1,s=0,h=(o=t[e]).length;s<h;++s)L_(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|=cKn(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 h_(KOt,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 h_(KOt,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 h_(KOt,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 h_(KOt,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,m_(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),P_n(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 LI(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(),Iut)&&(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 xI(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((CPn(),Z$t),n.Tg(),t)))throw Hp(new Ky(r6n+t.ne()+c6n));if(ZM(),!BB(c,66).Oj()&&!(c=Z1(B7(Z$t,c))))throw Hp(new Ky(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,Kjt),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),OIn(r,a),xon(n,r,a))}function ILn(n){var t,e,i,r;if(!n.j){if(r=new Co,null==(t=P$t).a.zc(n,t)){for(i=new AL(kY(n));i.e!=i.i.gc();)pX(r,ILn(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 CLn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,m_(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),IU(n.b,(Pbn(),HEt),(OM(),GTt)),IU(n.b,qEt,t.g),IU(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=KVn,o=DWn,a=KVn,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(),_ft)),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 _Ln(n){var t,e,i,r;return GC(mMn(n,(HXn(),sgt)))===GC((ufn(),pIt))?!n.e&&GC(mMn(n,Rdt))!==GC((_an(),kft)):(i=BB(mMn(n,_dt),292),r=qy(TD(mMn(n,Hdt)))||GC(mMn(n,qdt))===GC((Oin(),sht)),t=BB(mMn(n,Ddt),19).a,e=n.a.c.length,!r&&i!=(_an(),kft)&&(0==t||t>e))}function KLn(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 Ky(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 Ky(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 Ky(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=Ckn(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 xI(n.c,n.d),new xI(n.c+n.b,n.d))),WB(t,new xS(new xI(n.c,n.d),new xI(n.c,n.d+n.a))),WB(t,new xS(new xI(n.c+n.b,n.d+n.a),new xI(n.c+n.b,n.d))),WB(t,new xS(new xI(n.c+n.b,n.d+n.a),new xI(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),IZ(u=new ISn,i),qIn(u,(kUn(),oCt)),hon(u,(hWn(),jlt),(hN(),!0)),a=t.Kc();a.Ob();)c=BB(a.Pb(),10),IZ(o=new ISn,c),qIn(o,ICt),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(),Cut)&&(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 jI("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),xEt=new jI("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),_Et=new jI("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),REt=new jI("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),KEt=new jI("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 Ky(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 Ky(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)),qIn(r,BB(mMn(t,Qft),61)),mMn(t,Qft),hon(r.i,(HXn(),ept),(QEn(),VIt)),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*IJ(HH(r-i))*(e-t)}function iNn(n){var t,e;if(LEn(),n.Hc((kUn(),PCt)))throw Hp(new Ky("Port sides must not contain UNDEFINED"));switch(n.gc()){case 1:return Mst;case 2:return t=n.Hc(oCt)&&n.Hc(ICt),e=n.Hc(sCt)&&n.Hc(SCt),t||e?Ist: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 xI(n.c,n.d),new xI(n.c+n.b,n.d),t,e)||mzn(new xI(n.c+n.b,n.d),new xI(n.c+n.b,n.d+n.a),t,e)||mzn(new xI(n.c+n.b,n.d+n.a),new xI(n.c,n.d+n.a),t,e)||mzn(new xI(n.c,n.d+n.a),new xI(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:m_(c.substr(0,3),"!##")?null!=t&&(r=t.length,!m_(c.substr(c.length-r,r),t)||c.length!=t.length+3)&&!m_(S7n,t):m_(c,P7n)&&!m_(S7n,t)||m_(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,Cvt=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),Ivt=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 Ky(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 Ky(C7n));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=IJ(n/OQn))*OQn),t=0,n>=CQn&&(n-=(t=IJ(n/CQn))*CQn),r=M$(IJ(n),t,e),i&&Oon(r),r)}function pNn(n,t){var e,i,r,c;for(e=!t||!n.u.Hc((lCn(),eCt)),c=0,r=new Wb(n.e.Cf());r.a<r.c.c.length;){if((i=BB(n0(r),838)).Hf()==(kUn(),PCt))throw Hp(new Ky("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 rC(iln(i+1),iln(r)):i==t&&r<t?new rC(iln(i),iln(r+1)):i>=-t&&r==t?new rC(iln(i-1),iln(r)):new rC(iln(i),iln(r-1))}function ENn(){return lWn(),Pun(Gk(ust,1),$Vn,77,0,[rot,tot,cot,kot,Fot,Mot,Uot,Oot,_ot,got,Not,Cot,Kot,lot,Wot,Vut,Lot,Hot,jot,Bot,Qot,Dot,Qut,Rot,Yot,Got,Vot,Eot,sot,Tot,yot,Xot,Zut,uot,Pot,Jut,Iot,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(),Cut)&&e.k==Cut&&BB(mMn(t,(hWn(),dlt)),10)==BB(mMn(e,dlt),10)&&(S7(t).j==(kUn(),sCt)?q$n(n,t,e):q$n(n,e,t)),t.k==Cut&&e.k==Put?S7(t).j==(kUn(),sCt)?n.d=1:n.b=1:e.k==Cut&&t.k==Put&&(S7(e).j==(kUn(),sCt)?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 Ib(n.d))&&(rtn(c,"knownOptions",i=new Il),t=new ep(i),e5(new Ib(n.d),t)),!WE(n.g)&&(rtn(c,"supportedFeatures",r=new Il),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 INn(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 Ky("There must be at least one phase in the phase enumeration."));this.c=new Y_(t=BB(Vj(this.g),9),BB(SR(t,t.length),9),0),this.a=new B2,this.b=new xp}function CNn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=7&&t){if(vkn(n,t))throw Hp(new Ky(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 Ky(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())?jIn(u.f,null,i):ubn(u.g,a,i),138))&&(null==a?jIn(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())?jIn(a.f,null,i):ubn(a.g,c,i),170))&&(null==c?jIn(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+IY(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(),Clt))))),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=C2(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)CSn(t,i=r[c])&&tBn(i,!0)}}function _Nn(n){var t,e;switch(t=null,e=null,eEn(n).g){case 1:kUn(),t=oCt,e=ICt;break;case 2:kUn(),t=SCt,e=sCt;break;case 3:kUn(),t=ICt,e=oCt;break;case 4:kUn(),t=sCt,e=SCt}Gl(n,BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)),ql(n,BB($N(Cz(BB(h6(n.k,e),15).Oc(),Qst)),113))}function KNn(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=YKn(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(),Iut)&&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!=Iut)return null}while(e&&e.k!=(uSn(),Iut));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(k_(n.b,t.b),57),(e=BB(y_(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 tK(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 Y_(c=BB(Vj(FCt),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(),oCt),2*e,i),GEn(n,t,ICt,2*e,i)):(GEn(n,t,(kUn(),sCt),2*e,i),GEn(n,t,SCt,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 Ck,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&&SKn(n.e,n),HSn(t)}function ixn(n){var t,e,i,r,c,a,u;if(r=(i=n.b).e,c=L_(BB(mMn(i,(HXn(),ept)),98)),e=!!r&&BB(mMn(r,(hWn(),Zft)),21).Hc((bDn(),lft)),!c&&!e)for(u=new _b(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(a=BB(t.dd(),113)).a&&(IZ(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,(IAn(),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(),_Lt)||(t==yLt||t==vLt||t==mLt)&&n!=pLt?new cUn(n,t):((e=(i=BB(t,677)).pk())||(kV(B7((CPn(),Z$t),t)),e=i.pk()),!e.i&&(e.i=new xp),!(r=BB(qC(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 xI(o,s)),t&&((a=BB(mMn(e,(HXn(),vgt)),74))||(a=new km,hon(e,vgt,a)),DH(a,new xI(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 xI(o,s)),t&&((e=BB(mMn(r,(HXn(),vgt)),74))||(e=new km,hon(r,vgt,e)),DH(e,new xI(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 IGn(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=KTn(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,(IAn(),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 rC(iln(-t-1),iln(-t-1));if(t==-i)return new rC(iln(-t),iln(i+1))}return e.Math.abs(t)>e.Math.abs(i)?new rC(iln(-t),iln(t<0?i:i+1)):new rC(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(),Ift))):e==Hlt?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Sft))):t==(z7(),Ift)?(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(),Kat),(lWn(),jot)),kyt=WG(dq(new B2,Kat,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,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),yyt=WG(dq(dq(new B2,Fat,Iot),Fat,uot),Bat,aot)}function gxn(){gxn=O,Iyt=dq(WG(new B2,(yMn(),Bat),(lWn(),hot)),Kat,jot),$yt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),Cyt=WG(dq(dq(dq(new B2,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),Ayt=dq(dq(new B2,Kat,Dot),Bat,xot),Oyt=WG(dq(dq(new B2,Fat,Iot),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?_x(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&&_Bn(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=IJ(e.Math.ceil(c*t)):r=IJ(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(),oCt)?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(h_n(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),pCn(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 tK(i.j),new Jr),t.g){case 1:NEn(n,c,e,(Irn(),Dst),1);break;case 0:NEn(n,new s1(c,0,a=KLn(c)),e,(Irn(),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 Ky(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 Ky(C7n));return BB(ovn(n,t,e),72)}function Ixn(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 Cxn(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 h_(KOt,n,8,5)),n.d)),gun(t,(!n.e&&(n.e=new h_(KOt,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 Ky(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 Ky(C7n));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((CPn(),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 h_(_Ot,t,4,7)),t.b),0),82)),o=PTn(BB(Wtn((!t.c&&(t.c=new h_(_Ot,t,5,8)),t.c),0),82)),JJ(u)==JJ(o)||Itn(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(),jIt));break;case 1:TAn(n,(Xyn(),EIt));break;case 2:sBn(n,(Xyn(),jIt));break;case 3:sBn(n,(Xyn(),EIt));break;case 4:uDn(n,(Xyn(),jIt));break;case 5:uDn(n,(Xyn(),EIt))}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(),oCt):a.j==(kUn(),ICt))&&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(CW(n));break;case 6:n.g=jgn(AW(n));break;case 5:n.g=iln(hJ(n));break;case 7:n.g=rln(K3(n))}return n.g}function _xn(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(_3(n))}return n.n}function Kxn(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 Kb(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 xI(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DCt))&&(r=BB(mMn(n,Hgt),8),a.Hc((nKn(),GCt))&&(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(k_(n.b,t.b),81),(e=BB(y_(n.b,t.b),81))&&(n.a[e.i]=t.b)):(!!(i=BB(k_(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(y_(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),qIn(r=new ISn,(kUn(),ICt)),IZ(r,t),r.n.b=u,qIn(c=new ISn,oCt),IZ(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),sIn(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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,15,1),this.b=x8(xNt,qQn,25,Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]).length,15,1),this.a=x8(xNt,qQn,25,Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]).length,15,1),mS(this.c,RQn),mS(this.b,_Qn),mS(this.a,_Qn)}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,vIn(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 Ca,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=_Qn,uSn(),o=Iut,c=new Wb(t.a);c.a<c.c.c.length;)(a=(r=BB(n0(c),10)).k)!=Iut&&(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(KDn(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(),ICt)).Kc().Pb(),11),c=BB(DSn(t,oCt).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)),Cen(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(),_lt)),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:oIn(c,t);default:e.b==e.c||pKn(e,i,u,!1,t),u=!1,i=0}e.b==e.c||pKn(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,Krn((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 h_(_Ot,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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 h_(_Ot,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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=UCn(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),GC(ZAn(n,ept))===GC((QEn(),YIt))&&Ypn(n,ept,QIt),GM(),r=qzn(new Dy(JJ(n)),new JN(JJ(n)?new Dy(JJ(n)):null,n),!1,!0),orn(c,(mdn(),DCt)),(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(),sCt),sCt),Gst=new WV(kJn,1,SCt,SCt),Fst=new WV(yJn,2,oCt,oCt),Xst=new WV(jJn,3,ICt,ICt),qst=new WV("NORTH_WEST_CORNER",4,ICt,sCt),Hst=new WV("NORTH_EAST_CORNER",5,sCt,oCt),Ust=new WV("SOUTH_WEST_CORNER",6,SCt,ICt),zst=new WV("SOUTH_EAST_CORNER",7,oCt,SCt)}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 rC(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 rC(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=p_n(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(m_(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 IDn(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)),IDn(n,u,e))}function CDn(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=CDn(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 IT(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 xI(s,l),h=new xI(a,b),r=s,e.p||(r+=n.c),o=new xI(r+=e.F+e.v*n.b,l),f=new xI(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xI(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,K5n),"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,K5n,QJn,LCt),u2(n,K5n,vZn,15),u2(n,K5n,yZn,iln(0)),u2(n,K5n,VJn,dZn)}function _Dn(){var n,t,e,i,r,c;for(_Dn=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 KDn(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 xI(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DCt))&&(r=BB(mMn(n,Hgt),8),a.Hc((nKn(),GCt))&&(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(),SCt)).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,sCt).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==IQn&&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,[KPt,FPt])),t||(orn(u,HPt),orn(u,_Pt)),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 _j(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 rC(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((qK(),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(GC(t)===GC(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(),GC(r)!==GC(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],GC(t)===GC(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),Izn((l1(0,(c=t.b).c.length),BB(c.c[0],29)),r,t),Izn(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,(IAn(),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),_Hn(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),Cit=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;)GC(mMn(a=BB(n0(u),11),(hWn(),dlt)))===GC(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(),sCt)?-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(),sCt)?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=_ut}return r&&i?_B(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 xI(t.b,t.a)),BB(mMn(n,kdt),248).g){case 1:hon(n,kdt,(wvn(),LMt));break;case 2:hon(n,kdt,(wvn(),CMt));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 Q_(i),yrn(this.e,this.c,(kUn(),ICt)),this.i=new Q_(i),yrn(this.i,this.c,oCt),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((nKn(),HCt)),a=n.B.Hc(zCt),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 Cgn(1,c,n.c)).n.a=n.k,mG(n.p,(kUn(),sCt),i),(r=new Cgn(1,c,n.c)).n.d=n.k,mG(n.p,SCt,r),(u=new Cgn(0,c,n.c)).n.c=n.k,mG(n.p,ICt,u),(e=new Cgn(0,c,n.c)).n.b=n.k,mG(n.p,oCt,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 Id(i)),e=i;break;default:throw Hp(new Fy("Compaction not supported for "+t+" edges."))}gqn(n,e),e5(new Ib(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,_Ot),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,KOt),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=ISt,Yct=uPt,Bct=new XA(dSt,!1),Wct=USt,Xct=qSt,Uct=_St,zct=DSt,Jct=fPt,jSn(),Gct=Cct,aat=Nct,qct=Ict,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(KAn(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(_4n),OM(),xTt=new $O(q4n,DTt=GTt),Lun(),LTt=new $O(K4n,NTt=WTt),$Sn(),ATt=new $O(F4n,$Tt=rTt),PTt=new $O(B4n,null),$6(),CTt=new $O(H4n,OTt=ZEt),IM(),jTt=new $O(G4n,ETt=XEt),TTt=new $O(z4n,(hN(),!1)),MTt=new $O(U4n,iln(64)),STt=new $O(X4n,!0),ITt=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();)AIn(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(),ICt):(kUn(),oCt)):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();)GC(ZAn(i=BB(kpn(r),33),(sWn(),ESt)))!==GC((ufn(),mIt))&&((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=sCt,i+=r.gc()):u<i&&(kUn(),e=SCt,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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt]))),new Jy((Irn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))),u=0,o=(a=Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).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((lCn(),rCt)),e=n.u.Hc(tCt),i=n.u.Hc(nCt),s=n.u.Hc(cCt),f=n.B.Hc((nKn(),QCt)),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((lCn(),rCt)),e=n.u.Hc(tCt),i=n.u.Hc(nCt),o=n.u.Hc(cCt),f=n.B.Hc((nKn(),QCt)),s=!e&&!i&&(o||2==a.gc()),VKn(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==Cut)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==Cut)&&jRn(n,c,e))return!0;return!0}function ERn(n){var t;return 0!=(64&n.Db)?_On(n):((t=new fN(_On(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&KQn)),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 xI(o,u)),h=new Wb(n.g);h.a<h.c.c.length;)t=UR(Fx(new xI((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(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length,0,2),a=0,u=(c=Pun(Gk(FCt,1),YZn,61,0,[PCt,sCt,oCt,SCt,ICt])).length;a<u;++a)o[(r=c[a]).g]=x8(xNt,qQn,25,n.c[r.g],15,1);return Bkn(o,n,sCt),Bkn(o,n,SCt),xmn(o,n,sCt,t,e,i),xmn(o,n,oCt,t,e,i),xmn(o,n,SCt,t,e,i),xmn(o,n,ICt,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 Kpn(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 IRn(n){var t,i,r,c,a,u;n.q!=(QEn(),WIt)&&n.q!=XIt&&(c=n.f.n.d+XH(BB(oV(n.b,(kUn(),sCt)),124))+n.c,t=n.f.n.a+XH(BB(oV(n.b,SCt),124))+n.c,r=BB(oV(n.b,oCt),124),u=BB(oV(n.b,ICt),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 CRn(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(),Ilt))))&&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(Kut,new Du,new Ru),xJ(hOt,new _u,new Ku),xJ(met,new ku,new ju),xJ(Cet,new Eu,new Tu),xJ(jet,new Mu,new Su),xJ(Eet,new Pu,new Iu),xJ(Bet,new Cu,new Ou)}function ARn(n){var t,e,i,r,c,a;return c=0,(t=Ckn(n)).Bj()&&(c|=4),0!=(n.Bb&T9n)&&(c|=2),cL(n,99)?(r=Ivn(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 Ck,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);)IW(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((CPn(),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((CPn(),Z$t),t)))||n.d.Hc(Fqn((CPn(),Z$t),n.b,t))))||!(!n.f||!aNn((CPn(),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=_Qn,a=t.c.Kc();a.Ob();)c=BB(a.Pb(),57),BB(qC(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(qC(AY(u.f,t)),15);Kxn(n)}function _Rn(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=_Qn,a=t.f.Kc();a.Ob();)c=BB(a.Pb(),81),BB(qC(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(qC(AY(u.f,t)),15);BNn(n)}function KRn(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)),IW(r)&&ZU(f,s==r.c?r.d:r.c));return yX(f),new tK(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 _b(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,m_(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 Y_(t=BB(Vj(GIt),9),BB(SR(t,t.length),9),0),i.Hc((n$n(),$It))?orn(e,$It):orn(e,LIt),i.Hc(OIt)||orn(e,OIt),i.Hc(CIt)?orn(e,DIt):i.Hc(IIt)?orn(e,xIt):i.Hc(AIt)&&orn(e,NIt),i.Hc(DIt)?orn(e,CIt):i.Hc(xIt)?orn(e,IIt):i.Hc(NIt)&&orn(e,AIt),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(GC(c=BB(n0(a),11))===GC(mMn(e,dlt))){c.j==(kUn(),sCt)&&n.p>r.p?(qIn(c,SCt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=u-t)):c.j==SCt&&r.p>n.p&&(qIn(c,sCt),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 rC(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 Ky("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 xI(o,h)),DH(c,new xI(o,f)),DH(c,new xI(s,f)),DH(c,new xI(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 xI(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 n_n(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xI(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 t_n(n){if(0==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i)throw Hp(new ck("Edges must have a source."));if(0==(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i)throw Hp(new ck("Edges must have a target."));if(!n.b&&(n.b=new h_(_Ot,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c.i<=1)))throw Hp(new ck("Hyperedges are not supported."))}function e_n(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,Cdt))),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+=nIn(n,e));return f}function i_n(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=lKn(t.substr(d,w-d),KVn,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 r_n(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 c_n(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 a_n(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 u_n(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 o_n(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=XIn(i,e);break;case 1:e=_Tn(i,e)}e.dc()||tXn(n,e),HSn(t)}function s_n(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),VIn((i=new oC(n,o)).a,i.b,a),u=N2(s,N6n),QIn((r=new sC(n,o)).a,r.b,u),0==(!o.b&&(o.b=new h_(_Ot,o,4,7)),o.b).i||0==(!o.c&&(o.c=new h_(_Ot,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 h_n(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 f_n(n){var t,i,r,c,a,u,o,s,h,f,l;for(i=KVn,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 l_n(n){switch(n.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return BB(_xn(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 QC(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 b_n(n){NM(n,new MTn(vj(wj(pj(gj(new du,_5n),"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,_5n,QJn,dIt),u2(n,_5n,g3n,mpn(gIt)),u2(n,_5n,g5n,mpn(hIt)),u2(n,_5n,PZn,mpn(fIt)),u2(n,_5n,BZn,mpn(bIt)),u2(n,_5n,Y2n,mpn(lIt))}function w_n(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 Ky("value already present: "+e));return r=new qW(t,i,e,a),c?(LLn(n,c),YIn(n,r,c),c.e=null,c.c=null,c.i):(YIn(n,r,null),qkn(n),null)}function d_n(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 xI(a,l):new xI(s,l),h=c.c?new xI(s,b):new xI(a,b),r=s,e.p||(r+=n.c),o=new xI(r+=e.F+e.v*n.b,l),f=new xI(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xI(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function g_n(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(GC(a.jl(u))===GC(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 Ivn(BB(itn(n.Tg(),e),18))}return null}function p_n(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 v_n(n,t){var e,i,r;for(i=new Wb(t);i.a<i.c.c.length;)if(e=BB(n0(i),33),JCn(n.a,e,e),JCn(n.b,e,e),0!=(r=wDn(e)).c.length)for(n.d&&n.d.lg(r),JCn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JCn(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),JCn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JCn(n.b,e,BB(xq(r,r.c.length-1),33))}function m_n(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 y_n(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 k_n(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 j_n(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=j_n(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=xCn(n,t)).dc()?u||(SQ(),SQ(),set):u?(r||(u=new rG(u)),u.Gc(i),u):i}function E_n(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=E_n(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 T_n(n,t,e){var i,r,c,a,u,o;if(cL(t,72))return Kpn(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=T_n(n,u,e)),e}function M_n(n){var t,i,r,c;r=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?c=r.a:(c=SCn(n.f),n.A.Hc((mdn(),RCt))&&!n.B.Hc((nKn(),XCt))&&(c=e.Math.max(c,SCn(BB(oV(n.p,(kUn(),sCt)),244))),c=e.Math.max(c,SCn(BB(oV(n.p,SCt),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,KFn(n.f)}function S_n(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=k_n(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 P_n(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 I_n(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 C_n(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]||(hCn(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 O_n(n,t,e,i){var r,c,a,u,o,s,h;for(Pen(a=BB(Wtn(t,0),33),0),Ien(a,0),(o=new Np).c[o.c.length]=a,u=a,c=new eq(n.a,a.g,a.f,(YLn(),KEt)),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,_Et,h,u,c,o,e),nHn(n,REt,h,u,c,o,e),h,u,i)).d),Ien(h,r.e),ab(r,KEt),c=r,u=h,o.c[o.c.length]=h;return c}function A_n(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,_4n,mpn(qTt)),u2(n,Q4n,QJn,BTt),u2(n,Q4n,vZn,8),u2(n,Q4n,q4n,mpn(HTt)),u2(n,Q4n,U4n,mpn(KTt)),u2(n,Q4n,X4n,mpn(FTt)),u2(n,Q4n,X2n,(hN(),!1))}function $_n(n,t,e,i){var r,c,a,u,o,s,h,f;for(a=Kx(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 L_n(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((lCn(),iCt)),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 N_n(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 x_n(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 D_n(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,KPt),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=_Qn,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 R_n(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 __n(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(KB((!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 K_n(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 F_n(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=k_n(o,"\\w")).length;a<u;++a)m_(r=c[a],"##other")?WB(i,"!##"+az(n,Utn(t.Hj()))):m_(r,"##local")?i.c[i.c.length]=null:m_(r,E7n)?WB(i,az(n,Utn(t.Hj()))):i.c[i.c.length]=r;return i}return SQ(),SQ(),set}function B_n(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 H_n(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 q_n(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 G_n(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:_wn(e),hPn(n,e,$En(e)?e.c:e.f);break;case 1:_wn(e),hPn(n,e,$En(e)?e.f:e.c)}hMn(e.a)}}function z_n(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 xI((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?d_n(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 U_n(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),Ien(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),U_n(n,s,i+n.c,u,u+b*f,a),u+=b*f}function X_n(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 W_n(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;)eKn(n,e,e$n(n,e)),e=yln(n),++i;c&&tTn(n),n.a?p$n(n,f_n(n)):f_n(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 V_n(n,t,e,i){var r,c,a,u,o,s,h,f;for(XR(u=new xI(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 Q_n(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 Y_n(n){var t,e,i,r,c,a,u;for(c=new dE(BB(yX(new Rn),62)),u=_Qn,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 Kb(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 J_n(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 Z_n(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 Z_n(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 Z_n(c,r)}}return BB(iL(n.Kc()),86)}function nKn(){nKn=O,GCt=new QI("DEFAULT_MINIMUM_SIZE",0),UCt=new QI("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),qCt=new QI("COMPUTE_PADDING",2),XCt=new QI("OUTSIDE_NODE_LABELS_OVERHANG",3),WCt=new QI("PORTS_OVERHANG",4),QCt=new QI("UNIFORM_PORT_SPACING",5),VCt=new QI("SPACE_EFFICIENT_PORT_LABELS",6),zCt=new QI("FORCE_TABULAR_NODE_LABELS",7),HCt=new QI("ASYMMETRICAL",8)}function tKn(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 eKn(n,t,e){var i,r,c;if(!t.f)throw Hp(new Ky("Given leave edge is no tree edge."));if(e.f)throw Hp(new Ky("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,FIn(n,e.e,t)||(i=-i),c=new Wb(n.e.a);c.a<c.c.c.length;)FIn(n,r=BB(n0(c),121),t)||(r.e+=i);n.j=1,nk(n.c),pCn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}function iKn(n,t){var e,i,r,c,a,u;if((u=BB(mMn(t,(HXn(),ept)),98))==(QEn(),WIt)||u==XIt)for(r=new xI(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(),oCt)&&e!=ICt||(i=Gy(MD(mMn(c,Tlt))),u==WIt&&(i*=r),c.n.b=i-BB(mMn(c,npt),8).b,Jan(c,!1,!0)))}function rKn(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(),ICt):(kUn(),oCt),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 cKn(n,t,e,i){var r,c,a,u,o;u=abn(t,e),(e==(kUn(),SCt)||e==ICt)&&(u=cL(u,152)?o6(BB(u,152)):cL(u,131)?BB(u,131).a:cL(u,54)?new fy(u):new IT(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 aKn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;if(!mA(n.e))return BB(YCn(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(Cln(n,t,e),72),u!=o&&Lv(n,new j9(n.e,7,a,iln(u),b.dd(),o)),l}return BB(Cln(n,t,e),72)}function uKn(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(),UIt)||c==WIt||c==XIt?(SQ(),m$(a,sst)):c!=QIt&&c!=YIt&&(SQ(),m$(a,fst),Lvn(a),u==(U7(),Kvt)&&m$(a,hst)),i.i=!0,eCn(i);HSn(t)}function oKn(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),jIn(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 sKn(){sKn=O,byt=dq(new B2,(yMn(),Fat),(lWn(),vot)),dyt=dq(new B2,Kat,jot),gyt=WG(dq(new B2,Kat,Dot),Bat,xot),lyt=WG(dq(dq(new B2,Kat,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,_at,Mot),Fat,Pot),Fat,Iot),Bat,Sot),fyt=WG(dq(dq(new B2,Fat,Iot),Fat,uot),Bat,aot)}function hKn(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&&(!Iyn(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 fKn(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(),oCt)?n.f[a.p]=e<s?n.c-e:n.b+(o-e):h==ICt&&(n.f[a.p]=e<s?n.b+e:n.c-(o-e))}}function lKn(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 bKn(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 wKn(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 h_(_Ot,c,4,7)),c.b),0),82))).i,o=i.j,IA(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 dKn(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 gKn(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 IZ(r=new ISn,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 pKn(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(),jIt)):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(),EIt)):2==(n.c-n.b&n.a.length-1)?(hFn(BB(Eon(n),10),(Xyn(),jIt)),hFn(BB(Eon(n),10),EIt)):sLn(n,r),o4(n)}function vKn(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),jIn(i.f,r,o)}function mKn(n){var t,e,i,r,c;i=BB(mMn(n,(hWn(),dlt)),33),c=BB(ZAn(i,(HXn(),Fgt)),174).Hc((mdn(),KCt)),n.e||(r=BB(mMn(n,Zft),21),t=new xI(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(),XIt)),_Un(i,t.a,t.b,!1,!0)):qy(TD(ZAn(i,Bgt)))||_Un(i,t.a,t.b,!0,!0)),Ypn(i,Fgt,c?nbn(KCt):new Y_(e=BB(Vj(YCt),9),BB(SR(e,e.length),9),0))}function yKn(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=UCn(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=UCn(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 kKn(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 _b(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 _b(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,R_n(n,c))}function jKn(n){var t,e,i,r,c;for(c=WJ(n),r=new AL((!n.e&&(n.e=new h_(KOt,n,7,4)),n.e));r.e!=r.i.gc();)if(i=BB(kpn(r),79),!Itn(PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,i,5,8)),i.c),0),82)),c))return!0;for(e=new AL((!n.d&&(n.d=new h_(KOt,n,8,5)),n.d));e.e!=e.i.gc();)if(t=BB(kpn(e),79),!Itn(PTn(BB(Wtn((!t.b&&(t.b=new h_(_Ot,t,4,7)),t.b),0),82)),c))return!0;return!1}function EKn(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 xI(o.a,o.b),i)),u=ctn(XR(new xI(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 TKn(n,t,e,i){var r,c,a,u,o;return a=n.eh(),r=null,(o=n.Zg())?t&&0==(g_n(n,t,e).Bb&BQn)?(i=Kpn(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 MKn(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 SKn(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,qIn(a,BB(mMn(i,Qft),61)));e=new xI(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(),XIt)),BB(mMn(vW(n),Zft),21).Fc(dft),bGn(n,e,!1)):bGn(n,e,!0)}function PKn(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=GC(mMn(t,(HXn(),sgt)))===GC((ufn(),pIt)),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 IKn(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 Ky("key already present: "+e));return a&&LLn(n,a),c&&LLn(n,c),YIn(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 CKn(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 OKn(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),IJ(e.Math.ceil(f))),r),a)),c=u,r=a;UNn(aM(cM(rM(uM(new Hv,0),IJ(e.Math.ceil(h.a+c.o.b))),r),i.d))}}function AKn(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 $Kn(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 LKn(n,t,e){var i,r,c,a,u;if(0==t.p){for(t.p=1,(r=e)||(r=new rC(new Np,new Y_(i=BB(Vj(FCt),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);)LKn(n,BB(U5(u),11).i,r);return r}return null}function NKn(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(m_(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(m_(t,(e=BB(kpn(i),590)).d))return e;return null}function xKn(n,t){var e,i,r,c,a,u,o;if(null==(o=TD(mMn(t,(IAn(),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 DKn(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,_6n),qR((c=new hC(n,b)).a,c.b,f),l=R2(r,R6n),GR((a=new fC(n,b)).a,a.b,l),s=N2(r,F6n),Fyn((u=new lC(e,b)).b,u.a,s),h=N2(r,K6n),Byn((o=new bC(i,b)).b,o.a,h)}function RKn(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 ISn,(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 ISn,(hWn(),klt),(hN(),!0))}return u&&(IZ(u,n),qIn(u,e),yvn(u.n,n.o,e)),u}function _Kn(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 KKn(n,t,e,i,r){var c,a,u,o;Bl(c=new $vn(n),(uSn(),Cut)),hon(c,(HXn(),ept),(QEn(),XIt)),hon(c,(hWn(),dlt),t.c.i),hon(a=new ISn,dlt,t.c),qIn(a,r),IZ(a,c),hon(t.c,Elt,c),Bl(u=new $vn(n),Cut),hon(u,ept,XIt),hon(u,dlt,t.d.i),hon(o=new ISn,dlt,t.d),qIn(o,r),IZ(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 FKn(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 BKn(n,t,e,i){var r,c,a,u,o,s,h;if(WCn(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 HKn(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 rC(e.c.i,e)));SQ(),m$(s,n.c),kG(n.b,u.p,s)}}function qKn(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 rC(e.d.i,e)));SQ(),m$(s,n.c),kG(n.f,u.p,s)}}function GKn(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(KMt)),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(_Mt))}function zKn(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(),PCt;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(),ICt;if(s+u>a)return kUn(),oCt;break;case 4:case 3:if(h<0)return kUn(),sCt;if(h+e>c)return kUn(),SCt}return(o=(s+u/2)/a)+(i=(h+e/2)/c)<=1&&o-i<=0?(kUn(),ICt):o+i>=1&&o-i>=0?(kUn(),oCt):i<.5?(kUn(),sCt):(kUn(),SCt)}function UKn(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=_Vn*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=_$(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 XKn(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;)GC((s=BB(n0(h),181)).We((sWn(),gSt)))===GC((Rtn(),XPt))&&(r_n(f,s,!1,i,r,c,a),IPn(n,f));for(u=e.Kc();u.Ob();)for(h=new Wb(BB(u.Pb(),839).wf());h.a<h.c.c.length;)GC((s=BB(n0(h),181)).We((sWn(),gSt)))===GC((Rtn(),UPt))&&(r_n(f,s,!0,i,r,c,a),IPn(n,f))}function WKn(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)||QCn(i)||(o=BB(qC(AY(e.f,c)),86),s=BB(RX(e,PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,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 VKn(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=KTn(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 QKn(n,t){var e;switch(vnn(n)){case 6:return XC(t);case 7:return UC(t);case 8:return zC(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===C);case 1:return DU(t)&&!(t.im===C)||Qpn(t,n.__elementTypeId$);default:return!0}}function YKn(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 JKn(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 ZKn(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(),Cat)&&(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 xI(u/c,t.d.b);case 2:return new xI(t.d.a,o/c);default:return new xI(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(),UIt)&&c!=WIt&&c!=XIt)return 0;if(c==(QEn(),UIt)&&(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 xI(n.j,n.k)),JT(new Rq(null,(!n.a&&(n.a=new $L(xOt,n,5)),new w1(n.a,16))),new Cg(c)),WB(c,new xI(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(),KPt)),Uun(o,!1,FPt)):i>0&&(Uun(o,!1,(Ffn(),KPt)),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]=IJ(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 Ky(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 h_(_Ot,n,4,7)),n.b),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)),!1)),bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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):GC(a)===GC(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):GC(a)===GC(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));BIn(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(),TIt),hon(n,ult,i),i!=(Xyn(),EIt)))for(r=BB(mMn(n,dlt),17),u=Gy(MD(mMn(r,(HXn(),agt)))),a=0,i==jIt?a=n.o.b-e.Math.ceil(u/2):i==TIt&&(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(),Ift)&&(h=r):i==(z7(),Ift)&&(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,Clt)))||GC(mMn(t.j,(HXn(),Ldt)))===GC((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,Clt)))&&hon(t.j,Clt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Clt,!0)),e=e_n(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=e_n(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,Clt)))||GC(mMn(t.j,(HXn(),Ldt)))===GC((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,Clt)))&&hon(t.j,Clt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Clt,!0)),e=nIn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=nIn(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 Cln(n,o,u),mA(n.e)&&Lv(n,LY(n,7,t,iln(i),h,e,!0)),h}throw Hp(new Ky("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),GC(mMn(i,(HXn(),Udt)))===GC((Ffn(),BPt))&&hon(i,Udt,Wln(i)),null==mMn(i,(I6(),TMt))&&(a=BB($Mn(n),160),hon(i,TMt,iO(a.We(TMt)))),hon(i,(hWn(),dlt),n),hon(i,Zft,new Y_(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),_N(e?u.b:u.g,t),1==kbn(u).c.length&&r5(i,u,i.c.b,i.c),r=new rC(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),CFn(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));CXn(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 zC(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 UC(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 IFn(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 xI(i+t,b+o+t)}function CFn(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 Ky("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 Ky("Target port must be in one of the port sets."));dJ(),f=Nyt}u=new tIn(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(),PCt;switch(u=n.i,o=n.j,t.g){case 2:case 1:if(u<0)return kUn(),ICt;if(u+n.g>c)return kUn(),oCt;break;case 4:case 3:if(o<0)return kUn(),sCt;if(o+n.f>r)return kUn(),SCt}return(a=(u+n.g/2)/c)+(e=(o+n.f/2)/r)<=1&&a-e<=0?(kUn(),ICt):a+e>=1&&a-e>=0?(kUn(),oCt):e<.5?(kUn(),sCt):(kUn(),SCt)}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 Ky("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(),INt)return INt;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),INt=e}function _Fn(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 KFn(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),HKn(f,n),f.f=sx(f.d),qKn(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(_ct,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=C$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())&&GC(e)===GC(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 Ky(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),Cbn(n.b.c,c.b.c+c.b.b)<=0&&Cbn(c.b.c,n.b.c+n.b.b)<=0&&Cbn(n.b.d,c.b.d+c.b.a)<=0&&Cbn(c.b.d,n.b.d+n.b.a)<=0){if(0==Cbn(c.b.c,n.b.c+n.b.b)&&r.a<0||0==Cbn(c.b.c+c.b.b,n.b.c)&&r.a>0||0==Cbn(c.b.d,n.b.d+n.b.a)&&r.b<0||0==Cbn(c.b.d+c.b.a,n.b.d)&&r.b>0){o=0;break}}else o=e.Math.min(o,HIn(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 Ky("The vector chain must contain at least a source and a target point."));for(Px(0!=n.b),IA(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(),sCt)?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==sCt?c.c:c.a,u=t==sCt?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 xI(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 xI(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 Il),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 Il)),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 xI((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 Il),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 Il,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,RKn(a.i,(ain(),qvt),(kUn(),oCt))):SZ(n,a),t&&qy(TD(mMn(c,(hWn(),klt))))?MZ(n,RKn(c.i,(ain(),Hvt),(kUn(),ICt))):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(),Ilt)))),hon(n,Ilt,(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),jIn(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=IJ(e.Math.max(0,a-h)),c=IJ(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 nI(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(),PCt)&&((i=BB(mMn(t,(hWn(),Elt)),10))?qIn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qIn(t,oCt):qIn(t,ICt));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))?qIn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qIn(t,(kUn(),oCt)):qIn(t,(kUn(),ICt));hon(n,ept,(QEn(),VIt))}}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++)_x(n,0,BB(Dpn(n,0),8));if(n.b<4)throw Hp(new Ky("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,C$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(),Ilt))))&&qy(TD(mMn(o,Ilt)))?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(),Ilt))))?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):GC(a)===GC(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):GC(a)===GC(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=XIn(r,i);break;case 1:i=_Tn(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(),Cdt))))||0!=Gy(MD(mMn(t.j,Cdt))))for(e=ZJn,GC(mMn(t.j,Ldt))!==GC((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,GC(mMn(t.j,Ldt))!==GC((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=I$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(GC(e)===GC(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=!!Ivn(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&&!Ivn(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=IJ(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=IJ(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(),sCt)?u.c[u.c.length]=c:o==SCt&&(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),K_n(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(),oCt)||r==ICt))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;)GC(mMn(c=BB(n0(a),10),ept))!==GC((QEn(),UIt))&&GC(mMn(c,ept))!==GC(XIt)&&(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),GC(ZAn(t,sgt))===GC((ufn(),pIt))?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 IBn(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 CBn(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=_Qn,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(),XIt)),i.c[i.c.length]=r,IZ(a=new ISn,r),qIn(a,(kUn(),ICt)),IZ(u=new ISn,r),qIn(u,oCt),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()),GC(mMn(o=BB(s.d.Xb(s.c=s.b++),70),Ydt))===GC((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(),XIt)),i.c[i.c.length]=r,IZ(a=new ISn,r),qIn(a,(kUn(),ICt)),IZ(u=new ISn,r),qIn(u,oCt),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 rC(b,l)}function NBn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(e=new _b(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=KD(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 rC(l,c.c));for(yQ(n.a),f=spn(n.b,0);f.b!=f.d.c;)h=BB(b3(f),478),t=_D(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=bCn(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 _Bn(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 KBn(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 xI(u.a,u.b),c),.5),o=kL(B$(n.e),.5),t=XR(UR(new xI(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),K8(0,c,n.length),K8(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(),Cut)),hon(c,(HXn(),ept),(QEn(),XIt)),r=0,t){for(hon(a=new ISn,(hWn(),dlt),t),hon(c,dlt,t.i),qIn(a,(kUn(),ICt)),IZ(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 ISn,hon(c,(hWn(),dlt),e.i),hon(u,dlt,e),qIn(u,(kUn(),oCt)),IZ(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{COt=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(IJ(n.e)),c=new Ck,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,IJ(i)),oO(c,r.substr(t))}else oO(c,fx(r,t,IJ(i=t-i))),c.a+=".",oO(c,nO(r,IJ(i)));else{for(oO(c,r.substr(t));i<-qtt.length;i+=qtt.length)Nq(c,qtt);gR(c,qtt,IJ(-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 xI(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 xI(i.a,i.b),kL(new xI(r.a,r.b),.5))),u=W8(UR(new xI(n.a,n.b),t),c),o=.5*e.Math.sqrt(r.a*r.a+r.b*r.b),a<u&&a<=o?new xI(n.a,n.b):u<=o?UR(new xI(n.a,n.b),t):null):null:l>=0&&l<=1&&b>=0&&b<=1?UR(new xI(n.a,n.b),kL(new xI(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(),oCt)?a.n.a+=e.a-t.a:r==SCt&&(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(),oCt)?c.n.a+=e.a-t.a:r==SCt&&(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 Cb(new Ib(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=_Qn,l=RQn,s=_Qn,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 xI(o-f,s-l),n.c=new xI(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=T_n(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 Ky("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(),_lt)),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,KOt),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=FCn(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=FCn(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 xC(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 g_(BB(t.Yj(),148),o.a)}return null!=(h=c.dd())&&e&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(h=FCn(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),GC(n)===GC(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&&KIn(n,t,e,i,r,!0)}function uHn(){uHn=O,ret=Pun(Gk(ANt,1),hQn,25,15,[KVn,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 RK(h&&c||f&&a,h,f)):new RK(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 h_(_Ot,n,4,7)),e=!(n.b.i<=1&&(!n.c&&(n.c=new h_(_Ot,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(),Cgt))))&&!qy(TD(mMn(n,bgt)))||vA(BB(mMn(n,ept),98)))switch(IZ(u=new ISn,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),qIn(u,zKn(u,c))):(r=hwn(c),qIn(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(),sCt)||o==SCt)&&a.Fc((bDn(),gft));break;case 4:case 3:(o==(kUn(),oCt)||o==ICt)&&a.Fc((bDn(),gft))}else r=hwn(c),u=RKn(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()!=_Pt)continue}else if(c.gf()!=(Ffn(),KPt)&&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=_$(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 h_(_Ot,e,4,7)),e.b),0),186)||(o=PTn(BB(Wtn((!e.c&&(e.c=new h_(_Ot,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 xI(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 xI(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,f=a+b.a,l=u+b.b,Cen(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,_4n,mpn(kTt)),u2(n,R4n,K4n,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+=Cdn(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+=Cdn(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 Ky(C7n));if(i.gc()>1)throw Hp(new Ky(C7n));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(Cz(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(Cz(BB(h6(r.k,i[1]),15).Oc(),Qst)),113));break;case 2:VPn(n,r);break;case 3:_Nn(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:_Qn,!(u=cFn(n,new aI(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 xC(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=MCn(n.f),n.A.Hc((mdn(),RCt))&&!n.B.Hc((nKn(),XCt))&&(t=e.Math.max(t,MCn(BB(oV(n.p,(kUn(),oCt)),244))),t=e.Math.max(t,MCn(BB(oV(n.p,ICt),244)))),(i=oan(n))&&(t=e.Math.max(t,i.b)),n.A.Hc(_Ct)&&(n.q!=(QEn(),WIt)&&n.q!=XIt||(t=e.Math.max(t,XH(BB(oV(n.b,(kUn(),oCt)),124))),t=e.Math.max(t,XH(BB(oV(n.b,ICt),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 IHn(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 CHn(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(),Iut))return!1;if(n.j.c.length<=1)return!1;if(BB(mMn(n,(HXn(),ept)),98)==(QEn(),XIt))return!1;if(bvn(),(i=(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),_gt),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(),ICt)),t.d+t.a+(c.gc()-1)*r>n.o.b)return!1;if(e=abn(n,oCt),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=PCt,b?f=b.j:vA(BB(mMn(i,ept),98))&&(f=a==Hvt?ICt:oCt),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)),JCn(n.a,r,new LK(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=Ifn(n.e,i).ne())?jIn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jIn(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=Ifn(n.e,i).ne())?jIn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jIn(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,H_n(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 xI(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(),VIt)):hon(t,ept,(QEn(),QIt)),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||VC(o,(dxn(),jyt)),c=!h||VC(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)),IAt=Bun(48,57),TAt=i0(SAt,0),MAt=i0(PAt,IAt),CAt=i0(i0(0,Bun(1,6)),Bun(33,38)),OAt=i0(i0(IAt,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 _Hn(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);)_Hn(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),CGn(n,t)):hon(t,fkt,c)}}function KHn(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 tK(i):HB(new Wb(i))),n.b=(yX(r),r?new tK(r):HB(new Wb(r))),n.i=a);++u,h=0!=l&&qy(TD(t.Kb(new rC(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==_Et,b=l==DEt||l==_Et,s=a==DEt||a==xEt,w=l==DEt||l==xEt,!u||l!=xEt&&l!=REt?o&&b?n.f==_Et?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),y_n(n.b,i.c,i,null),y_n(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;)IBn(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 tK(BB(h6(n.a,c),21)),SQ(),m$(i,new Kw(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 Kn,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)&&QC(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)&&QC(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))&&(IZ(s=new ISn,c),qIn(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 h_(KOt,n,7,4)),n.e));s.e!=s.i.gc();)a=(u=QCn(o=BB(kpn(s),79)))&&c&&qy(TD(ZAn(o,dgt))),l=PTn(BB(Wtn((!o.c&&(o.c=new h_(_Ot,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 h_(KOt,n,8,5)),n.d));i.e!=i.i.gc();)a=(u=QCn(e=BB(kpn(i),79)))&&c&&qy(TD(ZAn(e,dgt))),f=PTn(BB(Wtn((!e.b&&(e.b=new h_(_Ot,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(),XIt)),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=UKn(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 tK(n):HB(n.a.ec().Kc()),new Ew(w)),u=S4(a),o=new I$(t),jIn((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(qC(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 I$(h),WB(BB(qC(AY(b.f,f)),221).a,l),jIn(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 Kv),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?Iv(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):Iv(n.a,t);else for(r=0;r<t.em();r++)tqn(n,t.am(r));else Iv(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),IJ(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 Ik).a+=""+r,n.e>0&&i>=-6?i>=0?kZ(c,e-IJ(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,-IJ(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 C7).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,(IQ(),fit)),r.g){case 1:I$n(i);break;case 2:I$n(Tzn(i,(Ffn(),FPt)));break;case 3:I$n(Uk(Tzn(I$n(i),(Ffn(),FPt)),new gr));break;case 4:I$n(Uk(Tzn(I$n(i),(Ffn(),FPt)),new kd(c)));break;case 5:I$n(Xk(i,wst))}Tzn(i,(Ffn(),KPt)),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),_8(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 DC(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(Kan(this),i==(dJ(),Lyt)?TU(this.r,n):TU(this.w,n),f=RQn,h=_Qn,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(),yCt).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(),yCt).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(),Igt)),142),a=e.Math.min(a,u.n.a-r.b);return new qf(yX(a))}if(0!=o.e.c.length){for(c=_Qn,i=new Wb(o.e);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.c.i,(HXn(),Igt)),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(GC(n.Gk(BB(n.g[r],56)))===GC(t))return!0;return u}if(n.Dk()&&!n.Ck()){if(GC(c=BB(t,56).ah(Ivn(BB(n.ak(),18))))===GC(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(GC(i=n.Gk(BB(n.g[r],56)))===GC(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(),Cut)&&(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)),L_(BB(mMn(u,(HXn(),ept)),98))||hon(u,ept,(QEn(),UIt));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,eCn(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(),sCt)?qIn(i,SCt):h==SCt&&qIn(i,sCt),BB(mMn(t,(HXn(),Fgt)),174).Hc((mdn(),KCt))){if(o=Gy(MD(mMn(n,Ipt))),s=Gy(MD(mMn(n,Cpt))),a=Gy(MD(mMn(n,Spt))),(u=BB(mMn(t,cpt),21)).Hc((lCn(),eCt)))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(rCt))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 KK(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)||_dn(BD(r.e).b,i.e.d)||_dn(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(),PCt)&&t!=(QEn(),QIt)&&t!=(QEn(),YIt)&&(qIn(n,u=zKn(n,e)),!(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),tpt))&&u!=PCt&&(0!=n.n.a||0!=n.n.b)&&hon(n,tpt,jkn(n,u))),t==(QEn(),WIt)){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!=QIt&&t!=YIt&&u!=PCt)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(),Iut)){for(b=BB(mMn(f,(hWn(),clt)),15).Kc();b.Ob();)l=BB(b.Pb(),10),e&&l.k!=(uSn(),Iut)||((!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(),Iut)){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 rC(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))}_Un(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 tK((e=t.b).j),r=0,(i=e.j).c=x8(Ant,HWn,1,0,5,1),eX(BB(gan(n.b,(kUn(),sCt),(Irn(),Rst)),15),e),r=Jmn(c,r,new xr,i),eX(BB(gan(n.b,sCt,Dst),15),e),r=Jmn(c,r,new Nr,i),eX(BB(gan(n.b,sCt,xst),15),e),eX(BB(gan(n.b,oCt,Rst),15),e),eX(BB(gan(n.b,oCt,Dst),15),e),r=Jmn(c,r,new Dr,i),eX(BB(gan(n.b,oCt,xst),15),e),eX(BB(gan(n.b,SCt,Rst),15),e),r=Jmn(c,r,new Rr,i),eX(BB(gan(n.b,SCt,Dst),15),e),r=Jmn(c,r,new _r,i),eX(BB(gan(n.b,SCt,xst),15),e),eX(BB(gan(n.b,ICt,Rst),15),e),r=Jmn(c,r,new Qr,i),eX(BB(gan(n.b,ICt,Dst),15),e),eX(BB(gan(n.b,ICt,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=_Qn,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=GC(mMn(s,ult))===GC((Xyn(),EIt)),e=new wA(s.n),a&&(e.b+=b+i),c=new xI(s.o.a,s.o.b-b-i),l=BB(mMn(s,Plt),15),o==(Ffn(),HPt)||o==_Pt?ADn(l,e,r,c,a,o):qhn(l,e,r,c),gun(f.b,l),rGn(s,GC(mMn(n,Zdt))===GC((Mbn(),YPt))),fW(h));HSn(t)}function Iqn(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 Cqn(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):(m_((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||m_(h,"Anonymous function"))&&(h=zVn),u=mN(s,YTn(58)),r=M_(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==IQn&&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==IQn&&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):_kn(n,t)<0?(e&&(ltt=c?aon(n):M$(n.l,n.m,n.h)),M$(0,0,0)):hKn(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=IJ(b/n.a),p=IJ(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=IJ((g+u.c)/n.b),WB(n.f,new xK(h,iln(p),iln(v))),c==(qpn(),tct)?won(n,0,p,w,v):won(n,w,p,n.d-1,v)):(d=IJ((b+u.c)/n.a),WB(n.f,new xK(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=m_(_9n,(r=NKn(n.b,K9n))?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=NKn(a,K9n))?SD(cdn((!c.b&&(c.b=new Jx((gWn(),k$t),X$t,c)),c.b),n8n)):null))&&f9(t,a):(h=Ivn(a))&&0!=(h.Bb&h6n)||(0==(a.Bb&hVn)||!s&&null==((i=NKn(a,K9n))?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 _qn(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(Khn(r),37),$Gn(n.c,i),b+=(f=BB(mMn(i,(hWn(),Mlt)),15)).gc(),WB(s,new rC(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 Kqn(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=M_(t,YTn(46),u-1))>=0){i=BB(V5(n,Ptn(n,t.substr(1,e-1)),!1),58),o=0;try{o=lKn(t.substr(e+1),KVn,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(m_("",Ifn(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=j_n(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(m_("",Ifn(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)),m_(S7n,u))return mjn(n,t);for(a=0,s=(c=E_n(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 Ky(C7n));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 _b(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 _b(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(),Cut)&&(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 xI(0,c.b),b.j==(kUn(),oCt))u.a=f;else{if(b.j!=ICt)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,_Lt=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),KLt=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,ILt=gLt.D,CLt=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(),sCt)||s.j==SCt){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)==(Knn(),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(),sCt))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==SCt)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))&&!m_(r,$Wn)&&!m_(r,S9n)&&!m_(r,P9n)&&!m_(r,I9n)&&!m_(r,C9n)&&!m_(r,O9n)&&!m_(r,A9n)&&!m_(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)),m_(r,$Wn)||m_(r,S9n)||m_(r,P9n)||m_(r,I9n)||m_(r,C9n)||m_(r,O9n)||m_(r,A9n)||m_(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||m_(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(lKn(t,KVn,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),HCn(n,t);case 6:return rhn(n),_$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))!=JC(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&&JC(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()&&GC(a=Gz(n,BB(e,56)))!==GC(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,Ivn(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(),Ivn(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,Ivn(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(),Ivn(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(),XIt)),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),qIn(u=new ISn,(kUn(),ICt)),IZ(u,o),u.n.b=d,qIn(s=new ISn,oCt),IZ(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(),ICt)).Kc().Pb(),11).e,f=BB(DSn(n,oCt).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((lCn(),eCt)),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(),KCt))&&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((lCn(),eCt)),u=0,n.A.Hc((mdn(),KCt))&&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 xI(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 rC(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),JCn(n.c,r.gf(),new rC(a,h)))}return n.a}function sGn(n){var t;this.a=n,t=(uSn(),Pun(Gk($ut,1),$Vn,267,0,[Iut,Put,Mut,Cut,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,Iut,(HXn(),Opt),Apt),tun(this,Iut,Put,Ept,Tpt),KY(this,Iut,Cut,Ept),KY(this,Iut,Mut,Ept),tun(this,Iut,Sut,Opt,Apt),FY(this,Put,ypt,kpt),KY(this,Put,Cut,ypt),KY(this,Put,Mut,ypt),tun(this,Put,Sut,Ept,Tpt),ZA(this,Cut,ypt),KY(this,Cut,Mut,ypt),KY(this,Cut,Sut,Ppt),ZA(this,Mut,Npt),tun(this,Mut,Sut,Cpt,Ipt),FY(this,Sut,ypt,ypt),FY(this,Tut,ypt,kpt),tun(this,Tut,Iut,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((CPn(),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=Ivn(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 xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(s.a,s.b)),n.e=XR(new xI(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(Kit,1),HWn,130,0,[new Nf])),e=new Tl(n),i=0;i<e.a.length;++i)m_(t=dnn(e,i).je().a,"layered")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new hf])):m_(t,"force")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new zh])):m_(t,"stress")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Xh])):m_(t,"mrtree")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Pf])):m_(t,"radial")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new yf])):m_(t,"disco")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Gh,new Hh])):m_(t,"sporeOverlap")||m_(t,"sporeCompaction")?ksn(lAt,Pun(Gk(Kit,1),HWn,130,0,[new Tf])):m_(t,"rectpacking")&&ksn(lAt,Pun(Gk(Kit,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=GC(mMn(n,(HXn(),ept)))===GC((QEn(),XIt)),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 Y_(i=BB(Vj(YCt),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 Ky("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 Ky("invalid opaquePart: "+e));if(n&&(null==t||!xT(jAt,t.toLowerCase()))&&null!=e&&Xbn(e,LAt,NAt))throw Hp(new Ky(o9n+e));if(n&&null!=t&&xT(jAt,t.toLowerCase())&&!IEn(e))throw Hp(new Ky(o9n+e));if(!Ubn(i))throw Hp(new Ky("invalid device: "+i));if(!Rhn(r))throw Hp(new Ky(null==r?"invalid segments: null":"invalid segment: "+shn(r)));if(null!=c&&-1!=GO(c,YTn(35)))throw Hp(new Ky("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 xI(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),Ien(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 _b(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,m_(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 _b(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,m_(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 Ck,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=C_n(n,g),0);c.b!=c.d.c;){for(r=BB(b3(c),15),o=p*IJ(e.Math.sqrt(r.gc())),W_n(Qk(Jk(Yk(BK(u=oKn(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=KPt,D_n(eO(Mzn(D_n(eO(Mzn(D_n(Mzn(n.c,i)),jln(i)))),i))),Mzn(n.c,KPt),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,D_n(eO(Mzn(D_n(eO(Mzn(D_n(Zy(Mzn(n.c,i))),jln(i)))),i))),Mzn(n.c,KPt),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 xI(RQn,RQn),n.a=new xI(_Qn,_Qn),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>_Vn)&&o<10);tj(n.c,new Et),yGn(n),CU(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(),QIt),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(),QIt),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)),JCn(n.a,c,new LK(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||G_n(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)&&G_n(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,Ilt)))&&(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),CN(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(),KPt)):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 rC(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:KHn(n,a);break;case 3:for(n.q=(sNn(),Ovt),KHn(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,KHn(n,a));break;case 4:for(n.q=(sNn(),Ovt),KHn(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,KHn(n,a));break;case 6:KHn(n,new od(IJ(e.Math.ceil(n.f.length*f/100))));break;case 5:KHn(n,new sd(IJ(e.Math.ceil(n.d*f/100))))}oDn(n,t),HSn(i)}function IGn(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),IHn(c,this.e),this.s=wXn(this.k)}function CGn(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?Z_n(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 rC(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,rCn(n,i,n.d.fg(),u,l),rCn(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 I4(e.a)),null==TD(mMn(t,xgt))&&hon(t,xgt,(hN(),GC(mMn(t,Zdt))===GC((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 _w(n)),i=new sGn(t),hon(t,(hWn(),Alt),i),h2(n.a),IU(n.a,(yMn(),Rat),BB(mMn(t,Gdt),246)),IU(n.a,_at,BB(mMn(t,Pgt),246)),IU(n.a,Kat,BB(mMn(t,qdt),246)),IU(n.a,Fat,BB(mMn(t,Kgt),246)),IU(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(),sCt)),k=omn(b,SCt),m|=omn(l,SCt)||omn(b,sCt),d&&(m&&v||y||k))||l.k==(uSn(),Cut)&&b.k==Iut||b.k==(uSn(),Cut)&&l.k==Iut)&&(h=n.c[t],c=n.c[e],r=fjn(n.e,h,c,(kUn(),ICt)),o=fjn(n.i,h,c,oCt),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:KNn(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:_fn(h,n),_fn(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=Idn(n,f,h,_mt,r)),Lx(e,(hWn(),rlt))&&(c=BB(mMn(e,rlt),10)),e.k.g){case 0:for(o=qA(_B(abn(e,(kUn(),sCt)),new xc));Zin(o);)a=BB(P7(o),11),n.d[a.p]=r++,h.c[h.c.length]=a;for(r=Idn(n,f,h,_mt,r),s=qA(_B(abn(e,SCt),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,_mt).dc()||d3(f,e);break;case 1:for(u=abn(e,(kUn(),ICt)).Kc();u.Ob();)a=BB(u.Pb(),11),n.d[a.p]=r++,h.c[h.c.length]=a;abn(e,oCt).Jc(new ZP(f,e))}return Idn(n,f,h,_mt,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=_Qn,s=_Qn,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),_Un(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 xI(d.i+d.g/2,d.j+d.f/2),a=new xI(p.i+p.g/2,p.j+p.f/2),Ukn(v=XR(new xI(a.a,a.b),g),d.g,d.f),UR(g,v),Ukn(m=XR(new xI(g.a,g.b),a),p.g,p.f),UR(a,m),IA(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(),UIt)||r==WIt||r==XIt),!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=LKn(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&&(GC(mMn(t,Idt))===GC((Bfn(),lut))?n.c=n.b:n.c=n.a)}return GC(mMn(t,Idt))!==GC((Bfn(),wut))&&(SQ(),f.ad(new xt)),f}function _Gn(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,IZn,mpn(Tkt)),u2(n,Q3n,MZn,mpn(Ikt)),u2(n,Q3n,CZn,mpn(Akt)),u2(n,Q3n,X3n,mpn(Dkt)),u2(n,Q3n,W3n,mpn(Lkt))}function KGn(n){n.q||(n.q=!0,n.p=kan(n,0),n.a=kan(n,1),_rn(n.a,0),n.f=kan(n,2),_rn(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),_rn(n.g,7),Rrn(n.g,8),n.c=kan(n,5),_rn(n.c,7),_rn(n.c,8),n.i=kan(n,6),_rn(n.i,9),_rn(n.i,10),_rn(n.i,11),_rn(n.i,12),Rrn(n.i,13),n.j=kan(n,7),_rn(n.j,9),n.d=kan(n,8),_rn(n.d,3),_rn(n.d,4),_rn(n.d,5),_rn(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),_rn(n.e,5),_rn(n.e,6),_rn(n.e,7),_rn(n.e,8),_rn(n.e,9),_rn(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(),dCt))&&eH(n.j,!0,!0,!0,!1),Nfn(t,hCt)&&eH(n.j,!1,!0,!0,!0),Nfn(t,ECt)&&eH(n.j,!0,!0,!1,!0),Nfn(t,MCt)&&eH(n.j,!0,!1,!0,!0),Nfn(t,gCt)&&eH(n.j,!1,!0,!0,!1),Nfn(t,fCt)&&eH(n.j,!1,!0,!1,!0),Nfn(t,TCt)&&eH(n.j,!0,!1,!1,!0),Nfn(t,jCt)&&eH(n.j,!0,!1,!0,!1),Nfn(t,yCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,bCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,yCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,lCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,kCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,mCt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,vCt)&&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(),oCt)).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(),ICt)).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 Ky(d6n+t.ne()+g6n));if(i=Ifn((CPn(),Z$t),t).$k())return i.Aj().Nh().Ih(i,e);if(a=Ifn(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 _O(f,f.a.length-1)}if(!(h=Ifn(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 Ky("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$(COt[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 xI(t.a,t.b),n),UR(new xI(i.a,i.b),c),XR(new xI(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 xI(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 xI(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,KZn),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,KZn,jZn,mpn(kat)),u2(n,KZn,TZn,(hN(),!0)),u2(n,KZn,PZn,mpn(Tat)),u2(n,KZn,BZn,mpn(Mat)),u2(n,KZn,SZn,mpn(Sat)),u2(n,KZn,IZn,mpn(Eat)),u2(n,KZn,MZn,mpn(Pat)),u2(n,KZn,CZn,mpn(Iat)),u2(n,KZn,NZn,mpn(yat)),u2(n,KZn,DZn,mpn(vat)),u2(n,KZn,RZn,mpn(mat)),u2(n,KZn,_Zn,mpn(jat)),u2(n,KZn,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),IHn(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)),rKn(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(),_Ct))&&(BB(oV(n.b,(kUn(),sCt)),124).k=!0,BB(oV(n.b,SCt),124).k=!0,t=n.q!=(QEn(),WIt)&&n.q!=XIt,Nl(BB(oV(n.b,oCt),124),t),Nl(BB(oV(n.b,ICt),124),t),Nl(n.g,t),n.A.Hc(KCt)&&(BB(oV(n.b,sCt),124).j=!0,BB(oV(n.b,SCt),124).j=!0,BB(oV(n.b,oCt),124).k=!0,BB(oV(n.b,ICt),124).k=!0,n.g.k=!0)),n.A.Hc(RCt))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,u=n.B.Hc((nKn(),XCt)),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(DCt)&&n.B.Hc((nKn(),UCt))&&(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),_gt),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(),bCt).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(),NIt))?c.n.b+=d:w.Hc(xIt)&&(c.n.b+=d/2);(h==fvt||h==hvt)&&abn(i,(kUn(),SCt)).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=IJ(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,IJ(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(_At,new ls),RO(qAt,new Es),RO(HAt,new Cs),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(KAt,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(KNt,new ss),RO(Ptt,new hs),RO(uAt,new fs),RO(yAt,new bs),RO(oLt,new ws),RO($$t,new ds),RO(Itt,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(Ktt,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 Ck,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 Ky("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 rC(r,e)}else if(Gy(lL(r.g,r.d[0]).a)>Gy(lL(e.g,e.d[0]).a))return new rC(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,RIn(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,DIn(BB(i,48))):cL(i,364)?b6(e,gCn(BB(i,364))):cL(i,832)?b6(e,xIn(BB(i,832))):cL(i,104)&&b6(e,NIn(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 xI(h.a,(h.b+b.b)/2)):(o+=e.Math.abs(b.a-h.a),l=new xI((h.a+b.a)/2,h.b)),VW(r?n.d:n.c,t,new Cmn(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 h_(KOt,c,8,5)),c.d),(!c.e&&(c.e=new h_(KOt,c,7,4)),c.e)])));dAn(r)&&(i=BB(U5(r),79),h=a&&QCn(i)&&qy(TD(ZAn(i,dgt))),e=bqn((!i.b&&(i.b=new h_(_Ot,i,4,7)),i.b),c)?n==JJ(PTn(BB(Wtn((!i.c&&(i.c=new h_(_Ot,i,5,8)),i.c),0),82))):n==JJ(PTn(BB(Wtn((!i.b&&(i.b=new h_(_Ot,i,4,7)),i.b),0),82))),!((h||e)&&++u>1)););(u>0||l.Hc((lCn(),eCt))&&(!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(),_St)),21)).dc())return null;if(o=0,u=0,b.Hc((mdn(),_Ct))){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(),PCt)&&(l=OFn(s,t),Ypn(s,wPt,l)),f==(QEn(),XIt))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 _Un(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=KVn,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),_gt),197))==hvt&&(b=1),w=UNn(aM(cM(rM(uM(new Hv,b),IJ(e.Math.ceil(f))),o),s)),l==fvt&&TU(n.d,w),OKn(n,ean(abn(i,(kUn(),ICt))),h),OKn(n,abn(i,oCt),h),a=h):(d=AN(oM(new qv,i),n.f),JT(AV(new Rq(null,new w1(i.j,16)),new Bc),new tI(n,d)),a=new GV(i,!1,d,d)),n.i[i.p]=a,c&&(u=c.c.d.a+_$(n.n,c.c,i)+i.d.d,c.b||(u+=c.c.o.b),UNn(aM(cM(uM(rM(new Hv,IJ(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()),GC(mMn(s=BB(o.d.Xb(o.c=o.b++),70),Ydt))===GC((Rtn(),zPt))&&(l==(Ffn(),HPt)||l==_Pt?(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==_Pt?(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 xI(s.c,s.d)),zH(i,Kx(new xI(s.c,s.d),s.b,0)),zH(i,Kx(new xI(s.c,s.d),0,s.a)),zH(i,Kx(new xI(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(),ICt)||b==oCt?(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=_Qn,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)));m_(i,$Wn)?r.a+="Z":m_(i,S9n)?r.a+="B":m_(i,P9n)?r.a+="C":m_(i,I9n)?r.a+="D":m_(i,C9n)?r.a+="F":m_(i,O9n)?r.a+="I":m_(i,A9n)?r.a+="J":m_(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(m_(e,$Wn))return $Nt;if(m_(e,S9n))return NNt;if(m_(e,P9n))return ONt;if(m_(e,I9n))return xNt;if(m_(e,C9n))return DNt;if(m_(e,O9n))return ANt;if(m_(e,A9n))return LNt;if(m_(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,Kft,(hN(),!0)),o=BB(mMn(e,Zft),21),(h=BB(mMn(s,(HXn(),ept)),98))==(QEn(),YIt)?hon(s,ept,QIt):h!=QIt&&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,QIt)),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 xI(g,E),p=new xI(o,T),w=new xI(r=(g+o)/2,E),v=new xI(r,T),c=eNn(n,E,T),y=g1(t.B),k=new xI(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 ",m_((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 h_(_Ot,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new h_(_Ot,i,5,8)),0!=i.c.i))){for(t.a+=" (",a=new cx((!i.b&&(i.b=new h_(_Ot,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 h_(_Ot,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 h_(_Ot,c,4,7)),c.b),0),82)),Nin(a,BB(Wtn((!c.c&&(c.c=new h_(_Ot,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,(Crn(),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 xI(t.a,t.b),n),s=i,f=XR(new xI(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=Ivn(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)||Ivn(v))continue;r=m}if(!e.dl(l,r))for(p=0;p<i;++p)if(e.il(p)==l&&GC(e.jl(p))===GC(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 _J((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(),KEt))}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 eI(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(),Iut),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=KVn,d=new Fb(new BR(new xN(new Kb(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:Ion(n),Hmn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Ion(n),Hmn(n)}break;case 2:switch(t.g){case 1:Ion(n),RRn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Ion(n),Hmn(n)}break;case 1:switch(t.g){case 2:Ion(n),RRn(n);break;case 4:Ion(n),nEn(n),Hmn(n);break;case 3:Ion(n),nEn(n),Ion(n),Hmn(n)}break;case 4:switch(t.g){case 2:nEn(n),Hmn(n);break;case 1:nEn(n),Ion(n),Hmn(n);break;case 3:Ion(n),RRn(n)}break;case 3:switch(t.g){case 2:Ion(n),nEn(n),Hmn(n);break;case 1:Ion(n),nEn(n),Ion(n),Hmn(n);break;case 4:Ion(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(!PI(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),_Rn(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),_Rn(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),_Rn(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),_Rn(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 h_(_Ot,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new h_(_Ot,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 h_(_Ot,r,5,8)),r.c),0),82)))for(qan(f=new CR,r),hon(f,(Mrn(),sat),r),Rl(f,BB(qC(AY(i.f,o)),144)),_l(f,BB(RX(i,PTn(BB(Wtn((!r.c&&(r.c=new h_(_Ot,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),KBn(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==_Pt)),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 Izn(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 xI(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(),WIt)?(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==XIt&&(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 Czn(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=KVn,u=KVn,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 xI((b=BB(ZAn(r,(IAn(),Ckt)),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)));_Un(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(),oCt)||t==(kUn(),ICt))JUn(n,t);else{for(g=n.u.Hc((lCn(),cCt)),i=t==(kUn(),sCt)?(Dan(),Rrt):(Dan(),Nrt),v=t==sCt?(G7(),irt):(G7(),crt),r=Zk(HK(i),n.s),p=t==sCt?RQn:_Qn,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==sCt?e.Math.min(p,w.b):e.Math.max(p,w.b+o.b.rf().b));for(p+=t==sCt?-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=_Qn,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=Kvn(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 Ib(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 Ir),new Cr),new Pd(n))),c=new xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(c.a,c.b))),UR(kO(n.d.f),XR(new xI(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((lCn(),eCt)),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=$Cn(o.n,o.o,d.o,0,v)),p==(QEn(),QIt)||(kUn(),bCt).Hc(v)?a.o.a=h:a.o.b=h);return BGn(n,t,e,i,u=new Np),e&&Iqn(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),qIn(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 xI(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 Kj(m),qan(n.f,t),n.f}function _zn(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 Il),e5((!i.a&&(i.a=new $L(xOt,i,5)),i.a),c),rtn(b,D6n,h)),!!Svn(i)&&cMn(n.a,b,_6n,RPn(n,Svn(i))),!!Pvn(i)&&cMn(n.a,b,R6n,RPn(n,Pvn(i))),!(0==(!i.e&&(i.e=new h_(FOt,i,10,9)),i.e).i)&&(a=new SC(n,l=new Il),e5((!i.e&&(i.e=new h_(FOt,i,10,9)),i.e),a),rtn(b,F6n,l)),0!=(!i.g&&(i.g=new h_(FOt,i,9,10)),i.g).i&&(u=new PC(n,d=new Il),e5((!i.g&&(i.g=new h_(FOt,i,9,10)),i.g),u),rtn(b,K6n,d))}function Kzn(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((nKn(),HCt)),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(),oCt)&&h.e.c.length-h.g.c.length>0||h.j==ICt&&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(),Klt)||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:KVn,v=r?BB(mMn(f,Wmt),19).a:KVn,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)?_Qn: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 IT(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 IT(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>_Qn||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==KPt||c==FPt),oRn(u,!1),Otn(u.e.wf(),new $K(u,!1,r)),LJ(u,u.f,(Dtn(),Git),(kUn(),sCt)),LJ(u,u.f,Uit,SCt),LJ(u,u.g,Git,ICt),LJ(u,u.g,Uit,oCt),Bpn(u,sCt),Bpn(u,SCt),hV(u,oCt),hV(u,ICt),qD(),(a=u.A.Hc((mdn(),DCt))&&u.B.Hc((nKn(),UCt))?ndn(u):null)&&rj(u.a,a),Kzn(u),ryn(u),cyn(u),VGn(u),M_n(u),mkn(u),Kgn(u,sCt),Kgn(u,SCt),IRn(u),PHn(u),e?(Gbn(u),ykn(u),Kgn(u,oCt),Kgn(u,ICt),o=u.B.Hc((nKn(),XCt)),MIn(u,o,sCt),MIn(u,o,SCt),SIn(u,o,oCt),SIn(u,o,ICt),JT(new Rq(null,new w1(new Ob(u.i),0)),new Cn),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==_Pt?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,(Kkn(),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 _n)):(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 rC(iln(i=0),iln(r));BKn(t,c,i,r);)e=BB(o.Ce(e,c),46),i=BB(e.a,19).a,r=BB(e.b,19).a;KRn(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),Ien(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&&Ien(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=IMn(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=CMn(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 xI((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),Ien(s,s.j+E*a);r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),f=Uhn(new tK(f))}n.a&&n.a.lg(new tK(f)),r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),Xzn(n,t,new tK(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(),_ft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=0,IZ(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(),_ft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=p.b,IZ(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(),Iut)&&(c=BB(mMn(a,(HXn(),Igt)),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(),Iut))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(),Ift)){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 Ky("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 xI(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),BC(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 xI(t.g,t.f),o,new xI(i.g,i.f),BB(mMn(e,Udt),103),e),(hWn(),dlt),i),Hl(c=BB(xq(r.j,0),11),jKn(i)),hon(r,cpt,(lCn(),nbn(rCt))),h=BB(ZAn(t,cpt),174).Hc(eCt),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=$Cn(new xI(a.i,a.j),new xI(a.g,a.f),new xI(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,Ipt,MD(ZAn(JJ(t),Ipt))),hon(r,Cpt,MD(ZAn(JJ(t),Cpt))),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(),Krn(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 nK(new s1(t,0,c)),o=new nK(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)),Krn(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(),Iut)&&vA(BB(mMn(o,(HXn(),ept)),98))){for(w=cRn(o,(ain(),Hvt),(kUn(),oCt)).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,ICt).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 ISn,t),qIn(s,BB(ZAn(t,(HXn(),upt)),61)),hon(s,(hWn(),dlt),t),IZ(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 h_(KOt,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 h_(KOt,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 h_(KOt,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(),sCt)||s.j==SCt)&&i.Fc((bDn(),gft));break;case 4:case 3:(s.j==(kUn(),oCt)||s.j==ICt)&&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(),Ilt))))==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 rC(Lyt,s)):TU(m,new rC(Nyt,s)):t.a._b(p)?TU(o,new rC(Lyt,s)):TU(o,new rC(Nyt,s))}if(m.a.gc()>1)for(e5(m,new sI(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 hI(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(_jt)),u2(n,w4n,PZn,mpn(Ijt)),u2(n,w4n,BZn,mpn(Cjt)),u2(n,w4n,SZn,mpn(Ojt)),u2(n,w4n,IZn,mpn(Pjt)),u2(n,w4n,MZn,mpn(Ajt)),u2(n,w4n,CZn,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(Kjt))}function eUn(n){var t;if(this.r=xV(new Pn,new In),this.b=new Hbn(BB(yX(FCt),290)),this.p=new Hbn(BB(yX(FCt),290)),this.i=new Hbn(BB(yX(_rt),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(),_St)),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,CPt))),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((nKn(),HCt)),this.f=new Cgn(0,t,0),this.g=new Cgn(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),Ien(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);_Un(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((CPn(),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=E_n(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(),sCt)||t==SCt)&&(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(),Ipt)))),b=Gy(MD(mMn(n,Cpt))),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((lCn(),eCt)))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(rCt))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 Ih),RO(Qtt,new $h),RO(Gk(NNt,1),new Lh),RO(ktt,new Nh),RO(Ttt,new xh),RO(Qtt,new Ks),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(Itt,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(Ktt,new Eh),RO(Qtt,new Th),RO(Qtt,new Mh),RO(Qtt,new Sh),RO(Ktt,new Ph),RO(Rtt,new Ch),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=m_("%",a=t.substr(1,h-1))?null:$Un(a),i=0,o)try{i=lKn(t.substr(h+2),KVn,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:m_(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=lKn(t.substr(s+1),KVn,DWn)}catch(m){if(!cL(m=lun(m),127))throw Hp(m);l=t}for(l=m_("%",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:m_(l,g))&&0==e--))return c;return null}return Kqn(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 _j((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]=aCn(Gtt[e]);for(t=0;t<Xtt.length;t++)Xtt[t]=aCn(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>KVn&&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>KVn&&(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),(nKn(),qCt))&&(Ol(l=BB(ZAn(b,zgt),116),c.a),Kl(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)?IUn(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(mKn(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,IZn,mpn(zct)),u2(n,gZn,CZn,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(),BIt)&&f!=qIt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=f==BIt?c-2*n.w:c,f=FIt),r<c&&!n.B.Hc((nKn(),WCt)))f==BIt?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==BIt?c-2*n.w:c,f=FIt),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(),sCt)?-h.rf().b-Gy(MD(h.We(aPt))):Gy(MD(h.We(aPt))):h.Hf()==(kUn(),sCt)?-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(),BIt)&&l!=qIt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=l==BIt?c-2*n.w:c,l=FIt),r<c&&!n.B.Hc((nKn(),WCt)))l==BIt?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==BIt?c-2*n.w:c,l=FIt),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(),ICt)?-f.rf().a-Gy(MD(f.We(aPt))):h+Gy(MD(f.We(aPt))):f.Hf()==(kUn(),ICt)?-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,PCt=new WI(hJn,0),sCt=new WI(mJn,1),oCt=new WI(yJn,2),SCt=new WI(kJn,3),ICt=new WI(jJn,4),SQ(),wCt=new Ak(new Y_(n=BB(Vj(FCt),9),BB(SR(n,n.length),9),0)),dCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[]))),hCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[]))),ECt=ffn(EG(SCt,Pun(Gk(FCt,1),YZn,61,0,[]))),MCt=ffn(EG(ICt,Pun(Gk(FCt,1),YZn,61,0,[]))),yCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[SCt]))),bCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),jCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),gCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt]))),TCt=ffn(EG(SCt,Pun(Gk(FCt,1),YZn,61,0,[ICt]))),fCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[SCt]))),mCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,ICt]))),lCt=ffn(EG(oCt,Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt]))),kCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[SCt,ICt]))),pCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt]))),vCt=ffn(EG(sCt,Pun(Gk(FCt,1),YZn,61,0,[oCt,SCt,ICt])))}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=IJ(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),GC(b)!==GC(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?qC(AY(f.f,null)):hS(f.g,o))?BB(null==o?qC(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&&IDn(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),Ilt)))&&!qy(TD(mMn(BB(xq(e.g,0),17),Ilt)))?1:!qy(TD(mMn(BB(xq(t.g,0),17),Ilt)))&&qy(TD(mMn(BB(xq(e.g,0),17),Ilt)))||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(),Iut)&&vA(BB(mMn(h,(HXn(),ept)),98))){for(L_(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(),sCt))),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,SCt).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=KVn,w=KVn,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 xI((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),IA(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);_Un(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(),sCt)?e.c[e.c.length]=c:r==Jvt&&t==(kUn(),SCt)?u.c[u.c.length]=c:Nmn(c,t);break;case 1:o=c.a.d.j,s=c.c.d.j,o==(kUn(),sCt)?bU(c,sCt,(Oun(),mst),c.a):s==sCt?bU(c,sCt,(Oun(),yst),c.c):o==SCt?bU(c,SCt,(Oun(),yst),c.a):s==SCt&&bU(c,SCt,(Oun(),mst),c.c);break;case 2:case 3:SN(i=c.b,(kUn(),sCt))?SN(i,SCt)?SN(i,ICt)?SN(i,oCt)||bU(c,sCt,(Oun(),yst),c.c):bU(c,sCt,(Oun(),mst),c.a):bU(c,sCt,(Oun(),vst),null):bU(c,SCt,(Oun(),vst),null);break;case 4:h=c.a.d.j,f=c.a.d.j,h==(kUn(),sCt)||f==sCt?bU(c,SCt,(Oun(),vst),null):bU(c,sCt,(Oun(),vst),null)}e&&(0==e.c.length||QFn(e,(kUn(),sCt)),0==u.c.length||QFn(u,(kUn(),SCt)))}function IUn(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),Ien(i,n.n.b+t.b),(0!=BB(ZAn(i,Fgt),174).gc()||n.e||GC(mMn(vW(n),Kgt))===GC((Nvn(),mvt))&&pA((bvn(),(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),_gt),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 CUn(n){var t,e,i,r,c;switch(OY(n,i8n),(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i+(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i){case 0:throw Hp(new Ky("The edge must have at least one source or target."));case 1:return 0==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i?JJ(PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))):JJ(PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)))}if(1==(!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b).i&&1==(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c).i){if(r=PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)),c=PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,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 h_(_Ot,n,4,7)),n.b),(!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c)])))),82));dAn(i);)if((e=PTn(BB(U5(i),82)))!=t&&!Itn(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=VC(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)||(VCn(g,k,.4*r*e.Math.abs(m-y)),g.c.j==(kUn(),ICt)&&(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)))jIn(s.f,o,t);else if(v=f3(t))for(r=new Wb(v.k);r.a<r.c.c.length;)JCn(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(),yCt).Hc(c.c.j)||!yCt.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==ICt&&$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==oCt&&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)),CAt,OAt)&&ton((b1(r+2,n.length),n.charCodeAt(r+2)),CAt,OAt))if(e=IH((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=UCn(n.substr(0,a+i),t)}else u=UCn(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 rIn(n,t,a,r);case 99:return cIn(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 ITn(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(),oCt)&&t!=ICt){for(a=t==sCt?(Dan(),Nrt):(Dan(),Rrt),k=t==sCt?(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(HK(a),n.t),m=t==sCt?_Qn: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==sCt?e.Math.max(m,g.b+h.b.rf().b):e.Math.min(m,g.b));for(m+=t==sCt?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=IMn(BB(r.Pb(),79)))&&((u=BB(qC(AY(t.f,s)),21))||(u=Oxn(s),jIn(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=CMn(BB(o.Pb(),79)))&&((u=BB(qC(AY(t.f,s)),21))||(u=Oxn(s),jIn(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 Ik).a+=t<0?"0E+":"0E",b.a+=t==KVn?"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 Ck,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(),oCt)).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(),Iut)||u==Cut||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(),ICt)).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(),Iut)||u==Cut||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 _Un(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 xI(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=GC(ZAn(n,(sWn(),uPt)))===GC((QEn(),XIt)),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(),PCt)&&(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||Ien(v,v.j*f);break;case 3:o||Pen(v,v.i*E),Ien(v,v.j+s);break;case 4:o||Ien(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),Ien(l,l.j+s*h)):j-h<0&&w>=0&&(Pen(l,l.i+k*j),Ien(l,l.j+s)));return Ypn(n,(sWn(),_St),(mdn(),new Y_(a=BB(Vj(YCt),9),BB(SR(a,a.length),9),0))),new xI(E,f)}function KUn(n){var t,i,r,c,a,u,o,s,h,f,l;if(f=JJ(PTn(BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)))==JJ(PTn(BB(Wtn((!n.c&&(n.c=new h_(_Ot,n,5,8)),n.c),0),82))),u=new Gj,(t=BB(ZAn(n,(Xsn(),hIt)),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,gIt),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 q_n(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]=KVn;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(),jIt)?(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(),jIt)?(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(),jIt)?(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(),jIt)?(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,I,C,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,C=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()),I=(o=BB(h.d.Xb(h.c=h.b++),33)).g,l=o.f,C+I>w&&(a&&(fO(j,b),fO(T,iln(h.b-1))),C=i.b,O+=b+t,b=0,f=e.Math.max(f,i.b+i.c+I)),Pen(o,C),Ien(o,O),f=e.Math.max(f,C+I+i.c),b=e.Math.max(b,l),C+=I+t;if(f=e.Math.max(f,r),(P=O+b+i.a)<c&&(b+=c-P,P=c),a)for(C=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&&(C=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-C-i.c,m=o.g,Sen(o,g),lIn(o,new xI(g,d),new xI(m,v))),C+=o.g+t;return new xI(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 tK(o.cc(p)),SQ(),m$(u,new Kw(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=KVn,h=KVn,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 xI(f,l)),hon(i,uat,new xI(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),V_n(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 IT(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 IT(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(),Cut)){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(),ICt)).Kc().Pb(),11),g=BB(DSn(r,oCt).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(_$(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(_$(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,IPn(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,IPn(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,IPn(r,c);if(n.b){if(b=new xI(-i,-i),BB(t.We((sWn(),fPt)),174).Hc((lCn(),rCt)))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),XKn(r,s.Bf(),s.zf(),t,s,b,i)}}n.b&&XKn(r,t.Bf(),t.zf(),t,null,null,i),(o=new AK(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=Con(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 IC(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 34:u=lx(t,34,++h),WB(o,new IC(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 91:WB(o,new IC(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 IC(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((lCn(),nCt)),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(CNt,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]),m_(o=eNt[c],"Specials")&&Yxn(h,65520,65533),m_(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(),sCt)){a=!0;break n}if(b.j==SCt){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(),_lt)),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,_lt,c)):(r=BB(mMn(i,(hWn(),Dft)),15))?f?c=r:(g=BB(mMn(i,_lt),15))?c=r.gc()<=g.gc()?r:g:(c=new Np,hon(i,_lt,c)):(c=new Np,hon(i,Dft,c)),c.Fc(n),hon(n,(hWn(),_ft),e),t.d==e?(MZ(t,null),e.e.c.length+e.g.c.length==0&&IZ(e,null),gsn(e)):(SZ(t,null),e.e.c.length+e.g.c.length==0&&IZ(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,I,C;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(),VIt)),PZ(a,r),Bl(a,(uSn(),Tut)),IZ(g=new ISn,a),qIn(g,(kUn(),ICt)),IZ(S=new ISn,a),qIn(S,oCt),hon(i=new $vn(n),ept,VIt),PZ(i,c),Bl(i,Tut),IZ(p=new ISn,i),qIn(p,ICt),IZ(P=new ISn,i),qIn(P,oCt),SZ(j=new wY,T.c),MZ(j,g),SZ(C=new wY,S),MZ(C,p),SZ(T,P),u=new v3(a,i,j,C,T),hon(a,(hWn(),Rft),u),hon(i,Rft,u),(I=j.c.i).k==Tut&&((o=BB(mMn(I,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))))||(GC(ZAn(t,Ldt))===GC((mon(),Nvt))&&GC(ZAn(t,Gdt))!==GC((Vvn(),Eht))&&GC(ZAn(t,Gdt))!==GC((Vvn(),kht))&&!qy(TD(ZAn(t,xdt)))&&GC(ZAn(t,Idt))===GC((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(KOt,t,12,3)),t.b));s.e!=s.i.gc();)u=BB(kpn(s),79),(GC(ZAn(t,(HXn(),Ldt)))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((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&&QCn(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&&QCn(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,I,C,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(),Iut)&&(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 _d(n))),g=RQn,d=DWn,u=null,O=A,C=A,a=o,c=o,A<0&&(O=BB(Tmt.a.zd(),19).a,C=BB(Tmt.b.zd(),19).a),o<0&&(a=BB(Emt.a.zd(),19).a,c=BB(Emt.b.zd(),19).a),I=O;I<=C;I++)for(r=a;r<=c;r++)v=Gy(MD((S=LBn(n,I,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((qK(),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 rC(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,I;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=VC((s=BB(xq(t.b,0),29)).a,(dxn(),jyt)),l=VC((d=BB(xq(t.b,t.b.c.length-1),29)).a,jyt),g=new Wb(t.b),p=null,I=0;do{for(RUn(n,p,m=g.a<g.c.c.length?BB(n0(g),29):null),MFn(n),P=0,y=I,b=!p||f&&p==s,w=!m||l&&m==d,(M=Kk(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=I,k.a.b=y-I,k.F=P,k.p=!p;gun(n.a,n.i),I=y,m&&(I+=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=I,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]):GC(b)===GC(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(GC(b)===GC(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=z_(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=q_(n,BB(b=r.Pb(),72),l);l?(l.Ei(f),l.Fi()):ban(n.e,f)}else{for(l=$_(t.gc()),r=t.Kc();r.Ob();)l=q_(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||gKn(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||JCn(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 xI(c.c+c.b,c.d)),zH(s,new xI(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 xI(c.c,c.d)),zH(s,new xI(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 xI(c.c,c.d+c.a)),zH(s,new xI(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 xI(c.c,c.d)),zH(s,new xI(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)?_Qn: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=_$(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 h_(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 h_(FOt,g,9,10)),f9(g.g,b)}!e.b&&(e.b=new h_(_Ot,e,4,7)),0!=e.b.i&&(!e.c&&(e.c=new h_(_Ot,e,5,8)),0!=e.c.i)&&(!e.b&&(e.b=new h_(_Ot,e,4,7)),e.b.i<=1&&(!e.c&&(e.c=new h_(_Ot,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 h_(_Ot,e,4,7)),e.b),0),82)),Nin(v,BB(Wtn((!e.c&&(e.c=new h_(_Ot,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=_$(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=_$(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 a_n(n,e,t),-1;if(f==h)return a_n(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 a_n(n,e,t),-1;if(b==s)return a_n(n,t,e),1}}if(!Lx(t,(hWn(),wlt))||!Lx(e,wlt))return(r=iEn(n,t))>(a=iEn(n,e))?a_n(n,t,e):a_n(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)?a_n(n,t,e):a_n(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=yCn(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=OI(r,(hAn(),nAt)),Ngn(t),!o&&s&&!d)return SQ(),SQ(),set;if(u=new Np,GC(ZAn(t,ESt))===GC((ufn(),pIt))&&(OI(r,YOt)||OI(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)),GC(ZAn(f,ESt))===GC(mIt)||P8(f,eSt)&&!j5(r,ZAn(f,mPt))?(gun(u,lXn(n,f,e,i)),Ypn(f,ESt,mIt),__n(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)),__n(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)),wKn(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(),XIt)),d=Gy(MD(n.We(tpt))),hon(h,tpt,d),IZ(f=new ISn,h),t!=QIt&&t!=YIt||(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),qIn(f,(kUn(),oCt)),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),qIn(f,(kUn(),ICt)),l||(s.a=0);break;case 1:hon(h,ilt,(z7(),Ift)),h.o.a=a.a,d<0&&(h.o.b=-d),qIn(f,(kUn(),SCt)),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),qIn(f,(kUn(),sCt)),l||(s.b=0)}if(Hx(f.n,s),hon(h,npt,s),t==UIt||t==WIt||t==XIt){if(w=0,t==UIt&&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==WIt&&(w/=r.b);break;case 1:case 3:w=c.a,t==WIt&&(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(),Kdt)))))<-1||!n.a.i||L_(BB(mMn(n.a.o,ept),98))||abn(n.a.o,(kUn(),oCt)).gc()<2&&abn(n.a.o,ICt).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(),Cut)){for(i=n.b[f.c.p][f.p],f.k==Mut?(i.b=1,BB(mMn(f,(hWn(),dlt)),11).j==(kUn(),oCt)&&(m+=i.a)):(E=abn(f,(kUn(),ICt))).dc()||!tL(E,new Nc)?i.c=1:((r=abn(f,oCt)).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(),sCt)),abn(f,SCt)]))).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),_rn(n.fb,5),n.qb=kan(n,3),Rrn(n.qb,0),_rn(n.qb,1),_rn(n.qb,2),Rrn(n.qb,3),Rrn(n.qb,4),_rn(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),qIn(y,Ccn(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),Ccn(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(),CMt));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),qIn(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 _J(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(AKn(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,I,C,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()),C=iG(s=BB(f.d.Xb(f.c=f.b++),157)),b=eG(s),O+C>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+C)),o.c[o.c.length]=s,Mpn(s,O,A),l=e.Math.max(l,O+C+i.c),w=e.Math.max(w,b),O+=C+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),(I=A+w+i.a)<c&&(w+=c-I,I=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 xI(l,I)}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=DCn(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$(),C8n))));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$(),C8n))))}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(IZ(w=new ISn,t),qIn(w,(kUn(),sCt)),w.n.a=t.o.a/2,IZ(g=new ISn,t),qIn(g,SCt),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,kCn(zJ(s,T6n))),33),i=null,(a=zJ(s,"sourcePort"))&&(i=kCn(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 h_(_Ot,o,4,7)),f9(o.b,f||h),l=BB(sen(n.g,kCn(zJ(s,Y6n))),33),r=null,(u=zJ(s,"targetPort"))&&(r=kCn(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 h_(_Ot,o,5,8)),f9(o.c,b||l),0==(!o.b&&(o.b=new h_(_Ot,o,4,7)),o.b).i||0==(!o.c&&(o.c=new h_(_Ot,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=IFn(HN(n,(kUn(),wCt)),t),w=ayn(HN(n,dCt),t),y=ayn(HN(n,ECt),t),T=uyn(HN(n,MCt),t),l=uyn(HN(n,hCt),t),v=ayn(HN(n,jCt),t),d=ayn(HN(n,gCt),t),j=ayn(HN(n,TCt),t),k=ayn(HN(n,fCt),t),M=uyn(HN(n,bCt),t),p=ayn(HN(n,yCt),t),m=ayn(HN(n,mCt),t),E=ayn(HN(n,lCt),t),S=uyn(HN(n,kCt),t),b=uyn(HN(n,pCt),t),g=ayn(HN(n,vCt),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,wCt),e+r,s+h),w9(HN(n,vCt),e+r,s+h),w9(HN(n,dCt),e+r,0),w9(HN(n,ECt),e+r,s+h+o),w9(HN(n,MCt),0,s+h),w9(HN(n,hCt),e+r+i,s+h),w9(HN(n,gCt),e+r+i,0),w9(HN(n,TCt),0,s+h+o),w9(HN(n,fCt),e+r+i,s+h+o),w9(HN(n,bCt),0,s),w9(HN(n,yCt),e,0),w9(HN(n,lCt),0,s+h+o),w9(HN(n,pCt),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(),sCt)&&((g=new PBn(t,new xI(t.a,r.d.d),r,a)).f.a=!0,g.a=a.c,d.c[d.c.length]=g),a.c.j==SCt&&((g=new PBn(t,new xI(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(),sCt)&&((g=new PBn(t,new xI(t.a,r.d.d),r,a)).f.a=!0,g.a=a.d,d.c[d.c.length]=g),a.d.j==SCt&&((g=new PBn(t,new xI(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,W_n(Qk(Yk(BK(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(Cz($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;W_n(Qk(Yk(BK(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 IT(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 IT(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=IJ(e.Math.floor((r+1)/2))-1,c=IJ(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 IXn(){IXn=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 CXn(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=KVn,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(),sCt)&&c.d.j==SCt){d.c[d.c.length]=c;continue}}for(o=new Wb(d);o.a<o.c.c.length;)KKn(n,c=BB(n0(o),17),e,i,(kUn(),oCt));for(a=new Wb(j);a.a<a.c.c.length;)c=BB(n0(a),17),Bl(E=new $vn(n),(uSn(),Cut)),hon(E,(HXn(),ept),(QEn(),XIt)),hon(E,(hWn(),dlt),c),hon(T=new ISn,dlt,c.d),qIn(T,(kUn(),ICt)),IZ(T,E),hon(M=new ISn,dlt,c.c),qIn(M,oCt),IZ(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 xI(RQn,RQn),t=new xI(_Qn,_Qn),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 xI(t.a-d.a,t.b-d.b),h=new ZFn(new xI(d.a-50,d.b-s.a-50),new xI(d.a-50,t.b+s.a+50),new xI(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),Cbn(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();)(_7(h,(f=BB(r.Pb(),168)).a)||_7(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(),pIt)&&Jcn(t,xat),qy(TD(mMn(n,ugt)))?dq(t,(yMn(),Rat),(lWn(),Hot)):dq(t,(yMn(),Kat),(lWn(),Hot)),null!=mMn(n,(I6(),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),GC(mMn(n,Sgt))!==GC((sNn(),Cvt))&&dq(t,(yMn(),Kat),(lWn(),Not)),e.Hc(pft)&&(dq(t,(yMn(),Rat),(lWn(),Fot)),dq(t,_at,_ot),dq(t,Kat,Kot)),GC(mMn(n,Pdt))!==GC((JMn(),cft))&&GC(mMn(n,Zdt))!==GC((Mbn(),YPt))&&WG(t,(yMn(),Bat),(lWn(),pot)),qy(TD(mMn(n,fgt)))&&dq(t,(yMn(),Kat),(lWn(),got)),qy(TD(mMn(n,Hdt)))&&dq(t,(yMn(),Kat),(lWn(),Wot)),_Ln(n)&&(i=(GC(mMn(n,sgt))===GC(pIt)?BB(mMn(n,Rdt),292):BB(mMn(n,_dt),292))==(_an(),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(),Kat),(lWn(),Vut)),Fat,Qut),Bat,Yut)}return GC(mMn(n,Ldt))!==GC((mon(),Nvt))&&dq(t,(yMn(),Kat),(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,CEt),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,IZn,mpn(kEt)),u2(n,$4n,MZn,mpn(MEt)),u2(n,$4n,CZn,mpn(OEt)),u2(n,$4n,E4n,mpn(PEt)),u2(n,$4n,T4n,mpn(yEt)),u2(n,$4n,P4n,mpn(SEt)),u2(n,$4n,I4n,mpn(AEt)),u2(n,$4n,C4n,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 Ky(d6n+t.ne()+g6n));if(cL(t,457)){if(!(d=SDn(BB(t,671),e)))throw Hp(new Ky(p6n+e+"' is not a valid enumerator of '"+t.ne()+"'"));return d}switch(Ifn((CPn(),Z$t),t).cl()){case 2:e=FBn(e,!1);break;case 3:e=FBn(e,!0)}if(i=Ifn(Z$t,t).$k())return i.Aj().Nh().Kh(i,e);if(f=Ifn(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=Ifn(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 Ky(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=lKn(e,KVn,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<COt.length;++a)try{return BM(COt[a],e)}catch(g){if(!cL(g=lun(g),32))throw Hp(g)}throw Hp(new Ky(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 Ky(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 Ck,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-lKn(u,KVn,DWn),n.e!=IJ(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=aCn(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,JCn(fut=new pJ,(kUn(),wCt),vCt),JCn(fut,MCt,vCt),JCn(fut,MCt,kCt),JCn(fut,hCt,pCt),JCn(fut,hCt,vCt),JCn(fut,dCt,vCt),JCn(fut,dCt,mCt),JCn(fut,ECt,lCt),JCn(fut,ECt,vCt),JCn(fut,yCt,bCt),JCn(fut,yCt,vCt),JCn(fut,yCt,mCt),JCn(fut,yCt,lCt),JCn(fut,bCt,yCt),JCn(fut,bCt,kCt),JCn(fut,bCt,pCt),JCn(fut,bCt,vCt),JCn(fut,jCt,jCt),JCn(fut,jCt,mCt),JCn(fut,jCt,kCt),JCn(fut,gCt,gCt),JCn(fut,gCt,mCt),JCn(fut,gCt,pCt),JCn(fut,TCt,TCt),JCn(fut,TCt,lCt),JCn(fut,TCt,kCt),JCn(fut,fCt,fCt),JCn(fut,fCt,lCt),JCn(fut,fCt,pCt),JCn(fut,mCt,dCt),JCn(fut,mCt,yCt),JCn(fut,mCt,jCt),JCn(fut,mCt,gCt),JCn(fut,mCt,vCt),JCn(fut,mCt,mCt),JCn(fut,mCt,kCt),JCn(fut,mCt,pCt),JCn(fut,lCt,ECt),JCn(fut,lCt,yCt),JCn(fut,lCt,TCt),JCn(fut,lCt,fCt),JCn(fut,lCt,lCt),JCn(fut,lCt,kCt),JCn(fut,lCt,pCt),JCn(fut,lCt,vCt),JCn(fut,kCt,MCt),JCn(fut,kCt,bCt),JCn(fut,kCt,jCt),JCn(fut,kCt,TCt),JCn(fut,kCt,mCt),JCn(fut,kCt,lCt),JCn(fut,kCt,kCt),JCn(fut,kCt,vCt),JCn(fut,pCt,hCt),JCn(fut,pCt,bCt),JCn(fut,pCt,gCt),JCn(fut,pCt,fCt),JCn(fut,pCt,mCt),JCn(fut,pCt,lCt),JCn(fut,pCt,pCt),JCn(fut,pCt,vCt),JCn(fut,vCt,wCt),JCn(fut,vCt,MCt),JCn(fut,vCt,hCt),JCn(fut,vCt,dCt),JCn(fut,vCt,ECt),JCn(fut,vCt,yCt),JCn(fut,vCt,bCt),JCn(fut,vCt,mCt),JCn(fut,vCt,lCt),JCn(fut,vCt,kCt),JCn(fut,vCt,pCt),JCn(fut,vCt,vCt)}function _Xn(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 xI(RQn,RQn),n.c=new xI(_Qn,_Qn),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),n_n(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(_x(E=new _j((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 KXn(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(),Iut)&&s!=Cut&&s!=Mut&&s!=Tut)throw Hp(new Ky("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(),yCt).Hc(f.j)&&(b=Gy(MD(mMn(f,(hWn(),Llt)))),r5(r,new xI(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,yCt.Hc(l.j)&&(b=Gy(MD(mMn(l,(hWn(),Llt)))),r5(r,new xI(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 xI(d.a,d.b),w),UR(v=new xI(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 xI(y.a,y.b),m),UR(k=new xI(iZ(g.a,p.a),iZ(g.b,p.b)),m),_x(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,I,C,O,A,$,L,N,x;if(y=(v=BB(Wtn((!n.b&&(n.b=new h_(_Ot,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,I=(S=BB(Wtn((!n.b&&(n.b=new h_(_Ot,n,4,7)),n.b),0),82)).Dg(),C=S.Eg(),P=S.Cg()/2,j=S.Bg()/2,cL(S,186)&&(I+=WJ(M=BB(S,118)).i,I+=WJ(M).i),I+=P,C+=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=I,I>y+m?d=y+m:I<y-m&&(d=y-m),g=C,C>k+w?g=k+w:C<k-w&&(g=k-w),d>y-m&&d<y+m&&g>k-w&&g<k+w&&(d=y+m),Cen(u=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),d),Aen(u,g),E=y,y>I+P?E=I+P:y<I-P&&(E=I-P),T=k,k>C+j?T=C+j:k<C-j&&(T=C-j),E>I-P&&E<I+P&&T>C-j&&T<C+j&&(T=C+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=CPt,Ipt=APt,Cpt=$Pt,Ppt=OPt,Opt=LPt,$pt=NPt,Npt=RPt,Mpt=IPt,fWn(),gpt=Kwt,kpt=Fwt,Tpt=Bwt,Apt=Hwt,hpt=new XA(pPt,iln(0)),fpt=Dwt,lpt=Rwt,bpt=_wt,zpt=ldt,Rpt=zwt,_pt=Wwt,Bpt=edt,Kpt=Ywt,Fpt=Zwt,Xpt=pdt,Upt=wdt,qpt=odt,Hpt=adt,Gpt=hdt,Rgt=Pwt,_gt=Iwt,rgt=_bt,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=_St,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=qIt),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,_dt=bbt,Rdt=sbt,Hdt=ybt,Cgt=wwt,Ogt=dwt,pgt=Vbt,Kgt=$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,Kdt=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=Ibt,Igt=$St,mgt=Zbt,xgt=jwt,Lpt=xPt,Xdt=Sbt,opt=Nwt,tgt=$bt,ygt=twt,Fdt=vbt,ggt=CSt,jgt=rwt,Bdt=mbt,Ldt=cbt,Adt=ebt,Cdt=nbt,Odt=tbt,$dt=rbt,Idt=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,I;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 Ik).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){I=e0(u,UQn);do{d=I,I=Ojn(I,10),y[--e]=48+dG(ibn(d,cbn(I,10)))&QVn}while(0!=Vhn(I,0))}else{I=u;do{d=I,I=I/10|0,y[--e]=d-10*I+48&QVn}while(0!=I)}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 Ck,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 Ky(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 xI(s.i+l,s.j+f);hU(n.g,k);)Kx(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 rC(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())&&m_(b,v)&&(n.d.d=d);break;case 1:for((i=new xI(n.c.g,n.c.f)).a*=.5,i.b*=.5,Kx(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 Ky(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),jIn(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 h_(KOt,t,8,5)),t.d),(!t.e&&(t.e=new h_(KOt,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 Ky(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(qC(AY(k.f,p)),12))||(g=tFn(p),jIn(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))),jIn(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(qC(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(qC(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,I,C,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;)I=BB(dH(n.e),10),n.b[I.p]=w--,Q_n(n,I),--A;for(;0!=n.f.b;)C=BB(dH(n.f),10),n.b[C.p]=b++,Q_n(n,C),--A;if(A>0){for(l=KVn,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++,Q_n(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=C2((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 Ky("no archive separator"));a=!0,i=fx(n,u,++o),u=o}else u>=0&&m_(n.substr(u,2),"//")?(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,I,C,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=KVn,T=KVn,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&&((C=new rm).b=p++,jRn(n,y,C),O.c[O.c.length]=C);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[(C=BB(s6(m,0),257)).b]=v++;!j[C.b].dc();)--h[($=BB(j[C.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],I=g[a],n.a[I]=d,d.b=I,k=new Wb(d.e);k.a<k.c.c.length;)(y=BB(n0(k),10)).p=I;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(),QIt)&&j!=YIt){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=oCn(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=oCn(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],JCn(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,dKn(e)),i=!0;break;case 105:case 73:case 99:case 67:sHn(a,dKn(e)),(e=-1)<0&&(i=!0);break;case 112:case 80:if(!(u=DCn(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,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#decimal"])),V$n(n.d,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#integer"])),V$n(n.e,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#boolean"])),V$n(n.f,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EBoolean",t8n,"EBoolean:Object"])),V$n(n.i,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#byte"])),V$n(n.g,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#hexBinary"])),V$n(n.j,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EByte",t8n,"EByte:Object"])),V$n(n.n,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EChar",t8n,"EChar:Object"])),V$n(n.t,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#double"])),V$n(n.u,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EDouble",t8n,"EDouble:Object"])),V$n(n.F,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#float"])),V$n(n.G,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EFloat",t8n,"EFloat:Object"])),V$n(n.I,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#int"])),V$n(n.J,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EInt",t8n,"EInt:Object"])),V$n(n.N,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#long"])),V$n(n.O,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"ELong",t8n,"ELong:Object"])),V$n(n.Z,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#short"])),V$n(n.$,K9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EShort",t8n,"EShort:Object"])),V$n(n._,K9n,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,I;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=KVn,w=KVn,v=spn(u.b,0);v.b!=v.d.c;)p=BB(b3(v),86),m+=BB(mMn(p,(IAn(),$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,(IAn(),$kt),iln(m)),hon(u,(qqn(),nkt),new xI(d,g)),hon(u,Zyt,new xI(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,(IAn(),jkt))))),P=0,I=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,I+=f+E,f=0),ELn(k,u,P,I),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())?GC(BB(c.cd(),146).wg())!==GC(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(),JCn(put=new pJ,(kUn(),dCt),wCt),JCn(put,MCt,wCt),JCn(put,gCt,wCt),JCn(put,jCt,wCt),JCn(put,kCt,wCt),JCn(put,mCt,wCt),JCn(put,jCt,dCt),JCn(put,wCt,hCt),JCn(put,dCt,hCt),JCn(put,MCt,hCt),JCn(put,gCt,hCt),JCn(put,yCt,hCt),JCn(put,jCt,hCt),JCn(put,kCt,hCt),JCn(put,mCt,hCt),JCn(put,bCt,hCt),JCn(put,wCt,ECt),JCn(put,dCt,ECt),JCn(put,hCt,ECt),JCn(put,MCt,ECt),JCn(put,gCt,ECt),JCn(put,yCt,ECt),JCn(put,jCt,ECt),JCn(put,bCt,ECt),JCn(put,TCt,ECt),JCn(put,kCt,ECt),JCn(put,pCt,ECt),JCn(put,mCt,ECt),JCn(put,dCt,MCt),JCn(put,gCt,MCt),JCn(put,jCt,MCt),JCn(put,mCt,MCt),JCn(put,dCt,gCt),JCn(put,MCt,gCt),JCn(put,jCt,gCt),JCn(put,gCt,gCt),JCn(put,kCt,gCt),JCn(put,wCt,fCt),JCn(put,dCt,fCt),JCn(put,hCt,fCt),JCn(put,ECt,fCt),JCn(put,MCt,fCt),JCn(put,gCt,fCt),JCn(put,yCt,fCt),JCn(put,jCt,fCt),JCn(put,TCt,fCt),JCn(put,bCt,fCt),JCn(put,mCt,fCt),JCn(put,kCt,fCt),JCn(put,vCt,fCt),JCn(put,wCt,TCt),JCn(put,dCt,TCt),JCn(put,hCt,TCt),JCn(put,MCt,TCt),JCn(put,gCt,TCt),JCn(put,yCt,TCt),JCn(put,jCt,TCt),JCn(put,bCt,TCt),JCn(put,mCt,TCt),JCn(put,pCt,TCt),JCn(put,vCt,TCt),JCn(put,dCt,bCt),JCn(put,MCt,bCt),JCn(put,gCt,bCt),JCn(put,jCt,bCt),JCn(put,TCt,bCt),JCn(put,mCt,bCt),JCn(put,kCt,bCt),JCn(put,wCt,lCt),JCn(put,dCt,lCt),JCn(put,hCt,lCt),JCn(put,MCt,lCt),JCn(put,gCt,lCt),JCn(put,yCt,lCt),JCn(put,jCt,lCt),JCn(put,bCt,lCt),JCn(put,mCt,lCt),JCn(put,dCt,kCt),JCn(put,hCt,kCt),JCn(put,ECt,kCt),JCn(put,gCt,kCt),JCn(put,wCt,pCt),JCn(put,dCt,pCt),JCn(put,ECt,pCt),JCn(put,MCt,pCt),JCn(put,gCt,pCt),JCn(put,yCt,pCt),JCn(put,jCt,pCt),JCn(put,jCt,vCt),JCn(put,gCt,vCt),JCn(put,bCt,wCt),JCn(put,bCt,MCt),JCn(put,bCt,hCt),JCn(put,yCt,wCt),JCn(put,yCt,dCt),JCn(put,yCt,ECt)}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(Ckn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 50:return new yin(BB(Ckn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 5:return new i_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 47:return new r_(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 e_(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 KL(n.a,t,Awn(t.Tg(),n.c));case 13:return new _L(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 f_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 27:return new h_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 29:return new o_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 31:return new c_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 33:return new s_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 35:return new u_(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 37:return new a_(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 q_n(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),d.c[d.c.length]=g;break;case 1:p=new q_n(t,n.c.d,(oZ(),cyt),(gJ(),nyt)),d.c[d.c.length]=p;break;case 4:y=new q_n(t,n.c.d,(oZ(),ryt),(gJ(),tyt)),d.c[d.c.length]=y;break;case 2:k=new q_n(t,n.c.d,(oZ(),cyt),(gJ(),tyt)),d.c[d.c.length]=k;break;default:g=new q_n(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),p=new q_n(t,n.c.d,cyt,nyt),y=new q_n(t,n.c.d,ryt,tyt),k=new q_n(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 iI(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&&CBn(t,h=FUn(n,d,n.c.d),e)&&(f=h),!f)for(s=new Wb(d);s.a<s.c.c.length;)CBn(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),(GC(ZAn(t,Ldt))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((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=GC(ZAn(s,sgt))===GC((ufn(),pIt)),g=null,(T=!P8(s,(sWn(),eSt))||m_(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(KOt,c,12,3)),c.b));o.e!=o.i.gc();)t_n(u=BB(kpn(o),79)),(GC(ZAn(t,Ldt))!==GC((mon(),Nvt))||GC(ZAn(t,Gdt))===GC((Vvn(),Eht))||GC(ZAn(t,Gdt))===GC((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GC(ZAn(t,Idt))!==GC((Bfn(),wut)))&&Ypn(u,(hWn(),wlt),iln(w++)),j=PTn(BB(Wtn((!u.b&&(u.b=new h_(_Ot,u,4,7)),u.b),0),82)),E=PTn(BB(Wtn((!u.c&&(u.c=new h_(_Ot,u,5,8)),u.c),0),82)),qy(TD(ZAn(u,Ggt)))||qy(TD(ZAn(j,Ggt)))||qy(TD(ZAn(E,Ggt)))||(p=c,QCn(u)&&qy(TD(ZAn(j,wgt)))&&qy(TD(ZAn(u,dgt)))||Itn(E,j)?p=j:Itn(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=GC(ZAn(c,sgt))===GC((ufn(),pIt)))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))||m_(SD(ZAn(i,eSt)),w1n),k=GC(ZAn(i,sgt))===GC(pIt),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:X_n(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?nCn(c):3==e?wCn(c):dCn(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,I;if(t_n(t),o=BB(Wtn((!t.b&&(t.b=new h_(_Ot,t,4,7)),t.b),0),82),h=BB(Wtn((!t.c&&(t.c=new h_(_Ot,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 xI(a.j,a.k),XJ(t)),t5(T,e),Itn(s,u)&&(y=Hvt,UR(T,j.n))),E=dHn(j,T,y,i)),P||(ain(),y=Hvt,I=null,a&&vA(BB(mMn(S,ept),98))&&(Y3(I=new xI(a.b,a.c),XJ(t)),t5(I,e)),P=dHn(S,I,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,Kgt),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),_rn(n.b,19),n.a=kan(n,1),Rrn(n.a,1),_rn(n.a,2),_rn(n.a,3),_rn(n.a,4),_rn(n.a,5),n.o=kan(n,2),Rrn(n.o,8),Rrn(n.o,9),_rn(n.o,10),_rn(n.o,11),_rn(n.o,12),_rn(n.o,13),_rn(n.o,14),_rn(n.o,15),_rn(n.o,16),_rn(n.o,17),_rn(n.o,18),_rn(n.o,19),_rn(n.o,20),_rn(n.o,21),_rn(n.o,22),_rn(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),_rn(n.p,6),_rn(n.p,7),otn(n.p),otn(n.p),n.q=kan(n,4),Rrn(n.q,8),n.v=kan(n,5),_rn(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),_rn(n.w,5),n.B=kan(n,7),_rn(n.B,1),otn(n.B),otn(n.B),otn(n.B),n.Q=kan(n,8),_rn(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),_rn(n.T,10),_rn(n.T,11),_rn(n.T,12),_rn(n.T,13),_rn(n.T,14),otn(n.T),otn(n.T),n.U=kan(n,12),Rrn(n.U,2),Rrn(n.U,3),_rn(n.U,4),_rn(n.U,5),_rn(n.U,6),_rn(n.U,7),otn(n.U),n.V=kan(n,13),_rn(n.V,10),n.W=kan(n,14),Rrn(n.W,18),Rrn(n.W,19),Rrn(n.W,20),_rn(n.W,21),_rn(n.W,22),_rn(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),_rn(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),_rn(n.eb,8),_rn(n.eb,9),n.ab=kan(n,17),Rrn(n.ab,0),Rrn(n.ab,1),n.H=kan(n,18),_rn(n.H,0),_rn(n.H,1),_rn(n.H,2),_rn(n.H,3),_rn(n.H,4),_rn(n.H,5),otn(n.H),n.db=kan(n,19),_rn(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=IMt),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=vIt),WSt=new WA(12),XSt=new $O(QJn,WSt),ISt=new $O(jZn,!1),CSt=new $O(m3n,!1),USt=new $O(MZn,!1),QEn(),uPt=new $O(EZn,oPt=YIt),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),CPt=new $O(R2n,0),OPt=new $O(F2n,5),APt=new $O(_2n,1),$Pt=new $O(K2n,1),LPt=new $O(vZn,20),NPt=new $O(B2n,10),RPt=new $O(H2n,10),IPt=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(GIt),9),RSt=new Y_(t,BB(SR(t,t.length),9),0),DSt=new $O(IZn,RSt),cpn(),ZSt=new $O(e3n,nPt=BIt),ePt=new up(i3n),iPt=new up(r3n),rPt=new up(c3n),tPt=new up(a3n),n=BB(Vj(YCt),9),KSt=new Y_(n,BB(SR(n,n.length),9),0),_St=new $O(PZn,KSt),GSt=nbn((nKn(),GCt)),qSt=new $O(SZn,GSt),HSt=new xI(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(I5n),iln(1),new $O(C5n,null),cPt=new up(b3n),sPt=new up(h3n),kUn(),wPt=new $O(U2n,dPt=PCt),aPt=new up(G2n),lCn(),lPt=nbn(rCt),fPt=new $O(CZn,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=aIt),JSt=!0}function hWn(){var n,t;hWn=O,dlt=new up(OZn),Fft=new up("coordinateOrigin"),Mlt=new up("processors"),Kft=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(),MIt)),blt=new iR("maxEdgeThickness",0),Ilt=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 Y_(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),Qft=new iR("externalPortSide",(kUn(),PCt)),Yft=new iR("externalPortSize",new Gj),Wft=new up("externalPortReplacedDummies"),Vft=new up("externalPortReplacedDummy"),Xft=new iR("externalPortConnections",new Y_(n=BB(Vj(FCt),9),BB(SR(n,n.length),9),0)),Tlt=new iR(dJn,0),xft=new up("barycenterAssociates"),_lt=new up("TopSideComments"),Dft=new up("BottomSideComments"),_ft=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),Clt=new iR(z1n,!1),nlt=new up("layerConstraints.hiddenNodes"),mlt=new up("layerConstraints.opposidePort"),Dlt=new up("targetNode.modelOrder")}function fWn(){fWn=O,Knn(),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=_vt),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=Cvt),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)),_an(),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(),Iwt=new $O(P0n,Cwt=lvt),Hcn(),Nbt=new $O(I0n,xbt=Wvt),A6(),Dbt=new $O(C0n,Rbt=Zvt),Usn(),_bt=new $O(O0n,Kbt=rmt),Bbt=new $O(A0n,.2),$bt=new $O($0n,2),Kwt=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(_0n,iln(0)),iln(0),_wt=new $O(K0n,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=Kht),$Pn(),Ibt=new $O(r2n,Cbt=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=pIt,kbt=hht,dbt=hht,fbt=hht,lbt=pIt,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),_ot=new nP("PARTITION_MIDPROCESSOR",8),got=new nP("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Not=new nP("NODE_PROMOTION",10),Cot=new nP("LAYER_CONSTRAINT_POSTPROCESSOR",11),Kot=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),Iot=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,I,C,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((I=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),I.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(_=0,G=new Wb((I=A[N]).j);G.a<G.c.c.length&&(q=BB(n0(G),11)).j==(kUn(),sCt);)for(o=new Wb(q.e);o.a<o.c.c.length;)if(u=BB(n0(o),17),I.c!=u.c.i.c){++_;break}for(F=0,X=new M2(I.j,I.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),I.c!=u.c.i.c&&++U;U>0&&(q.j==(kUn(),sCt)?(n.a[q.p]=rn,++rn):(n.a[q.p]=rn+_+F,++F))}rn+=F}for(z=new xp,d=new fA,$=0,x=(C=t).length;$<x;++$)for(tn=new Wb((I=C[$]).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,I.c!=an.i.c)if(Z=BB(qC(AY(z.f,nn)),467),cn=BB(qC(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),jIn(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),jIn(z.f,an,Z);else WB(cn.a,u),WB(cn.d,nn),jIn(z.f,nn,cn);else w=new DR,d.a.zc(w,d),WB(w.a,u),WB(w.d,nn),jIn(z.f,nn,w),WB(w.d,an),jIn(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),K=0,j=0;j<S.length;j++)switch(S[j].d.g){case 0:++K;break;case 1:c+=--K}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),K=0,p=0;p<Q.length;p++)switch(Q[p].d.g){case 0:++K;break;case 1:c+=--K}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(),LIt),Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt]))])),Srt=new ocn("OUT_T_C",1,Qit,irt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt,OIt]))])),Irt=new ocn("OUT_T_R",2,Jit,irt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt]))])),vrt=new ocn("OUT_B_L",3,Yit,crt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt]))])),prt=new ocn("OUT_B_C",4,Qit,crt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt,OIt]))])),mrt=new ocn("OUT_B_R",5,Jit,crt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt]))])),jrt=new ocn("OUT_L_T",6,Jit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,DIt,OIt]))])),krt=new ocn("OUT_L_C",7,Jit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,xIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,xIt,OIt]))])),yrt=new ocn("OUT_L_B",8,Jit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[CIt,NIt,OIt]))])),Mrt=new ocn("OUT_R_T",9,Yit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,DIt,OIt]))])),Trt=new ocn("OUT_R_C",10,Yit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,xIt])),EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,xIt,OIt]))])),Ert=new ocn("OUT_R_B",11,Yit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LIt,Pun(Gk(GIt,1),$Vn,93,0,[AIt,NIt,OIt]))])),drt=new ocn("IN_T_L",12,Yit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,CIt,OIt]))])),wrt=new ocn("IN_T_C",13,Qit,crt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,IIt,OIt]))])),grt=new ocn("IN_T_R",14,Jit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[DIt,AIt,OIt]))])),lrt=new ocn("IN_C_L",15,Yit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,CIt,OIt]))])),frt=new ocn("IN_C_C",16,Qit,rrt,zit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,IIt,OIt]))])),brt=new ocn("IN_C_R",17,Jit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[xIt,AIt,OIt]))])),srt=new ocn("IN_B_L",18,Yit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,CIt,OIt]))])),ort=new ocn("IN_B_C",19,Qit,irt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,IIt,OIt]))])),hrt=new ocn("IN_B_R",20,Jit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt])),EG($It,Pun(Gk(GIt,1),$Vn,93,0,[NIt,AIt,OIt]))])),Crt=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,_9n,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,_9n,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,K7n,!0),dV(n.u,DNt,"Float",!0),dV(n.v,Itt,"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,Ktt,"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,Ktt,"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 Ic),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,_2n,mpn(Ipt)),u2(n,w1n,K2n,mpn(Cpt)),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,_0n,mpn(lpt)),u2(n,w1n,K0n,mpn(bpt)),u2(n,w1n,U0n,mpn(zpt)),u2(n,w1n,X0n,mpn(Rpt)),u2(n,w1n,W0n,mpn(_pt)),u2(n,w1n,V0n,mpn(Bpt)),u2(n,w1n,Q0n,mpn(Kpt)),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(_gt)),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,IZn,mpn($gt)),u2(n,w1n,Z2n,mpn(Agt)),u2(n,w1n,CZn,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(_dt)),u2(n,w1n,y0n,mpn(Rdt)),u2(n,w1n,d0n,mpn(Hdt)),u2(n,w1n,V1n,mpn(Cgt)),u2(n,w1n,Q1n,mpn(Ogt)),u2(n,w1n,W1n,mpn(pgt)),u2(n,w1n,k0n,mpn(Kgt)),u2(n,w1n,T0n,mpn(Ngt)),u2(n,w1n,X1n,mpn(ugt)),u2(n,w1n,M0n,mpn(Dgt)),u2(n,w1n,I0n,mpn(egt)),u2(n,w1n,C0n,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(Kdt)),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(Igt)),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(Cdt)),u2(n,w1n,h2n,mpn(Odt)),u2(n,w1n,a2n,mpn($dt)),u2(n,w1n,u2n,mpn(Idt)),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,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anySimpleType"])),V$n(n.b,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyType",F9n,_9n])),V$n(BB(Wtn(QQ(n.b),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.b),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,M7n,P7n,t8n,":1",D7n,"lax"])),V$n(BB(Wtn(QQ(n.b),2),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,p7n,M7n,P7n,t8n,":2",D7n,"lax"])),V$n(n.c,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyURI",T7n,y7n])),V$n(n.d,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"base64Binary",T7n,y7n])),V$n(n.e,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$Wn,T7n,y7n])),V$n(n.f,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"boolean:Object",J9n,$Wn])),V$n(n.g,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,S9n])),V$n(n.i,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"byte:Object",J9n,S9n])),V$n(n.j,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"date",T7n,y7n])),V$n(n.k,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"dateTime",T7n,y7n])),V$n(n.n,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"decimal",T7n,y7n])),V$n(n.o,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,I9n,T7n,y7n])),V$n(n.p,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"double:Object",J9n,I9n])),V$n(n.q,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"duration",T7n,y7n])),V$n(n.s,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ENTITIES",J9n,R7n,_7n,"1"])),V$n(n.r,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,R7n,k7n,K7n])),V$n(n.t,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,K7n,J9n,F7n])),V$n(n.u,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,C9n,T7n,y7n])),V$n(n.v,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"float:Object",J9n,C9n])),V$n(n.w,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gDay",T7n,y7n])),V$n(n.B,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonth",T7n,y7n])),V$n(n.A,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonthDay",T7n,y7n])),V$n(n.C,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYear",T7n,y7n])),V$n(n.D,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYearMonth",T7n,y7n])),V$n(n.F,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"hexBinary",T7n,y7n])),V$n(n.G,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ID",J9n,F7n])),V$n(n.H,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREF",J9n,F7n])),V$n(n.J,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREFS",J9n,B7n,_7n,"1"])),V$n(n.I,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,B7n,k7n,"IDREF"])),V$n(n.K,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,O9n])),V$n(n.M,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,H7n])),V$n(n.L,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"int:Object",J9n,O9n])),V$n(n.P,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"language",J9n,q7n,G7n,z7n])),V$n(n.Q,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,A9n])),V$n(n.R,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"long:Object",J9n,A9n])),V$n(n.S,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"Name",J9n,q7n,G7n,U7n])),V$n(n.T,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,F7n,J9n,"Name",G7n,X7n])),V$n(n.U,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"negativeInteger",J9n,W7n,V7n,"-1"])),V$n(n.V,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Q7n,J9n,q7n,G7n,"\\c+"])),V$n(n.X,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NMTOKENS",J9n,Y7n,_7n,"1"])),V$n(n.W,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Y7n,k7n,Q7n])),V$n(n.Y,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,J7n,J9n,H7n,Z7n,"0"])),V$n(n.Z,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,W7n,J9n,H7n,V7n,"0"])),V$n(n.$,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,nnt,J9n,NWn,T7n,"replace"])),V$n(n._,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NOTATION",T7n,y7n])),V$n(n.ab,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"positiveInteger",J9n,J7n,Z7n,"1"])),V$n(n.bb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"processingInstruction_._type",F9n,"empty"])),V$n(BB(Wtn(QQ(n.bb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"data"])),V$n(BB(Wtn(QQ(n.bb),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,Y6n])),V$n(n.cb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"QName",T7n,y7n])),V$n(n.db,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$9n])),V$n(n.eb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"short:Object",J9n,$9n])),V$n(n.fb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"simpleAnyType",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":3",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),1),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":4",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),2),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":5",F9n,d7n])),V$n(n.gb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,NWn,T7n,"preserve"])),V$n(n.hb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"time",T7n,y7n])),V$n(n.ib,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,q7n,J9n,nnt,T7n,y7n])),V$n(n.jb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,tnt,V7n,"255",Z7n,"0"])),V$n(n.kb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedByte:Object",J9n,tnt])),V$n(n.lb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,ent,V7n,"4294967295",Z7n,"0"])),V$n(n.mb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedInt:Object",J9n,ent])),V$n(n.nb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedLong",J9n,J7n,V7n,int,Z7n,"0"])),V$n(n.ob,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,rnt,V7n,"65535",Z7n,"0"])),V$n(n.pb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedShort:Object",J9n,rnt])),V$n(n.qb,K9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"",F9n,_9n])),V$n(BB(Wtn(QQ(n.qb),0),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.qb),1),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xmlns:prefix"])),V$n(BB(Wtn(QQ(n.qb),2),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xsi:schemaLocation"])),V$n(BB(Wtn(QQ(n.qb),3),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"cDATA",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),4),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"comment",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),5),18),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,cnt,j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),6),34),K9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,O6n,j7n,E7n]))}function kWn(n){return m_("_UI_EMFDiagnostic_marker",n)?"EMF Problem":m_("_UI_CircularContainment_diagnostic",n)?"An object may not circularly contain itself":m_(w8n,n)?"Wrong character.":m_(d8n,n)?"Invalid reference number.":m_(g8n,n)?"A character is required after \\.":m_(p8n,n)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":m_(v8n,n)?"'(?<' or '(?<!' is expected.":m_(m8n,n)?"A comment is not terminated.":m_(y8n,n)?"')' is expected.":m_(k8n,n)?"Unexpected end of the pattern in a modifier group.":m_(j8n,n)?"':' is expected.":m_(E8n,n)?"Unexpected end of the pattern in a conditional group.":m_(T8n,n)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":m_(M8n,n)?"There are more than three choices in a conditional group.":m_(S8n,n)?"A character in U+0040-U+005f must follow \\c.":m_(P8n,n)?"A '{' is required before a character category.":m_(I8n,n)?"A property name is not closed by '}'.":m_(C8n,n)?"Unexpected meta character.":m_(O8n,n)?"Unknown property.":m_(A8n,n)?"A POSIX character class must be closed by ':]'.":m_($8n,n)?"Unexpected end of the pattern in a character class.":m_(L8n,n)?"Unknown name for a POSIX character class.":m_("parser.cc.4",n)?"'-' is invalid here.":m_(N8n,n)?"']' is expected.":m_(x8n,n)?"'[' is invalid in a character class. Write '\\['.":m_(D8n,n)?"']' is invalid in a character class. Write '\\]'.":m_(R8n,n)?"'-' is an invalid character range. Write '\\-'.":m_(_8n,n)?"'[' is expected.":m_(K8n,n)?"')' or '-[' or '+[' or '&[' is expected.":m_(F8n,n)?"The range end code point is less than the start code point.":m_(B8n,n)?"Invalid Unicode hex notation.":m_(H8n,n)?"Overflow in a hex notation.":m_(q8n,n)?"'\\x{' must be closed by '}'.":m_(G8n,n)?"Invalid Unicode code point.":m_(z8n,n)?"An anchor must not be here.":m_(U8n,n)?"This expression is not supported in the current option setting.":m_(X8n,n)?"Invalid quantifier. A digit is expected.":m_(W8n,n)?"Invalid quantifier. Invalid quantity or a '}' is missing.":m_(V8n,n)?"Invalid quantifier. A digit or '}' is expected.":m_(Q8n,n)?"Invalid quantifier. A min quantity must be <= a max quantity.":m_(Y8n,n)?"Invalid quantifier. A quantity value overflow.":m_("_UI_PackageRegistry_extensionpoint",n)?"Ecore Package Registry for Generated Packages":m_("_UI_DynamicPackageRegistry_extensionpoint",n)?"Ecore Package Registry for Dynamic Packages":m_("_UI_FactoryRegistry_extensionpoint",n)?"Ecore Factory Override Registry":m_("_UI_URIExtensionParserRegistry_extensionpoint",n)?"URI Extension Parser Registry":m_("_UI_URIProtocolParserRegistry_extensionpoint",n)?"URI Protocol Parser Registry":m_("_UI_URIContentParserRegistry_extensionpoint",n)?"URI Content Parser Registry":m_("_UI_ContentHandlerRegistry_extensionpoint",n)?"Content Handler Registry":m_("_UI_URIMappingRegistry_extensionpoint",n)?"URI Converter Mapping Registry":m_("_UI_PackageRegistryImplementation_extensionpoint",n)?"Ecore Package Registry Implementation":m_("_UI_ValidationDelegateRegistry_extensionpoint",n)?"Validation Delegate Registry":m_("_UI_SettingDelegateRegistry_extensionpoint",n)?"Feature Setting Delegate Factory Registry":m_("_UI_InvocationDelegateRegistry_extensionpoint",n)?"Operation Invocation Delegate Factory Registry":m_("_UI_EClassInterfaceNotAbstract_diagnostic",n)?"A class that is an interface must also be abstract":m_("_UI_EClassNoCircularSuperTypes_diagnostic",n)?"A class may not be a super type of itself":m_("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",n)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":m_("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",n)?"The opposite of the opposite may not be a reference different from this one":m_("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",n)?"The opposite must be a feature of the reference's type":m_("_UI_EReferenceTransientOppositeNotTransient_diagnostic",n)?"The opposite of a transient reference must be transient if it is proxy resolving":m_("_UI_EReferenceOppositeBothContainment_diagnostic",n)?"The opposite of a containment reference must not be a containment reference":m_("_UI_EReferenceConsistentUnique_diagnostic",n)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":m_("_UI_ETypedElementNoType_diagnostic",n)?"The typed element must have a type":m_("_UI_EAttributeNoDataType_diagnostic",n)?"The generic attribute type must not refer to a class":m_("_UI_EReferenceNoClass_diagnostic",n)?"The generic reference type must not refer to a data type":m_("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",n)?"A generic type can't refer to both a type parameter and a classifier":m_("_UI_EGenericTypeNoClass_diagnostic",n)?"A generic super type must refer to a class":m_("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",n)?"A generic type in this context must refer to a classifier or a type parameter":m_("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",n)?"A generic type may have bounds only when used as a type argument":m_("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",n)?"A generic type must not have both a lower and an upper bound":m_("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",n)?"A generic type with bounds must not also refer to a type parameter or classifier":m_("_UI_EGenericTypeNoArguments_diagnostic",n)?"A generic type may have arguments only if it refers to a classifier":m_("_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 _p,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 _p,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 _p,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,I6n,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,I6n),$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),C6n,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,_Ot,W5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.c),0),18),n.d,BB(Wtn(QQ(n.d),1),18),"outgoingEdges",0,-1,_Ot,!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,_Ot,!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),C6n,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),C6n,0,1,XOt,!1,!1,!0,!1,!1,!1,!1),z0(n.d,KOt,V5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.d),0),18),n.i,BB(Wtn(QQ(n.i),3),18),"containingNode",0,1,KOt,!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,KOt,!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,KOt,!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,KOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.d),4),34),n.wb.e,"hyperedge",null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),5),34),n.wb.e,$6n,null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),6),34),n.wb.e,"selfloop",null,0,1,KOt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),7),34),n.wb.e,"connected",null,0,1,KOt,!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),C6n,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,_6n,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),K6n,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 _p,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),KOn(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,_At,s9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.a),0),34),n._,T6n,null,0,1,_At,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.a),1),18),n.ab,null,"details",0,-1,_At,!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,_At,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),3),18),n.S,null,"contents",0,-1,_At,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),4),18),n.S,null,"references",0,-1,_At,!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),KOn(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"),KW(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,KAt,h9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.eb),0),34),n.e,"ordered",a5n,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),1),34),n.e,"unique",a5n,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),2),34),n.I,"lowerBound",null,0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),3),34),n.I,"upperBound","1",0,1,KAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),4),34),n.e,"many",null,0,1,KAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.eb),5),34),n.e,"required",null,0,1,KAt,!0,!0,!1,!1,!0,!0),Myn(BB(Wtn(QQ(n.eb),6),18),n.p,null,"eType",0,1,KAt,!1,!0,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.eb),7),18),n.H,null,"eGenericType",0,1,KAt,!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,KNt,"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,Itt,"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.$,Ktt,"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,IWn,CWn,OWn,AWn="object",$Wn="boolean",LWn="number",NWn="string",xWn="function",DWn=2147483647,RWn="java.lang",_Wn={3:1},KWn="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,IVn={3:1,6:1,4:1,5:1,165:1},CVn="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},_Vn=1e-4,KVn=-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,IQn=524288,CQn=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,_Qn=-1/0,KQn=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",IYn="org.eclipse.elk.alg.common.compaction.oned",CYn="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",_Yn="ScanlineConstraintCalculator",KYn="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.",IJn=" Given center based coordinates were (",CJn="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",_Jn="org.eclipse.elk.alg.disco.graph",KJn="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",IZn="org.eclipse.elk.nodeLabels.placement",CZn="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",_Zn="org.eclipse.elk.stress.iterationLimit",KZn="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 '",I1n="FIRST_SEPARATE",C1n="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",_1n="org.eclipse.elk.alg.layered.intermediate.preserveorder",K1n="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",I0n="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",C0n="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",_0n="org.eclipse.elk.layered.priority.shortness",K0n="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",I2n="wrapping.cutting",C2n="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",_2n="org.eclipse.elk.spacing.labelPortHorizontal",K2n="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},I3n="org.eclipse.elk.alg.layered.p3order",C3n="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",_3n=.09999999999999998,K3n=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",I4n="org.eclipse.elk.rectpacking.rowCompaction",C4n="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",_4n="org.eclipse.elk.underlyingLayoutAlgorithm",K4n="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",I5n="org.eclipse.elk.font.name",C5n="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",_5n="org.eclipse.elk.fixed",K5n="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",I6n="width",C6n="parent",O6n="text",A6n="children",$6n="hierarchical",L6n="sources",N6n="targets",x6n="sections",D6n="bendPoints",R6n="outgoingShape",_6n="incomingShape",K6n="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",I8n="parser.atom.3",C8n="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",_8n="parser.ope.1",K8n="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",I9n="double",C9n="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},_9n="mixed",K9n="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",I7n="uninitialized",C7n="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",_7n="minLength",K7n="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",Int="default",Cnt="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,_Wn),vX(KWn,"Optional",1998),wAn(1170,1998,_Wn,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(KWn,"Absent",1170),wAn(628,1,{},mk),vX(KWn,"Joiner",628);var Lnt=bq(KWn,"Predicate");wAn(582,1,{169:1,582:1,3:1,45:1},Hf),MWn.Mb=function(n){return _on(this,n)},MWn.Lb=function(n){return _on(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(KWn,"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(KWn,"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(),GC(n)===GC(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 qC(FEn(this,n,!1))},MWn.Hb=function(){return Hun(this.vc())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return new Ib(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 qC(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():Iq(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(){Iq(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},ID),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,CD),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){Krn(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 _nt,Knt,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 Csn(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 ECn(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())))&&TCn(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 CX(new dE(this.b))},MWn.hd=function(){return CX(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)?CX(BB(n,271)):(SQ(),new dN(BB(n,84)))},MWn.Zb=function(){return this.f||(this.f=cL(this.c,171)?new CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 Ijn(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),WC(t.c.e,t.b)),83))&&wfn(e.vc(),new vT(WC(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),WC(t.c.e,t.b)),83))&&dfn(e.vc(),new vT(WC(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(WC(this.c.e,this.b),WC(t.c.e,t.b))&&wW(WC(this.c.c,this.a),WC(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,[WC(this.c.e,this.b),WC(this.c.c,this.a),U6(this.c,this.b,this.a)]))},MWn.Ib=function(){return"("+WC(this.c.e,this.b)+","+WC(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(){Iq(this.kc())},MWn.vc=function(){return new ml(this)},MWn.lc=function(){return new IV(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(U_(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(U_(this.c,n),19)))throw Hp(new Ky(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 JC(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){d_(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,w_),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(),Knt)?1:n==(ey(),_nt)?-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){Krn(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 Can(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 CT(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 WC(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 KT(this.b,n)},MWn.Id=function(){return hfn(new el(this))},MWn.Jd=function(){return hfn(iV(this.b))},MWn.Kd=function(){return sK(),new rv(tV(this.b))},MWn.Fb=function(n){return BT(this.b,n)},MWn.xc=function(n){return U_(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 _T(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=CY(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 w_n(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&&(GC(n)===GC(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),YIn(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 IKn(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&&(GC(n)===GC(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,YIn(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 sK(),new yk(this.a)},MWn.Cc=function(){return sK(),new yk(this.a)},MWn.pd=function(){return sK(),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,b_),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){sK(),this.a.td(n)},vX(XWn,"ImmutableMapKeySet/lambda$0$Type",1181),wAn(1178,1980,mVn,av),MWn.Kc=function(){return new _H(this)},MWn.Hc=function(n){return null!=n&&Pjn(new _H(this),n)},MWn.Ed=function(){return new _H(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,_H),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,KH),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){Krn(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){_x(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),Iq(new I7(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,I7,_Pn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.e=y_n(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,ZIn(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,CT),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},IT),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,KO(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 KO(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){Cq(BB(n,416))},vX(XWn,"Multiset/lambda$0$Type",1110),wAn(737,1,lVn,pl),MWn.td=function(n){Ctn(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,_Wn),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 WC(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 IG(this.a,n)&&this.b.Hc(n)},MWn.Ic=function(n){return oun(this.a,n)&&this.b.Ic(n)},MWn.dc=function(){return _pn(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 Ian(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 sK(),new yk(this.a)},MWn.Cc=function(){return sK(),new yk(this.a)},MWn.pd=function(){return sK(),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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 CD(this,BB(this.c,171)):cL(this.c,161)?new ID(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 Kwn($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(IY(this,this.g)))),ov(this)},MWn.Ib=function(){return IY(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 GC(this.b)===GC(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(m_((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)&&QC(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},Il,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 XC(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)&&m_(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),IWn={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,_y),vX(RWn,"ClassCastException",205),CWn={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)&&v_(this.a,BB(n,155).a)},MWn.Hb=function(){return IJ(this.a)},MWn.Ib=function(){return""+this.a},MWn.a=0;var Itt=vX(RWn,"Float",155);wAn(32,60,{3:1,102:1,32:1,60:1,78:1},wv,Ky,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 Ctt,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)&&QC(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 _tt,Ktt=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},Ik,Ck,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 JKn(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==JKn(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+IJ(this.e),this.b):(this.b=17*_hn(this.c)+IJ(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,Ign,$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 _hn(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,Ib),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a._b(n)},MWn.Kc=function(){return new Cb(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,Cb),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 _b(this.a.vc().Kc())},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/2",226),wAn(294,1,QWn,_b),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 _A(this.d)^_A(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 _A(this.cd())^_A(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 D_(this,n)},MWn.vc=function(){return new Bb(this)},MWn.xc=function(n){return qC(lsn(this,n))},MWn.ec=function(){return new Kb(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,Kb),MWn.Nc=function(){return new wS(this)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return D_(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(this.a).b))},MWn.Mc=function(n){return!!D_(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(){eK(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 Khn(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,tK),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,I),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 KT(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 _T(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 CY(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 Kq(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,_),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,K),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=_Qn,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 IS(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,IS),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},Y_),MWn.Fc=function(n){return orn(this,BB(n,22))},MWn.Hc=function(n){return IG(this,n)},MWn.Kc=function(){return new QT(this)},MWn.Mc=function(n){return CG(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 GC(n)===GC(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=KVn,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 J_(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,J_),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},Ix,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,nK),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,Iet,Cet=vX(YWn,"LinkedList",68);wAn(970,1,cVn,Z_),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 _A(this.a)},MWn.Ib=function(){return null!=this.a?GWn+kN(this.a)+")":"Optional.empty()"},vX(YWn,"Optional",404),wAn(463,1,{463:1},IO,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?IJ(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},CO,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,I4),MWn.a=0,MWn.b=0;var Oet,Aet,$et,Let=0;vX(YWn,"Random",230),wAn(27,1,fVn,w1,zU,IV),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 _6(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 _6(this,n)},MWn.sd=function(n){return cL(n,182)?_6(this,BB(n,182)):_6(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,Kv),MWn.Vc=function(n,t){_z(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 _z(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 _z(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 _z(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 _z(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(){eK(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,_et=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 Ket,Fet=Ben(YWn,"TreeMap/SubMapType",297,Unt,J2,hK);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 D_(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(new Kb(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,_Wn),MWn.ne=function(){return"DUMMY"},MWn.Ib=function(){return this.ne()},vX(wYn,"Level",2007),wAn(1621,2007,_Wn,U),MWn.ne=function(){return"INFO"},vX(wYn,"Level/LevelInfo",1621),wAn(1640,1,{},_v),vX(wYn,"LogManager",1640),wAn(1780,1,_Wn,iK),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,fK);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 Kz(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),CL(),$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,__),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 j_(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 E_(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 T_(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){Cl(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 FK(this.a,n,t)},vX(pYn,"StreamImpl/lambda$4$Type",1082),wAn(1083,1,lVn,CS),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 _A(this.a)+_A(this.b)};var uit=vX(TYn,"TEdge",168);wAn(308,1,{308:1},ZFn),MWn.Fb=function(n){var t;return!!cL(n,308)&&_7(this,(t=BB(n,308)).a)&&_7(this,t.b)&&_7(this,t.c)},MWn.Hb=function(){return _A(this.a)+_A(this.b)+_A(this.c)},vX(TYn,"TTriangle",308),wAn(221,1,{221:1},I$),vX(TYn,"Tree",221),wAn(1254,1,{},CZ),vX(SYn,"Scanline",1254);var oit=bq(SYn,PYn);wAn(1692,1,{},ltn),vX(IYn,"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=_Qn,vX(IYn,"CGroup",307),wAn(815,1,{},Xv),vX(IYn,"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=_Qn;var sit,hit,fit,lit,bit=vX(IYn,"CNode",57);wAn(814,1,{},Wv),vX(IYn,"CNode/CNodeBuilder",814),wAn(1525,1,{},dn),MWn.Oe=function(n,t){return 0},MWn.Pe=function(n,t){return 0},vX(IYn,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==_Pt?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(IYn,"LongestPathCompaction",1790),wAn(1690,1,{},yOn),MWn.e=!1;var wit,dit,git=vX(IYn,xYn,1690);wAn(1691,1,lVn,Mw),MWn.td=function(n){iun(this.a,BB(n,46))},vX(IYn,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)&&_dn(r.d.d,e.d.d+e.d.a+a)&&e.c.Fc(r)))},vX(IYn,"QuadraticConstraintCalculation",1791),wAn(522,1,{522:1},Dp),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(IYn,RYn,522),wAn(803,1,{},RG),MWn.Me=function(n){this.c=n,pIn(this,new yn)},vX(IYn,_Yn,803),wAn(1718,1,{679:1},fY),MWn.Ke=function(n){KPn(this,BB(n,464))},vX(IYn,KYn,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(IYn,FYn,1719),wAn(464,1,{464:1},OS),MWn.a=!1,vX(IYn,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(IYn,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(IYn,"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,lK);wAn(427,22,{3:1,35:1,22:1,427:1},BS);var kit,jit,Eit,Tit,Mit,Sit,Pit,Iit,Cit,Oit,Ait,$it,Lit,Nit,xit,Dit,Rit,_it=Ben(GYn,"LowLevelSortingCriterion",427,Unt,cJ,bK),Kit=bq(zYn,"ILayoutMetaDataProvider");wAn(853,1,QYn,Gh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,UYn),YYn),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Iit),(PPn(),gMt)),Bit),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),_it),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,wK);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){Krn(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 _N(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,dK);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,gK);wAn(306,212,{212:1,306:1},yJ,wtn,_Y),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},Cgn),MWn.Re=function(){return MCn(this)},MWn.Se=function(){return SCn(this)},MWn.Te=function(){KFn(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,Irt,Crt,Ort=Ben(tJn,"VerticalLabelAlignment",462,Unt,y1,pK);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,In),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,_rt=Ben(sJn,"NodeLabelLocation",159,Unt,tpn,vK);wAn(111,1,{111:1},MOn),MWn.a=!1,vX(sJn,"PortContext",111),wAn(1476,1,lVn,Cn),MWn.td=function(n){IE(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){IE(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,$K),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,Iw),MWn.td=function(n){Cv(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 Krt,Frt,Brt,Hrt,qrt,Grt=Ben(gJn,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Unt,Y2,mK);wAn(222,1,{222:1},xG),vX(gJn,"RectangleStripOverlapRemover/RectangleNode",222),wAn(1788,1,lVn,Cw),MWn.td=function(n){Imn(this.a,BB(n,222))},vX(gJn,"RectangleStripOverlapRemover/lambda$1$Type",1788),wAn(1304,1,MYn,_n),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,{},Kn),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 B_n(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 XCn((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},KS),MWn.a=!1;var zrt,Urt=Ben(EJn,TJn,323,Unt,n3,yK);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(CJn,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(CJn,"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){_W(this.a,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$1$Type",810),wAn(1767,1,lVn,NK),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,{},C$),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},xK),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(_Jn,"DCComponent",561),wAn(394,22,{3:1,35:1,22:1,394:1},_S),MWn.a=!1;var ict,rct,cct=Ben(_Jn,"DCDirection",394,Unt,Z2,kK);wAn(266,134,{3:1,266:1,94:1,134:1},EAn),vX(_Jn,"DCElement",266),wAn(395,1,{395:1},Cmn),MWn.c=0,vX(_Jn,"DCExtension",395),wAn(755,134,AJn,Kj),vX(_Jn,"DCGraph",755),wAn(481,22,{3:1,35:1,22:1,481:1},Cx);var act,uct,oct,sct,hct,fct,lct,bct,wct,dct,gct,pct,vct,mct,yct,kct,jct,Ect,Tct,Mct,Sct,Pct=Ben(KJn,FJn,481,Unt,RV,jK);wAn(854,1,QYn,Hh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(KJn,"DisCoMetaDataProvider",854),wAn(998,1,QYn,qh),MWn.Qe=function(n){BBn(n)},vX(KJn,"DisCoOptions",998),wAn(999,1,{},at),MWn.$e=function(){return new rt},MWn._e=function(n){},vX(KJn,"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 _X(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 ICn(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},CR),MWn.Ib=function(){return u5(this)},vX(cZn,"FEdge",282),wAn(231,134,{3:1,231:1,94:1,134:1},y6);var Ict,Cct,Oct,Act,$ct,Lct,Nct,xct,Dct,Rct,_ct=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 tCn(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?-KU(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 tCn(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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 Kct,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,Iat,Cat,Oat,Aat,$at=Ben(wZn,"ForceModelStrategy",424,Unt,aJ,EK);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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,RZn),""),"Stress Epsilon"),"Termination criterion for the iterative process."),lZn),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_Zn),""),"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){KBn(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,_at,Kat,Fat,Bat,Hat=Ben(HZn,"StressMajorization/Dimension",379,Unt,j1,TK);wAn(991,1,MYn,xw),MWn.ue=function(n,t){return S_(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){RCn(BB(n,37))},vX(GZn,"ElkLayered/lambda$0$Type",1230),wAn(1231,1,lVn,Dw),MWn.td=function(n){P_(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,_w),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),GC(ZAn(n,(HXn(),sgt)))===GC((ufn(),pIt))?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,MK);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=_Qn;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=_Qn,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,{},It),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,_Yn,1825);var Jat=bq(WZn,PYn);wAn(1826,1,{369:1},lY),MWn.Ke=function(n){Gxn(this,BB(n,466))},vX(XZn,KYn,1826),wAn(1827,1,MYn,Ct),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,SK);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){K9(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)&&(JCn(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)))&&GC(mMn(a,Zdt))===GC((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(_Xn(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(),sCt))){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(),ICt))){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(),SCt))){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(),oCt))){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)))&&GC(mMn(a,Zdt))===GC((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(_Xn(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,PK);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(GC(mMn(t,(HXn(),Idt)))===GC((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(_Xn(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),$_n(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,_t),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},LK),MWn.Ib=function(){return dx(this.c)+":"+OCn(this.b)},vX(ZZn,"CrossHierarchyEdge",243),wAn(763,1,MYn,Kw),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 OCn(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 KK(this,i,this.e)),this.d)){if(Lx(i,(hWn(),_lt)))for(t=BB(mMn(i,_lt),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new KK(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 KK(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},KK),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(),Kft))))},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(),Cut))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(),Cut))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,Kt),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=k_n(n.substr(r,t-r),",|;");try{for(a=0,u=(c=o).length;a<u;++a){if(2!=(i=k_n(c[a],"=")).length)throw Hp(new Ky("Expecting a list of key-value pairs."));e=RMn(i[0]),s=bSn(RMn(i[1])),m_(e,"top")?this.d=s:m_(e,"left")?this.b=s:m_(e,"bottom")?this.a=s:m_(e,"right")&&(this.c=s)}}catch(h){throw cL(h=lun(h),127)?Hp(new Ky(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,AK);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,Iut,Cut,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,CK);wAn(116,207,b1n,bm,WA,OK);var Lut,Nut,xut,Dut,Rut,_ut,Kut=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},ISn),MWn.Ib=function(){var n,t,e;return oO(((n=new Ik).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(),sCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),sCt)},vX(t1n,"LPort/lambda$2$Type",1286),wAn(1287,1,qYn,Gt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),oCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),oCt)},vX(t1n,"LPort/lambda$3$Type",1287),wAn(1288,1,qYn,zt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),SCt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),SCt)},vX(t1n,"LPort/lambda$4$Type",1288),wAn(1289,1,qYn,Ut),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),ICt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),ICt)},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 KA(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,DK),MWn.td=function(n){_M(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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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){Iln(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(),Iut)},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(),GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),UPt))},vX(j1n,"EndLabelSorter/lambda$3$Type",1556),wAn(1557,1,DVn,ve),MWn.Mb=function(n){return EM(),GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),XPt))},vX(j1n,"EndLabelSorter/lambda$4$Type",1557),wAn(1503,1,n1n,me),MWn.pf=function(n,t){CHn(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){z_n(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 Cpn(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,Ie),MWn.pf=function(n,t){jBn(BB(n,37),t)},vX(j1n,"HierarchicalPortDummySizeProcessor",1513),wAn(1514,1,n1n,Ce),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 KN(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 qK(),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 qK(),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,{},RK),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,{},_e),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,Ke),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=_Qn,MWn.b=_Qn,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,Iot,Cot,Oot,Aot,$ot,Lot,Not,xot,Dot,Rot,_ot,Kot,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 Ie;case 44:return new Ce;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 Ii;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 Ky(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){L_n(BB(n,37),t)},vX(j1n,"LabelAndNodeSizeProcessor",1541),wAn(1542,1,DVn,Ve),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Iut)},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){KM(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 GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((Rtn(),zPt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return GC(mMn(BB(n,70),(HXn(),Ydt)))===GC((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},c_n),MWn.c=0,MWn.d=null,MWn.f=0,vX(j1n,"LabelDummySwitcher/LabelDummyInfo",286),wAn(1360,1,{},Ze),MWn.Kb=function(n){return Crn(),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 Crn(),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,zK);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){$Kn(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){uKn(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,Ii),MWn.pf=function(n,t){CRn(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,{},Ci),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(),Iut)},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(),Iut)},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,_i),MWn.td=function(n){Ljn(BB(n,10))},vX(j1n,"SelfLoopPostProcessor/lambda$3$Type",1601),wAn(1602,1,{},Ki),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(),Iut)},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(),Iut)},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)),pIn(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)),pIn(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)),pIn(this,new fr),Otn(t,new er),t.c=x8(Ant,HWn,1,0,5,1);break;case 3:i=new Np,pIn(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)),pIn(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 GIn(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 zIn(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 KQ(this.a,n,t)},vX(A1n,"HorizontalGraphCompactor/lambda$1$Type",1524),wAn(1664,1,{},C7),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 GK(),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 GK(),mfn(BB(BB(n,57).g,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$1$Type",1666),wAn(1675,1,DVn,yr),MWn.Mb=function(n){return GK(),cL(BB(n,57).g,10)},vX(A1n,"LGraphToCGraphTransformer/lambda$10$Type",1675),wAn(1676,1,lVn,kr),MWn.td=function(n){_Q(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$11$Type",1676),wAn(1677,1,DVn,jr),MWn.Mb=function(n){return GK(),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 GK(),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 GK(),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 GK(),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 GK(),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,{},Ir),MWn.Kb=function(n){return GK(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$22$Type",1687),wAn(1688,1,DVn,Cr),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){PIn(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 GK(),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 GK(),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 GK(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$6$Type",1671),wAn(1673,1,lVn,Id),MWn.td=function(n){_Cn(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),W_n(BK(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,Ist,Cst=Ben(x1n,"SelfHyperLoopLabels/Alignment",411,Unt,r3,UK);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,_st=Ben(x1n,"SelfLoopType",363,Unt,x5,YK);wAn(1732,1,{},uf),vX(D1n,"PortRestorer",1732),wAn(361,22,{3:1,35:1,22:1,361:1},kP);var Kst,Fst,Bst,Hst,qst,Gst,zst,Ust,Xst,Wst=Ben(D1n,"PortRestorer/PortSideArea",361,Unt,P1,JK);wAn(1733,1,{},Wr),MWn.Kb=function(n){return KMn(),BB(n,15).Oc()},vX(D1n,"PortRestorer/lambda$0$Type",1733),wAn(1734,1,lVn,Vr),MWn.td=function(n){KMn(),BB(n,113).c=!1},vX(D1n,"PortRestorer/lambda$1$Type",1734),wAn(1743,1,DVn,Qr),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),ICt)},vX(D1n,"PortRestorer/lambda$10$Type",1743),wAn(1744,1,{},Yr),MWn.Kb=function(n){return KMn(),BB(n,113).d},vX(D1n,"PortRestorer/lambda$11$Type",1744),wAn(1745,1,lVn,Cd),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 KMn(),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 KMn(),BB(n,11).j==(kUn(),sCt)},vX(D1n,"PortRestorer/lambda$6$Type",1739),wAn(1740,1,DVn,Dr),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),oCt)},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,_r),MWn.Mb=function(n){return KMn(),BB(n,11).j==(kUn(),SCt)},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,XK);wAn(1725,1,{},Kr),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){qIn(BB(n,11),(kUn(),sCt))},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 C_(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 I_(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 _x(e,0,UR(B$((i=n.c.d).n),i.a)),DH(e,UR(B$((r=n.d.d).n),r.a)),EKn(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 II(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(_1n,"ModelOrderNodeComparator",578),wAn(1755,1,DVn,sc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"ModelOrderNodeComparator/lambda$0$Type",1755),wAn(1756,1,{},hc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(_1n,"ModelOrderNodeComparator/lambda$1$Type",1756),wAn(1757,1,DVn,fc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"ModelOrderNodeComparator/lambda$2$Type",1757),wAn(1758,1,{},lc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(_1n,"ModelOrderNodeComparator/lambda$3$Type",1758),wAn(1759,1,DVn,bc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(_1n,"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(_1n,"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(K1n,"ARDCutIndexHeuristic",801),wAn(1479,1,n1n,dc),MWn.pf=function(n,t){o_n(BB(n,37),t)},vX(K1n,"BreakingPointInserter",1479),wAn(305,1,{305:1},v3),MWn.Ib=function(){var n;return(n=new Ik).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(K1n,"BreakingPointInserter/BPInfo",305),wAn(652,1,{652:1},Hd),MWn.a=!1,MWn.b=0,MWn.c=0,vX(K1n,"BreakingPointInserter/Cut",652),wAn(1480,1,n1n,gc),MWn.pf=function(n,t){mLn(BB(n,37),t)},vX(K1n,"BreakingPointProcessor",1480),wAn(1481,1,DVn,pc),MWn.Mb=function(n){return Jnn(BB(n,10))},vX(K1n,"BreakingPointProcessor/0methodref$isEnd$Type",1481),wAn(1482,1,DVn,vc),MWn.Mb=function(n){return Znn(BB(n,10))},vX(K1n,"BreakingPointProcessor/1methodref$isStart$Type",1482),wAn(1483,1,n1n,mc),MWn.pf=function(n,t){rNn(this,BB(n,37),t)},vX(K1n,"BreakingPointRemover",1483),wAn(1484,1,lVn,yc),MWn.td=function(n){BB(n,128).k=!0},vX(K1n,"BreakingPointRemover/lambda$0$Type",1484),wAn(797,1,{},MAn),MWn.b=0,MWn.e=0,MWn.f=0,MWn.j=0,vX(K1n,"GraphStats",797),wAn(798,1,{},kc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(K1n,"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(K1n,"GraphStats/2methodref$max$Type",799),wAn(1660,1,{},Ec),MWn.Ce=function(n,t){return vB(MD(n),MD(t))},vX(K1n,"GraphStats/lambda$1$Type",1660),wAn(1661,1,{},Nd),MWn.Kb=function(n){return wpn(this.a,BB(n,29))},vX(K1n,"GraphStats/lambda$2$Type",1661),wAn(1662,1,{},xd),MWn.Kb=function(n){return VLn(this.a,BB(n,29))},vX(K1n,"GraphStats/lambda$6$Type",1662),wAn(800,1,{},Tc),MWn.Vf=function(n,t){return BB(mMn(n,(HXn(),Kpt)),15)||(SQ(),SQ(),set)},MWn.Wf=function(){return!1},vX(K1n,"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=_Qn,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=_Qn,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(K1n,"MSDCutIndexHeuristic",802),wAn(1617,1,n1n,Sc),MWn.pf=function(n,t){bBn(BB(n,37),t)},vX(K1n,"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,WK);wAn(422,22,{3:1,35:1,22:1,422:1},EP);var oht,sht,hht,fht,lht=Ben(F1n,"ConstraintCalculationStrategy",422,Unt,GY,VK);wAn(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},TP),MWn.Kf=function(){return sCn(this)},MWn.Xf=function(){return sCn(this)};var bht,wht,dht,ght,pht=Ben(F1n,"CrossingMinimizationStrategy",314,Unt,T1,QK);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,ZK);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,Iht=Ben(F1n,"CycleBreakingStrategy",335,Unt,L5,nF);wAn(419,22,{3:1,35:1,22:1,419:1},PP);var Cht,Oht,Aht,$ht,Lht=Ben(F1n,"DirectionCongruency",419,Unt,qY,tF);wAn(450,22,{3:1,35:1,22:1,450:1},IP);var Nht,xht,Dht,Rht,_ht,Kht,Fht,Bht=Ben(F1n,"EdgeConstraint",450,Unt,S1,eF);wAn(276,22,{3:1,35:1,22:1,276:1},CP);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,Ift,Cft=Ben(F1n,"GreedySwitchType",292,Unt,C1,oF);wAn(303,22,{3:1,35:1,22:1,303:1},xP);var Oft,Aft,$ft,Lft=Ben(F1n,"InLayerConstraint",303,Unt,I1,sF);wAn(420,22,{3:1,35:1,22:1,420:1},DP);var Nft,xft,Dft,Rft,_ft,Kft,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,Ilt,Clt,Olt,Alt,$lt,Llt,Nlt,xlt,Dlt,Rlt,_lt,Klt,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,Ibt,Cbt,Obt,Abt,$bt,Lbt,Nbt,xbt,Dbt,Rbt,_bt,Kbt,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,Iwt,Cwt,Owt,Awt,$wt,Lwt,Nwt,xwt,Dwt,Rwt,_wt,Kwt,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,Idt,Cdt,Odt,Adt,$dt,Ldt,Ndt,xdt,Ddt,Rdt,_dt,Kdt,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,Igt,Cgt,Ogt,Agt,$gt,Lgt,Ngt,xgt,Dgt,Rgt,_gt,Kgt,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,Ipt,Cpt,Opt,Apt,$pt,Lpt,Npt,xpt,Dpt,Rpt,_pt,Kpt,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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),Iht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,i0n),f2n),"Node Layering Strategy"),"Strategy for node layering."),bwt),gMt),ovt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,l0n),w2n),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),Ebt),gMt),pht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),Cft),nbn(hMt)))),a2(n,m0n,l0n,dbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),Cft),nbn(hMt)))),a2(n,y0n,l0n,fbt),a2(n,y0n,d2n,lbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,k0n),p2n),"Node Placement Strategy"),"Strategy for node placement."),Lwt),gMt),Avt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,P0n),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Cwt),gMt),kvt),nbn(hMt)))),a2(n,P0n,k0n,Owt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,I0n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,C0n),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(Cj(Aj(Tj(Ej(Ij(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."),Kbt),gMt),hmt),nbn(hMt)))),a2(n,O0n,y2n,Fbt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_0n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K0n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,B0n),T2n),"Post Compaction Strategy"),M2n),Ylt),gMt),mft),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,H0n),T2n),"Post Compaction Constraint Calculation"),M2n),Vlt),gMt),lht),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,V0n),I2n),"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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,Q0n),I2n),"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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,J0n),C2n),"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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,Z0n),C2n),"Valid Indices for Wrapping"),null),mMt),Rnt),nbn(hMt)))),a2(n,Z0n,U0n,ddt),a2(n,Z0n,U0n,gdt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,r2n),A2n),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Cbt),gMt),uht),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,{},Ic),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},_P);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},KP);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,Ivt,Cvt,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,_vt,Kvt,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,_G),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,TC),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){Cqn(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 BCn(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,Cc),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),kot)),_at,Oot),Kat,Cot)},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)),_at,Oot),Kat,Cot)},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,_d),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)),_at,Oot),Kat,Cot)},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 rKn(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(I3n,"AbstractBarycenterPortDistributor",402),wAn(1633,1,MYn,Kd),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(I3n,"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(I3n,"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(I3n,"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(I3n,"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(I3n,"ForsterConstraintResolver",816),wAn(233,1,{233:1},DY,uGn),MWn.Ib=function(){var n,t;for((t=new Ik).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),ZC(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 Imt,Cmt,Omt,Amt,$mt,Lmt=vX(I3n,"ForsterConstraintResolver/ConstraintGroup",233);wAn(1797,1,lVn,qd),MWn.td=function(n){Dgn(this.a,BB(n,10),!1)},vX(I3n,"ForsterConstraintResolver/lambda$0$Type",1797),wAn(214,1,{214:1,225:1},IGn),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(I3n,"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(),ICt):(kUn(),oCt)),bLn(this,n,t,e)},MWn.Mf=function(){this.d=x8(ANt,hQn,25,this.c,15,1),this.a=new Q_(this.d)},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c+=i.j.c.length},MWn.c=0,vX(I3n,"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(I3n,"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(I3n,"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(Cmt),(yMn(),Kat),(lWn(),Bot)),t},MWn.pf=function(n,t){PKn(this,BB(n,37),t)},MWn.e=0,vX(I3n,"LayerSweepCrossingMinimizer",507),wAn(1398,1,lVn,zd),MWn.td=function(n){wBn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),wAn(1399,1,lVn,Ud),MWn.td=function(n){Ohn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),wAn(1400,1,lVn,Xd),MWn.td=function(n){pFn(this.a,BB(n,214))},vX(I3n,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),wAn(454,22,{3:1,35:1,22:1,454:1},YP);var Nmt,xmt=Ben(I3n,"LayerSweepCrossingMinimizer/CrossMinType",454,Unt,D1,MF);wAn(1397,1,DVn,Ac),MWn.Mb=function(n){return Kcn(),0==BB(n,29).a.c.length},vX(I3n,"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(Kmt,{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(I3n,"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,_mt,Kmt=vX(I3n,"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(I3n,"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(I3n,"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(),sCt)&&++r);for(c=t+r,f=t+i,u=xwn(n,(ain(),Hvt)).Kc();u.Ob();)(a=BB(u.Pb(),11)).j==(kUn(),sCt)?(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(I3n,"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(I3n,"ModelOrderBarycenterHeuristic",660),wAn(1803,1,MYn,Wd),MWn.ue=function(n,t){return _Sn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"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(),Kat),(lWn(),Bot)),t},MWn.pf=function(n,t){mY((BB(n,37),t))},vX(I3n,"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(),sCt)&&++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(),sCt)?(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 Ky("Port type is undefined"))}return 1},vX(I3n,"NodeRelativePortDistributor",796),wAn(807,1,{},Vz,HMn),vX(I3n,"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 Q_(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(),Cut)},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(),oCt)?this.b[n]=!0:r.j==ICt&&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,{},Q_),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 yC(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$5$Type",1911),wAn(1912,1,lVn,tg),MWn.td=function(n){mC(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(C3n,"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(C3n,"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(C3n,"LinearSegmentsNodePlacer/LinearSegment",257);wAn(1408,1,E3n,KG),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(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/1methodref$compare$Type",1429),wAn(649,1,{649:1},nI);var Jmt=vX(C3n,"NetworkSimplexPlacer/EdgeRep",649);wAn(401,1,{401:1},GV),MWn.b=!1;var Zmt,nyt,tyt,eyt=vX(C3n,"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(C3n,"NetworkSimplexPlacer/Path",508),wAn(1409,1,{},_c),MWn.Kb=function(n){return BB(n,17).d.i.k},vX(C3n,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),wAn(1410,1,DVn,Kc),MWn.Mb=function(n){return BB(n,267)==(uSn(),Put)},vX(C3n,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),wAn(1411,1,{},Fc),MWn.Kb=function(n){return BB(n,17).d.i},vX(C3n,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),wAn(1412,1,DVn,ig),MWn.Mb=function(n){return HD(tdn(BB(n,10)))},vX(C3n,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),wAn(1413,1,DVn,Bc),MWn.Mb=function(n){return hq(BB(n,11))},vX(C3n,"NetworkSimplexPlacer/lambda$0$Type",1413),wAn(1414,1,lVn,tI),MWn.td=function(n){D$(this.a,this.b,BB(n,11))},vX(C3n,"NetworkSimplexPlacer/lambda$1$Type",1414),wAn(1423,1,lVn,rg),MWn.td=function(n){WIn(this.a,BB(n,17))},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$11$Type",1424),wAn(1425,1,lVn,cg),MWn.td=function(n){BDn(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$12$Type",1425),wAn(1426,1,{},qc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(C3n,"NetworkSimplexPlacer/lambda$13$Type",1426),wAn(1428,1,{},Gc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(C3n,"NetworkSimplexPlacer/lambda$15$Type",1428),wAn(1430,1,DVn,zc),MWn.Mb=function(n){return BZ(),BB(n,401).c.k==(uSn(),Iut)},vX(C3n,"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(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$2$Type",1415),wAn(1433,1,lVn,ag),MWn.td=function(n){N$(this.a,BB(n,11))},MWn.a=0,vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$21$Type",1434),wAn(1435,1,lVn,ug),MWn.td=function(n){dL(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$22$Type",1435),wAn(1436,1,DVn,Vc),MWn.Mb=function(n){return HD(n)},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$24$Type",1437),wAn(1438,1,DVn,og),MWn.Mb=function(n){return EO(this.a,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$25$Type",1438),wAn(1439,1,lVn,eI),MWn.td=function(n){MPn(this.a,this.b,BB(n,10))},vX(C3n,"NetworkSimplexPlacer/lambda$26$Type",1439),wAn(1440,1,DVn,Yc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$27$Type",1440),wAn(1441,1,DVn,Jc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(C3n,"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(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$3$Type",1416),wAn(1417,1,DVn,na),MWn.Mb=function(n){return BZ(),t2(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$4$Type",1417),wAn(1418,1,lVn,hg),MWn.td=function(n){iBn(this.a,BB(n,17))},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$6$Type",1419),wAn(1420,1,DVn,ea),MWn.Mb=function(n){return BZ(),BB(n,10).k==(uSn(),Iut)},vX(C3n,"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(C3n,"NetworkSimplexPlacer/lambda$8$Type",1421),wAn(1422,1,DVn,ra),MWn.Mb=function(n){return BZ(),UH(BB(n,17))},vX(C3n,"NetworkSimplexPlacer/lambda$9$Type",1422),wAn(1404,1,E3n,If),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(C3n,"SimpleNodePlacer",1404),wAn(180,1,{180:1},q_n),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},cI);var iyt,ryt,cyt,ayt=Ben($3n,"BKAlignedLayout/HDirection",516,Unt,VY,PF);wAn(515,22,{3:1,35:1,22:1,515:1},rI);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,IF);wAn(1634,1,{},iI),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,jC),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:_Qn},MWn.cg=function(){},vX($3n,"ThresholdStrategy/NullThresholdStrategy",1763),wAn(579,1,{579:1},aI),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,Cf),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,EC),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"+A_(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},uI);var Pyt,Iyt,Cyt,Oyt,Ayt,$yt,Lyt,Nyt,xyt=Ben(N3n,"HyperEdgeSegmentDependency/DependencyType",520,Unt,WY,CF);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 O_(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 xI(l,a=f),DH(u.a,r),FKn(this,u,c,r,!1),(b=n.r)&&(r=new xI(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),FKn(this,u,c,r,!1),c=b,r=new xI(w,a=t+b.o*i),DH(u.a,r),FKn(this,u,c,r,!1)),r=new xI(g,a),DH(u.a,r),FKn(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(),SCt},MWn.gg=function(){return kUn(),sCt},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 xI(l,a=f),DH(u.a,r),FKn(this,u,c,r,!1),(b=n.r)&&(r=new xI(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),FKn(this,u,c,r,!1),c=b,r=new xI(w,a=t-b.o*i),DH(u.a,r),FKn(this,u,c,r,!1)),r=new xI(g,a),DH(u.a,r),FKn(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(),sCt},MWn.gg=function(){return kUn(),SCt},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 xI(a=f,l),DH(u.a,r),FKn(this,u,c,r,!0),(b=n.r)&&(r=new xI(a,w=Gy(MD(Dpn(b.e,0)))),DH(u.a,r),FKn(this,u,c,r,!0),c=b,r=new xI(a=t+b.o*i,w),DH(u.a,r),FKn(this,u,c,r,!0)),r=new xI(a,g),DH(u.a,r),FKn(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(),oCt},MWn.gg=function(){return kUn(),ICt},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},oI);var Dyt,Ryt,_yt,Kyt,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,sI),MWn.td=function(n){iq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$2$Type",1456),wAn(1457,1,lVn,hI),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},tIn,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 CCn(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},fI),MWn.Kf=function(){return ACn(this)},MWn.Xf=function(){return ACn(this)};var Hyt,qyt=Ben(H3n,"TreeLayoutPhases",393,Unt,j3,AF);wAn(1130,209,NJn,KR),MWn.Ze=function(n,t){var e,i,r,c,a,u;for(qy(TD(ZAn(n,(IAn(),Ikt))))||jJ(new Tw((GM(),new Dy(n)))),qan(a=new P6,n),hon(a,(qqn(),skt),n),vKn(n,a,u=new xp),WKn(n,a,u),c=a,i=new Wb(r=xKn(this.a,c));i.a<i.c.c.length;)e=BB(n0(i),135),WEn(this.b,e,mcn(t,1/r.c.length));Czn(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,_R),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},lI),MWn.Kf=function(){switch(this.g){case 0:return new Qm;case 1:return new _R;case 2:return new Oa;case 3:return new Ia;case 4:return new $a;case 5:return new La;default:throw Hp(new Ky(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,Ikt,Ckt,Okt,Akt,$kt,Lkt,Nkt,xkt,Dkt,Rkt,_kt,Kkt=Ben(G3n,S1n,327,Unt,r9,$F);wAn(1843,1,n1n,Ia),MWn.pf=function(n,t){u$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"LevelHeightProcessor",1843),wAn(1844,1,pVn,Ca),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,W3n),""),"Search Order"),"Which search order to use when computing a spanning tree."),mkt),gMt),Jkt),nbn(hMt)))),_Gn((new Sf,n))},vX(V3n,"MrTreeMetaDataProvider",851),wAn(994,1,QYn,Sf),MWn.Qe=function(n){_Gn(n)},vX(V3n,"MrTreeOptions",994),wAn(995,1,{},Na),MWn.$e=function(){return new KR},MWn._e=function(n){},vX(V3n,"MrTreeOptions/MrtreeFactory",995),wAn(480,22,{3:1,35:1,22:1,480:1},bI);var Fkt,Bkt,Hkt,qkt=Ben(V3n,"OrderWeighting",480,Unt,ZY,LF);wAn(425,22,{3:1,35:1,22:1,425:1},wI);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){fIn(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},dI),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",EIn(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 Ky("The given graph is not a tree!"));for(0==(e=Gy(MD(ZAn(n,Djt))))&&(e=fCn(n)),Ypn(n,Djt,e),i=new Wb(EIn(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,CE),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},gI),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 Ky(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),v_n(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,{},_a),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,{},Ka),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 h_(_Ot,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 xI(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 xI(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 h_(_Ot,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},pI);var ojt,sjt,hjt,fjt,ljt=Ben(a4n,"AnnulusWedgeCriteria",426,Unt,tJ,RF);wAn(380,22,{3:1,35:1,22:1,380:1},vI);var bjt,wjt,djt,gjt,pjt,vjt,mjt,yjt,kjt,jjt,Ejt,Tjt,Mjt,Sjt,Pjt,Ijt,Cjt,Ojt,Ajt,$jt,Ljt,Njt,xjt,Djt,Rjt,_jt,Kjt,Fjt,Bjt,Hjt,qjt,Gjt=Ben(a4n,FJn,380,Unt,_1,_F);wAn(852,1,QYn,yf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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},mI);var zjt,Ujt,Xjt,Wjt,Vjt=Ben(a4n,"RadialTranslationStrategy",340,Unt,E3,KF);wAn(293,22,{3:1,35:1,22:1,293:1},yI);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,IEt),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=O_n(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(),KEt)),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),_Un(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=_Qn,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},kI);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,IEt,CEt,OEt,AEt,$Et,LEt,NEt=Ben(j4n,"OptimizationGoal",381,Unt,K1,BF);wAn(856,1,QYn,Of),MWn.Qe=function(n){Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,I4n),""),"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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,C4n),""),"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,C4n,A4n,null),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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},_J),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,_Et,KEt,FEt=vX(L4n,"DrawingData",220);wAn(355,22,{3:1,35:1,22:1,355:1},jI);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(),KTt)),19).a,OTn(t,"Overlap removal",1),qy(TD(ZAn(n,_Tt))),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 C$(o),e.i),0==u.a.gc())break;e.e=u}for(h2(this.b),IU(this.b,(Pbn(),HEt),(OM(),GTt)),IU(this.b,qEt,e.g),IU(this.b,GEt,(CM(),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},EI);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,_V,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,KV,zF);wAn(430,22,{3:1,35:1,22:1,430:1},TI);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},MI);var sTt,hTt,fTt,lTt,bTt,wTt,dTt,gTt,pTt,vTt,mTt,yTt,kTt,jTt,ETt,TTt,MTt,STt,PTt,ITt,CTt,OTt,ATt,$Tt,LTt,NTt,xTt,DTt,RTt,_Tt,KTt,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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,_4n),""),"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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K4n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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,ITt),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,X4n),V4n),"Whether to run a supplementary scanline overlap check."),null),!0),wMt),ktt),nbn(hMt)))),A_n((new Mf,n)),yHn((new Ef,n))},vX(D4n,"SporeMetaDataProvider",855),wAn(VVn,1,QYn,Mf),MWn.Qe=function(n){A_n(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},SI),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,_un(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,_un(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 CI(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,LI),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,{},INn),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,NI),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))))&&_Fn(BB(n,33))},vX(zYn,"LayoutAlgorithmResolver",1017),wAn(229,1,{686:1,229:1},UZ),MWn.Fb=function(n){return!!cL(n,229)&&m_(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 tK(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,Iu),MWn.vg=function(n){return S4(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$17$Type",886),wAn(887,1,e5n,Cu),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 _j(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 AK(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 OK(BB(n,116))},vX(zYn,"LayoutMetaDataService/lambda$7$Type",876),wAn(877,1,e5n,_u),MWn.ug=function(){return new Yu},vX(zYn,"LayoutMetaDataService/lambda$8$Type",877),wAn(878,1,i5n,Ku),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(CJn,"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)?m_(this.f,BB(n,23).f):cL(n,146)&&m_(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},AI);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},$I);var EMt,TMt,MMt,SMt=Ben(zYn,"LayoutOptionData/Type",277,Unt,Ktn,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,xI,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 Ky("The given string does not contain any numbers."));if(2!=(i=k_n(n.substr(e,t-e),",|;|\r|\n")).length)throw Hp(new Ky("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 Ky(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,_j,Ux),MWn.Pc=function(){return Vsn(this)},MWn.Jf=function(n){var t,e,i,r,c;e=k_n(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 xI(i,c)),++r),++t}catch(a){throw cL(a=lun(a),127)?Hp(new Ky("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 IMt,CMt,OMt,AMt,$Mt,LMt,NMt=vX(f1n,"KVectorChain",74);wAn(248,22,{3:1,35:1,22:1,248:1},DI);var xMt,DMt,RMt,_Mt,KMt,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){GKn(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},RI);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,ISt,CSt,OSt,ASt,$St,LSt,NSt,xSt,DSt,RSt,_St,KSt,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,IPt,CPt,OPt,APt,$Pt,LPt,NPt,xPt,DPt,RPt,_Pt,KPt,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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,w5n),""),"Layout Algorithm"),"Select a specific layout algorithm."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,d5n),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),mMt),aMt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),oIt),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),SIt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),Kut),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,EZn),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oPt),gMt),aCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,p5n),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),mMt),_Nt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,_2n),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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,K2n),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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,Z2n),$5n),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),xSt),mMt),Kut),nbn(hMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,IZn),$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),GIt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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),JIt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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."),KSt),pMt),YCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,s3n),A2n),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pSt),gMt),nIt),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,I5n),"font"),"Font Name"),"Font name used for a label."),yMt),Qtt),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(Mj(Sj(new Fu,C5n),"font"),"Font Size"),"Font size used for a label."),vMt),Att),nbn(oMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),FCt),nbn(fMt)))),Abn(n,new bPn(Oj(Cj(Aj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(Mj(Sj(new Fu,CZn),D5n),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),lPt),pMt),CCt),nbn(sMt)))),Abn(n,new bPn(Oj(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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(Cj(Aj(Tj(Ej(Ij(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),yIt),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."))),b_n((new xf,n)),GKn((new Lf,n)),RDn((new Df,n))},vX(h5n,"CoreOptions",684),wAn(103,22,{3:1,35:1,22:1,103:1},_I);var GPt,zPt,UPt,XPt,WPt=Ben(h5n,TJn,103,Unt,I5,eB);wAn(272,22,{3:1,35:1,22:1,272:1},KI);var VPt,QPt,YPt,JPt,ZPt,nIt=Ben(h5n,"EdgeLabelPlacement",272,Unt,q1,iB);wAn(218,22,{3:1,35:1,22:1,218:1},FI);var tIt,eIt,iIt,rIt,cIt,aIt,uIt,oIt=Ben(h5n,"EdgeRouting",218,Unt,S3,rB);wAn(312,22,{3:1,35:1,22:1,312:1},BI);var sIt,hIt,fIt,lIt,bIt,wIt,dIt,gIt,pIt,vIt,mIt,yIt=Ben(h5n,"EdgeType",312,Unt,a9,cB);wAn(977,1,QYn,xf),MWn.Qe=function(n){b_n(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},HI);var kIt,jIt,EIt,TIt,MIt,SIt=Ben(h5n,"HierarchyHandling",334,Unt,H1,aB);wAn(285,22,{3:1,35:1,22:1,285:1},qI);var PIt,IIt,CIt,OIt,AIt,$It,LIt,NIt,xIt,DIt,RIt=Ben(h5n,"LabelSide",285,Unt,M3,uB);wAn(93,22,{3:1,35:1,22:1,93:1},GI);var _It,KIt,FIt,BIt,HIt,qIt,GIt=Ben(h5n,"NodeLabelPlacement",93,Unt,ken,oB);wAn(249,22,{3:1,35:1,22:1,249:1},zI);var zIt,UIt,XIt,WIt,VIt,QIt,YIt,JIt=Ben(h5n,"PortAlignment",249,Unt,C5,sB);wAn(98,22,{3:1,35:1,22:1,98:1},UI);var ZIt,nCt,tCt,eCt,iCt,rCt,cCt,aCt=Ben(h5n,"PortConstraints",98,Unt,S8,hB);wAn(273,22,{3:1,35:1,22:1,273:1},XI);var uCt,oCt,sCt,hCt,fCt,lCt,bCt,wCt,dCt,gCt,pCt,vCt,mCt,yCt,kCt,jCt,ECt,TCt,MCt,SCt,PCt,ICt,CCt=Ben(h5n,"PortLabelPlacement",273,Unt,c9,fB);wAn(61,22,{3:1,35:1,22:1,61:1},WI);var OCt,ACt,$Ct,LCt,NCt,xCt,DCt,RCt,_Ct,KCt,FCt=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},VI);var BCt,HCt,qCt,GCt,zCt,UCt,XCt,WCt,VCt,QCt,YCt=Ben(h5n,"SizeConstraint",374,Unt,T3,lB);wAn(259,22,{3:1,35:1,22:1,259:1},QI);var JCt,ZCt,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,KMt))),i=qy(TD(ZAn(n,FMt))),0===BB(ZAn(n,RMt),311).g?(u=new tK((!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),_Un(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},YI);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,Ig),MWn.td=function(n){Orn(this.a,BB(n,94))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),wAn(1369,1,DVn,JI),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,ZI),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,nC),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,tC),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,eC),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,iC),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,Cg),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 IJ(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(),gIt)),8))&&(SA(g,T.a,T.b),BB(ZAn(g,fIt),174).Hc((mdn(),DCt))&&(d=BB(ZAn(g,bIt),8)).a>0&&d.b>0&&_Un(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,gIt),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,gIt),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,gIt),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=KUn(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=KUn(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(),lIt))))||_Un(n,b+(m=BB(ZAn(n,wIt),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=k_n(n,";,;"),r=0,c=(i=a).length;r<c;++r){if(t=k_n(i[r],"\\:"),!(e=pGn(cin(),t[0])))throw Hp(new Ky("Invalid option id: "+t[0]));if(null==(u=Zqn(e,t[1])))throw Hp(new Ky("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},cC);var fOt,lOt,bOt,wOt=Ben(y3n,"LoggedGraph/Type",396,Unt,I3,gB);wAn(46,1,{20:1,46:1},rC),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(),NCt)),19))&&0!=e.a?new I4(e.a):new sbn,zy(MD(ZAn(n,ACt))),zy(MD(ZAn(n,xCt))),BB(ZAn(n,$Ct),116)),HSn(t)):HSn(t)},vX(y3n,"RandomLayoutProvider",1126),wAn(553,1,{}),MWn.qf=function(){return new xI(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 xI(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),Ien(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=I2(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 AK(n),Ypn(this.f,(sWn(),$St),t)},MWn.Ff=function(n){Ypn(this.f,(sWn(),XSt),new OK(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(){K7(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 h_(_Ot,n,5,8)),n.c));a.e!=a.i.gc();){if(Itn(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 h_(_Ot,n,4,7)),n.b));r.e!=r.i.gc();)if(Itn(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,IOt,COt,OOt,AOt,$Ot,LOt=bq(q5n,"EObject"),NOt=bq(G5n,z5n),xOt=bq(G5n,U5n),DOt=bq(G5n,X5n),ROt=bq(G5n,"ElkShape"),_Ot=bq(G5n,W5n),KOt=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=Ivn(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 TKn(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 Kqn(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){yIn(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=Kpn(c.Vk(),this,t),c.Zk(this)),(i=this.eh())&&(0!=(g_n(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((CPn(),Z$t),e,n)))throw Hp(new Ky(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 CC(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 IXn(),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)))}yIn(this,n,t)},MWn.zh=function(){return IXn(),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 Kfn(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 IXn(),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 IXn(),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){Ien(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 IXn(),vOt},MWn.Bh=function(n){xpn(this,n)},MWn.xg=function(){return!this.d&&(this.d=new h_(KOt,this,8,5)),this.d},MWn.yg=function(){return!this.e&&(this.e=new h_(KOt,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 h_(_Ot,this,4,7)),this.b;case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),this.c.i<=1));case 8:return hN(),!!nAn(this);case 9:return hN(),!!QCn(this);case 10:return hN(),!this.b&&(this.b=new h_(_Ot,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),0!=this.c.i)}return Kfn(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 h_(_Ot,this,4,7)),Ywn(this.b,n,e);case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),Kpn(this.b,n,e);case 5:return!this.c&&(this.c=new h_(_Ot,this,5,8)),Kpn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),Kpn(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 h_(_Ot,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new h_(_Ot,this,5,8)),this.c.i<=1));case 8:return nAn(this);case 9:return QCn(this);case 10:return!this.b&&(this.b=new h_(_Ot,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new h_(_Ot,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 h_(_Ot,this,4,7)),sqn(this.b),!this.b&&(this.b=new h_(_Ot,this,4,7)),void pX(this.b,BB(t,14));case 5:return!this.c&&(this.c=new h_(_Ot,this,5,8)),sqn(this.c),!this.c&&(this.c=new h_(_Ot,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 IXn(),mOt},MWn.Bh=function(n){switch(n){case 3:return void HLn(this,null);case 4:return!this.b&&(this.b=new h_(_Ot,this,4,7)),void sqn(this.b);case 5:return!this.c&&(this.c=new h_(_Ot,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 h_(FOt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new h_(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 h_(FOt,this,9,10)),Ywn(this.g,n,e);case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),Ywn(this.e,n,e)}return BB(itn(BB(yan(this,16),26)||(IXn(),yOt),t),66).Nj().Qj(this,fgn(this),t-bX((IXn(),yOt)),n,e)},MWn.jh=function(n,t,e){switch(t){case 5:return!this.a&&(this.a=new $L(xOt,this,5)),Kpn(this.a,n,e);case 6:return QD(this,null,e);case 9:return!this.g&&(this.g=new h_(FOt,this,9,10)),Kpn(this.g,n,e);case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),Kpn(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 Cen(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 h_(FOt,this,9,10)),sqn(this.g),!this.g&&(this.g=new h_(FOt,this,9,10)),void pX(this.g,BB(t,14));case 10:return!this.e&&(this.e=new h_(FOt,this,10,9)),sqn(this.e),!this.e&&(this.e=new h_(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 IXn(),yOt},MWn.Bh=function(n){switch(n){case 1:return void Cen(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 h_(FOt,this,9,10)),void sqn(this.g);case 10:return!this.e&&(this.e=new h_(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(_At,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(_At,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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 NKn(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 Ky(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(_At,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(_At,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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 Ky(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 Ky(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 13:case 12:return null;default:throw Hp(new Ky(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(_At,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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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(_At,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 e_(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(_At,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 e_(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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 4:return jfn(this,null,e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),Kpn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new e_(GOt,this,6,7)),Kpn(this.vb,n,e);case 7:return TKn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 e_(GOt,this,6,7)),sqn(this.vb),!this.vb&&(this.vb=new e_(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(_At,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 e_(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!m_("",this.a)}return fwn(this,n)},MWn.sh=function(n,t){switch(n){case 7:return void CNn(this,BB(t,160));case 8:return void xin(this,SD(t))}zjn(this,n,t)},MWn.zh=function(){return IXn(),jOt},MWn.Bh=function(n){switch(n){case 7:return void CNn(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(KOt,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(KOt,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)),Kpn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),Kpn(this.a,n,e);case 11:return zR(this,null,e);case 12:return!this.b&&(this.b=new eU(KOt,this,12,3)),Kpn(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(KOt,this,12,3)),sqn(this.b),!this.b&&(this.b=new eU(KOt,this,12,3)),void pX(this.b,BB(t,14))}LAn(this,n,t)},MWn.zh=function(){return IXn(),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(KOt,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 IXn(),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 Kin(this,t)}yIn(this,n,t)},MWn.zh=function(){return IXn(),MOt},MWn.Bh=function(n){switch(n){case 0:return void Din(this,null);case 1:return void Kin(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,Kin(this,n),t},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):(oO(oO(oO(n=new Ik,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,{},aC),vX(G6n,"JsonImporter/lambda$0$Type",891),wAn(892,1,{},uC),vX(G6n,"JsonImporter/lambda$1$Type",892),wAn(900,1,{},$g),vX(G6n,"JsonImporter/lambda$10$Type",900),wAn(902,1,{},oC),vX(G6n,"JsonImporter/lambda$11$Type",902),wAn(903,1,{},sC),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,{},hC),vX(G6n,"JsonImporter/lambda$15$Type",904),wAn(905,1,{},fC),vX(G6n,"JsonImporter/lambda$16$Type",905),wAn(906,1,{},lC),vX(G6n,"JsonImporter/lambda$17$Type",906),wAn(907,1,{},bC),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,{},_g),vX(G6n,"JsonImporter/lambda$23$Type",913),wAn(914,1,{},Kg),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,wC),MWn.td=function(n){E9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$27$Type",918),wAn(919,1,lVn,dC),MWn.td=function(n){T9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$28$Type",919),wAn(920,1,{},gC),vX(G6n,"JsonImporter/lambda$29$Type",920),wAn(896,1,{},Hg),vX(G6n,"JsonImporter/lambda$3$Type",896),wAn(921,1,{},pC),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,SC),MWn.td=function(n){lO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$38$Type",927),wAn(928,1,lVn,PC),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){KX(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},MC);var cAt,aAt=Ben(CJn,"GraphFeature",237,Unt,_tn,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(CJn,"Property",13),wAn(818,1,MYn,ap),MWn.ue=function(n,t){return Kln(this,BB(n,94),BB(t,94))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CJn,"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 t_(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){Cfn(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 YCn(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 _En(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 _xn(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(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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(l_n(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,_xn(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,l_n(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 Cln(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,t_),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,R_),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 t_(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(GC(e[i])===GC(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 t_(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(GC(t[e])===GC(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 t_(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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||GC(BB(yan(this.b.a,4),126))!==GC(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,DC),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){Krn(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();)Cvn(this,BB(n.nj(),133));this.e=t}},MWn.Fb=function(n){return N_(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 CAn(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 BC(this,n)},MWn.uc=function(n){return YDn(this.a,n)},MWn.vc=function(){return C8(this.a)},MWn.Fb=function(n){return N_(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 I8(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()):GC(this.b)===GC(t.cd()))&&(null!=this.c?Nfn(this.c,t.dd()):GC(this.c)===GC(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(){_E()},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 KE()},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){Krn(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(){_E()},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 KE()},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){Krn(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 MKn(this)},MWn.f=0;var kAt,jAt,EAt,TAt=0,MAt=0,SAt=0,PAt=0,IAt=0,CAt=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,_At=bq(q5n,s9n),KAt=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 XC(n)?SJ(this,n):qC(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,Im),MWn.xc=function(n){return XC(n)?SJ(this,n):qC(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,I$t,C$t,O$t=bq(q5n,m9n),A$t=bq(q5n,"EValidator/PatternMatcher"),$$t=bq(y9n,"FeatureMap/Entry");wAn(535,1,{72:1},IC),MWn.ak=function(){return this.a},MWn.dd=function(){return this.b},vX(l6n,"BasicEObjectImpl/1",535),wAn(1027,1,k9n,CC),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},_f),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 _f),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(_At,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(_At,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(_At,this,0,3)),Kpn(this.Ab,n,e);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),B_(this.b,n,e);case 3:return QG(this,null,e);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 F_(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 B_(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 Cp(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 Cp(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(_At,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?Ckn(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(_At,this,0,3)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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(_At,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 Chn(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(){Ckn(this),this.Bb|=1},MWn.Yj=function(){return Ckn(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 _On(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(_At,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?Ckn(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&KQn);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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 17:return TKn(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&KQn);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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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((CPn(),Z$t),this)),Ckn(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=Ckn(this)).Bj())?0!=(1&a.i)?a==$Nt?ktt:a==ANt?Att:a==DNt?Itt:a==xNt?Ptt:a==LNt?Rtt:a==RNt?Ktt:a==NNt?Ttt:Stt:a:null,t=qLn(this),u=r.zj(),bbn(this),0!=(this.Bb&hVn)&&((c=mjn((CPn(),Z$t),e))&&c!=this||(c=Z1(B7(Z$t,this))))?this.p=new AC(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 IB(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?_$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?K$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?_$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?K$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 CB(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(_At,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(),!!NCn(this);case 7:return hN(),this.s>=1;case 8:return t?Ckn(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&KQn);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 NCn(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&KQn);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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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((CPn(),Z$t),this)),Ckn(this),this.Bb|=1},MWn.$j=function(){return NCn(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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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 Iwn(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},Kf),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(_At,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 ILn(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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(this.A,n,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),Kpn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),Kpn(this.s,n,e);case 22:return Kpn(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!=ILn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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),ILn(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));Ifn((CPn(),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 Kpn(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 Ivn(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(),Ivn(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(),Ivn(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 Ken(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(Cln(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 Kjn(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){AIn(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){Cfn(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(GC(this.g[t])===GC(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,Io),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())==Ivn(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(GC(Gz(this,this.Oi(i)))===GC(n))return!0;return a}if(this.Dk()&&!this.Ck()){if(GC(r=BB(n,56).ah(Ivn(BB(itn(jY(this.b),this.aj()),18))))===GC(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(GC(e=Gz(this,this.Oi(i)))===GC(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)&&!Ivn(BB(n,18)))},MWn.Ck=function(){var n,t,e;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!(t=Ivn(BB(n,18)))&&((e=t.t)>1||-1==e)},MWn.Dk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!Ivn(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(GC(Gz(this,this.Oi(t)))===GC(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,Ivn(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(),Ivn(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,Ivn(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(),Ivn(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(GC(t.Pb())!==GC(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),GC(n)===GC(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,Co),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,Cm),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(_At,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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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(){Ifn((CPn(),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();)NKn(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)?Iwn(this):((n=new fN(Iwn(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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 6:return TKn(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),Kpn(this.A,n,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void CA(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(_At,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));Ifn((CPn(),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(_At,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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 5:return TKn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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},_p),MWn.Sg=function(n,t,e){var i;return e=TKn(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)),Kpn(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):wIn(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):wIn(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,I0,Uen,C0,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(_At,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?Ckn(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(_At,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)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 10:return TKn(this,null,10,e);case 11:return!this.d&&(this.d=new NL(O$t,this,11)),Kpn(this.d,n,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),Kpn(this.c,n,e);case 14:return Kpn(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&&_vn(this.b));case 14:return!!this.b&&_vn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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(_At,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 Chn(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));Ckn(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(GC(t.Pb())!==GC(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),GC(n)===GC(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(Cln(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 _vn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EOperationImpl/2",1341),wAn(498,1,{1938:1,498:1},OC),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,e_),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 XC(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 Ikn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(_At,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?Ckn(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(_At,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Ikn(this,e):this.Cb.ih(this,-1-i,null,e)),TKn(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(_At,this,0,3)),Kpn(this.Ab,n,e);case 9:return gX(this,e);case 10:return TKn(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(_At,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?Ckn(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&KQn);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=Ivn(this))||0==(i.Bb&h6n));case 20:return hN(),0!=(this.Bb&BQn);case 21:return t?Ivn(this):this.b;case 22:return t?Con(this):_5(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&KQn);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=Ivn(this))&&0!=(t.Bb&h6n);case 20:return 0==(this.Bb&BQn);case 21:return!!this.b;case 22:return!!_5(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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 Chn(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 KC(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(_At,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&AIn(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 Chn(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)&&AIn(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(){Con(this),kV(B7((CPn(),Z$t),this)),Ckn(this),this.Bb|=1},MWn.Lj=function(){return Ivn(this)},MWn.qk=function(){var n;return!!(n=Ivn(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 _in(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 _in(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,_$t,K$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,{},AC),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 g_n(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 _y(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),GC(i)!==GC(r)||n.Vg()!=a&&null!=i){if(vkn(n,BB(i,56)))throw Hp(new Ky(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,{},IB),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:GC(c)===GC(R$t)?null:c},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&(GC(i)===GC(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:GC(c)===GC(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:GC(r)===GC(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 I0(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 C0(n,t,e,BB(i,155).a,BB(r,155).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),wAn(1337,W9n,{},_o),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,{},Ko),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 _y(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):GC(c)===GC(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):GC(r)===GC(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 _y(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()&&GC(s)===GC(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 _y(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 GC(a=t.Ch(e))===GC(R$t)&&(a=null),t.Dh(e,i),this.bj()?GC(a)!==GC(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 GC(c=t.Ch(e))===GC(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 _y(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));u=null!=(o=t.Ch(e)),this.Kj()&&GC(o)===GC(R$t)&&(o=null),a=null,this.bj()?GC(o)!==GC(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()&&GC(o)!==GC(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()&&GC(u)===GC(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,{},CB),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(_At,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(_At,this,0,3)),Kpn(this.Ab,n,e);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),Kpn(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(_At,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(_At,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(_At,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 K6(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 XC(n)?eY(this,n):!!AY(this.f,n)},MWn.xc=function(n){var t;return cL(t=XC(n)?SJ(this,n):qC(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$(COt[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 Ky(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 Kf;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 _p;case 19:return new Ho;default:throw Hp(new Ky(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(lKn(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(lKn(t,KVn,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(lKn(t,Q9n,32767)<<16>>16);case 50:return t;default:throw Hp(new Ky(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(KAt,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 zC(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(KNt,HWn,2110,n,0,1)},vX(l6n,"EcorePackageImpl/27",1210),wAn(1211,1,s7n,hs),MWn.wj=function(n){return UC(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(_At,{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(Itt,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(Ktt,sVn,184,n,0,1)},vX(l6n,"EcorePackageImpl/40",1223),wAn(1224,1,s7n,Ms),MWn.wj=function(n){return XC(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,Is),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,Cs),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){eIn(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=M_(n,YTn(63),i-2))>0&&(n=n.substr(0,e))}return jCn(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,Ip),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()):GC(n)===GC(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 GC(n)===GC(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,{},$C),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==I7n&&hb(this,Egn(this.d,this.b)),this.c},MWn.cl=function(){return 0},MWn.a=-2,MWn.c=I7n,vX(y9n,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),wAn(1161,1,{},K0),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,S_n(this.f,this.b)),this.d},MWn.ne=function(){return this.e==I7n&&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=I7n,MWn.g=-2,vX(y9n,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),wAn(1159,1,{},RC),MWn.b=!1,MWn.c=!1,vX(y9n,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),wAn(1162,1,{},_0),MWn.c=-2,MWn.e=I7n,MWn.f=I7n,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 H_(this,BB(n,72),t)},MWn.dj=function(n,t){return q_(this,BB(n,72),t)},MWn.ii=function(n,t){return aKn(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 G_(this,BB(n,72),t)},MWn.kj=function(n,t){return z_(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 x_n(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 T_n(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){_mn(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 _sn(this)},MWn.Sb=function(){return Ksn(this)},MWn.Pb=function(){return cvn(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(Ksn(this))return mz(this),this.g=--this.a,this.Lk()&&(n=FCn(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,_L),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,KL),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,i_),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,r_),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,c_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/ManyInverse",1176),wAn(625,546,R9n,a_),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,o_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),wAn(749,546,R9n,u_),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,h_),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/ManyInverse",31),wAn(750,625,R9n,s_),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,f_),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,Cp),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){Cvn(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)),GC(e)===GC(t)&&BB(e,133).Th(c$(BB(t,133).cd())),Cvn(this.b,BB(t,133))},vX(y9n,"EcoreEMap/DelegateEObjectContainmentEList",746),wAn(1171,151,j9n,yin),vX(y9n,"EcoreEMap/Unsettable",1171),wAn(1172,746,R9n,l_),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},xC),MWn.Vc=function(n,t){Axn(this.c,this.b,n,t)},MWn.Fc=function(n){return x_n(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 HC(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 I_n(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 _ln(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);_sn(n);)cO(t,kN(cvn(n))),_sn(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(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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(GC(n.Ai())===GC(this.c)&&eln(this,null)==n.yi(null))return this.d=1,this.g=n.zi(),!0;break;case 4:if(GC(n.Ai())===GC(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()&&GC(n.Ai())===GC(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 x_n(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){_mn(this.c,n)},vX(y9n,"FeatureMapUtil/FeatureFeatureMap",552),wAn(1259,1,k9n,_C),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,ILt,CLt,OLt,ALt,$Lt,LLt,NLt,xLt,DLt,RLt,_Lt,KLt,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 _f),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)),T_n(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)),T_n(this.b,n,e)}return BB(itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new _f),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 _f),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 _f),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 _f),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 _f),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 _f),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 _f),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 _f),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},Km),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 g_(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 _f),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!=g_(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 _f),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,p_(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 _f),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,p_(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 _f),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},_m),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(),KLt));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 _f),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)),T_n(this.a,n,e);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),B_(this.b,n,e);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),B_(this.c,n,e);case 5:return!this.a&&(this.a=new Ecn(this,0)),tR(n1(this.a,(Uqn(),KLt)),n,e)}return BB(itn(0==(2&this.j)?(Uqn(),xLt):(!this.k&&(this.k=new _f),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)),!HC(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),KLt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),!HC(n1(this.a,(Uqn(),FLt)))}return O3(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new _f),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(),KLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,KLt),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 _f),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(),KLt)));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 _f),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:_U(BB(t,155).a);case 27:return yD(BB(t,190));case 30:return Kmn((Uqn(),BB(t,15)));case 31:return Kmn(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 Ky(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 Km;case 3:return new _m;default:throw Hp(new Ky(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:KEn(t);case 9:return null==t?null:Pnn(lKn((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(lKn((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 CLn(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(),ILt),t));case 27:return Zgn(t);case 30:return qdn((Uqn(),t));case 31:return qdn(t);case 32:return null==t?null:iln(lKn((h=FBn(t,!0)).length>0&&(b1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,KVn,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(lKn((l=FBn(t,!0)).length>0&&(b1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,KVn,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(),CLt),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(lKn((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(lKn((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(lKn((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(lKn((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(lKn((e=FBn(t,!0)).length>0&&(b1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e,KVn,DWn));case 61:return null==t?null:iln(lKn(FBn(t,!0),KVn,DWn));default:throw Hp(new Ky(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},_s),MWn._j=function(){return fFn(),TNt},vX(N7n,"XMLTypePackageImpl/1",1852),wAn(1861,1,s7n,Ks),MWn.wj=function(n){return XC(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 XC(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 XC(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 UC(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 XC(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 XC(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(Itt,sVn,155,n,0,1)},vX(N7n,"XMLTypePackageImpl/18",1869),wAn(1870,1,s7n,Ws),MWn.wj=function(n){return XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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 XC(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(Ktt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/45",1896),wAn(1897,1,s7n,Th),MWn.wj=function(n){return XC(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 XC(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 XC(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(Ktt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/49",sQn),wAn(1856,1,s7n,Ih),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,Ch),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 XC(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 XC(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 zC(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=DCn(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$(),K8n))));if(QXn(this),9!=this.c)throw Hp(new ak(kWn((u$(),_8n))));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 Kv),Iv(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 Kv),Iv(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 dKn(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),dKn(67)},MWn.Bl=function(){return QXn(this),dKn(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),dKn(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),dKn(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,dKn(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,INt=null,CNt=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),m_(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,_h),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(I9n,"D"),DNt=RW(C9n,"F"),RNt=RW($9n,"S"),_Nt=bq("org.eclipse.elk.core.labels","ILabelManager"),KNt=bq(B6n,"DiagnosticChain"),FNt=bq(f7n,"ResourceSet"),BNt=vX(B6n,"InvocationTargetException",null),HNt=(Dk(),f5),qNt=qNt=hEn;Zen(Qp),scn("permProps",[[[Pnt,Int],[Cnt,"gecko1_8"]],[[Pnt,Int],[Cnt,"ie10"]],[[Pnt,Int],[Cnt,"ie8"]],[[Pnt,Int],[Cnt,"ie9"]],[[Pnt,Int],[Cnt,"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)},4238:(n,t,e)=>{"use strict";e.d(t,{diagram:()=>k});var i=e(88955),r=e(64218),c=e(25269),a=e(85322),u=e(17295);e(27484),e(17967),e(27856);const o=new u;let s={};const h={};let f={};const l=(n,t,e)=>{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,a.l.info("abc88",e,t,n),i[e][t][n]},b=(n,t,e)=>{if(a.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 i="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),i},w=function(n,t,e,i){a.l.info("abc78 edges = ",n);const u=i.insert("g").attr("class","edgeLabels");let o,s,l={},w=t.db.getDirection();if(void 0!==n.defaultStyle){const t=(0,a.k)(n.defaultStyle);o=t.style,s=t.labelStyle}return n.forEach((function(t){const i="L-"+t.start+"-"+t.end;void 0===l[i]?(l[i]=0,a.l.info("abc78 new entry",i,l[i])):(l[i]++,a.l.info("abc78 new entry",i,l[i]));let d=i+"-"+l[i];a.l.info("abc78 new link id to be used is",i,d,l[i]);const g="LS-"+t.start,p="LE-"+t.end,v={style:"",labelStyle:""};switch(v.minlen=t.length||1,"arrow_open"===t.type?v.arrowhead="none":v.arrowhead="normal",v.arrowTypeStart="arrow_open",v.arrowTypeEnd="arrow_open",t.type){case"double_arrow_cross":v.arrowTypeStart="arrow_cross";case"arrow_cross":v.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":v.arrowTypeStart="arrow_point";case"arrow_point":v.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":v.arrowTypeStart="arrow_circle";case"arrow_circle":v.arrowTypeEnd="arrow_circle"}let m="",y="";switch(t.stroke){case"normal":m="fill:none;",void 0!==o&&(m=o),void 0!==s&&(y=s),v.thickness="normal",v.pattern="solid";break;case"dotted":v.thickness="normal",v.pattern="dotted",v.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v.thickness="thick",v.pattern="solid",v.style="stroke-width: 3.5px;fill:none;"}if(void 0!==t.style){const n=(0,a.k)(t.style);m=n.style,y=n.labelStyle}v.style=v.style+=m,v.labelStyle=v.labelStyle+=y,void 0!==t.interpolate?v.curve=(0,a.n)(t.interpolate,r.c_6):void 0!==n.defaultInterpolate?v.curve=(0,a.n)(n.defaultInterpolate,r.c_6):v.curve=(0,a.n)(h.curve,r.c_6),void 0===t.text?void 0!==t.style&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c"),v.labelType=t.labelType,v.label=t.text.replace(a.e.lineBreakRegex,"\n"),void 0===t.style&&(v.style=v.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),v.labelStyle=v.labelStyle.replace("color:","fill:"),v.id=d,v.classes="flowchart-link "+g+" "+p;const k=(0,c.f)(u,v),{source:j,target:E,sourceId:T,targetId:M}=((n,t)=>{let e=n.start,i=n.end;const r=e,c=i,a=f[e],u=f[i];return a&&u?("diamond"===a.type&&(e=`${e}-${b(e,"out",t)}`),"diamond"===u.type&&(i=`${i}-${b(i,"in",t)}`),{source:e,target:i,sourceId:r,targetId:c}):{source:e,target:i}})(t,w);a.l.debug("abc78 source and target",j,E),e.edges.push({id:"e"+t.start+t.end,sources:[j],targets:[E],sourceId:T,targetId:M,labelEl:k,labels:[{width:v.width,height:v.height,orgWidth:v.width,orgHeight:v.height,text:v.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:v})})),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,a,u){const o=d(t.sourceId,t.targetId,a),s=t.sections[0].startPoint,h=t.sections[0].endPoint,f=(t.sections[0].bendPoints?t.sections[0].bendPoints:[]).map((n=>[n.x+o.x,n.y+o.y])),l=[[s.x+o.x,s.y+o.y],...f,[h.x+o.x,h.y+o.y]],{x:b,y:w}=(0,c.j)(t.edgeData),g=(0,r.jvg)().x(b).y(w).curve(r.c_6),p=n.insert("path").attr("d",g(l)).attr("class","path "+e.classes).attr("fill","none"),v=n.insert("g").attr("class","edgeLabel"),m=(0,r.Ys)(v.node().appendChild(t.labelEl)),y=m.node().firstChild.getBoundingClientRect();m.attr("width",y.width),m.attr("height",y.height),v.attr("transform",`translate(${t.labels[0].x+o.x}, ${t.labels[0].y+o.y})`),function(n,t,e,i,r){let c="";switch(i&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),t.arrowTypeStart){case"arrow_cross":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-crossStart)");break;case"arrow_point":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-pointStart)");break;case"arrow_barb":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-barbStart)");break;case"arrow_circle":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-circleStart)");break;case"aggregation":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-aggregationStart)");break;case"extension":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-extensionStart)");break;case"composition":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-compositionStart)");break;case"dependency":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-dependencyStart)");break;case"lollipop":n.attr("marker-start","url("+c+"#"+r+"_"+e+"-lollipopStart)")}switch(t.arrowTypeEnd){case"arrow_cross":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-crossEnd)");break;case"arrow_point":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-pointEnd)");break;case"arrow_barb":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-barbEnd)");break;case"arrow_circle":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-circleEnd)");break;case"aggregation":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-aggregationEnd)");break;case"extension":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-extensionEnd)");break;case"composition":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-compositionEnd)");break;case"dependency":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-dependencyEnd)");break;case"lollipop":n.attr("marker-end","url("+c+"#"+r+"_"+e+"-lollipopEnd)")}}(p,e,i.type,i.arrowMarkerAbsolute,u)},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,i,r,c,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 i=r.insert("g").attr("class","subgraph");i.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 c=i.insert("g").attr("class","label"),o=(0,a.E)().flowchart.htmlLabels?e.labelData.width/2:0;c.attr("transform",`translate(${e.labels[0].x+n+e.x+o}, ${e.labels[0].y+t+e.y+3})`),c.node().appendChild(e.labelData.labelNode),a.l.info("Id (UGH)= ",e.type,e.labels)}else a.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,i,r,c,u+1)}))},m={getClasses:function(n,t){return a.l.info("Extracting classes"),t.db.getClasses()},draw:async function(n,t,e,i){var u;i.db.clear(),f={},s={},i.db.setGen("gen-2"),i.parser.parse(n);const h=(0,r.Ys)("body").append("div").attr("style","height:400px").attr("id","cy");let l={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(a.l.info("Drawing flowchart using v3 renderer",o),i.db.getDirection()){case"BT":l.layoutOptions["elk.direction"]="UP";break;case"TB":l.layoutOptions["elk.direction"]="DOWN";break;case"LR":l.layoutOptions["elk.direction"]="RIGHT";break;case"RL":l.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:b,flowchart:d}=(0,a.E)();let m;"sandbox"===b&&(m=(0,r.Ys)("#i"+t));const y="sandbox"===b?(0,r.Ys)(m.nodes()[0].contentDocument.body):(0,r.Ys)("body"),k="sandbox"===b?m.nodes()[0].contentDocument:document,j=y.select(`[id="${t}"]`);(0,c.a)(j,["point","circle","cross"],i.type,t);const E=i.db.getVertices();let T;const M=i.db.getSubGraphs();a.l.info("Subgraphs - ",M);for(let r=M.length-1;r>=0;r--)T=M[r],i.db.addVertex(T.id,{text:T.title,type:T.labelType},"group",void 0,T.classes,T.dir);const S=j.insert("g").attr("class","subgraphs"),P=function(n){const t={parentById:{},childrenById:{}},e=n.getSubGraphs();return a.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}(i.db);l=await async function(n,t,e,i,r,u,o){const s=e.select(`[id="${t}"]`).insert("g").attr("class","nodes"),h=Object.keys(n);return await Promise.all(h.map((async function(t){const e=n[t];let o="default";e.classes.length>0&&(o=e.classes.join(" ")),o+=" flowchart-label";const h=(0,a.k)(e.styles);let l=void 0!==e.text?e.text:e.id;const b={width:0,height:0},w=[{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 d=0,g="",p={};switch(e.type){case"round":d=5,g="rect";break;case"square":case"group":default:g="rect";break;case"diamond":g="question",p={portConstraints:"FIXED_SIDE"};break;case"hexagon":g="hexagon";break;case"odd":case"odd_right":g="rect_left_inv_arrow";break;case"lean_right":g="lean_right";break;case"lean_left":g="lean_left";break;case"trapezoid":g="trapezoid";break;case"inv_trapezoid":g="inv_trapezoid";break;case"circle":g="circle";break;case"ellipse":g="ellipse";break;case"stadium":g="stadium";break;case"subroutine":g="subroutine";break;case"cylinder":g="cylinder";break;case"doublecircle":g="doublecircle"}const v={labelStyle:h.labelStyle,shape:g,labelText:l,labelType:e.labelType,rx:d,ry:d,class:o,style:h.style,id:e.id,link:e.link,linkTarget:e.linkTarget,tooltip:r.db.getTooltip(e.id)||"",domId:r.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,a.E)().flowchart.padding};let m,y;if("group"!==v.type)y=await(0,c.e)(s,v,e.dir),m=y.node().getBBox();else{i.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:n,bbox:t}=await(0,c.l)(s,v,void 0,!0);b.width=t.width,b.wrappingWidth=(0,a.E)().flowchart.wrappingWidth,b.height=t.height,b.labelNode=n.node(),v.labelData=b}const k={id:e.id,ports:"diamond"===e.type?w:[],layoutOptions:p,labelText:l,labelData:b,domId:r.db.lookUpDomId(e.id),width:null==m?void 0:m.width,height:null==m?void 0:m.height,type:e.type,el:y,parent:u.parentById[e.id]};f[v.id]=k}))),o}(E,t,y,k,i,P,l);const I=j.insert("g").attr("class","edges edgePath"),C=i.db.getEdges();l=w(C,i,l,j);Object.keys(f).forEach((n=>{const t=f[n];t.parent||l.children.push(t),void 0!==P.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(l.children,P),a.l.info("after layout",JSON.stringify(l,null,2));const O=await o.layout(l);v(0,0,O.children,j,S,i,0),a.l.info("after layout",O),null==(u=O.edges)||u.map((n=>{g(I,n,n.edgeData,i,P,t)})),(0,a.o)({},j,d.diagramPadding,d.useMaxWidth),h.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.85;\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 .flowchart-label text {\n text-anchor: middle;\n }\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.d,renderer:m,parser:i.p,styles:y}}}]); \ No newline at end of file diff --git a/assets/js/45c9e308.57b8321c.js b/assets/js/45c9e308.57b8321c.js new file mode 100644 index 0000000..31af421 --- /dev/null +++ b/assets/js/45c9e308.57b8321c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7084],{53181:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=t(85893),s=t(11151);const o={slug:"placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",last_update:{date:new Date("2023-11-24T00:00:00.000Z")}},r=void 0,a={id:"exceptions-and-raii/2023-11-24-placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",source:"@site/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",sourceDirName:"07-exceptions-and-raii",slug:"/exceptions-and-raii/placeholders",permalink:"/cpp/exceptions-and-raii/placeholders",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",tags:[],version:"current",lastUpdatedAt:1700784e3,formattedLastUpdatedAt:"Nov 24, 2023",frontMatter:{slug:"placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",last_update:{date:"2023-11-24T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"},next:{title:"Environment",permalink:"/cpp/environment"}},c={},l=[{value:"Design",id:"design",level:2},{value:"Implementation",id:"implementation",level:2},{value:"Wrapping in a function",id:"wrapping-in-a-function",level:2},{value:"Magic trick",id:"magic-trick",level:2},{value:"Finishing off with 2 more exceptions",id:"finishing-off-with-2-more-exceptions",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Here we will try to implement some placeholders that you can find in other\nlanguages, but I miss them in the C++. I'm taking the inspiration from languages\nlike Rust (all that we will implement) or Kotlin (",(0,i.jsx)(n.code,{children:"TODO"}),") that have them\nimplemented."]}),"\n",(0,i.jsx)(n.p,{children:"You may ask what placeholders do we need in the code, in our case we will be\ntalking about TODOs and unexpected situations, such as not implemented branches."}),"\n",(0,i.jsx)(n.p,{children:"Namely we will implement"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"todo"}),","]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unimplemented"}),", and"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unreachable"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"design",children:"Design"}),"\n",(0,i.jsx)(n.p,{children:"If we take the two languages mentioned above as examples, there are at least two\nways how to implement them:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"panic"})," when they are reached (as they do in Rust), or"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"raise"})," an exception when they are reached (as they do in Kotlin)."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["I will choose raising an exception, since the closest equivalent of ",(0,i.jsx)(n.em,{children:"panic"})," in\nC++ would be ",(0,i.jsx)(n.code,{children:"assert"}),"s that are (by default) disabled in the ",(0,i.jsx)(n.em,{children:"release builds"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"However I am too lazy to do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'throw todo();\n// or\nthrow todo("optional note");\n'})}),"\n",(0,i.jsx)(n.p,{children:"Therefore we will implement exceptions and also wrap them in functions, so that\nwe can do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'todo();\n// or\ntodo("optional note");\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Wrapping them in a function (or macro) will allow us to do a little magic trick."})}),"\n",(0,i.jsx)(n.h2,{id:"implementation",children:"Implementation"}),"\n",(0,i.jsxs)(n.p,{children:["We're going to utilize the exceptions, so we'll need to include the ",(0,i.jsx)(n.code,{children:"exception"}),"\nheader and we will start with a simple ",(0,i.jsx)(n.code,{children:"_todo"})," exception class."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include <exception>\n#include <string>\n\nclass _todo : public std::exception {\n std::string cause;\n\n public:\n _todo() : cause("not yet implemented") {}\n _todo(std::string&& excuse) : cause("not yet implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n'})}),"\n",(0,i.jsx)(n.p,{children:"In this case we have 2 constructors:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["default constructor without any parameters that will return just\n",(0,i.jsx)(n.code,{children:"not yet implemented"})]}),"\n",(0,i.jsxs)(n.li,{children:["and one parametrized with an \u201cexcuse\u201d that will return string like:\n",(0,i.jsx)(n.code,{children:"not yet implemented: \u2039excuse\u203a"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If we were to use it now, we would need to do something like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include "placeholders.hpp"\n\nint main() {\n throw _todo();\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"wrapping-in-a-function",children:"Wrapping in a function"}),"\n",(0,i.jsx)(n.p,{children:"I am a lazy person, so we will wrap the exception in a function that will throw\nit:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:"void todo() {\n throw _todo();\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"This can be used like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include "placeholders.hpp"\n\nint main() {\n todo();\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"magic-trick",children:"Magic trick"}),"\n",(0,i.jsxs)(n.p,{children:["At the beginning I've mentioned that by wrapping the exceptions in a helper\nfunctions that will throw them, we can do a nice magic trick ","\ud83d\ude04"," This trick\nwill consist of formatted string and for that we will use\n",(0,i.jsx)(n.a,{href:"https://en.cppreference.com/w/cpp/utility/format/format",children:(0,i.jsx)(n.code,{children:"std::format"})})," that is\navailable since C++20."]}),"\n",(0,i.jsxs)(n.p,{children:["We just need to add one more overload for our ",(0,i.jsx)(n.code,{children:"todo()"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:"#include <format>\n\ntemplate< class... Args >\nvoid todo(std::format_string<Args...> fmt, Args&&... args) {\n throw _todo(std::format(fmt, args...));\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"finishing-off-with-2-more-exceptions",children:"Finishing off with 2 more exceptions"}),"\n",(0,i.jsx)(n.p,{children:"Now we can repeat the same process for the other two exceptions I've mentioned"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unimplemented"}),", and"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unreachable"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In the end we should end up with something like this:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include <exception>\n#include <format>\n#include <string>\n\nclass _todo : public std::exception {\n std::string cause;\n\n public:\n _todo() : cause("not yet implemented") {}\n _todo(std::string&& excuse) : cause("not yet implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid todo() { throw _todo(); }\n\ntemplate <class... Args>\nvoid todo(std::format_string<Args...> fmt, Args&&... args) {\n throw _todo(std::format(fmt, args...));\n}\n\nclass _unimplemented : public std::exception {\n std::string cause;\n\n public:\n _unimplemented() : cause("not implemented") {}\n _unimplemented(std::string&& excuse)\n : cause("not implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid unimplemented() { throw _unimplemented(); }\n\ntemplate <class... Args>\nvoid unimplemented(std::format_string<Args...> fmt, Args&&... args) {\n throw _unimplemented(std::format(fmt, args...));\n}\n\nclass _unreachable : public std::exception {\n std::string cause;\n\n public:\n _unreachable() : cause("entered unreachable code") {}\n _unreachable(std::string&& excuse)\n : cause("entered unreachable code: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid unreachable() { throw _unreachable(); }\n\ntemplate <class... Args>\nvoid unreachable(std::format_string<Args...> fmt, Args&&... args) {\n throw _unreachable(std::format(fmt, args...));\n}\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["Final source code: ",(0,i.jsx)(n.a,{href:"pathname:///files/cpp/exceptions-and-raii/placeholders/placeholders.hpp",children:(0,i.jsx)(n.code,{children:"placeholders.hpp"})})]})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var i=t(67294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/45c9e308.9e2ba609.js b/assets/js/45c9e308.9e2ba609.js deleted file mode 100644 index 9c31f6d..0000000 --- a/assets/js/45c9e308.9e2ba609.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7084],{3181:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=t(5893),s=t(1151);const o={slug:"placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",last_update:{date:new Date("2023-11-24T00:00:00.000Z")}},r=void 0,a={id:"exceptions-and-raii/2023-11-24-placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",source:"@site/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",sourceDirName:"07-exceptions-and-raii",slug:"/exceptions-and-raii/placeholders",permalink:"/cpp/exceptions-and-raii/placeholders",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",tags:[],version:"current",lastUpdatedAt:1700784e3,formattedLastUpdatedAt:"Nov 24, 2023",frontMatter:{slug:"placeholders",title:"Placeholders",description:"Placeholders that are quite convenient to use when working on the code.\n",last_update:{date:"2023-11-24T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"},next:{title:"Environment",permalink:"/cpp/environment"}},c={},l=[{value:"Design",id:"design",level:2},{value:"Implementation",id:"implementation",level:2},{value:"Wrapping in a function",id:"wrapping-in-a-function",level:2},{value:"Magic trick",id:"magic-trick",level:2},{value:"Finishing off with 2 more exceptions",id:"finishing-off-with-2-more-exceptions",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Here we will try to implement some placeholders that you can find in other\nlanguages, but I miss them in the C++. I'm taking the inspiration from languages\nlike Rust (all that we will implement) or Kotlin (",(0,i.jsx)(n.code,{children:"TODO"}),") that have them\nimplemented."]}),"\n",(0,i.jsx)(n.p,{children:"You may ask what placeholders do we need in the code, in our case we will be\ntalking about TODOs and unexpected situations, such as not implemented branches."}),"\n",(0,i.jsx)(n.p,{children:"Namely we will implement"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"todo"}),","]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unimplemented"}),", and"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unreachable"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"design",children:"Design"}),"\n",(0,i.jsx)(n.p,{children:"If we take the two languages mentioned above as examples, there are at least two\nways how to implement them:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"panic"})," when they are reached (as they do in Rust), or"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"raise"})," an exception when they are reached (as they do in Kotlin)."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["I will choose raising an exception, since the closest equivalent of ",(0,i.jsx)(n.em,{children:"panic"})," in\nC++ would be ",(0,i.jsx)(n.code,{children:"assert"}),"s that are (by default) disabled in the ",(0,i.jsx)(n.em,{children:"release builds"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"However I am too lazy to do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'throw todo();\n// or\nthrow todo("optional note");\n'})}),"\n",(0,i.jsx)(n.p,{children:"Therefore we will implement exceptions and also wrap them in functions, so that\nwe can do:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'todo();\n// or\ntodo("optional note");\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Wrapping them in a function (or macro) will allow us to do a little magic trick."})}),"\n",(0,i.jsx)(n.h2,{id:"implementation",children:"Implementation"}),"\n",(0,i.jsxs)(n.p,{children:["We're going to utilize the exceptions, so we'll need to include the ",(0,i.jsx)(n.code,{children:"exception"}),"\nheader and we will start with a simple ",(0,i.jsx)(n.code,{children:"_todo"})," exception class."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include <exception>\n#include <string>\n\nclass _todo : public std::exception {\n std::string cause;\n\n public:\n _todo() : cause("not yet implemented") {}\n _todo(std::string&& excuse) : cause("not yet implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n'})}),"\n",(0,i.jsx)(n.p,{children:"In this case we have 2 constructors:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["default constructor without any parameters that will return just\n",(0,i.jsx)(n.code,{children:"not yet implemented"})]}),"\n",(0,i.jsxs)(n.li,{children:["and one parametrized with an \u201cexcuse\u201d that will return string like:\n",(0,i.jsx)(n.code,{children:"not yet implemented: \u2039excuse\u203a"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If we were to use it now, we would need to do something like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include "placeholders.hpp"\n\nint main() {\n throw _todo();\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"wrapping-in-a-function",children:"Wrapping in a function"}),"\n",(0,i.jsx)(n.p,{children:"I am a lazy person, so we will wrap the exception in a function that will throw\nit:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:"void todo() {\n throw _todo();\n}\n"})}),"\n",(0,i.jsx)(n.p,{children:"This can be used like:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include "placeholders.hpp"\n\nint main() {\n todo();\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"magic-trick",children:"Magic trick"}),"\n",(0,i.jsxs)(n.p,{children:["At the beginning I've mentioned that by wrapping the exceptions in a helper\nfunctions that will throw them, we can do a nice magic trick ","\ud83d\ude04"," This trick\nwill consist of formatted string and for that we will use\n",(0,i.jsx)(n.a,{href:"https://en.cppreference.com/w/cpp/utility/format/format",children:(0,i.jsx)(n.code,{children:"std::format"})})," that is\navailable since C++20."]}),"\n",(0,i.jsxs)(n.p,{children:["We just need to add one more overload for our ",(0,i.jsx)(n.code,{children:"todo()"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:"#include <format>\n\ntemplate< class... Args >\nvoid todo(std::format_string<Args...> fmt, Args&&... args) {\n throw _todo(std::format(fmt, args...));\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"finishing-off-with-2-more-exceptions",children:"Finishing off with 2 more exceptions"}),"\n",(0,i.jsx)(n.p,{children:"Now we can repeat the same process for the other two exceptions I've mentioned"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unimplemented"}),", and"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"unreachable"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In the end we should end up with something like this:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-cpp",children:'#include <exception>\n#include <format>\n#include <string>\n\nclass _todo : public std::exception {\n std::string cause;\n\n public:\n _todo() : cause("not yet implemented") {}\n _todo(std::string&& excuse) : cause("not yet implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid todo() { throw _todo(); }\n\ntemplate <class... Args>\nvoid todo(std::format_string<Args...> fmt, Args&&... args) {\n throw _todo(std::format(fmt, args...));\n}\n\nclass _unimplemented : public std::exception {\n std::string cause;\n\n public:\n _unimplemented() : cause("not implemented") {}\n _unimplemented(std::string&& excuse)\n : cause("not implemented: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid unimplemented() { throw _unimplemented(); }\n\ntemplate <class... Args>\nvoid unimplemented(std::format_string<Args...> fmt, Args&&... args) {\n throw _unimplemented(std::format(fmt, args...));\n}\n\nclass _unreachable : public std::exception {\n std::string cause;\n\n public:\n _unreachable() : cause("entered unreachable code") {}\n _unreachable(std::string&& excuse)\n : cause("entered unreachable code: " + excuse) {}\n virtual const char* what() const throw() { return cause.c_str(); }\n};\n\nvoid unreachable() { throw _unreachable(); }\n\ntemplate <class... Args>\nvoid unreachable(std::format_string<Args...> fmt, Args&&... args) {\n throw _unreachable(std::format(fmt, args...));\n}\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["Final source code: ",(0,i.jsx)(n.a,{href:"pathname:///files/cpp/exceptions-and-raii/placeholders/placeholders.hpp",children:(0,i.jsx)(n.code,{children:"placeholders.hpp"})})]})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var i=t(7294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4621632b.bd86e6e4.js b/assets/js/4621632b.bd86e6e4.js new file mode 100644 index 0000000..d3bf57c --- /dev/null +++ b/assets/js/4621632b.bd86e6e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3519],{29760:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/cpp","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/4621632b.f101cb78.js b/assets/js/4621632b.f101cb78.js deleted file mode 100644 index 3a8b6cf..0000000 --- a/assets/js/4621632b.f101cb78.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3519],{9760:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/cpp","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/4706.7b6665b0.js b/assets/js/4706.7b6665b0.js deleted file mode 100644 index a661a02..0000000 --- a/assets/js/4706.7b6665b0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4706],{4706:(t,e,n)=>{n.d(e,{d:()=>D,p:()=>r,s:()=>_});var s=n(4218),i=n(5322),u=function(){var t=function(t,e,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=e);return n},e=[1,16],n=[1,17],s=[1,18],i=[1,37],u=[1,38],r=[1,24],a=[1,22],c=[1,23],o=[1,29],l=[1,30],h=[1,31],A=[1,32],p=[1,33],d=[1,34],y=[1,25],E=[1,26],C=[1,27],m=[1,28],f=[1,42],b=[1,39],F=[1,40],g=[1,41],k=[1,43],T=[1,9],B=[1,8,9],D=[1,54],_=[1,55],S=[1,56],N=[1,57],L=[1,58],$=[1,59],v=[1,60],I=[1,8,9,38],x=[1,71],O=[1,8,9,12,13,21,36,38,41,58,59,60,61,62,63,64,69,71],R=[1,8,9,12,13,19,21,36,38,41,45,58,59,60,61,62,63,64,69,71,84,86,87,88,89],w=[13,84,86,87,88,89],P=[13,63,64,84,86,87,88,89],G=[13,58,59,60,61,62,84,86,87,88,89],M=[1,90],U=[1,8,9,36,38,41],Y=[1,8,9,21],z={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,cssClassStatement:27,noteStatement:28,direction:29,acc_title:30,acc_title_value:31,acc_descr:32,acc_descr_value:33,acc_descr_multiline_value:34,namespaceIdentifier:35,STRUCT_START:36,classStatements:37,STRUCT_STOP:38,NAMESPACE:39,classIdentifier:40,STYLE_SEPARATOR:41,members:42,CLASS:43,ANNOTATION_START:44,ANNOTATION_END:45,MEMBER:46,SEPARATOR:47,relation:48,NOTE_FOR:49,noteText:50,NOTE:51,direction_tb:52,direction_bt:53,direction_rl:54,direction_lr:55,relationType:56,lineType:57,AGGREGATION:58,EXTENSION:59,COMPOSITION:60,DEPENDENCY:61,LOLLIPOP:62,LINE:63,DOTTED_LINE:64,CALLBACK:65,LINK:66,LINK_TARGET:67,CLICK:68,CALLBACK_NAME:69,CALLBACK_ARGS:70,HREF:71,CSSCLASS:72,commentToken:73,textToken:74,graphCodeTokens:75,textNoTagsToken:76,TAGSTART:77,TAGEND:78,"==":79,"--":80,PCT:81,DEFAULT:82,SPACE:83,MINUS:84,keywords:85,UNICODE_TEXT:86,NUM:87,ALPHA:88,BQUOTE_STR:89,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",30:"acc_title",31:"acc_title_value",32:"acc_descr",33:"acc_descr_value",34:"acc_descr_multiline_value",36:"STRUCT_START",38:"STRUCT_STOP",39:"NAMESPACE",41:"STYLE_SEPARATOR",43:"CLASS",44:"ANNOTATION_START",45:"ANNOTATION_END",46:"MEMBER",47:"SEPARATOR",49:"NOTE_FOR",51:"NOTE",52:"direction_tb",53:"direction_bt",54:"direction_rl",55:"direction_lr",58:"AGGREGATION",59:"EXTENSION",60:"COMPOSITION",61:"DEPENDENCY",62:"LOLLIPOP",63:"LINE",64:"DOTTED_LINE",65:"CALLBACK",66:"LINK",67:"LINK_TARGET",68:"CLICK",69:"CALLBACK_NAME",70:"CALLBACK_ARGS",71:"HREF",72:"CSSCLASS",75:"graphCodeTokens",77:"TAGSTART",78:"TAGEND",79:"==",80:"--",81:"PCT",82:"DEFAULT",83:"SPACE",84:"MINUS",85:"keywords",86:"UNICODE_TEXT",87:"NUM",88:"ALPHA",89:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[35,2],[37,1],[37,2],[37,3],[23,1],[23,3],[23,4],[23,6],[40,2],[40,3],[25,4],[42,1],[42,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[28,3],[28,2],[29,1],[29,1],[29,1],[29,1],[48,3],[48,2],[48,2],[48,1],[56,1],[56,1],[56,1],[56,1],[56,1],[57,1],[57,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[73,1],[73,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[76,1],[76,1],[76,1],[76,1],[16,1],[16,1],[16,1],[16,1],[18,1],[50,1]],performAction:function(t,e,n,s,i,u,r){var a=u.length-1;switch(i){case 8:this.$=u[a-1];break;case 9:case 11:case 12:this.$=u[a];break;case 10:case 13:this.$=u[a-1]+u[a];break;case 14:case 15:this.$=u[a-1]+"~"+u[a]+"~";break;case 16:s.addRelation(u[a]);break;case 17:u[a-1].title=s.cleanupLabel(u[a]),s.addRelation(u[a-1]);break;case 26:this.$=u[a].trim(),s.setAccTitle(this.$);break;case 27:case 28:this.$=u[a].trim(),s.setAccDescription(this.$);break;case 29:s.addClassesToNamespace(u[a-3],u[a-1]);break;case 30:s.addClassesToNamespace(u[a-4],u[a-1]);break;case 31:this.$=u[a],s.addNamespace(u[a]);break;case 32:case 42:this.$=[u[a]];break;case 33:this.$=[u[a-1]];break;case 34:u[a].unshift(u[a-2]),this.$=u[a];break;case 36:s.setCssClass(u[a-2],u[a]);break;case 37:s.addMembers(u[a-3],u[a-1]);break;case 38:s.setCssClass(u[a-5],u[a-3]),s.addMembers(u[a-5],u[a-1]);break;case 39:this.$=u[a],s.addClass(u[a]);break;case 40:this.$=u[a-1],s.addClass(u[a-1]),s.setClassLabel(u[a-1],u[a]);break;case 41:s.addAnnotation(u[a],u[a-2]);break;case 43:u[a].push(u[a-1]),this.$=u[a];break;case 44:case 46:case 47:break;case 45:s.addMember(u[a-1],s.cleanupLabel(u[a]));break;case 48:this.$={id1:u[a-2],id2:u[a],relation:u[a-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:u[a-3],id2:u[a],relation:u[a-1],relationTitle1:u[a-2],relationTitle2:"none"};break;case 50:this.$={id1:u[a-3],id2:u[a],relation:u[a-2],relationTitle1:"none",relationTitle2:u[a-1]};break;case 51:this.$={id1:u[a-4],id2:u[a],relation:u[a-2],relationTitle1:u[a-3],relationTitle2:u[a-1]};break;case 52:s.addNote(u[a],u[a-1]);break;case 53:s.addNote(u[a]);break;case 54:s.setDirection("TB");break;case 55:s.setDirection("BT");break;case 56:s.setDirection("RL");break;case 57:s.setDirection("LR");break;case 58:this.$={type1:u[a-2],type2:u[a],lineType:u[a-1]};break;case 59:this.$={type1:"none",type2:u[a],lineType:u[a-1]};break;case 60:this.$={type1:u[a-1],type2:"none",lineType:u[a]};break;case 61:this.$={type1:"none",type2:"none",lineType:u[a]};break;case 62:this.$=s.relationType.AGGREGATION;break;case 63:this.$=s.relationType.EXTENSION;break;case 64:this.$=s.relationType.COMPOSITION;break;case 65:this.$=s.relationType.DEPENDENCY;break;case 66:this.$=s.relationType.LOLLIPOP;break;case 67:this.$=s.lineType.LINE;break;case 68:this.$=s.lineType.DOTTED_LINE;break;case 69:case 75:this.$=u[a-2],s.setClickEvent(u[a-1],u[a]);break;case 70:case 76:this.$=u[a-3],s.setClickEvent(u[a-2],u[a-1]),s.setTooltip(u[a-2],u[a]);break;case 71:this.$=u[a-2],s.setLink(u[a-1],u[a]);break;case 72:this.$=u[a-3],s.setLink(u[a-2],u[a-1],u[a]);break;case 73:this.$=u[a-3],s.setLink(u[a-2],u[a-1]),s.setTooltip(u[a-2],u[a]);break;case 74:this.$=u[a-4],s.setLink(u[a-3],u[a-2],u[a]),s.setTooltip(u[a-3],u[a-1]);break;case 77:this.$=u[a-3],s.setClickEvent(u[a-2],u[a-1],u[a]);break;case 78:this.$=u[a-4],s.setClickEvent(u[a-3],u[a-2],u[a-1]),s.setTooltip(u[a-3],u[a]);break;case 79:this.$=u[a-3],s.setLink(u[a-2],u[a]);break;case 80:this.$=u[a-4],s.setLink(u[a-3],u[a-1],u[a]);break;case 81:this.$=u[a-4],s.setLink(u[a-3],u[a-1]),s.setTooltip(u[a-3],u[a]);break;case 82:this.$=u[a-5],s.setLink(u[a-4],u[a-2],u[a]),s.setTooltip(u[a-4],u[a-1]);break;case 83:s.setCssClass(u[a-1],u[a])}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:e,32:n,34:s,35:20,39:i,40:21,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(T,[2,5],{8:[1,44]}),{8:[1,45]},t(B,[2,16],{21:[1,46]}),t(B,[2,18]),t(B,[2,19]),t(B,[2,20]),t(B,[2,21]),t(B,[2,22]),t(B,[2,23]),t(B,[2,24]),t(B,[2,25]),{31:[1,47]},{33:[1,48]},t(B,[2,28]),t(B,[2,44],{48:49,56:52,57:53,13:[1,50],21:[1,51],58:D,59:_,60:S,61:N,62:L,63:$,64:v}),{36:[1,61]},t(I,[2,35],{36:[1,63],41:[1,62]}),t(B,[2,46]),t(B,[2,47]),{16:64,84:f,86:b,87:F,88:g},{16:35,17:65,18:36,84:f,86:b,87:F,88:g,89:k},{16:35,17:66,18:36,84:f,86:b,87:F,88:g,89:k},{16:35,17:67,18:36,84:f,86:b,87:F,88:g,89:k},{13:[1,68]},{16:35,17:69,18:36,84:f,86:b,87:F,88:g,89:k},{13:x,50:70},t(B,[2,54]),t(B,[2,55]),t(B,[2,56]),t(B,[2,57]),t(O,[2,11],{16:35,18:36,17:72,19:[1,73],84:f,86:b,87:F,88:g,89:k}),t(O,[2,12],{19:[1,74]}),{15:75,16:76,84:f,86:b,87:F,88:g},{16:35,17:77,18:36,84:f,86:b,87:F,88:g,89:k},t(R,[2,97]),t(R,[2,98]),t(R,[2,99]),t(R,[2,100]),t([1,8,9,12,13,19,21,36,38,41,58,59,60,61,62,63,64,69,71],[2,101]),t(T,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,17:19,35:20,40:21,16:35,18:36,5:78,30:e,32:n,34:s,39:i,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k}),{5:79,10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:e,32:n,34:s,35:20,39:i,40:21,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k},t(B,[2,17]),t(B,[2,26]),t(B,[2,27]),{13:[1,81],16:35,17:80,18:36,84:f,86:b,87:F,88:g,89:k},{48:82,56:52,57:53,58:D,59:_,60:S,61:N,62:L,63:$,64:v},t(B,[2,45]),{57:83,63:$,64:v},t(w,[2,61],{56:84,58:D,59:_,60:S,61:N,62:L}),t(P,[2,62]),t(P,[2,63]),t(P,[2,64]),t(P,[2,65]),t(P,[2,66]),t(G,[2,67]),t(G,[2,68]),{8:[1,86],23:87,37:85,40:21,43:u},{16:88,84:f,86:b,87:F,88:g},{42:89,46:M},{45:[1,91]},{13:[1,92]},{13:[1,93]},{69:[1,94],71:[1,95]},{16:96,84:f,86:b,87:F,88:g},{13:x,50:97},t(B,[2,53]),t(B,[2,102]),t(O,[2,13]),t(O,[2,14]),t(O,[2,15]),{36:[2,31]},{15:98,16:76,36:[2,9],84:f,86:b,87:F,88:g},t(U,[2,39],{11:99,12:[1,100]}),t(T,[2,7]),{9:[1,101]},t(Y,[2,48]),{16:35,17:102,18:36,84:f,86:b,87:F,88:g,89:k},{13:[1,104],16:35,17:103,18:36,84:f,86:b,87:F,88:g,89:k},t(w,[2,60],{56:105,58:D,59:_,60:S,61:N,62:L}),t(w,[2,59]),{38:[1,106]},{23:87,37:107,40:21,43:u},{8:[1,108],38:[2,32]},t(I,[2,36],{36:[1,109]}),{38:[1,110]},{38:[2,42],42:111,46:M},{16:35,17:112,18:36,84:f,86:b,87:F,88:g,89:k},t(B,[2,69],{13:[1,113]}),t(B,[2,71],{13:[1,115],67:[1,114]}),t(B,[2,75],{13:[1,116],70:[1,117]}),{13:[1,118]},t(B,[2,83]),t(B,[2,52]),{36:[2,10]},t(U,[2,40]),{13:[1,119]},{1:[2,4]},t(Y,[2,50]),t(Y,[2,49]),{16:35,17:120,18:36,84:f,86:b,87:F,88:g,89:k},t(w,[2,58]),t(B,[2,29]),{38:[1,121]},{23:87,37:122,38:[2,33],40:21,43:u},{42:123,46:M},t(I,[2,37]),{38:[2,43]},t(B,[2,41]),t(B,[2,70]),t(B,[2,72]),t(B,[2,73],{67:[1,124]}),t(B,[2,76]),t(B,[2,77],{13:[1,125]}),t(B,[2,79],{13:[1,127],67:[1,126]}),{14:[1,128]},t(Y,[2,51]),t(B,[2,30]),{38:[2,34]},{38:[1,129]},t(B,[2,74]),t(B,[2,78]),t(B,[2,80]),t(B,[2,81],{67:[1,130]}),t(U,[2,8]),t(I,[2,38]),t(B,[2,82])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],75:[2,31],98:[2,10],101:[2,4],111:[2,43],122:[2,34]},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],s=[],i=[null],u=[],r=this.table,a="",c=0,o=0,l=u.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(A.yy[p]=this.yy[p]);h.setInput(t,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var d=h.yylloc;u.push(d);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,C,m,f,b,F,g,k,T,B={};;){if(C=n[n.length-1],this.defaultActions[C]?m=this.defaultActions[C]:(null==E&&(T=void 0,"number"!=typeof(T=s.pop()||h.lex()||1)&&(T instanceof Array&&(T=(s=T).pop()),T=e.symbols_[T]||T),E=T),m=r[C]&&r[C][E]),void 0===m||!m.length||!m[0]){var D="";for(b in k=[],r[C])this.terminals_[b]&&b>2&&k.push("'"+this.terminals_[b]+"'");D=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(D,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:d,expected:k})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+E);switch(m[0]){case 1:n.push(E),i.push(h.yytext),u.push(h.yylloc),n.push(m[1]),E=null,o=h.yyleng,a=h.yytext,c=h.yylineno,d=h.yylloc;break;case 2:if(F=this.productions_[m[1]][1],B.$=i[i.length-F],B._$={first_line:u[u.length-(F||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(F||1)].first_column,last_column:u[u.length-1].last_column},y&&(B._$.range=[u[u.length-(F||1)].range[0],u[u.length-1].range[1]]),void 0!==(f=this.performAction.apply(B,[a,o,c,A.yy,m[1],i,u].concat(l))))return f;F&&(n=n.slice(0,-1*F*2),i=i.slice(0,-1*F),u=u.slice(0,-1*F)),n.push(this.productions_[m[1]][0]),i.push(B.$),u.push(B._$),g=r[n[n.length-2]][n[n.length-1]],n.push(g);break;case 3:return!0}}return!0}},K={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 s=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===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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,s,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))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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 u in i)this[u]=i[u];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),u=0;u<i.length;u++)if((n=this._input.match(this.rules[i[u]]))&&(!e||n[0].length>e[0].length)){if(e=n,s=u,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[u])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[s]))&&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,s){switch(n){case 0:return 52;case 1:return 53;case 2:return 54;case 3:return 55;case 4:case 5:case 14:case 29:case 34:case 38:case 45:break;case 6:return this.begin("acc_title"),30;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),32;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 19:case 22:case 24:case 56:case 59:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 33:return 8;case 15:case 16:return 7;case 17:case 35:case 43:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 69;case 23:return 70;case 25:return"STR";case 26:this.begin("string");break;case 27:return this.begin("namespace"),39;case 28:case 37:return this.popState(),8;case 30:return this.begin("namespace-body"),36;case 31:case 41:return this.popState(),38;case 32:case 42:return"EOF_IN_STRUCT";case 36:return this.begin("class"),43;case 39:return this.popState(),this.popState(),38;case 40:return this.begin("class-body"),36;case 44:return"OPEN_IN_STRUCT";case 46:return"MEMBER";case 47:return 72;case 48:return 65;case 49:return 66;case 50:return 68;case 51:return 49;case 52:return 51;case 53:return 44;case 54:return 45;case 55:return 71;case 57:return"GENERICTYPE";case 58:this.begin("generic");break;case 60:return"BQUOTE_STR";case 61:this.begin("bqstring");break;case 62:case 63:case 64:case 65:return 67;case 66:case 67:return 59;case 68:case 69:return 61;case 70:return 60;case 71:return 58;case 72:return 62;case 73:return 63;case 74:return 64;case 75:return 21;case 76:return 41;case 77:return 84;case 78:return"DOT";case 79:return"PLUS";case 80:return 81;case 81:case 82:return"EQUALS";case 83:return 88;case 84:return 12;case 85:return 14;case 86:return"PUNCTUATION";case 87:return 87;case 88:return 86;case 89:return 83;case 90:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\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)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_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:{"namespace-body":{rules:[26,31,32,33,34,35,36,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},namespace:{rules:[26,27,28,29,30,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},"class-body":{rules:[26,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},class:{rules:[26,37,38,39,40,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_descr:{rules:[9,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_title:{rules:[7,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},callback_args:{rules:[22,23,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},callback_name:{rules:[19,20,21,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},href:{rules:[26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},struct:{rules:[26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},generic:{rules:[26,47,48,49,50,51,52,53,54,55,56,57,58,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],inclusive:!1},bqstring:{rules:[26,47,48,49,50,51,52,53,54,55,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],inclusive:!1},string:{rules:[24,25,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,36,47,48,49,50,51,52,53,54,55,58,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],inclusive:!0}}};function j(){this.yy={}}return z.lexer=K,j.prototype=z,z.Parser=j,new j}();u.parser=u;const r=u,a=["#","+","~","-",""];class c{constructor(t,e){this.memberType=e,this.visibility="",this.classifier="";const n=(0,i.d)(t,(0,i.c)());this.parseMember(n)}getDisplayDetails(){let t=this.visibility+(0,i.v)(this.id);"method"===this.memberType&&(t+=`(${(0,i.v)(this.parameters.trim())})`,this.returnType&&(t+=" : "+(0,i.v)(this.returnType))),t=t.trim();return{displayText:t,cssStyle:this.parseClassifier()}}parseMember(t){let e="";if("method"===this.memberType){const n=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,s=t.match(n);if(s){const t=s[1]?s[1].trim():"";if(a.includes(t)&&(this.visibility=t),this.id=s[2].trim(),this.parameters=s[3]?s[3].trim():"",e=s[4]?s[4].trim():"",this.returnType=s[5]?s[5].trim():"",""===e){const t=this.returnType.substring(this.returnType.length-1);t.match(/[$*]/)&&(e=t,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const n=t.length,s=t.substring(0,1),i=t.substring(n-1);a.includes(s)&&(this.visibility=s),i.match(/[*?]/)&&(e=i),this.id=t.substring(""===this.visibility?0:1,""===e?n:n-1)}this.classifier=e}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const o="classId-";let l=[],h={},A=[],p=0,d={},y=0,E=[];const C=t=>i.e.sanitizeText(t,(0,i.c)()),m=function(t){const e=i.e.sanitizeText(t,(0,i.c)());let n="",s=e;if(e.indexOf("~")>0){const t=e.split("~");s=C(t[0]),n=C(t[1])}return{className:s,type:n}},f=function(t){const e=i.e.sanitizeText(t,(0,i.c)()),{className:n,type:s}=m(e);if(Object.hasOwn(h,n))return;const u=i.e.sanitizeText(n,(0,i.c)());h[u]={id:u,type:s,label:u,cssClasses:[],methods:[],members:[],annotations:[],domId:o+u+"-"+p},p++},b=function(t){const e=i.e.sanitizeText(t,(0,i.c)());if(e in h)return h[e].domId;throw new Error("Class not found: "+e)},F=function(t,e){f(t);const n=m(t).className,s=h[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?s.annotations.push(C(t.substring(2,t.length-2))):t.indexOf(")")>0?s.methods.push(new c(t,"method")):t&&s.members.push(new c(t,"attribute"))}},g=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=o+n),void 0!==h[n]&&h[n].cssClasses.push(e)}))},k=function(t,e,n){const s=i.e.sanitizeText(t,(0,i.c)());if("loose"!==(0,i.c)().securityLevel)return;if(void 0===e)return;const u=s;if(void 0!==h[u]){const t=b(u);let s=[];if("string"==typeof n){s=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<s.length;t++){let e=s[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),s[t]=e}}0===s.length&&s.push(t),E.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){i.u.runFunc(e,...s)}),!1)}))}},T=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)}))};E.push(T);let B="TB";const D={setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,getConfig:()=>(0,i.c)().class,addClass:f,bindFunctions:function(t){E.forEach((function(e){e(t)}))},clear:function(){l=[],h={},A=[],E=[],E.push(T),d={},y=0,(0,i.t)()},getClass:function(t){return h[t]},getClasses:function(){return h},getNotes:function(){return A},addAnnotation:function(t,e){const n=m(t).className;h[n].annotations.push(e)},addNote:function(t,e){const n={id:`note${A.length}`,class:e,text:t};A.push(n)},getRelations:function(){return l},addRelation:function(t){i.l.debug("Adding relation: "+JSON.stringify(t)),f(t.id1),f(t.id2),t.id1=m(t.id1).className,t.id2=m(t.id2).className,t.relationTitle1=i.e.sanitizeText(t.relationTitle1.trim(),(0,i.c)()),t.relationTitle2=i.e.sanitizeText(t.relationTitle2.trim(),(0,i.c)()),l.push(t)},getDirection:()=>B,setDirection:t=>{B=t},addMember:F,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>F(t,e))))},cleanupLabel:function(t){return t.startsWith(":")&&(t=t.substring(1)),C(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){k(t,e,n),h[t].haveCallback=!0})),g(t,"clickable")},setCssClass:g,setLink:function(t,e,n){const s=(0,i.c)();t.split(",").forEach((function(t){let u=t;t[0].match(/\d/)&&(u=o+u),void 0!==h[u]&&(h[u].link=i.u.formatUrl(e,s),"sandbox"===s.securityLevel?h[u].linkTarget="_top":h[u].linkTarget="string"==typeof n?C(n):"_blank")})),g(t,"clickable")},getTooltip:function(t,e){return e?d[e].classes[t].tooltip:h[t].tooltip},setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(h[t].tooltip=C(e))}))},lookUpDomId:b,setDiagramTitle:i.q,getDiagramTitle:i.r,setClassLabel:function(t,e){const n=i.e.sanitizeText(t,(0,i.c)());e&&(e=C(e));const{className:s}=m(n);h[s].label=e},addNamespace:function(t){void 0===d[t]&&(d[t]={id:t,classes:{},children:{},domId:o+t+"-"+y},y++)},addClassesToNamespace:function(t,e){void 0!==d[t]&&e.map((e=>{h[e].parent=t,d[t].classes[e]=h[e]}))},getNamespace:function(t){return d[t]},getNamespaces:function(){return d}},_=t=>`g.classGroup text {\n fill: ${t.nodeBorder||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-width: 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: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !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`}}]); \ No newline at end of file diff --git a/assets/js/4706.bf286a6c.js b/assets/js/4706.bf286a6c.js new file mode 100644 index 0000000..3237a87 --- /dev/null +++ b/assets/js/4706.bf286a6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4706],{54706:(t,e,n)=>{n.d(e,{d:()=>D,p:()=>r,s:()=>_});var s=n(64218),i=n(85322),u=function(){var t=function(t,e,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=e);return n},e=[1,16],n=[1,17],s=[1,18],i=[1,37],u=[1,38],r=[1,24],a=[1,22],c=[1,23],o=[1,29],l=[1,30],h=[1,31],A=[1,32],p=[1,33],d=[1,34],y=[1,25],E=[1,26],C=[1,27],m=[1,28],f=[1,42],b=[1,39],F=[1,40],g=[1,41],k=[1,43],T=[1,9],B=[1,8,9],D=[1,54],_=[1,55],S=[1,56],N=[1,57],L=[1,58],$=[1,59],v=[1,60],I=[1,8,9,38],x=[1,71],O=[1,8,9,12,13,21,36,38,41,58,59,60,61,62,63,64,69,71],R=[1,8,9,12,13,19,21,36,38,41,45,58,59,60,61,62,63,64,69,71,84,86,87,88,89],w=[13,84,86,87,88,89],P=[13,63,64,84,86,87,88,89],G=[13,58,59,60,61,62,84,86,87,88,89],M=[1,90],U=[1,8,9,36,38,41],Y=[1,8,9,21],z={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,cssClassStatement:27,noteStatement:28,direction:29,acc_title:30,acc_title_value:31,acc_descr:32,acc_descr_value:33,acc_descr_multiline_value:34,namespaceIdentifier:35,STRUCT_START:36,classStatements:37,STRUCT_STOP:38,NAMESPACE:39,classIdentifier:40,STYLE_SEPARATOR:41,members:42,CLASS:43,ANNOTATION_START:44,ANNOTATION_END:45,MEMBER:46,SEPARATOR:47,relation:48,NOTE_FOR:49,noteText:50,NOTE:51,direction_tb:52,direction_bt:53,direction_rl:54,direction_lr:55,relationType:56,lineType:57,AGGREGATION:58,EXTENSION:59,COMPOSITION:60,DEPENDENCY:61,LOLLIPOP:62,LINE:63,DOTTED_LINE:64,CALLBACK:65,LINK:66,LINK_TARGET:67,CLICK:68,CALLBACK_NAME:69,CALLBACK_ARGS:70,HREF:71,CSSCLASS:72,commentToken:73,textToken:74,graphCodeTokens:75,textNoTagsToken:76,TAGSTART:77,TAGEND:78,"==":79,"--":80,PCT:81,DEFAULT:82,SPACE:83,MINUS:84,keywords:85,UNICODE_TEXT:86,NUM:87,ALPHA:88,BQUOTE_STR:89,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",30:"acc_title",31:"acc_title_value",32:"acc_descr",33:"acc_descr_value",34:"acc_descr_multiline_value",36:"STRUCT_START",38:"STRUCT_STOP",39:"NAMESPACE",41:"STYLE_SEPARATOR",43:"CLASS",44:"ANNOTATION_START",45:"ANNOTATION_END",46:"MEMBER",47:"SEPARATOR",49:"NOTE_FOR",51:"NOTE",52:"direction_tb",53:"direction_bt",54:"direction_rl",55:"direction_lr",58:"AGGREGATION",59:"EXTENSION",60:"COMPOSITION",61:"DEPENDENCY",62:"LOLLIPOP",63:"LINE",64:"DOTTED_LINE",65:"CALLBACK",66:"LINK",67:"LINK_TARGET",68:"CLICK",69:"CALLBACK_NAME",70:"CALLBACK_ARGS",71:"HREF",72:"CSSCLASS",75:"graphCodeTokens",77:"TAGSTART",78:"TAGEND",79:"==",80:"--",81:"PCT",82:"DEFAULT",83:"SPACE",84:"MINUS",85:"keywords",86:"UNICODE_TEXT",87:"NUM",88:"ALPHA",89:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[35,2],[37,1],[37,2],[37,3],[23,1],[23,3],[23,4],[23,6],[40,2],[40,3],[25,4],[42,1],[42,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[28,3],[28,2],[29,1],[29,1],[29,1],[29,1],[48,3],[48,2],[48,2],[48,1],[56,1],[56,1],[56,1],[56,1],[56,1],[57,1],[57,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[73,1],[73,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[76,1],[76,1],[76,1],[76,1],[16,1],[16,1],[16,1],[16,1],[18,1],[50,1]],performAction:function(t,e,n,s,i,u,r){var a=u.length-1;switch(i){case 8:this.$=u[a-1];break;case 9:case 11:case 12:this.$=u[a];break;case 10:case 13:this.$=u[a-1]+u[a];break;case 14:case 15:this.$=u[a-1]+"~"+u[a]+"~";break;case 16:s.addRelation(u[a]);break;case 17:u[a-1].title=s.cleanupLabel(u[a]),s.addRelation(u[a-1]);break;case 26:this.$=u[a].trim(),s.setAccTitle(this.$);break;case 27:case 28:this.$=u[a].trim(),s.setAccDescription(this.$);break;case 29:s.addClassesToNamespace(u[a-3],u[a-1]);break;case 30:s.addClassesToNamespace(u[a-4],u[a-1]);break;case 31:this.$=u[a],s.addNamespace(u[a]);break;case 32:case 42:this.$=[u[a]];break;case 33:this.$=[u[a-1]];break;case 34:u[a].unshift(u[a-2]),this.$=u[a];break;case 36:s.setCssClass(u[a-2],u[a]);break;case 37:s.addMembers(u[a-3],u[a-1]);break;case 38:s.setCssClass(u[a-5],u[a-3]),s.addMembers(u[a-5],u[a-1]);break;case 39:this.$=u[a],s.addClass(u[a]);break;case 40:this.$=u[a-1],s.addClass(u[a-1]),s.setClassLabel(u[a-1],u[a]);break;case 41:s.addAnnotation(u[a],u[a-2]);break;case 43:u[a].push(u[a-1]),this.$=u[a];break;case 44:case 46:case 47:break;case 45:s.addMember(u[a-1],s.cleanupLabel(u[a]));break;case 48:this.$={id1:u[a-2],id2:u[a],relation:u[a-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:u[a-3],id2:u[a],relation:u[a-1],relationTitle1:u[a-2],relationTitle2:"none"};break;case 50:this.$={id1:u[a-3],id2:u[a],relation:u[a-2],relationTitle1:"none",relationTitle2:u[a-1]};break;case 51:this.$={id1:u[a-4],id2:u[a],relation:u[a-2],relationTitle1:u[a-3],relationTitle2:u[a-1]};break;case 52:s.addNote(u[a],u[a-1]);break;case 53:s.addNote(u[a]);break;case 54:s.setDirection("TB");break;case 55:s.setDirection("BT");break;case 56:s.setDirection("RL");break;case 57:s.setDirection("LR");break;case 58:this.$={type1:u[a-2],type2:u[a],lineType:u[a-1]};break;case 59:this.$={type1:"none",type2:u[a],lineType:u[a-1]};break;case 60:this.$={type1:u[a-1],type2:"none",lineType:u[a]};break;case 61:this.$={type1:"none",type2:"none",lineType:u[a]};break;case 62:this.$=s.relationType.AGGREGATION;break;case 63:this.$=s.relationType.EXTENSION;break;case 64:this.$=s.relationType.COMPOSITION;break;case 65:this.$=s.relationType.DEPENDENCY;break;case 66:this.$=s.relationType.LOLLIPOP;break;case 67:this.$=s.lineType.LINE;break;case 68:this.$=s.lineType.DOTTED_LINE;break;case 69:case 75:this.$=u[a-2],s.setClickEvent(u[a-1],u[a]);break;case 70:case 76:this.$=u[a-3],s.setClickEvent(u[a-2],u[a-1]),s.setTooltip(u[a-2],u[a]);break;case 71:this.$=u[a-2],s.setLink(u[a-1],u[a]);break;case 72:this.$=u[a-3],s.setLink(u[a-2],u[a-1],u[a]);break;case 73:this.$=u[a-3],s.setLink(u[a-2],u[a-1]),s.setTooltip(u[a-2],u[a]);break;case 74:this.$=u[a-4],s.setLink(u[a-3],u[a-2],u[a]),s.setTooltip(u[a-3],u[a-1]);break;case 77:this.$=u[a-3],s.setClickEvent(u[a-2],u[a-1],u[a]);break;case 78:this.$=u[a-4],s.setClickEvent(u[a-3],u[a-2],u[a-1]),s.setTooltip(u[a-3],u[a]);break;case 79:this.$=u[a-3],s.setLink(u[a-2],u[a]);break;case 80:this.$=u[a-4],s.setLink(u[a-3],u[a-1],u[a]);break;case 81:this.$=u[a-4],s.setLink(u[a-3],u[a-1]),s.setTooltip(u[a-3],u[a]);break;case 82:this.$=u[a-5],s.setLink(u[a-4],u[a-2],u[a]),s.setTooltip(u[a-4],u[a-1]);break;case 83:s.setCssClass(u[a-1],u[a])}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:e,32:n,34:s,35:20,39:i,40:21,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(T,[2,5],{8:[1,44]}),{8:[1,45]},t(B,[2,16],{21:[1,46]}),t(B,[2,18]),t(B,[2,19]),t(B,[2,20]),t(B,[2,21]),t(B,[2,22]),t(B,[2,23]),t(B,[2,24]),t(B,[2,25]),{31:[1,47]},{33:[1,48]},t(B,[2,28]),t(B,[2,44],{48:49,56:52,57:53,13:[1,50],21:[1,51],58:D,59:_,60:S,61:N,62:L,63:$,64:v}),{36:[1,61]},t(I,[2,35],{36:[1,63],41:[1,62]}),t(B,[2,46]),t(B,[2,47]),{16:64,84:f,86:b,87:F,88:g},{16:35,17:65,18:36,84:f,86:b,87:F,88:g,89:k},{16:35,17:66,18:36,84:f,86:b,87:F,88:g,89:k},{16:35,17:67,18:36,84:f,86:b,87:F,88:g,89:k},{13:[1,68]},{16:35,17:69,18:36,84:f,86:b,87:F,88:g,89:k},{13:x,50:70},t(B,[2,54]),t(B,[2,55]),t(B,[2,56]),t(B,[2,57]),t(O,[2,11],{16:35,18:36,17:72,19:[1,73],84:f,86:b,87:F,88:g,89:k}),t(O,[2,12],{19:[1,74]}),{15:75,16:76,84:f,86:b,87:F,88:g},{16:35,17:77,18:36,84:f,86:b,87:F,88:g,89:k},t(R,[2,97]),t(R,[2,98]),t(R,[2,99]),t(R,[2,100]),t([1,8,9,12,13,19,21,36,38,41,58,59,60,61,62,63,64,69,71],[2,101]),t(T,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,17:19,35:20,40:21,16:35,18:36,5:78,30:e,32:n,34:s,39:i,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k}),{5:79,10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:e,32:n,34:s,35:20,39:i,40:21,43:u,44:r,46:a,47:c,49:o,51:l,52:h,53:A,54:p,55:d,65:y,66:E,68:C,72:m,84:f,86:b,87:F,88:g,89:k},t(B,[2,17]),t(B,[2,26]),t(B,[2,27]),{13:[1,81],16:35,17:80,18:36,84:f,86:b,87:F,88:g,89:k},{48:82,56:52,57:53,58:D,59:_,60:S,61:N,62:L,63:$,64:v},t(B,[2,45]),{57:83,63:$,64:v},t(w,[2,61],{56:84,58:D,59:_,60:S,61:N,62:L}),t(P,[2,62]),t(P,[2,63]),t(P,[2,64]),t(P,[2,65]),t(P,[2,66]),t(G,[2,67]),t(G,[2,68]),{8:[1,86],23:87,37:85,40:21,43:u},{16:88,84:f,86:b,87:F,88:g},{42:89,46:M},{45:[1,91]},{13:[1,92]},{13:[1,93]},{69:[1,94],71:[1,95]},{16:96,84:f,86:b,87:F,88:g},{13:x,50:97},t(B,[2,53]),t(B,[2,102]),t(O,[2,13]),t(O,[2,14]),t(O,[2,15]),{36:[2,31]},{15:98,16:76,36:[2,9],84:f,86:b,87:F,88:g},t(U,[2,39],{11:99,12:[1,100]}),t(T,[2,7]),{9:[1,101]},t(Y,[2,48]),{16:35,17:102,18:36,84:f,86:b,87:F,88:g,89:k},{13:[1,104],16:35,17:103,18:36,84:f,86:b,87:F,88:g,89:k},t(w,[2,60],{56:105,58:D,59:_,60:S,61:N,62:L}),t(w,[2,59]),{38:[1,106]},{23:87,37:107,40:21,43:u},{8:[1,108],38:[2,32]},t(I,[2,36],{36:[1,109]}),{38:[1,110]},{38:[2,42],42:111,46:M},{16:35,17:112,18:36,84:f,86:b,87:F,88:g,89:k},t(B,[2,69],{13:[1,113]}),t(B,[2,71],{13:[1,115],67:[1,114]}),t(B,[2,75],{13:[1,116],70:[1,117]}),{13:[1,118]},t(B,[2,83]),t(B,[2,52]),{36:[2,10]},t(U,[2,40]),{13:[1,119]},{1:[2,4]},t(Y,[2,50]),t(Y,[2,49]),{16:35,17:120,18:36,84:f,86:b,87:F,88:g,89:k},t(w,[2,58]),t(B,[2,29]),{38:[1,121]},{23:87,37:122,38:[2,33],40:21,43:u},{42:123,46:M},t(I,[2,37]),{38:[2,43]},t(B,[2,41]),t(B,[2,70]),t(B,[2,72]),t(B,[2,73],{67:[1,124]}),t(B,[2,76]),t(B,[2,77],{13:[1,125]}),t(B,[2,79],{13:[1,127],67:[1,126]}),{14:[1,128]},t(Y,[2,51]),t(B,[2,30]),{38:[2,34]},{38:[1,129]},t(B,[2,74]),t(B,[2,78]),t(B,[2,80]),t(B,[2,81],{67:[1,130]}),t(U,[2,8]),t(I,[2,38]),t(B,[2,82])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],75:[2,31],98:[2,10],101:[2,4],111:[2,43],122:[2,34]},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],s=[],i=[null],u=[],r=this.table,a="",c=0,o=0,l=u.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(A.yy[p]=this.yy[p]);h.setInput(t,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var d=h.yylloc;u.push(d);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,C,m,f,b,F,g,k,T,B={};;){if(C=n[n.length-1],this.defaultActions[C]?m=this.defaultActions[C]:(null==E&&(T=void 0,"number"!=typeof(T=s.pop()||h.lex()||1)&&(T instanceof Array&&(T=(s=T).pop()),T=e.symbols_[T]||T),E=T),m=r[C]&&r[C][E]),void 0===m||!m.length||!m[0]){var D="";for(b in k=[],r[C])this.terminals_[b]&&b>2&&k.push("'"+this.terminals_[b]+"'");D=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(D,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:d,expected:k})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+E);switch(m[0]){case 1:n.push(E),i.push(h.yytext),u.push(h.yylloc),n.push(m[1]),E=null,o=h.yyleng,a=h.yytext,c=h.yylineno,d=h.yylloc;break;case 2:if(F=this.productions_[m[1]][1],B.$=i[i.length-F],B._$={first_line:u[u.length-(F||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(F||1)].first_column,last_column:u[u.length-1].last_column},y&&(B._$.range=[u[u.length-(F||1)].range[0],u[u.length-1].range[1]]),void 0!==(f=this.performAction.apply(B,[a,o,c,A.yy,m[1],i,u].concat(l))))return f;F&&(n=n.slice(0,-1*F*2),i=i.slice(0,-1*F),u=u.slice(0,-1*F)),n.push(this.productions_[m[1]][0]),i.push(B.$),u.push(B._$),g=r[n[n.length-2]][n[n.length-1]],n.push(g);break;case 3:return!0}}return!0}},K={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 s=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===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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,s,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))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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 u in i)this[u]=i[u];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),u=0;u<i.length;u++)if((n=this._input.match(this.rules[i[u]]))&&(!e||n[0].length>e[0].length)){if(e=n,s=u,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[u])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[s]))&&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,s){switch(n){case 0:return 52;case 1:return 53;case 2:return 54;case 3:return 55;case 4:case 5:case 14:case 29:case 34:case 38:case 45:break;case 6:return this.begin("acc_title"),30;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),32;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 19:case 22:case 24:case 56:case 59:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 33:return 8;case 15:case 16:return 7;case 17:case 35:case 43:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 69;case 23:return 70;case 25:return"STR";case 26:this.begin("string");break;case 27:return this.begin("namespace"),39;case 28:case 37:return this.popState(),8;case 30:return this.begin("namespace-body"),36;case 31:case 41:return this.popState(),38;case 32:case 42:return"EOF_IN_STRUCT";case 36:return this.begin("class"),43;case 39:return this.popState(),this.popState(),38;case 40:return this.begin("class-body"),36;case 44:return"OPEN_IN_STRUCT";case 46:return"MEMBER";case 47:return 72;case 48:return 65;case 49:return 66;case 50:return 68;case 51:return 49;case 52:return 51;case 53:return 44;case 54:return 45;case 55:return 71;case 57:return"GENERICTYPE";case 58:this.begin("generic");break;case 60:return"BQUOTE_STR";case 61:this.begin("bqstring");break;case 62:case 63:case 64:case 65:return 67;case 66:case 67:return 59;case 68:case 69:return 61;case 70:return 60;case 71:return 58;case 72:return 62;case 73:return 63;case 74:return 64;case 75:return 21;case 76:return 41;case 77:return 84;case 78:return"DOT";case 79:return"PLUS";case 80:return 81;case 81:case 82:return"EQUALS";case 83:return 88;case 84:return 12;case 85:return 14;case 86:return"PUNCTUATION";case 87:return 87;case 88:return 86;case 89:return 83;case 90:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\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)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_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:{"namespace-body":{rules:[26,31,32,33,34,35,36,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},namespace:{rules:[26,27,28,29,30,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},"class-body":{rules:[26,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},class:{rules:[26,37,38,39,40,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_descr:{rules:[9,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},acc_title:{rules:[7,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},callback_args:{rules:[22,23,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},callback_name:{rules:[19,20,21,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},href:{rules:[26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},struct:{rules:[26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},generic:{rules:[26,47,48,49,50,51,52,53,54,55,56,57,58,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],inclusive:!1},bqstring:{rules:[26,47,48,49,50,51,52,53,54,55,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],inclusive:!1},string:{rules:[24,25,26,47,48,49,50,51,52,53,54,55,58,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],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,36,47,48,49,50,51,52,53,54,55,58,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],inclusive:!0}}};function j(){this.yy={}}return z.lexer=K,j.prototype=z,z.Parser=j,new j}();u.parser=u;const r=u,a=["#","+","~","-",""];class c{constructor(t,e){this.memberType=e,this.visibility="",this.classifier="";const n=(0,i.d)(t,(0,i.c)());this.parseMember(n)}getDisplayDetails(){let t=this.visibility+(0,i.v)(this.id);"method"===this.memberType&&(t+=`(${(0,i.v)(this.parameters.trim())})`,this.returnType&&(t+=" : "+(0,i.v)(this.returnType))),t=t.trim();return{displayText:t,cssStyle:this.parseClassifier()}}parseMember(t){let e="";if("method"===this.memberType){const n=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,s=t.match(n);if(s){const t=s[1]?s[1].trim():"";if(a.includes(t)&&(this.visibility=t),this.id=s[2].trim(),this.parameters=s[3]?s[3].trim():"",e=s[4]?s[4].trim():"",this.returnType=s[5]?s[5].trim():"",""===e){const t=this.returnType.substring(this.returnType.length-1);t.match(/[$*]/)&&(e=t,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const n=t.length,s=t.substring(0,1),i=t.substring(n-1);a.includes(s)&&(this.visibility=s),i.match(/[*?]/)&&(e=i),this.id=t.substring(""===this.visibility?0:1,""===e?n:n-1)}this.classifier=e}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const o="classId-";let l=[],h={},A=[],p=0,d={},y=0,E=[];const C=t=>i.e.sanitizeText(t,(0,i.c)()),m=function(t){const e=i.e.sanitizeText(t,(0,i.c)());let n="",s=e;if(e.indexOf("~")>0){const t=e.split("~");s=C(t[0]),n=C(t[1])}return{className:s,type:n}},f=function(t){const e=i.e.sanitizeText(t,(0,i.c)()),{className:n,type:s}=m(e);if(Object.hasOwn(h,n))return;const u=i.e.sanitizeText(n,(0,i.c)());h[u]={id:u,type:s,label:u,cssClasses:[],methods:[],members:[],annotations:[],domId:o+u+"-"+p},p++},b=function(t){const e=i.e.sanitizeText(t,(0,i.c)());if(e in h)return h[e].domId;throw new Error("Class not found: "+e)},F=function(t,e){f(t);const n=m(t).className,s=h[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?s.annotations.push(C(t.substring(2,t.length-2))):t.indexOf(")")>0?s.methods.push(new c(t,"method")):t&&s.members.push(new c(t,"attribute"))}},g=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=o+n),void 0!==h[n]&&h[n].cssClasses.push(e)}))},k=function(t,e,n){const s=i.e.sanitizeText(t,(0,i.c)());if("loose"!==(0,i.c)().securityLevel)return;if(void 0===e)return;const u=s;if(void 0!==h[u]){const t=b(u);let s=[];if("string"==typeof n){s=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<s.length;t++){let e=s[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),s[t]=e}}0===s.length&&s.push(t),E.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){i.u.runFunc(e,...s)}),!1)}))}},T=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)}))};E.push(T);let B="TB";const D={setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,getConfig:()=>(0,i.c)().class,addClass:f,bindFunctions:function(t){E.forEach((function(e){e(t)}))},clear:function(){l=[],h={},A=[],E=[],E.push(T),d={},y=0,(0,i.t)()},getClass:function(t){return h[t]},getClasses:function(){return h},getNotes:function(){return A},addAnnotation:function(t,e){const n=m(t).className;h[n].annotations.push(e)},addNote:function(t,e){const n={id:`note${A.length}`,class:e,text:t};A.push(n)},getRelations:function(){return l},addRelation:function(t){i.l.debug("Adding relation: "+JSON.stringify(t)),f(t.id1),f(t.id2),t.id1=m(t.id1).className,t.id2=m(t.id2).className,t.relationTitle1=i.e.sanitizeText(t.relationTitle1.trim(),(0,i.c)()),t.relationTitle2=i.e.sanitizeText(t.relationTitle2.trim(),(0,i.c)()),l.push(t)},getDirection:()=>B,setDirection:t=>{B=t},addMember:F,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>F(t,e))))},cleanupLabel:function(t){return t.startsWith(":")&&(t=t.substring(1)),C(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){k(t,e,n),h[t].haveCallback=!0})),g(t,"clickable")},setCssClass:g,setLink:function(t,e,n){const s=(0,i.c)();t.split(",").forEach((function(t){let u=t;t[0].match(/\d/)&&(u=o+u),void 0!==h[u]&&(h[u].link=i.u.formatUrl(e,s),"sandbox"===s.securityLevel?h[u].linkTarget="_top":h[u].linkTarget="string"==typeof n?C(n):"_blank")})),g(t,"clickable")},getTooltip:function(t,e){return e?d[e].classes[t].tooltip:h[t].tooltip},setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(h[t].tooltip=C(e))}))},lookUpDomId:b,setDiagramTitle:i.q,getDiagramTitle:i.r,setClassLabel:function(t,e){const n=i.e.sanitizeText(t,(0,i.c)());e&&(e=C(e));const{className:s}=m(n);h[s].label=e},addNamespace:function(t){void 0===d[t]&&(d[t]={id:t,classes:{},children:{},domId:o+t+"-"+y},y++)},addClassesToNamespace:function(t,e){void 0!==d[t]&&e.map((e=>{h[e].parent=t,d[t].classes[e]=h[e]}))},getNamespace:function(t){return d[t]},getNamespaces:function(){return d}},_=t=>`g.classGroup text {\n fill: ${t.nodeBorder||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-width: 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: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !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`}}]); \ No newline at end of file diff --git a/assets/js/48b268a6.56c72f30.js b/assets/js/48b268a6.56c72f30.js new file mode 100644 index 0000000..cdc155d --- /dev/null +++ b/assets/js/48b268a6.56c72f30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1648],{35067:e=>{e.exports=JSON.parse('{"title":"Bonuses","description":"Bonus assignments for Kontr Coins.\\n","slug":"/category/bonuses","permalink":"/c/category/bonuses","navigation":{"previous":{"title":"Introduction","permalink":"/c/"},"next":{"title":"3rd seminar","permalink":"/c/bonuses/seminar-03"}}}')}}]); \ No newline at end of file diff --git a/assets/js/48b268a6.91319502.js b/assets/js/48b268a6.91319502.js deleted file mode 100644 index c32101d..0000000 --- a/assets/js/48b268a6.91319502.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1648],{5067:e=>{e.exports=JSON.parse('{"title":"Bonuses","description":"Bonus assignments for Kontr Coins.\\n","slug":"/category/bonuses","permalink":"/c/category/bonuses","navigation":{"previous":{"title":"Introduction","permalink":"/c/"},"next":{"title":"3rd seminar","permalink":"/c/bonuses/seminar-03"}}}')}}]); \ No newline at end of file diff --git a/assets/js/4e546705.2d75be34.js b/assets/js/4e546705.2d75be34.js deleted file mode 100644 index c378846..0000000 --- a/assets/js/4e546705.2d75be34.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4327],{1795:e=>{e.exports=JSON.parse('{"pluginId":"c","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/c/","docId":"c-intro","unlisted":false},{"type":"category","label":"Bonuses","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"3rd seminar","href":"/c/bonuses/seminar-03","docId":"bonuses/seminar-03","unlisted":false},{"type":"link","label":"4th seminar","href":"/c/bonuses/seminar-04","docId":"bonuses/seminar-04","unlisted":false},{"type":"link","label":"5th and 6th seminar","href":"/c/bonuses/seminar-05-06","docId":"bonuses/seminar-05-06","unlisted":false},{"type":"link","label":"8th seminar","href":"/c/bonuses/seminar-08","docId":"bonuses/seminar-08","unlisted":false},{"type":"link","label":"10th seminar","href":"/c/bonuses/seminar-10","docId":"bonuses/seminar-10","unlisted":false}],"href":"/c/category/bonuses"},{"type":"category","label":"Practice Exams","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Practice exam B","href":"/c/pexam/garbage_collect","docId":"pexam/b-garbage_collect","unlisted":false},{"type":"link","label":"Practice exam C","href":"/c/pexam/cams","docId":"pexam/c-cams","unlisted":false}],"href":"/c/category/practice-exams"},{"type":"link","label":"Submitting merge requests","href":"/c/mr","docId":"mr","unlisted":false}]},"docs":{"bonuses/seminar-03":{"id":"bonuses/seminar-03","title":"3rd seminar","description":"Select sort implementation on arrays.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-04":{"id":"bonuses/seminar-04","title":"4th seminar","description":"Robot in a maze.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-05-06":{"id":"bonuses/seminar-05-06","title":"5th and 6th seminar","description":"200IQ encryption.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-08":{"id":"bonuses/seminar-08","title":"8th seminar","description":"Manipulating with files only char-by-char and a magic tree.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-10":{"id":"bonuses/seminar-10","title":"10th seminar","description":"Finding bugs in a hangman.\\n","sidebar":"autogeneratedBar"},"c-intro":{"id":"c-intro","title":"Introduction","description":"","sidebar":"autogeneratedBar"},"mr":{"id":"mr","title":"Submitting merge requests","description":"This tutorial aims to show you how to follow basic git workflow and submit changes","sidebar":"autogeneratedBar"},"pexam/b-garbage_collect":{"id":"pexam/b-garbage_collect","title":"Practice exam B","description":"Garbage everywhere\u2026\\n","sidebar":"autogeneratedBar"},"pexam/c-cams":{"id":"pexam/c-cams","title":"Practice exam C","description":"Stalking cars\u2026\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/4e546705.40303d4d.js b/assets/js/4e546705.40303d4d.js new file mode 100644 index 0000000..4328b52 --- /dev/null +++ b/assets/js/4e546705.40303d4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4327],{61795:e=>{e.exports=JSON.parse('{"pluginId":"c","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/c/","docId":"c-intro","unlisted":false},{"type":"category","label":"Bonuses","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"3rd seminar","href":"/c/bonuses/seminar-03","docId":"bonuses/seminar-03","unlisted":false},{"type":"link","label":"4th seminar","href":"/c/bonuses/seminar-04","docId":"bonuses/seminar-04","unlisted":false},{"type":"link","label":"5th and 6th seminar","href":"/c/bonuses/seminar-05-06","docId":"bonuses/seminar-05-06","unlisted":false},{"type":"link","label":"8th seminar","href":"/c/bonuses/seminar-08","docId":"bonuses/seminar-08","unlisted":false},{"type":"link","label":"10th seminar","href":"/c/bonuses/seminar-10","docId":"bonuses/seminar-10","unlisted":false}],"href":"/c/category/bonuses"},{"type":"category","label":"Practice Exams","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Practice exam B","href":"/c/pexam/garbage_collect","docId":"pexam/b-garbage_collect","unlisted":false},{"type":"link","label":"Practice exam C","href":"/c/pexam/cams","docId":"pexam/c-cams","unlisted":false}],"href":"/c/category/practice-exams"},{"type":"link","label":"Submitting merge requests","href":"/c/mr","docId":"mr","unlisted":false}]},"docs":{"bonuses/seminar-03":{"id":"bonuses/seminar-03","title":"3rd seminar","description":"Select sort implementation on arrays.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-04":{"id":"bonuses/seminar-04","title":"4th seminar","description":"Robot in a maze.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-05-06":{"id":"bonuses/seminar-05-06","title":"5th and 6th seminar","description":"200IQ encryption.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-08":{"id":"bonuses/seminar-08","title":"8th seminar","description":"Manipulating with files only char-by-char and a magic tree.\\n","sidebar":"autogeneratedBar"},"bonuses/seminar-10":{"id":"bonuses/seminar-10","title":"10th seminar","description":"Finding bugs in a hangman.\\n","sidebar":"autogeneratedBar"},"c-intro":{"id":"c-intro","title":"Introduction","description":"","sidebar":"autogeneratedBar"},"mr":{"id":"mr","title":"Submitting merge requests","description":"This tutorial aims to show you how to follow basic git workflow and submit changes","sidebar":"autogeneratedBar"},"pexam/b-garbage_collect":{"id":"pexam/b-garbage_collect","title":"Practice exam B","description":"Garbage everywhere\u2026\\n","sidebar":"autogeneratedBar"},"pexam/c-cams":{"id":"pexam/c-cams","title":"Practice exam C","description":"Stalking cars\u2026\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/4edd2021.ba1a6e92.js b/assets/js/4edd2021.ba1a6e92.js new file mode 100644 index 0000000..6422828 --- /dev/null +++ b/assets/js/4edd2021.ba1a6e92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5975],{21705:s=>{s.exports=JSON.parse('{"label":"cpp","permalink":"/blog/tags/cpp","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/4edd2021.c1d4b1bd.js b/assets/js/4edd2021.c1d4b1bd.js deleted file mode 100644 index fd9eab3..0000000 --- a/assets/js/4edd2021.c1d4b1bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5975],{1705:s=>{s.exports=JSON.parse('{"label":"cpp","permalink":"/blog/tags/cpp","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/4f96b16e.05a86290.js b/assets/js/4f96b16e.05a86290.js deleted file mode 100644 index 444f7ed..0000000 --- a/assets/js/4f96b16e.05a86290.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6306],{4693:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var s=t(5893),a=t(1151);const i={slug:"cams",title:"Practice exam C",description:"Stalking cars\u2026\n",last_update:{date:new Date("2023-05-07T00:00:00.000Z")}},r="Watching Cams",o={id:"pexam/c-cams",title:"Practice exam C",description:"Stalking cars\u2026\n",source:"@site/c/pexam/c-cams.md",sourceDirName:"pexam",slug:"/pexam/cams",permalink:"/c/pexam/cams",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/pexam/c-cams.md",tags:[],version:"current",lastUpdatedAt:1683417600,formattedLastUpdatedAt:"May 7, 2023",frontMatter:{slug:"cams",title:"Practice exam C",description:"Stalking cars\u2026\n",last_update:{date:"2023-05-07T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Practice exam B",permalink:"/c/pexam/garbage_collect"},next:{title:"Submitting merge requests",permalink:"/c/mr"}},c={},l=[{value:"Format of the input file",id:"format-of-the-input-file",level:2},{value:"Examples",id:"examples",level:4},{value:"Format of the output",id:"format-of-the-output",level:2},{value:"Example usage",id:"example-usage",level:2},{value:"Requirements and notes",id:"requirements-and-notes",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"watching-cams",children:"Watching Cams"}),"\n",(0,s.jsx)(n.admonition,{title:"Exam environment",type:"caution",children:(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["During the exam you will be provided with a barebone ",(0,s.jsx)(n.em,{children:"exam session"})," on the\n",(0,s.jsx)(n.em,{children:"faculty computers"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["In browser you are only allowed to have the following tabs open:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.cppreference.com",children:"C documentation"})}),"\n",(0,s.jsx)(n.li,{children:"page containing the assignment"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["You ",(0,s.jsx)(n.strong,{children:"are not"})," allowed to use your own source code, e.g. prepared beforehand\nor from the seminars."]}),"\n",(0,s.jsxs)(n.li,{children:["You have ",(0,s.jsx)(n.strong,{children:"5 minutes"})," to read through the assignment and ask any follow-up\nquestions should be there something unclear."]}),"\n",(0,s.jsxs)(n.li,{children:["You have ",(0,s.jsx)(n.strong,{children:"60 minutes"})," to work on the assignment, afterward your work will be\ndiscussed with your seminar tutor."]}),"\n"]})}),"\n",(0,s.jsxs)(n.p,{children:["Your task is to write a program ",(0,s.jsx)(n.code,{children:"cams"})," that will be processing input from the\ncams that are capable of identifying license plates on the cars and then\nprint out summary based on the input data. Your contributions to the society are\nvery much appreciated and may (or may not) be used for (each or none) of the\nfollowing purposes",(0,s.jsx)(n.sup,{children:(0,s.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"stalking people leaving and coming back home,"}),"\n",(0,s.jsx)(n.li,{children:"retroactively making people pay for the parking,"}),"\n",(0,s.jsx)(n.li,{children:"providing evidence of people speeding on highways,"}),"\n",(0,s.jsx)(n.li,{children:"tracking people that don't pay tolls, or"}),"\n",(0,s.jsx)(n.li,{children:"convict employees leaving the work prematurely."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"format-of-the-input-file",children:"Format of the input file"}),"\n",(0,s.jsxs)(n.p,{children:["Input for your program consists of the data from the cameras. You will be given\nthe data from the cameras as a path to a file and user should also be able to\nspecify ",(0,s.jsx)(n.code,{children:"-"})," (i.e. ",(0,s.jsx)(n.code,{children:"stdin"}),") as the path."]}),"\n",(0,s.jsx)(n.p,{children:"Each \u201cscan\u201d (i.e. reading) of the cameras consists of the following data:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"camera ID"}),": non-negative integer identifying a camera"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"plate"}),": string of unknown length that can consist of any characters apart\nfrom whitespace"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"timestamp"}),": date and time of the scan as an unsigned integer (represented as\na UNIX time)"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["When programming on UN*X(-like) systems, you can assume that the ",(0,s.jsx)(n.code,{children:"time_t"}),"\nstructure from the system header ",(0,s.jsx)(n.code,{children:"time.h"})," ",(0,s.jsx)(n.strong,{children:"is"})," the ",(0,s.jsx)(n.code,{children:"unsigned int"})," that you\nare provided in the input file."]})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"And they are compiled into one reading such as:"}),"\n",(0,s.jsx)(n.p,{children:"camera_ID: plate timestamp"}),"\n",(0,s.jsxs)(n.p,{children:["There should be always ",(0,s.jsx)(n.strong,{children:"at least one"})," space in between each part of the\nreading. Readings are separated by the commas, which may, but don't have to, be\naccompanied by whitespace around."]}),"\n",(0,s.jsx)(n.h4,{id:"examples",children:"Examples"}),"\n",(0,s.jsx)(n.p,{children:"Few examples of the data from the cameras follow"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"10: ABC-12-34 1664608712, 289: XYZ-98-76 1665416417,\n25: ABC-12-34 1633078256 , 42: TryToCatchMe 1671602419,\n11: EL9-987 1679541338 ,2 : Foo-666 1683170082,42: YourMum 1683170082,\n42: TryToCatchMe 1671602419 , 1234: TryToCatchMe 1671602419,\n19: ABC-12-34 1664659649, 69:YouShould-not-pLaCe-4ny-expectations%on^the(input 1680307994,\n9 : 9B9-161 1665416417 , 10: 1a1-999 1671602419,1:lmao 1633078256,\n16: ABC-12-34 1664609012\n"})}),"\n",(0,s.jsx)(n.h2,{id:"format-of-the-output",children:"Format of the output"}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"All the examples consider using data from the example of the input."})}),"\n",(0,s.jsx)(n.p,{children:"You are expected to print out the dates and cameras that has captured the\nlicense plate for each of them (in a sorted fashion)."}),"\n",(0,s.jsx)(n.p,{children:"If there are multiple scans present and the timespan (i.e. time difference\nbetween the scans is bigger than 60 minutes, you should separate them by a\nnewline). For example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"*** ABC-12-34 ***\n 25: Fri Oct 1 10:50:56 2021\n\n 10: Sat Oct 1 09:18:32 2022\n 16: Sat Oct 1 09:23:32 2022\n\n 19: Sat Oct 1 23:27:29 2022\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Since you are given the timestamp in a ",(0,s.jsx)(n.code,{children:"time_t"})," compatible type on UN*X, you\ncan safely use ",(0,s.jsx)(n.code,{children:"ctime(3)"})," for printing the timestamp as a ",(0,s.jsx)(n.em,{children:"human readable"})," time\nwhen outputting the date and time."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"For a better readability you can include one more newline after the last line\nof the output."})}),"\n",(0,s.jsx)(n.h2,{id:"example-usage",children:"Example usage"}),"\n",(0,s.jsx)(n.p,{children:"You can also have a look at example usage of your program. We can run your\nprogram from the shell like"}),"\n",(0,s.jsx)(n.p,{children:"$ ./cams example_1.txt"}),"\n",(0,s.jsx)(n.p,{children:"And it will produce an output:"}),"\n",(0,s.jsx)(n.p,{children:"*** ABC-12-34 ***\n25: Fri Oct 1 10:50:56 2021"}),"\n",(0,s.jsx)(n.p,{children:"10: Sat Oct 1 09:18:32 2022\n16: Sat Oct 1 09:23:32 2022"}),"\n",(0,s.jsx)(n.p,{children:"19: Sat Oct 1 23:27:29 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** EL9-987 ***\n11: Thu Mar 23 04:15:38 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** Foo-666 ***\n2: Thu May 4 05:14:42 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** TryToCatchMe ***\n42: Wed Dec 21 07:00:19 2022\n42: Wed Dec 21 07:00:19 2022\n1234: Wed Dec 21 07:00:19 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** XYZ-98-76 ***\n289: Mon Oct 10 17:40:17 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** YouShould-not-pLaCe-4ny-expectations%on^the(input ***\n69: Sat Apr 1 02:13:14 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** YourMum ***\n42: Thu May 4 05:14:42 2023"}),"\n",(0,s.jsx)(n.h2,{id:"requirements-and-notes",children:"Requirements and notes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Define ",(0,s.jsx)(n.strong,{children:"structures"})," (and ",(0,s.jsx)(n.strong,{children:"enumerations"}),", if applicable) for the parsed\ninformation from the files."]}),"\n",(0,s.jsxs)(n.li,{children:["For keeping the \u201crecords\u201d, use some ",(0,s.jsx)(n.strong,{children:"dynamic"})," data structure.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Don't forget to consider pros and cons of using ",(0,s.jsx)(n.em,{children:"specific"})," data structures\nbefore going through implementing."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["You ",(0,s.jsx)(n.strong,{children:"are not required"})," to produce 1:1 output to the provided examples, they\nare just a hint to not waste your time tinkering with a user experience."]}),"\n",(0,s.jsxs)(n.li,{children:["If any of the operations on the input files should fail,\n",(0,s.jsx)(n.strong,{children:"you are expected to"})," handle the situation ",(0,s.jsx)(n.em,{children:"accordingly"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Failures of any other common functions (e.g. functions used for memory\nmanagement) should be handled in ",(0,s.jsx)(n.strong,{children:"the same way"})," as they were in the\nhomeworks and seminars."]}),"\n",(0,s.jsxs)(n.li,{children:["Your program ",(0,s.jsx)(n.strong,{children:"must free"})," all the resources before exiting."]}),"\n"]}),"\n",(0,s.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,s.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,s.jsxs)(n.p,{children:["Subject to NDA. ",(0,s.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var s=t(7294);const a={},i=s.createContext(a);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f96b16e.072f92b8.js b/assets/js/4f96b16e.072f92b8.js new file mode 100644 index 0000000..dd33c93 --- /dev/null +++ b/assets/js/4f96b16e.072f92b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6306],{24693:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var s=t(85893),a=t(11151);const i={slug:"cams",title:"Practice exam C",description:"Stalking cars\u2026\n",last_update:{date:new Date("2023-05-07T00:00:00.000Z")}},r="Watching Cams",o={id:"pexam/c-cams",title:"Practice exam C",description:"Stalking cars\u2026\n",source:"@site/c/pexam/c-cams.md",sourceDirName:"pexam",slug:"/pexam/cams",permalink:"/c/pexam/cams",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/pexam/c-cams.md",tags:[],version:"current",lastUpdatedAt:1683417600,formattedLastUpdatedAt:"May 7, 2023",frontMatter:{slug:"cams",title:"Practice exam C",description:"Stalking cars\u2026\n",last_update:{date:"2023-05-07T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Practice exam B",permalink:"/c/pexam/garbage_collect"},next:{title:"Submitting merge requests",permalink:"/c/mr"}},c={},l=[{value:"Format of the input file",id:"format-of-the-input-file",level:2},{value:"Examples",id:"examples",level:4},{value:"Format of the output",id:"format-of-the-output",level:2},{value:"Example usage",id:"example-usage",level:2},{value:"Requirements and notes",id:"requirements-and-notes",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"watching-cams",children:"Watching Cams"}),"\n",(0,s.jsx)(n.admonition,{title:"Exam environment",type:"caution",children:(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["During the exam you will be provided with a barebone ",(0,s.jsx)(n.em,{children:"exam session"})," on the\n",(0,s.jsx)(n.em,{children:"faculty computers"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["In browser you are only allowed to have the following tabs open:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://en.cppreference.com",children:"C documentation"})}),"\n",(0,s.jsx)(n.li,{children:"page containing the assignment"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["You ",(0,s.jsx)(n.strong,{children:"are not"})," allowed to use your own source code, e.g. prepared beforehand\nor from the seminars."]}),"\n",(0,s.jsxs)(n.li,{children:["You have ",(0,s.jsx)(n.strong,{children:"5 minutes"})," to read through the assignment and ask any follow-up\nquestions should be there something unclear."]}),"\n",(0,s.jsxs)(n.li,{children:["You have ",(0,s.jsx)(n.strong,{children:"60 minutes"})," to work on the assignment, afterward your work will be\ndiscussed with your seminar tutor."]}),"\n"]})}),"\n",(0,s.jsxs)(n.p,{children:["Your task is to write a program ",(0,s.jsx)(n.code,{children:"cams"})," that will be processing input from the\ncams that are capable of identifying license plates on the cars and then\nprint out summary based on the input data. Your contributions to the society are\nvery much appreciated and may (or may not) be used for (each or none) of the\nfollowing purposes",(0,s.jsx)(n.sup,{children:(0,s.jsx)(n.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"stalking people leaving and coming back home,"}),"\n",(0,s.jsx)(n.li,{children:"retroactively making people pay for the parking,"}),"\n",(0,s.jsx)(n.li,{children:"providing evidence of people speeding on highways,"}),"\n",(0,s.jsx)(n.li,{children:"tracking people that don't pay tolls, or"}),"\n",(0,s.jsx)(n.li,{children:"convict employees leaving the work prematurely."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"format-of-the-input-file",children:"Format of the input file"}),"\n",(0,s.jsxs)(n.p,{children:["Input for your program consists of the data from the cameras. You will be given\nthe data from the cameras as a path to a file and user should also be able to\nspecify ",(0,s.jsx)(n.code,{children:"-"})," (i.e. ",(0,s.jsx)(n.code,{children:"stdin"}),") as the path."]}),"\n",(0,s.jsx)(n.p,{children:"Each \u201cscan\u201d (i.e. reading) of the cameras consists of the following data:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"camera ID"}),": non-negative integer identifying a camera"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"plate"}),": string of unknown length that can consist of any characters apart\nfrom whitespace"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"timestamp"}),": date and time of the scan as an unsigned integer (represented as\na UNIX time)"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["When programming on UN*X(-like) systems, you can assume that the ",(0,s.jsx)(n.code,{children:"time_t"}),"\nstructure from the system header ",(0,s.jsx)(n.code,{children:"time.h"})," ",(0,s.jsx)(n.strong,{children:"is"})," the ",(0,s.jsx)(n.code,{children:"unsigned int"})," that you\nare provided in the input file."]})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"And they are compiled into one reading such as:"}),"\n",(0,s.jsx)(n.p,{children:"camera_ID: plate timestamp"}),"\n",(0,s.jsxs)(n.p,{children:["There should be always ",(0,s.jsx)(n.strong,{children:"at least one"})," space in between each part of the\nreading. Readings are separated by the commas, which may, but don't have to, be\naccompanied by whitespace around."]}),"\n",(0,s.jsx)(n.h4,{id:"examples",children:"Examples"}),"\n",(0,s.jsx)(n.p,{children:"Few examples of the data from the cameras follow"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"10: ABC-12-34 1664608712, 289: XYZ-98-76 1665416417,\n25: ABC-12-34 1633078256 , 42: TryToCatchMe 1671602419,\n11: EL9-987 1679541338 ,2 : Foo-666 1683170082,42: YourMum 1683170082,\n42: TryToCatchMe 1671602419 , 1234: TryToCatchMe 1671602419,\n19: ABC-12-34 1664659649, 69:YouShould-not-pLaCe-4ny-expectations%on^the(input 1680307994,\n9 : 9B9-161 1665416417 , 10: 1a1-999 1671602419,1:lmao 1633078256,\n16: ABC-12-34 1664609012\n"})}),"\n",(0,s.jsx)(n.h2,{id:"format-of-the-output",children:"Format of the output"}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"All the examples consider using data from the example of the input."})}),"\n",(0,s.jsx)(n.p,{children:"You are expected to print out the dates and cameras that has captured the\nlicense plate for each of them (in a sorted fashion)."}),"\n",(0,s.jsx)(n.p,{children:"If there are multiple scans present and the timespan (i.e. time difference\nbetween the scans is bigger than 60 minutes, you should separate them by a\nnewline). For example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"*** ABC-12-34 ***\n 25: Fri Oct 1 10:50:56 2021\n\n 10: Sat Oct 1 09:18:32 2022\n 16: Sat Oct 1 09:23:32 2022\n\n 19: Sat Oct 1 23:27:29 2022\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Since you are given the timestamp in a ",(0,s.jsx)(n.code,{children:"time_t"})," compatible type on UN*X, you\ncan safely use ",(0,s.jsx)(n.code,{children:"ctime(3)"})," for printing the timestamp as a ",(0,s.jsx)(n.em,{children:"human readable"})," time\nwhen outputting the date and time."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"For a better readability you can include one more newline after the last line\nof the output."})}),"\n",(0,s.jsx)(n.h2,{id:"example-usage",children:"Example usage"}),"\n",(0,s.jsx)(n.p,{children:"You can also have a look at example usage of your program. We can run your\nprogram from the shell like"}),"\n",(0,s.jsx)(n.p,{children:"$ ./cams example_1.txt"}),"\n",(0,s.jsx)(n.p,{children:"And it will produce an output:"}),"\n",(0,s.jsx)(n.p,{children:"*** ABC-12-34 ***\n25: Fri Oct 1 10:50:56 2021"}),"\n",(0,s.jsx)(n.p,{children:"10: Sat Oct 1 09:18:32 2022\n16: Sat Oct 1 09:23:32 2022"}),"\n",(0,s.jsx)(n.p,{children:"19: Sat Oct 1 23:27:29 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** EL9-987 ***\n11: Thu Mar 23 04:15:38 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** Foo-666 ***\n2: Thu May 4 05:14:42 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** TryToCatchMe ***\n42: Wed Dec 21 07:00:19 2022\n42: Wed Dec 21 07:00:19 2022\n1234: Wed Dec 21 07:00:19 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** XYZ-98-76 ***\n289: Mon Oct 10 17:40:17 2022"}),"\n",(0,s.jsx)(n.p,{children:"*** YouShould-not-pLaCe-4ny-expectations%on^the(input ***\n69: Sat Apr 1 02:13:14 2023"}),"\n",(0,s.jsx)(n.p,{children:"*** YourMum ***\n42: Thu May 4 05:14:42 2023"}),"\n",(0,s.jsx)(n.h2,{id:"requirements-and-notes",children:"Requirements and notes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Define ",(0,s.jsx)(n.strong,{children:"structures"})," (and ",(0,s.jsx)(n.strong,{children:"enumerations"}),", if applicable) for the parsed\ninformation from the files."]}),"\n",(0,s.jsxs)(n.li,{children:["For keeping the \u201crecords\u201d, use some ",(0,s.jsx)(n.strong,{children:"dynamic"})," data structure.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Don't forget to consider pros and cons of using ",(0,s.jsx)(n.em,{children:"specific"})," data structures\nbefore going through implementing."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["You ",(0,s.jsx)(n.strong,{children:"are not required"})," to produce 1:1 output to the provided examples, they\nare just a hint to not waste your time tinkering with a user experience."]}),"\n",(0,s.jsxs)(n.li,{children:["If any of the operations on the input files should fail,\n",(0,s.jsx)(n.strong,{children:"you are expected to"})," handle the situation ",(0,s.jsx)(n.em,{children:"accordingly"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Failures of any other common functions (e.g. functions used for memory\nmanagement) should be handled in ",(0,s.jsx)(n.strong,{children:"the same way"})," as they were in the\nhomeworks and seminars."]}),"\n",(0,s.jsxs)(n.li,{children:["Your program ",(0,s.jsx)(n.strong,{children:"must free"})," all the resources before exiting."]}),"\n"]}),"\n",(0,s.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,s.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{id:"user-content-fn-1",children:["\n",(0,s.jsxs)(n.p,{children:["Subject to NDA. ",(0,s.jsx)(n.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var s=t(67294);const a={},i=s.createContext(a);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51624505.58112ff9.js b/assets/js/51624505.58112ff9.js deleted file mode 100644 index 226cf1e..0000000 --- a/assets/js/51624505.58112ff9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3731],{2609:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=t(5893),o=t(1151);const i={title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,s={permalink:"/blog/aoc-2022/intro",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md",source:"@site/blog/aoc-2022/00-intro.md",title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:8.665,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},l={authorsImageUrls:[void 0]},c=[{value:"Choosing a language",id:"choosing-a-language",level:2},{value:"Choosing libraries",id:"choosing-libraries",level:2},{value:"Preparations for Rust",id:"preparations-for-rust",level:2},{value:"Toolkit",id:"toolkit",level:3},{value:"Libraries",id:"libraries",level:3},{value:"My own \u201clibrary\u201d",id:"my-own-library",level:3},{value:"Skeleton",id:"skeleton",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Let's talk about the preparations for this year's ",(0,r.jsx)(n.a,{href:"https://adventofcode.com",children:(0,r.jsx)(n.em,{children:"Advent of Code"})}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"choosing-a-language",children:"Choosing a language"}),"\n",(0,r.jsx)(n.p,{children:"When choosing a language for AoC, you usually want a language that gives you a\nquick feedback which allows you to iterate quickly to the solution of the puzzle.\nOne of the most common choices is Python, many people also use JavaScript or Ruby."}),"\n",(0,r.jsx)(n.p,{children:"Given the competitive nature of the AoC and popularity among competitive programming,\nC++ might be also a very good choice. Only if you are familiar with it, I guess\u2026"}),"\n",(0,r.jsx)(n.p,{children:"If you want a challenge, you might also choose to rotate the languages each day.\nThough I prefer to use only one language."}),"\n",(0,r.jsxs)(n.p,{children:["For this year I have been deciding between ",(0,r.jsx)(n.em,{children:"Rust"}),", ",(0,r.jsx)(n.em,{children:"C++"})," and ",(0,r.jsx)(n.em,{children:"Pascal"})," or ",(0,r.jsx)(n.em,{children:"Ada"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["I have tried Rust last year and have survived with it for 3 days and then gave\nup and switched to ",(0,r.jsx)(n.em,{children:"Kotlin"}),", which was pretty good given it is \u201cJava undercover\u201d.\nI pretty much like the ideas behind Rust, I am not sure about the whole cult and\nimplementation of those ideas though. After some years with C/C++, I would say\nthat Rust feels ",(0,r.jsx)(n.em,{children:"too safe"})," for my taste and tries to \u201c",(0,r.jsx)(n.em,{children:"punish me"}),"\u201d even for the\nmost trivial things."]}),"\n",(0,r.jsxs)(n.p,{children:["C++ is a very robust, but also comes with a wide variety of options providing you\nthe ability to shoot yourself in the leg. I have tried to solve few days of previous\nAdvent of Code events, it was ",(0,r.jsx)(n.em,{children:"relatively easy"})," to solve the problems in C++, given\nthat I do not admit writing my own iterator for ",(0,r.jsx)(n.code,{children:"enumerate"}),"\u2026"]}),"\n",(0,r.jsx)(n.p,{children:"Pascal or Ada were meme choices :) Ada is heavily inspired by Pascal and has a\npretty nice standard library that offers enough to be able to quickly solve some\nproblems in it. However the toolkit is questionable :/"}),"\n",(0,r.jsx)(n.h2,{id:"choosing-libraries",children:"Choosing libraries"}),"\n",(0,r.jsx)(n.h2,{id:"preparations-for-rust",children:"Preparations for Rust"}),"\n",(0,r.jsxs)(n.p,{children:["All of the sources, later on including solutions, can be found at my\n",(0,r.jsx)(n.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022",children:"GitLab"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"toolkit",children:"Toolkit"}),"\n",(0,r.jsxs)(n.p,{children:["Since we are using Rust, we are going to use a ",(0,r.jsx)(n.a,{href:"https://doc.rust-lang.org/cargo/",children:"Cargo"})," and more than likely VSCode\nwith ",(0,r.jsx)(n.a,{href:"https://rust-analyzer.github.io/",children:(0,r.jsx)(n.code,{children:"rust-analyzer"})}),". Because of my choice of libraries, we will also introduce\na ",(0,r.jsx)(n.code,{children:".envrc"})," file that can be used by ",(0,r.jsx)(n.a,{href:"https://direnv.net/",children:(0,r.jsx)(n.code,{children:"direnv"})}),", which allows you to set specific\nenvironment variables when you enter a directory. In our case, we will use"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# to show nice backtrace when using the color-eyre\nexport RUST_BACKTRACE=1\n\n# to catch logs generated by tracing\nexport RUST_LOG=trace\n"})}),"\n",(0,r.jsxs)(n.p,{children:["And for the one of the most obnoxious things ever, we will use a script to download\nthe inputs instead of \u201c",(0,r.jsx)(n.em,{children:"clicking, opening and copying to a file"}),"\u201d",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-1-793a30",id:"user-content-fnref-1-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),". There is\nno need to be ",(0,r.jsx)(n.em,{children:"fancy"}),", so we will adjust Python script by Martin",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-2-793a30",id:"user-content-fnref-2-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-py",children:'#!/usr/bin/env python3\n\nimport datetime\nimport yaml\nimport requests\nimport sys\n\n\ndef load_config():\n with open("env.yaml", "r") as f:\n js = yaml.load(f, Loader=yaml.Loader)\n return js["session"], js["year"]\n\n\ndef get_input(session, year, day):\n return requests.get(\n f"https://adventofcode.com/{year}/day/{day}/input",\n cookies={"session": session},\n headers={\n "User-Agent": "{repo} by {mail}".format(\n repo="gitlab.com/mfocko/advent-of-code-2022",\n mail="me@mfocko.xyz",\n )\n },\n ).content.decode("utf-8")\n\n\ndef main():\n day = datetime.datetime.now().day\n if len(sys.argv) == 2:\n day = sys.argv[1]\n\n session, year = load_config()\n problem_input = get_input(session, year, day)\n\n with open(f"./inputs/day{day:>02}.txt", "w") as f:\n f.write(problem_input)\n\n\nif __name__ == "__main__":\n main()\n'})}),"\n",(0,r.jsx)(n.p,{children:"If the script is called without any arguments, it will deduce the day from the\nsystem, so we do not need to change the day every morning. It also requires a\nconfiguration file:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"# env.yaml\nsession: \u2039your session cookie\u203a\nyear: 2022\n"})}),"\n",(0,r.jsx)(n.h3,{id:"libraries",children:"Libraries"}),"\n",(0,r.jsx)(n.p,{children:"Looking at the list of the libraries, I have chosen \u201ca lot\u201d of them. Let's walk\nthrough each of them."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing",children:(0,r.jsx)(n.code,{children:"tracing"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing-subscriber",children:(0,r.jsx)(n.code,{children:"tracing-subscriber"})})," are the crates that can be used for tracing\nand logging of your Rust programs, there are also other crates that can help you\nwith providing backtrace to the Sentry in case you have deployed your application\nsomewhere and you want to watch over it. In our use case we will just utilize the\nmacros for debugging in the terminal."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/thiserror",children:(0,r.jsx)(n.code,{children:"thiserror"})}),", ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/anyhow",children:(0,r.jsx)(n.code,{children:"anyhow"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/color-eyre",children:(0,r.jsx)(n.code,{children:"color-eyre"})})," are used for error reporting.\n",(0,r.jsx)(n.code,{children:"thiserror"})," is a very good choice for libraries, cause it extends the ",(0,r.jsx)(n.code,{children:"Error"}),"\nfrom the ",(0,r.jsx)(n.code,{children:"std"})," and allows you to create more convenient error types. Next is\n",(0,r.jsx)(n.code,{children:"anyhow"})," which kinda builds on top of the ",(0,r.jsx)(n.code,{children:"thiserror"})," and provides you with simpler\nerror handling in binaries",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-3-793a30",id:"user-content-fnref-3-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". And finally we have ",(0,r.jsx)(n.code,{children:"color-eyre"})," which, as I found\nout later, is a colorful (",(0,r.jsx)(n.em,{children:"wink wink"}),") extension of ",(0,r.jsx)(n.code,{children:"eyre"})," which is fork of ",(0,r.jsx)(n.code,{children:"anyhow"}),"\nwhile supporting customized reports."]}),"\n",(0,r.jsxs)(n.p,{children:["In the end I have decided to remove ",(0,r.jsx)(n.code,{children:"thiserror"})," and ",(0,r.jsx)(n.code,{children:"anyhow"}),", since first one is\nsuitable for libraries and the latter was basically fully replaced by ",(0,r.jsx)(n.code,{children:"{color-,}eyre"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/regex",children:(0,r.jsx)(n.code,{children:"regex"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/lazy_static",children:(0,r.jsx)(n.code,{children:"lazy_static"})})," are a very good and also, I hope, self-explanatory\ncombination. ",(0,r.jsx)(n.code,{children:"lazy_static"})," allows you to have static variables that must be initialized\nduring runtime."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/itertools",children:(0,r.jsx)(n.code,{children:"itertools"})})," provides some nice extensions to the iterators from the ",(0,r.jsx)(n.code,{children:"std"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"my-own-library",children:"My own \u201clibrary\u201d"}),"\n",(0,r.jsxs)(n.p,{children:["When creating the crate for this year's Advent of Code, I have chosen a library\ntype. Even though standard library is huge, some things might not be included and\nalso we can follow ",(0,r.jsx)(n.em,{children:"KISS"}),". I have 2 modules that my \u201clibrary\u201d exports, one for\nparsing and one for 2D vector (that gets used quite often during Advent of Code)."]}),"\n",(0,r.jsx)(n.p,{children:"Key part is, of course, processing the input and my library exports following\nfunctions that get used a lot:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"/// Reads file to the string.\npub fn file_to_string<P: AsRef<Path>>(pathname: P) -> String;\n\n/// Reads file and returns it as a vector of characters.\npub fn file_to_chars<P: AsRef<Path>>(pathname: P) -> Vec<char>;\n\n/// Reads file and returns a vector of parsed structures. Expects each structure\n/// on its own line in the file. And `T` needs to implement `FromStr` trait.\npub fn file_to_structs<P: AsRef<Path>, T: FromStr>(pathname: P) -> Vec<T>\nwhere\n <T as FromStr>::Err: Debug;\n\n/// Converts iterator over strings to a vector of parsed structures. `T` needs\n/// to implement `FromStr` trait and its error must derive `Debug` trait.\npub fn strings_to_structs<T: FromStr, U>(\n iter: impl Iterator<Item = U>\n) -> Vec<T>\nwhere\n <T as std::str::FromStr>::Err: std::fmt::Debug,\n U: Deref<Target = str>;\n\n/// Reads file and returns it as a vector of its lines.\npub fn file_to_lines<P: AsRef<Path>>(pathname: P) -> Vec<String>;\n"})}),"\n",(0,r.jsxs)(n.p,{children:["As for the vector, I went with a rather simple implementation that allows only\naddition of the vectors for now and accessing the elements via functions ",(0,r.jsx)(n.code,{children:"x()"}),"\nand ",(0,r.jsx)(n.code,{children:"y()"}),". Also the vector is generic, so we can use it with any numeric type we\nneed."]}),"\n",(0,r.jsx)(n.h3,{id:"skeleton",children:"Skeleton"}),"\n",(0,r.jsx)(n.p,{children:"We can also prepare a template to quickly bootstrap each of the days. We know\nthat each puzzle has 2 parts, which means that we can start with 2 functions that\nwill solve them."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"fn part1(input: &Input) -> Output {\n todo!()\n}\n\nfn part2(input: &Input) -> Output {\n todo!()\n}\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Both functions take reference to the input and return some output (in majority\nof puzzles, it is the same type). ",(0,r.jsx)(n.code,{children:"todo!()"})," can be used as a nice placeholder,\nit also causes a panic when reached and we could also provide some string with\nan explanation, e.g. ",(0,r.jsx)(n.code,{children:'todo!("part 1")'}),". We have not given functions a specific\ntype and to avoid as much copy-paste as possible, we will introduce type aliases."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"type Input = String;\ntype Output = i32;\n"})}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsxs)(n.p,{children:["This allows us to quickly adjust the types only in one place without the need to\ndo ",(0,r.jsx)(n.em,{children:"regex-replace"})," or replace them manually."]})}),"\n",(0,r.jsx)(n.p,{children:"For each day we get a personalized input that is provided as a text file. Almost\nall the time, we would like to get some structured type out of that input, and\ntherefore it makes sense to introduce a new function that will provide the parsing\nof the input."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"fn parse_input(path: &str) -> Input {\n todo!()\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"This \u201cparser\u201d will take a path to the file, just in case we would like to run the\nsample instead of input."}),"\n",(0,r.jsxs)(n.p,{children:["OK, so now we can write a ",(0,r.jsx)(n.code,{children:"main"})," function that will take all of the pieces and\nrun them."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'fn main() {\n let input = parse_input("inputs/dayXX.txt");\n\n println!("Part 1: {}", part_1(&input));\n println!("Part 2: {}", part_2(&input));\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["This would definitely do :) But we have installed a few libraries and we want to\nuse them. In this part we are going to utilize ",(0,r.jsx)(n.em,{children:(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing",children:(0,r.jsx)(n.code,{children:"tracing"})})})," (for tracing, duh\u2026)\nand ",(0,r.jsx)(n.em,{children:(0,r.jsx)(n.a,{href:"https://crates.io/crates/color-eyre",children:(0,r.jsx)(n.code,{children:"color-eyre"})})})," (for better error reporting, e.g. from parsing)."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'fn main() -> Result<()> {\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = parse_input("inputs/dayXX.txt");\n\n info!("Part 1: {}", part_1(&input));\n info!("Part 2: {}", part_2(&input));\n\n Ok(())\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["The first statement will set up tracing and configure it to print out the logs to\nterminal, based on the environment variable. We also change the formatting a bit,\nsince we do not need all the ",(0,r.jsx)(n.em,{children:"fancy"})," features of the logger. Pure initialization\nwould get us logs like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"2022-12-11T19:53:19.975343Z INFO day01: Part 1: 0\n"})}),"\n",(0,r.jsx)(n.p,{children:"However after running that command, we will get the following:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:" INFO src/bin/day01.rs:35: Part 1: 0\n"})}),"\n",(0,r.jsxs)(n.p,{children:["And the ",(0,r.jsx)(n.code,{children:"color_eyre::install()?"})," is quite straightforward. We just initialize the\nerror reporting by ",(0,r.jsx)(n.em,{children:"color eyre"}),"."]}),"\n",(0,r.jsx)(n.admonition,{type:"caution",children:(0,r.jsxs)(n.p,{children:["Notice that we had to add ",(0,r.jsx)(n.code,{children:"Ok(())"})," to the end of the function and adjust the\nreturn type of the ",(0,r.jsx)(n.code,{children:"main"})," to ",(0,r.jsx)(n.code,{children:"Result<()>"}),". It is caused by the ",(0,r.jsx)(n.em,{children:"color eyre"})," that\ncan be installed only once and therefore it can fail, that is how we got the ",(0,r.jsx)(n.code,{children:"?"}),"\nat the end of the ",(0,r.jsx)(n.code,{children:"::install"})," which ",(0,r.jsx)(n.em,{children:"unwraps"})," the ",(0,r.jsx)(n.strong,{children:"\xbbresult\xab"})," of the installation."]})}),"\n",(0,r.jsx)(n.p,{children:"Overall we will get to a template like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'use aoc_2022::*;\n\nuse color_eyre::eyre::Result;\nuse tracing::info;\nuse tracing_subscriber::EnvFilter;\n\ntype Input = String;\ntype Output = i32;\n\nfn parse_input(path: &str) -> Input {\n todo!()\n}\n\nfn part1(input: &Input) -> Output {\n todo!()\n}\n\nfn part2(input: &Input) -> Output {\n todo!()\n}\n\nfn main() -> Result<()> {\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = parse_input("inputs/dayXX.txt");\n\n info!("Part 1: {}", part_1(&input));\n info!("Part 2: {}", part_2(&input));\n\n Ok(())\n}\n'})}),"\n",(0,r.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,r.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{id:"user-content-fn-1-793a30",children:["\n",(0,r.jsxs)(n.p,{children:["Copy-pasting might be a relaxing thing to do, but you can also discover\nnasty stuff about your PC. See ",(0,r.jsx)(n.a,{href:"https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono",children:"this Reddit post and the comment"}),". ",(0,r.jsx)(n.a,{href:"#user-content-fnref-1-793a30","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{id:"user-content-fn-2-793a30",children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://github.com/martinjonas",children:"GitHub profile"})," ",(0,r.jsx)(n.a,{href:"#user-content-fnref-2-793a30","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{id:"user-content-fn-3-793a30",children:["\n",(0,r.jsxs)(n.p,{children:["Even though you can use it even for libraries, but handling errors from\nlibraries using ",(0,r.jsx)(n.code,{children:"anyhow"})," is nasty\u2026 You will be the stinky one ;) ",(0,r.jsx)(n.a,{href:"#user-content-fnref-3-793a30","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>a});var r=t(7294);const o={},i=r.createContext(o);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51624505.60fbe3b9.js b/assets/js/51624505.60fbe3b9.js new file mode 100644 index 0000000..9c8752d --- /dev/null +++ b/assets/js/51624505.60fbe3b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4394],{32609:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=t(85893),o=t(11151);const i={title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,s={permalink:"/blog/aoc-2022/intro",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md",source:"@site/blog/aoc-2022/00-intro.md",title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:8.665,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},l={authorsImageUrls:[void 0]},c=[{value:"Choosing a language",id:"choosing-a-language",level:2},{value:"Choosing libraries",id:"choosing-libraries",level:2},{value:"Preparations for Rust",id:"preparations-for-rust",level:2},{value:"Toolkit",id:"toolkit",level:3},{value:"Libraries",id:"libraries",level:3},{value:"My own \u201clibrary\u201d",id:"my-own-library",level:3},{value:"Skeleton",id:"skeleton",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Let's talk about the preparations for this year's ",(0,r.jsx)(n.a,{href:"https://adventofcode.com",children:(0,r.jsx)(n.em,{children:"Advent of Code"})}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"choosing-a-language",children:"Choosing a language"}),"\n",(0,r.jsx)(n.p,{children:"When choosing a language for AoC, you usually want a language that gives you a\nquick feedback which allows you to iterate quickly to the solution of the puzzle.\nOne of the most common choices is Python, many people also use JavaScript or Ruby."}),"\n",(0,r.jsx)(n.p,{children:"Given the competitive nature of the AoC and popularity among competitive programming,\nC++ might be also a very good choice. Only if you are familiar with it, I guess\u2026"}),"\n",(0,r.jsx)(n.p,{children:"If you want a challenge, you might also choose to rotate the languages each day.\nThough I prefer to use only one language."}),"\n",(0,r.jsxs)(n.p,{children:["For this year I have been deciding between ",(0,r.jsx)(n.em,{children:"Rust"}),", ",(0,r.jsx)(n.em,{children:"C++"})," and ",(0,r.jsx)(n.em,{children:"Pascal"})," or ",(0,r.jsx)(n.em,{children:"Ada"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["I have tried Rust last year and have survived with it for 3 days and then gave\nup and switched to ",(0,r.jsx)(n.em,{children:"Kotlin"}),", which was pretty good given it is \u201cJava undercover\u201d.\nI pretty much like the ideas behind Rust, I am not sure about the whole cult and\nimplementation of those ideas though. After some years with C/C++, I would say\nthat Rust feels ",(0,r.jsx)(n.em,{children:"too safe"})," for my taste and tries to \u201c",(0,r.jsx)(n.em,{children:"punish me"}),"\u201d even for the\nmost trivial things."]}),"\n",(0,r.jsxs)(n.p,{children:["C++ is a very robust, but also comes with a wide variety of options providing you\nthe ability to shoot yourself in the leg. I have tried to solve few days of previous\nAdvent of Code events, it was ",(0,r.jsx)(n.em,{children:"relatively easy"})," to solve the problems in C++, given\nthat I do not admit writing my own iterator for ",(0,r.jsx)(n.code,{children:"enumerate"}),"\u2026"]}),"\n",(0,r.jsx)(n.p,{children:"Pascal or Ada were meme choices :) Ada is heavily inspired by Pascal and has a\npretty nice standard library that offers enough to be able to quickly solve some\nproblems in it. However the toolkit is questionable :/"}),"\n",(0,r.jsx)(n.h2,{id:"choosing-libraries",children:"Choosing libraries"}),"\n",(0,r.jsx)(n.h2,{id:"preparations-for-rust",children:"Preparations for Rust"}),"\n",(0,r.jsxs)(n.p,{children:["All of the sources, later on including solutions, can be found at my\n",(0,r.jsx)(n.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022",children:"GitLab"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"toolkit",children:"Toolkit"}),"\n",(0,r.jsxs)(n.p,{children:["Since we are using Rust, we are going to use a ",(0,r.jsx)(n.a,{href:"https://doc.rust-lang.org/cargo/",children:"Cargo"})," and more than likely VSCode\nwith ",(0,r.jsx)(n.a,{href:"https://rust-analyzer.github.io/",children:(0,r.jsx)(n.code,{children:"rust-analyzer"})}),". Because of my choice of libraries, we will also introduce\na ",(0,r.jsx)(n.code,{children:".envrc"})," file that can be used by ",(0,r.jsx)(n.a,{href:"https://direnv.net/",children:(0,r.jsx)(n.code,{children:"direnv"})}),", which allows you to set specific\nenvironment variables when you enter a directory. In our case, we will use"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# to show nice backtrace when using the color-eyre\nexport RUST_BACKTRACE=1\n\n# to catch logs generated by tracing\nexport RUST_LOG=trace\n"})}),"\n",(0,r.jsxs)(n.p,{children:["And for the one of the most obnoxious things ever, we will use a script to download\nthe inputs instead of \u201c",(0,r.jsx)(n.em,{children:"clicking, opening and copying to a file"}),"\u201d",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-1-793a30",id:"user-content-fnref-1-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),". There is\nno need to be ",(0,r.jsx)(n.em,{children:"fancy"}),", so we will adjust Python script by Martin",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-2-793a30",id:"user-content-fnref-2-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-py",children:'#!/usr/bin/env python3\n\nimport datetime\nimport yaml\nimport requests\nimport sys\n\n\ndef load_config():\n with open("env.yaml", "r") as f:\n js = yaml.load(f, Loader=yaml.Loader)\n return js["session"], js["year"]\n\n\ndef get_input(session, year, day):\n return requests.get(\n f"https://adventofcode.com/{year}/day/{day}/input",\n cookies={"session": session},\n headers={\n "User-Agent": "{repo} by {mail}".format(\n repo="gitlab.com/mfocko/advent-of-code-2022",\n mail="me@mfocko.xyz",\n )\n },\n ).content.decode("utf-8")\n\n\ndef main():\n day = datetime.datetime.now().day\n if len(sys.argv) == 2:\n day = sys.argv[1]\n\n session, year = load_config()\n problem_input = get_input(session, year, day)\n\n with open(f"./inputs/day{day:>02}.txt", "w") as f:\n f.write(problem_input)\n\n\nif __name__ == "__main__":\n main()\n'})}),"\n",(0,r.jsx)(n.p,{children:"If the script is called without any arguments, it will deduce the day from the\nsystem, so we do not need to change the day every morning. It also requires a\nconfiguration file:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"# env.yaml\nsession: \u2039your session cookie\u203a\nyear: 2022\n"})}),"\n",(0,r.jsx)(n.h3,{id:"libraries",children:"Libraries"}),"\n",(0,r.jsx)(n.p,{children:"Looking at the list of the libraries, I have chosen \u201ca lot\u201d of them. Let's walk\nthrough each of them."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing",children:(0,r.jsx)(n.code,{children:"tracing"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing-subscriber",children:(0,r.jsx)(n.code,{children:"tracing-subscriber"})})," are the crates that can be used for tracing\nand logging of your Rust programs, there are also other crates that can help you\nwith providing backtrace to the Sentry in case you have deployed your application\nsomewhere and you want to watch over it. In our use case we will just utilize the\nmacros for debugging in the terminal."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/thiserror",children:(0,r.jsx)(n.code,{children:"thiserror"})}),", ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/anyhow",children:(0,r.jsx)(n.code,{children:"anyhow"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/color-eyre",children:(0,r.jsx)(n.code,{children:"color-eyre"})})," are used for error reporting.\n",(0,r.jsx)(n.code,{children:"thiserror"})," is a very good choice for libraries, cause it extends the ",(0,r.jsx)(n.code,{children:"Error"}),"\nfrom the ",(0,r.jsx)(n.code,{children:"std"})," and allows you to create more convenient error types. Next is\n",(0,r.jsx)(n.code,{children:"anyhow"})," which kinda builds on top of the ",(0,r.jsx)(n.code,{children:"thiserror"})," and provides you with simpler\nerror handling in binaries",(0,r.jsx)(n.sup,{children:(0,r.jsx)(n.a,{href:"#user-content-fn-3-793a30",id:"user-content-fnref-3-793a30","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". And finally we have ",(0,r.jsx)(n.code,{children:"color-eyre"})," which, as I found\nout later, is a colorful (",(0,r.jsx)(n.em,{children:"wink wink"}),") extension of ",(0,r.jsx)(n.code,{children:"eyre"})," which is fork of ",(0,r.jsx)(n.code,{children:"anyhow"}),"\nwhile supporting customized reports."]}),"\n",(0,r.jsxs)(n.p,{children:["In the end I have decided to remove ",(0,r.jsx)(n.code,{children:"thiserror"})," and ",(0,r.jsx)(n.code,{children:"anyhow"}),", since first one is\nsuitable for libraries and the latter was basically fully replaced by ",(0,r.jsx)(n.code,{children:"{color-,}eyre"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/regex",children:(0,r.jsx)(n.code,{children:"regex"})})," and ",(0,r.jsx)(n.a,{href:"https://crates.io/crates/lazy_static",children:(0,r.jsx)(n.code,{children:"lazy_static"})})," are a very good and also, I hope, self-explanatory\ncombination. ",(0,r.jsx)(n.code,{children:"lazy_static"})," allows you to have static variables that must be initialized\nduring runtime."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://crates.io/crates/itertools",children:(0,r.jsx)(n.code,{children:"itertools"})})," provides some nice extensions to the iterators from the ",(0,r.jsx)(n.code,{children:"std"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"my-own-library",children:"My own \u201clibrary\u201d"}),"\n",(0,r.jsxs)(n.p,{children:["When creating the crate for this year's Advent of Code, I have chosen a library\ntype. Even though standard library is huge, some things might not be included and\nalso we can follow ",(0,r.jsx)(n.em,{children:"KISS"}),". I have 2 modules that my \u201clibrary\u201d exports, one for\nparsing and one for 2D vector (that gets used quite often during Advent of Code)."]}),"\n",(0,r.jsx)(n.p,{children:"Key part is, of course, processing the input and my library exports following\nfunctions that get used a lot:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"/// Reads file to the string.\npub fn file_to_string<P: AsRef<Path>>(pathname: P) -> String;\n\n/// Reads file and returns it as a vector of characters.\npub fn file_to_chars<P: AsRef<Path>>(pathname: P) -> Vec<char>;\n\n/// Reads file and returns a vector of parsed structures. Expects each structure\n/// on its own line in the file. And `T` needs to implement `FromStr` trait.\npub fn file_to_structs<P: AsRef<Path>, T: FromStr>(pathname: P) -> Vec<T>\nwhere\n <T as FromStr>::Err: Debug;\n\n/// Converts iterator over strings to a vector of parsed structures. `T` needs\n/// to implement `FromStr` trait and its error must derive `Debug` trait.\npub fn strings_to_structs<T: FromStr, U>(\n iter: impl Iterator<Item = U>\n) -> Vec<T>\nwhere\n <T as std::str::FromStr>::Err: std::fmt::Debug,\n U: Deref<Target = str>;\n\n/// Reads file and returns it as a vector of its lines.\npub fn file_to_lines<P: AsRef<Path>>(pathname: P) -> Vec<String>;\n"})}),"\n",(0,r.jsxs)(n.p,{children:["As for the vector, I went with a rather simple implementation that allows only\naddition of the vectors for now and accessing the elements via functions ",(0,r.jsx)(n.code,{children:"x()"}),"\nand ",(0,r.jsx)(n.code,{children:"y()"}),". Also the vector is generic, so we can use it with any numeric type we\nneed."]}),"\n",(0,r.jsx)(n.h3,{id:"skeleton",children:"Skeleton"}),"\n",(0,r.jsx)(n.p,{children:"We can also prepare a template to quickly bootstrap each of the days. We know\nthat each puzzle has 2 parts, which means that we can start with 2 functions that\nwill solve them."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"fn part1(input: &Input) -> Output {\n todo!()\n}\n\nfn part2(input: &Input) -> Output {\n todo!()\n}\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Both functions take reference to the input and return some output (in majority\nof puzzles, it is the same type). ",(0,r.jsx)(n.code,{children:"todo!()"})," can be used as a nice placeholder,\nit also causes a panic when reached and we could also provide some string with\nan explanation, e.g. ",(0,r.jsx)(n.code,{children:'todo!("part 1")'}),". We have not given functions a specific\ntype and to avoid as much copy-paste as possible, we will introduce type aliases."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"type Input = String;\ntype Output = i32;\n"})}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsxs)(n.p,{children:["This allows us to quickly adjust the types only in one place without the need to\ndo ",(0,r.jsx)(n.em,{children:"regex-replace"})," or replace them manually."]})}),"\n",(0,r.jsx)(n.p,{children:"For each day we get a personalized input that is provided as a text file. Almost\nall the time, we would like to get some structured type out of that input, and\ntherefore it makes sense to introduce a new function that will provide the parsing\nof the input."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:"fn parse_input(path: &str) -> Input {\n todo!()\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"This \u201cparser\u201d will take a path to the file, just in case we would like to run the\nsample instead of input."}),"\n",(0,r.jsxs)(n.p,{children:["OK, so now we can write a ",(0,r.jsx)(n.code,{children:"main"})," function that will take all of the pieces and\nrun them."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'fn main() {\n let input = parse_input("inputs/dayXX.txt");\n\n println!("Part 1: {}", part_1(&input));\n println!("Part 2: {}", part_2(&input));\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["This would definitely do :) But we have installed a few libraries and we want to\nuse them. In this part we are going to utilize ",(0,r.jsx)(n.em,{children:(0,r.jsx)(n.a,{href:"https://crates.io/crates/tracing",children:(0,r.jsx)(n.code,{children:"tracing"})})})," (for tracing, duh\u2026)\nand ",(0,r.jsx)(n.em,{children:(0,r.jsx)(n.a,{href:"https://crates.io/crates/color-eyre",children:(0,r.jsx)(n.code,{children:"color-eyre"})})})," (for better error reporting, e.g. from parsing)."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'fn main() -> Result<()> {\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = parse_input("inputs/dayXX.txt");\n\n info!("Part 1: {}", part_1(&input));\n info!("Part 2: {}", part_2(&input));\n\n Ok(())\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["The first statement will set up tracing and configure it to print out the logs to\nterminal, based on the environment variable. We also change the formatting a bit,\nsince we do not need all the ",(0,r.jsx)(n.em,{children:"fancy"})," features of the logger. Pure initialization\nwould get us logs like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"2022-12-11T19:53:19.975343Z INFO day01: Part 1: 0\n"})}),"\n",(0,r.jsx)(n.p,{children:"However after running that command, we will get the following:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:" INFO src/bin/day01.rs:35: Part 1: 0\n"})}),"\n",(0,r.jsxs)(n.p,{children:["And the ",(0,r.jsx)(n.code,{children:"color_eyre::install()?"})," is quite straightforward. We just initialize the\nerror reporting by ",(0,r.jsx)(n.em,{children:"color eyre"}),"."]}),"\n",(0,r.jsx)(n.admonition,{type:"caution",children:(0,r.jsxs)(n.p,{children:["Notice that we had to add ",(0,r.jsx)(n.code,{children:"Ok(())"})," to the end of the function and adjust the\nreturn type of the ",(0,r.jsx)(n.code,{children:"main"})," to ",(0,r.jsx)(n.code,{children:"Result<()>"}),". It is caused by the ",(0,r.jsx)(n.em,{children:"color eyre"})," that\ncan be installed only once and therefore it can fail, that is how we got the ",(0,r.jsx)(n.code,{children:"?"}),"\nat the end of the ",(0,r.jsx)(n.code,{children:"::install"})," which ",(0,r.jsx)(n.em,{children:"unwraps"})," the ",(0,r.jsx)(n.strong,{children:"\xbbresult\xab"})," of the installation."]})}),"\n",(0,r.jsx)(n.p,{children:"Overall we will get to a template like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-rust",children:'use aoc_2022::*;\n\nuse color_eyre::eyre::Result;\nuse tracing::info;\nuse tracing_subscriber::EnvFilter;\n\ntype Input = String;\ntype Output = i32;\n\nfn parse_input(path: &str) -> Input {\n todo!()\n}\n\nfn part1(input: &Input) -> Output {\n todo!()\n}\n\nfn part2(input: &Input) -> Output {\n todo!()\n}\n\nfn main() -> Result<()> {\n tracing_subscriber::fmt()\n .with_env_filter(EnvFilter::from_default_env())\n .with_target(false)\n .with_file(true)\n .with_line_number(true)\n .without_time()\n .compact()\n .init();\n color_eyre::install()?;\n\n let input = parse_input("inputs/dayXX.txt");\n\n info!("Part 1: {}", part_1(&input));\n info!("Part 2: {}", part_2(&input));\n\n Ok(())\n}\n'})}),"\n",(0,r.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,r.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{id:"user-content-fn-1-793a30",children:["\n",(0,r.jsxs)(n.p,{children:["Copy-pasting might be a relaxing thing to do, but you can also discover\nnasty stuff about your PC. See ",(0,r.jsx)(n.a,{href:"https://www.reddit.com/r/adventofcode/comments/zb98pn/comment/iyq0ono",children:"this Reddit post and the comment"}),". ",(0,r.jsx)(n.a,{href:"#user-content-fnref-1-793a30","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{id:"user-content-fn-2-793a30",children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://github.com/martinjonas",children:"GitHub profile"})," ",(0,r.jsx)(n.a,{href:"#user-content-fnref-2-793a30","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{id:"user-content-fn-3-793a30",children:["\n",(0,r.jsxs)(n.p,{children:["Even though you can use it even for libraries, but handling errors from\nlibraries using ",(0,r.jsx)(n.code,{children:"anyhow"})," is nasty\u2026 You will be the stinky one ;) ",(0,r.jsx)(n.a,{href:"#user-content-fnref-3-793a30","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>a});var r=t(67294);const o={},i=r.createContext(o);function a(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/520f8175.85515c7b.js b/assets/js/520f8175.85515c7b.js new file mode 100644 index 0000000..ea4aa7a --- /dev/null +++ b/assets/js/520f8175.85515c7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8058],{24353:t=>{t.exports=JSON.parse('{"label":"cpp","permalink":"/algorithms/tags/cpp","allTagsPath":"/algorithms/tags","count":3,"items":[{"id":"hash-tables/2023-11-28-breaking/breaking","title":"Breaking Hash Table","description":"How to get the linear time complexity in a hash table.\\n","permalink":"/algorithms/hash-tables/breaking"},{"id":"hash-tables/2023-11-28-breaking/python","title":"Breaking Python","description":"Actually getting the worst-case time complexity in Python.\\n","permalink":"/algorithms/hash-tables/breaking/python"},{"id":"hash-tables/2023-11-28-breaking/mitigations","title":"Possible Mitigations","description":"Talking about the ways how to prevent the attacks on the hash table.\\n","permalink":"/algorithms/hash-tables/breaking/mitigations"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/5269.59fe4761.js b/assets/js/5269.59fe4761.js deleted file mode 100644 index 9d7df2a..0000000 --- a/assets/js/5269.59fe4761.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5269],{5269:(t,e,r)=>{r.d(e,{a:()=>l,b:()=>M,c:()=>o,d:()=>H,e:()=>v,f:()=>I,g:()=>W,h:()=>X,i:()=>f,j:()=>Y,l:()=>d,p:()=>T,s:()=>_,u:()=>c});var a=r(5322),n=r(4218),i=r(6042);const s={extension:(t,e,r)=>{a.l.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).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",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).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",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).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",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).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",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},point:(t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).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",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).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,r)=>{t.append("marker").attr("id",r+"_"+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",r+"_"+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,r)=>{t.append("marker").attr("id",r+"_"+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",r+"_"+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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+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")}},l=(t,e,r,a)=>{e.forEach((e=>{s[e](t,r,a)}))};const o=(t,e,r,i)=>{let s=t||"";if("object"==typeof s&&(s=s[0]),(0,a.m)((0,a.c)().flowchart.htmlLabels)){s=s.replace(/\\n|\n/g,"<br />"),a.l.info("vertexText"+s);let t=function(t){const e=(0,n.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,i=t.isNode?"nodeLabel":"edgeLabel";var s,l;return r.html('<span class="'+i+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+a+"</span>"),s=r,(l=t.labelStyle)&&s.attr("style",l),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}({isNode:i,label:(0,a.J)(s).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 a=[];a="string"==typeof s?s.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(s)?s:[];for(const e of a){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},d=async(t,e,r,s)=>{let l;const d=e.useHtmlLabels||(0,a.m)((0,a.c)().flowchart.htmlLabels);l=r||"node default";const c=t.insert("g").attr("class",l).attr("id",e.domId||e.id),h=c.insert("g").attr("class","label").attr("style",e.labelStyle);let p;p=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const g=h.node();let y;y="markdown"===e.labelType?(0,i.a)(h,(0,a.d)((0,a.J)(p),(0,a.c)()),{useHtmlLabels:d,width:e.width||(0,a.c)().flowchart.wrappingWidth,classes:"markdown-node-label"}):g.appendChild(o((0,a.d)((0,a.J)(p),(0,a.c)()),e.labelStyle,!1,s));let f=y.getBBox();const w=e.padding/2;if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=y.children[0],e=(0,n.Ys)(y),r=t.getElementsByTagName("img");if(r){const t=""===p.replace(/<img[^>]*>/g,"").trim();await Promise.all([...r].map((e=>new Promise((r=>{function n(){if(e.style.display="flex",e.style.flexDirection="column",t){const t=(0,a.c)().fontSize?(0,a.c)().fontSize:window.getComputedStyle(document.body).fontSize,r=5;e.style.width=parseInt(t,10)*r+"px"}else e.style.width="100%";r(e)}setTimeout((()=>{e.complete&&n()})),e.addEventListener("error",n),e.addEventListener("load",n)})))))}f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}return d?h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):h.attr("transform","translate(0, "+-f.height/2+")"),e.centerLabel&&h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),h.insert("rect",":first-child"),{shapeSvg:c,bbox:f,halfPadding:w,label:h}},c=(t,e)=>{const r=e.node().getBBox();t.width=r.width,t.height=r.height};function h(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}function p(t,e,r,a){var n=t.x,i=t.y,s=n-a.x,l=i-a.y,o=Math.sqrt(e*e*l*l+r*r*s*s),d=Math.abs(e*r*s/o);a.x<n&&(d=-d);var c=Math.abs(e*r*l/o);return a.y<i&&(c=-c),{x:n+d,y:i+c}}function g(t,e,r,a){var n,i,s,l,o,d,c,h,p,g,f,w,b;if(n=e.y-t.y,s=t.x-e.x,o=e.x*t.y-t.x*e.y,p=n*r.x+s*r.y+o,g=n*a.x+s*a.y+o,!(0!==p&&0!==g&&y(p,g)||(i=a.y-r.y,l=r.x-a.x,d=a.x*r.y-r.x*a.y,c=i*t.x+l*t.y+d,h=i*e.x+l*e.y+d,0!==c&&0!==h&&y(c,h)||0==(f=n*l-i*s))))return w=Math.abs(f/2),{x:(b=s*d-l*o)<0?(b-w)/f:(b+w)/f,y:(b=i*o-n*d)<0?(b-w)/f:(b+w)/f}}function y(t,e){return t*e>0}const f=(t,e)=>{var r,a,n=t.x,i=t.y,s=e.x-n,l=e.y-i,o=t.width/2,d=t.height/2;return Math.abs(l)*o>Math.abs(s)*d?(l<0&&(d=-d),r=0===l?0:d*s/l,a=d):(s<0&&(o=-o),r=o,a=0===s?0:o*l/s),{x:n+r,y:i+a}},w={node:function(t,e){return t.intersect(e)},circle:function(t,e,r){return p(t,e,e,r)},ellipse:p,polygon:function(t,e,r){var a=t.x,n=t.y,i=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){s=Math.min(s,t.x),l=Math.min(l,t.y)})):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var o=a-t.width/2-s,d=n-t.height/2-l,c=0;c<e.length;c++){var h=e[c],p=e[c<e.length-1?c+1:0],y=g(t,r,{x:o+h.x,y:d+h.y},{x:o+p.x,y:d+p.y});y&&i.push(y)}return i.length?(i.length>1&&i.sort((function(t,e){var a=t.x-r.x,n=t.y-r.y,i=Math.sqrt(a*a+n*n),s=e.x-r.x,l=e.y-r.y,o=Math.sqrt(s*s+l*l);return i<o?-1:i===o?0:1})),i[0]):t},rect:f},b=t=>t?" "+t:"",u=(t,e)=>`${e||"node default"}${b(t.classes)} ${b(t.class)}`,x=async(t,e)=>{const{shapeSvg:r,bbox:n}=await d(t,e,u(e,void 0),!0),i=n.width+e.padding+(n.height+e.padding),s=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];a.l.info("Question main (Circle)");const l=h(r,i,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return a.l.warn("Intersect called"),w.polygon(e,s,t)},r};function m(t,e,r,n){const i=[],s=t=>{i.push(t,0)},l=t=>{i.push(0,t)};e.includes("t")?(a.l.debug("add top border"),s(r)):l(r),e.includes("r")?(a.l.debug("add right border"),s(n)):l(n),e.includes("b")?(a.l.debug("add bottom border"),s(r)):l(r),e.includes("l")?(a.l.debug("add left border"),s(n)):l(n),t.attr("stroke-dasharray",i.join(" "))}const k=(t,e,r)=>{const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let n=70,i=10;"LR"===r&&(n=10,i=70);const s=a.append("rect").attr("x",-1*n/2).attr("y",-1*i/2).attr("width",n).attr("height",i).attr("class","fork-join");return c(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return w.rect(e,t)},a},L={rhombus:x,question:x,rect:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,"node "+e.classes+" "+e.class,!0),s=r.insert("rect",":first-child"),l=n.width+e.padding,o=n.height+e.padding;if(s.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-n.width/2-i).attr("y",-n.height/2-i).attr("width",l).attr("height",o),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(m(s,e.props.borders,l,o),t.delete("borders")),t.forEach((t=>{a.l.warn(`Unknown node property ${t}`)}))}return c(e,s),e.intersect=function(t){return w.rect(e,t)},r},labelRect:async(t,e)=>{const{shapeSvg:r}=await d(t,e,"label",!0);a.l.trace("Classes = ",e.class);const n=r.insert("rect",":first-child");if(n.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(m(n,e.props.borders,0,0),t.delete("borders")),t.forEach((t=>{a.l.warn(`Unknown node property ${t}`)}))}return c(e,n),e.intersect=function(t){return w.rect(e,t)},r},rectWithTitle:(t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=i.insert("rect",":first-child"),l=i.insert("line"),d=i.insert("g").attr("class","label"),h=e.labelText.flat?e.labelText.flat():e.labelText;let p="";p="object"==typeof h?h[0]:h,a.l.info("Label text abc79",p,h,"object"==typeof h);const g=d.node().appendChild(o(p,e.labelStyle,!0,!0));let y={width:0,height:0};if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=g.children[0],e=(0,n.Ys)(g);y=t.getBoundingClientRect(),e.attr("width",y.width),e.attr("height",y.height)}a.l.info("Text 2",h);const f=h.slice(1,h.length);let b=g.getBBox();const u=d.node().appendChild(o(f.join?f.join("<br/>"):f,e.labelStyle,!0,!0));if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=u.children[0],e=(0,n.Ys)(u);y=t.getBoundingClientRect(),e.attr("width",y.width),e.attr("height",y.height)}const x=e.padding/2;return(0,n.Ys)(u).attr("transform","translate( "+(y.width>b.width?0:(b.width-y.width)/2)+", "+(b.height+x+5)+")"),(0,n.Ys)(g).attr("transform","translate( "+(y.width<b.width?0:-(b.width-y.width)/2)+", 0)"),y=d.node().getBBox(),d.attr("transform","translate("+-y.width/2+", "+(-y.height/2-x+3)+")"),s.attr("class","outer title-state").attr("x",-y.width/2-x).attr("y",-y.height/2-x).attr("width",y.width+e.padding).attr("height",y.height+e.padding),l.attr("class","divider").attr("x1",-y.width/2-x).attr("x2",y.width/2+x).attr("y1",-y.height/2-x+b.height+x).attr("y2",-y.height/2-x+b.height+x),c(e,s),e.intersect=function(t){return w.rect(e,t)},i},choice:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return r.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 w.circle(e,14,t)},r},circle:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,u(e,void 0),!0),s=r.insert("circle",":first-child");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),a.l.info("Circle main"),c(e,s),e.intersect=function(t){return a.l.info("Circle intersect",e,n.width/2+i,t),w.circle(e,n.width/2+i,t)},r},doublecircle:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,u(e,void 0),!0),s=r.insert("g",":first-child"),l=s.insert("circle"),o=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+5).attr("width",n.width+e.padding+10).attr("height",n.height+e.padding+10),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),a.l.info("DoubleCircle main"),c(e,l),e.intersect=function(t){return a.l.info("DoubleCircle intersect",e,n.width/2+i+5,t),w.circle(e,n.width/2+i+5,t)},r},stadium:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.height+e.padding,i=a.width+n/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",n/2).attr("ry",n/2).attr("x",-i/2).attr("y",-n/2).attr("width",i).attr("height",n);return c(e,s),e.intersect=function(t){return w.rect(e,t)},r},hexagon:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.height+e.padding,i=n/4,s=a.width+2*i+e.padding,l=[{x:i,y:0},{x:s-i,y:0},{x:s,y:-n/2},{x:s-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}],o=h(r,s,n,l);return o.attr("style",e.style),c(e,o),e.intersect=function(t){return w.polygon(e,l,t)},r},rect_left_inv_arrow:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-i/2,y:0},{x:n,y:0},{x:n,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];return h(r,n,i,s).attr("style",e.style),e.width=n+i,e.height=i,e.intersect=function(t){return w.polygon(e,s,t)},r},lean_right:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-2*i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},lean_left:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:2*i/6,y:0},{x:n+i/6,y:0},{x:n-2*i/6,y:-i},{x:-i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},trapezoid:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-2*i/6,y:0},{x:n+2*i/6,y:0},{x:n-i/6,y:-i},{x:i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},inv_trapezoid:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:-2*i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},rect_right_inv_arrow:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:0,y:0},{x:n+i/2,y:0},{x:n,y:-i/2},{x:n+i/2,y:-i},{x:0,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},cylinder:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=n/2,s=i/(2.5+n/50),l=a.height+s+e.padding,o="M 0,"+s+" a "+i+","+s+" 0,0,0 "+n+" 0 a "+i+","+s+" 0,0,0 "+-n+" 0 l 0,"+l+" a "+i+","+s+" 0,0,0 "+n+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",o).attr("transform","translate("+-n/2+","+-(l/2+s)+")");return c(e,h),e.intersect=function(t){const r=w.rect(e,t),a=r.x-e.x;if(0!=i&&(Math.abs(a)<e.width/2||Math.abs(a)==e.width/2&&Math.abs(r.y-e.y)>e.height/2-s)){let n=s*s*(1-a*a/(i*i));0!=n&&(n=Math.sqrt(n)),n=s-n,t.y-e.y>0&&(n=-n),r.y+=n}return r},r},start:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),c(e,a),e.intersect=function(t){return w.circle(e,7,t)},r},end:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),c(e,n),e.intersect=function(t){return w.circle(e,7,t)},r},note:async(t,e)=>{e.useHtmlLabels||(0,a.c)().flowchart.htmlLabels||(e.centerLabel=!0);const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,"node "+e.classes,!0);a.l.info("Classes = ",e.classes);const s=r.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-n.width/2-i).attr("y",-n.height/2-i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),c(e,s),e.intersect=function(t){return w.rect(e,t)},r},subroutine:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},fork:k,join:k,class_box:(t,e)=>{const r=e.padding/2;let i;i=e.classes?"node "+e.classes:"node default";const s=t.insert("g").attr("class",i).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),d=s.insert("line"),h=s.insert("line");let p=0,g=4;const y=s.insert("g").attr("class","label");let f=0;const b=e.classData.annotations&&e.classData.annotations[0],u=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",x=y.node().appendChild(o(u,e.labelStyle,!0,!0));let m=x.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=x.children[0],e=(0,n.Ys)(x);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}e.classData.annotations[0]&&(g+=m.height+4,p+=m.width);let k=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,a.c)().flowchart.htmlLabels?k+="<"+e.classData.type+">":k+="<"+e.classData.type+">");const L=y.node().appendChild(o(k,e.labelStyle,!0,!0));(0,n.Ys)(L).attr("class","classTitle");let S=L.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=L.children[0],e=(0,n.Ys)(L);S=t.getBoundingClientRect(),e.attr("width",S.width),e.attr("height",S.height)}g+=S.height+4,S.width>p&&(p=S.width);const v=[];e.classData.members.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;(0,a.c)().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const s=y.node().appendChild(o(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let l=s.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=s.children[0],e=(0,n.Ys)(s);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>p&&(p=l.width),g+=l.height+4,v.push(s)})),g+=8;const _=[];if(e.classData.methods.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;(0,a.c)().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const s=y.node().appendChild(o(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let l=s.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=s.children[0],e=(0,n.Ys)(s);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>p&&(p=l.width),g+=l.height+4,_.push(s)})),g+=8,b){let t=(p-m.width)/2;(0,n.Ys)(x).attr("transform","translate( "+(-1*p/2+t)+", "+-1*g/2+")"),f=m.height+4}let M=(p-S.width)/2;return(0,n.Ys)(L).attr("transform","translate( "+(-1*p/2+M)+", "+(-1*g/2+f)+")"),f+=S.height+4,d.attr("class","divider").attr("x1",-p/2-r).attr("x2",p/2+r).attr("y1",-g/2-r+8+f).attr("y2",-g/2-r+8+f),f+=8,v.forEach((t=>{(0,n.Ys)(t).attr("transform","translate( "+-p/2+", "+(-1*g/2+f+4)+")");const e=null==t?void 0:t.getBBox();f+=((null==e?void 0:e.height)??0)+4})),f+=8,h.attr("class","divider").attr("x1",-p/2-r).attr("x2",p/2+r).attr("y1",-g/2-r+8+f).attr("y2",-g/2-r+8+f),f+=8,_.forEach((t=>{(0,n.Ys)(t).attr("transform","translate( "+-p/2+", "+(-1*g/2+f)+")");const e=null==t?void 0:t.getBBox();f+=((null==e?void 0:e.height)??0)+4})),l.attr("class","outer title-state").attr("x",-p/2-r).attr("y",-g/2-r).attr("width",p+e.padding).attr("height",g+e.padding),c(e,l),e.intersect=function(t){return w.rect(e,t)},s}};let S={};const v=async(t,e,r)=>{let n,i;if(e.link){let s;"sandbox"===(0,a.c)().securityLevel?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s),i=await L[e.shape](n,e,r)}else i=await L[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),S[e.id]=n,e.haveCallback&&S[e.id].attr("class",S[e.id].attr("class")+" clickable"),n},_=(t,e)=>{S[e.id]=t},M=()=>{S={}},T=t=>{const e=S[t.id];a.l.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},E={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function B(t,e){t=C(t),e=C(e);const[r,a]=[t.x,t.y],[n,i]=[e.x,e.y],s=n-r,l=i-a;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}const C=t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,Y=t=>({x:function(e,r,a){let n=0;if(0===r&&Object.hasOwn(E,t.arrowTypeStart)){const{angle:e,deltaX:r}=B(a[0],a[1]);n=E[t.arrowTypeStart]*Math.cos(e)*(r>=0?1:-1)}else if(r===a.length-1&&Object.hasOwn(E,t.arrowTypeEnd)){const{angle:e,deltaX:r}=B(a[a.length-1],a[a.length-2]);n=E[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}return C(e).x+n},y:function(e,r,a){let n=0;if(0===r&&Object.hasOwn(E,t.arrowTypeStart)){const{angle:e,deltaY:r}=B(a[0],a[1]);n=E[t.arrowTypeStart]*Math.abs(Math.sin(e))*(r>=0?1:-1)}else if(r===a.length-1&&Object.hasOwn(E,t.arrowTypeEnd)){const{angle:e,deltaY:r}=B(a[a.length-1],a[a.length-2]);n=E[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}return C(e).y+n}});let P={},R={};const H=()=>{P={},R={}},I=(t,e)=>{const r=(0,a.m)((0,a.c)().flowchart.htmlLabels),s="markdown"===e.labelType?(0,i.a)(t,e.label,{style:e.labelStyle,useHtmlLabels:r,addSvgBackground:!0}):o(e.label,e.labelStyle);a.l.info("abc82",e,e.labelType);const l=t.insert("g").attr("class","edgeLabel"),d=l.insert("g").attr("class","label");d.node().appendChild(s);let c,h=s.getBBox();if(r){const t=s.children[0],e=(0,n.Ys)(s);h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}if(d.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),P[e.id]=l,e.width=h.width,e.height=h.height,e.startLabelLeft){const r=o(e.startLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),R[e.id]||(R[e.id]={}),R[e.id].startLeft=a,O(c,e.startLabelLeft)}if(e.startLabelRight){const r=o(e.startLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=a.node().appendChild(r),n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),R[e.id]||(R[e.id]={}),R[e.id].startRight=a,O(c,e.startLabelRight)}if(e.endLabelLeft){const r=o(e.endLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),R[e.id]||(R[e.id]={}),R[e.id].endLeft=a,O(c,e.endLabelLeft)}if(e.endLabelRight){const r=o(e.endLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),R[e.id]||(R[e.id]={}),R[e.id].endRight=a,O(c,e.endLabelRight)}return s};function O(t,e){(0,a.c)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const X=(t,e)=>{a.l.info("Moving label abc78 ",t.id,t.label,P[t.id]);let r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const n=P[t.id];let i=t.x,s=t.y;if(r){const n=a.u.calcLabelPosition(r);a.l.info("Moving label "+t.label+" from (",i,",",s,") to (",n.x,",",n.y,") abc78"),e.updatedPath&&(i=n.x,s=n.y)}n.attr("transform","translate("+i+", "+s+")")}if(t.startLabelLeft){const e=R[t.id].startLeft;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.startLabelRight){const e=R[t.id].startRight;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.endLabelLeft){const e=R[t.id].endLeft;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.endLabelRight){const e=R[t.id].endRight;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}},$=(t,e)=>{a.l.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach((t=>{if(a.l.info("abc88 checking point",t,e),((t,e)=>{const r=t.x,a=t.y,n=Math.abs(e.x-r),i=Math.abs(e.y-a),s=t.width/2,l=t.height/2;return n>=s||i>=l})(e,t)||i)a.l.warn("abc88 outside",t,n),n=t,i||r.push(t);else{const s=((t,e,r)=>{a.l.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const n=t.x,i=t.y,s=Math.abs(n-r.x),l=t.width/2;let o=r.x<e.x?l-s:l+s;const d=t.height/2,c=Math.abs(e.y-r.y),h=Math.abs(e.x-r.x);if(Math.abs(i-e.y)*l>Math.abs(n-e.x)*d){let t=r.y<e.y?e.y-d-i:i-d-e.y;o=h*t/c;const n={x:r.x<e.x?r.x+o:r.x-h+o,y:r.y<e.y?r.y+c-t:r.y-c+t};return 0===o&&(n.x=e.x,n.y=e.y),0===h&&(n.x=e.x),0===c&&(n.y=e.y),a.l.warn(`abc89 topp/bott calc, Q ${c}, q ${t}, R ${h}, r ${o}`,n),n}{o=r.x<e.x?e.x-l-n:n-l-e.x;let t=c*o/h,i=r.x<e.x?r.x+h-o:r.x-h+o,s=r.y<e.y?r.y+t:r.y-t;return a.l.warn(`sides calc abc89, Q ${c}, q ${t}, R ${h}, r ${o}`,{_x:i,_y:s}),0===o&&(i=e.x,s=e.y),0===h&&(i=e.x),0===c&&(s=e.y),{x:i,y:s}}})(e,n,t);a.l.warn("abc88 inside",t,n,s),a.l.warn("abc88 intersection",s);let l=!1;r.forEach((t=>{l=l||t.x===s.x&&t.y===s.y})),r.some((t=>t.x===s.x&&t.y===s.y))?a.l.warn("abc88 no intersect",s,r):r.push(s),i=!0}})),a.l.warn("abc88 returning points",r),r},W=function(t,e,r,i,s,l,o){let d=r.points,c=!1;const h=l.node(e.v);var p=l.node(e.w);a.l.info("abc88 InsertEdge: ",r),p.intersect&&h.intersect&&(d=d.slice(1,r.points.length-1),d.unshift(h.intersect(d[0])),a.l.info("Last point",d[d.length-1],p,p.intersect(d[d.length-1])),d.push(p.intersect(d[d.length-1]))),r.toCluster&&(a.l.info("to cluster abc88",i[r.toCluster]),d=$(r.points,i[r.toCluster].node),c=!0),r.fromCluster&&(a.l.info("from cluster abc88",i[r.fromCluster]),d=$(d.reverse(),i[r.fromCluster].node).reverse(),c=!0);const g=d.filter((t=>!Number.isNaN(t.y)));let y=n.$0Z;!r.curve||"graph"!==s&&"flowchart"!==s||(y=r.curve);const{x:f,y:w}=Y(r),b=(0,n.jvg)().x(f).y(w).curve(y);let u;switch(r.thickness){case"normal":u="edge-thickness-normal";break;case"thick":case"invisible":u="edge-thickness-thick";break;default:u=""}switch(r.pattern){case"solid":u+=" edge-pattern-solid";break;case"dotted":u+=" edge-pattern-dotted";break;case"dashed":u+=" edge-pattern-dashed"}const x=t.append("path").attr("d",b(g)).attr("id",r.id).attr("class"," "+u+(r.classes?" "+r.classes:"")).attr("style",r.style);let m="";switch(((0,a.c)().flowchart.arrowMarkerAbsolute||(0,a.c)().state.arrowMarkerAbsolute)&&(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,m=m.replace(/\(/g,"\\("),m=m.replace(/\)/g,"\\)")),a.l.info("arrowTypeStart",r.arrowTypeStart),a.l.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-crossStart)");break;case"arrow_point":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-pointStart)");break;case"arrow_barb":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-barbStart)");break;case"arrow_circle":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-circleStart)");break;case"aggregation":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-aggregationStart)");break;case"extension":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-extensionStart)");break;case"composition":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-compositionStart)");break;case"dependency":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-dependencyStart)");break;case"lollipop":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-lollipopStart)")}switch(r.arrowTypeEnd){case"arrow_cross":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-crossEnd)");break;case"arrow_point":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-pointEnd)");break;case"arrow_barb":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-barbEnd)");break;case"arrow_circle":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-circleEnd)");break;case"aggregation":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-aggregationEnd)");break;case"extension":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-extensionEnd)");break;case"composition":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-compositionEnd)");break;case"dependency":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-dependencyEnd)");break;case"lollipop":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-lollipopEnd)")}let k={};return c&&(k.updatedPath=d),k.originalPath=r.points,k}}}]); \ No newline at end of file diff --git a/assets/js/5269.a9818fb6.js b/assets/js/5269.a9818fb6.js new file mode 100644 index 0000000..95dbe45 --- /dev/null +++ b/assets/js/5269.a9818fb6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5269],{25269:(t,e,r)=>{r.d(e,{a:()=>l,b:()=>M,c:()=>o,d:()=>H,e:()=>v,f:()=>I,g:()=>W,h:()=>X,i:()=>f,j:()=>Y,l:()=>d,p:()=>T,s:()=>_,u:()=>c});var a=r(85322),n=r(64218),i=r(13076);const s={extension:(t,e,r)=>{a.l.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).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",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).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",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).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",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).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",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},point:(t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).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",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).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,r)=>{t.append("marker").attr("id",r+"_"+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",r+"_"+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,r)=>{t.append("marker").attr("id",r+"_"+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",r+"_"+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,r)=>{t.append("defs").append("marker").attr("id",r+"_"+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")}},l=(t,e,r,a)=>{e.forEach((e=>{s[e](t,r,a)}))};const o=(t,e,r,i)=>{let s=t||"";if("object"==typeof s&&(s=s[0]),(0,a.m)((0,a.c)().flowchart.htmlLabels)){s=s.replace(/\\n|\n/g,"<br />"),a.l.info("vertexText"+s);let t=function(t){const e=(0,n.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,i=t.isNode?"nodeLabel":"edgeLabel";var s,l;return r.html('<span class="'+i+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+a+"</span>"),s=r,(l=t.labelStyle)&&s.attr("style",l),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}({isNode:i,label:(0,a.J)(s).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 a=[];a="string"==typeof s?s.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(s)?s:[];for(const e of a){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},d=async(t,e,r,s)=>{let l;const d=e.useHtmlLabels||(0,a.m)((0,a.c)().flowchart.htmlLabels);l=r||"node default";const c=t.insert("g").attr("class",l).attr("id",e.domId||e.id),h=c.insert("g").attr("class","label").attr("style",e.labelStyle);let p;p=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const g=h.node();let y;y="markdown"===e.labelType?(0,i.a)(h,(0,a.d)((0,a.J)(p),(0,a.c)()),{useHtmlLabels:d,width:e.width||(0,a.c)().flowchart.wrappingWidth,classes:"markdown-node-label"}):g.appendChild(o((0,a.d)((0,a.J)(p),(0,a.c)()),e.labelStyle,!1,s));let f=y.getBBox();const w=e.padding/2;if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=y.children[0],e=(0,n.Ys)(y),r=t.getElementsByTagName("img");if(r){const t=""===p.replace(/<img[^>]*>/g,"").trim();await Promise.all([...r].map((e=>new Promise((r=>{function n(){if(e.style.display="flex",e.style.flexDirection="column",t){const t=(0,a.c)().fontSize?(0,a.c)().fontSize:window.getComputedStyle(document.body).fontSize,r=5;e.style.width=parseInt(t,10)*r+"px"}else e.style.width="100%";r(e)}setTimeout((()=>{e.complete&&n()})),e.addEventListener("error",n),e.addEventListener("load",n)})))))}f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}return d?h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):h.attr("transform","translate(0, "+-f.height/2+")"),e.centerLabel&&h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),h.insert("rect",":first-child"),{shapeSvg:c,bbox:f,halfPadding:w,label:h}},c=(t,e)=>{const r=e.node().getBBox();t.width=r.width,t.height=r.height};function h(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}function p(t,e,r,a){var n=t.x,i=t.y,s=n-a.x,l=i-a.y,o=Math.sqrt(e*e*l*l+r*r*s*s),d=Math.abs(e*r*s/o);a.x<n&&(d=-d);var c=Math.abs(e*r*l/o);return a.y<i&&(c=-c),{x:n+d,y:i+c}}function g(t,e,r,a){var n,i,s,l,o,d,c,h,p,g,f,w,b;if(n=e.y-t.y,s=t.x-e.x,o=e.x*t.y-t.x*e.y,p=n*r.x+s*r.y+o,g=n*a.x+s*a.y+o,!(0!==p&&0!==g&&y(p,g)||(i=a.y-r.y,l=r.x-a.x,d=a.x*r.y-r.x*a.y,c=i*t.x+l*t.y+d,h=i*e.x+l*e.y+d,0!==c&&0!==h&&y(c,h)||0==(f=n*l-i*s))))return w=Math.abs(f/2),{x:(b=s*d-l*o)<0?(b-w)/f:(b+w)/f,y:(b=i*o-n*d)<0?(b-w)/f:(b+w)/f}}function y(t,e){return t*e>0}const f=(t,e)=>{var r,a,n=t.x,i=t.y,s=e.x-n,l=e.y-i,o=t.width/2,d=t.height/2;return Math.abs(l)*o>Math.abs(s)*d?(l<0&&(d=-d),r=0===l?0:d*s/l,a=d):(s<0&&(o=-o),r=o,a=0===s?0:o*l/s),{x:n+r,y:i+a}},w={node:function(t,e){return t.intersect(e)},circle:function(t,e,r){return p(t,e,e,r)},ellipse:p,polygon:function(t,e,r){var a=t.x,n=t.y,i=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){s=Math.min(s,t.x),l=Math.min(l,t.y)})):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var o=a-t.width/2-s,d=n-t.height/2-l,c=0;c<e.length;c++){var h=e[c],p=e[c<e.length-1?c+1:0],y=g(t,r,{x:o+h.x,y:d+h.y},{x:o+p.x,y:d+p.y});y&&i.push(y)}return i.length?(i.length>1&&i.sort((function(t,e){var a=t.x-r.x,n=t.y-r.y,i=Math.sqrt(a*a+n*n),s=e.x-r.x,l=e.y-r.y,o=Math.sqrt(s*s+l*l);return i<o?-1:i===o?0:1})),i[0]):t},rect:f},b=t=>t?" "+t:"",u=(t,e)=>`${e||"node default"}${b(t.classes)} ${b(t.class)}`,x=async(t,e)=>{const{shapeSvg:r,bbox:n}=await d(t,e,u(e,void 0),!0),i=n.width+e.padding+(n.height+e.padding),s=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];a.l.info("Question main (Circle)");const l=h(r,i,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return a.l.warn("Intersect called"),w.polygon(e,s,t)},r};function m(t,e,r,n){const i=[],s=t=>{i.push(t,0)},l=t=>{i.push(0,t)};e.includes("t")?(a.l.debug("add top border"),s(r)):l(r),e.includes("r")?(a.l.debug("add right border"),s(n)):l(n),e.includes("b")?(a.l.debug("add bottom border"),s(r)):l(r),e.includes("l")?(a.l.debug("add left border"),s(n)):l(n),t.attr("stroke-dasharray",i.join(" "))}const k=(t,e,r)=>{const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let n=70,i=10;"LR"===r&&(n=10,i=70);const s=a.append("rect").attr("x",-1*n/2).attr("y",-1*i/2).attr("width",n).attr("height",i).attr("class","fork-join");return c(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return w.rect(e,t)},a},L={rhombus:x,question:x,rect:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,"node "+e.classes+" "+e.class,!0),s=r.insert("rect",":first-child"),l=n.width+e.padding,o=n.height+e.padding;if(s.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-n.width/2-i).attr("y",-n.height/2-i).attr("width",l).attr("height",o),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(m(s,e.props.borders,l,o),t.delete("borders")),t.forEach((t=>{a.l.warn(`Unknown node property ${t}`)}))}return c(e,s),e.intersect=function(t){return w.rect(e,t)},r},labelRect:async(t,e)=>{const{shapeSvg:r}=await d(t,e,"label",!0);a.l.trace("Classes = ",e.class);const n=r.insert("rect",":first-child");if(n.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(m(n,e.props.borders,0,0),t.delete("borders")),t.forEach((t=>{a.l.warn(`Unknown node property ${t}`)}))}return c(e,n),e.intersect=function(t){return w.rect(e,t)},r},rectWithTitle:(t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=i.insert("rect",":first-child"),l=i.insert("line"),d=i.insert("g").attr("class","label"),h=e.labelText.flat?e.labelText.flat():e.labelText;let p="";p="object"==typeof h?h[0]:h,a.l.info("Label text abc79",p,h,"object"==typeof h);const g=d.node().appendChild(o(p,e.labelStyle,!0,!0));let y={width:0,height:0};if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=g.children[0],e=(0,n.Ys)(g);y=t.getBoundingClientRect(),e.attr("width",y.width),e.attr("height",y.height)}a.l.info("Text 2",h);const f=h.slice(1,h.length);let b=g.getBBox();const u=d.node().appendChild(o(f.join?f.join("<br/>"):f,e.labelStyle,!0,!0));if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=u.children[0],e=(0,n.Ys)(u);y=t.getBoundingClientRect(),e.attr("width",y.width),e.attr("height",y.height)}const x=e.padding/2;return(0,n.Ys)(u).attr("transform","translate( "+(y.width>b.width?0:(b.width-y.width)/2)+", "+(b.height+x+5)+")"),(0,n.Ys)(g).attr("transform","translate( "+(y.width<b.width?0:-(b.width-y.width)/2)+", 0)"),y=d.node().getBBox(),d.attr("transform","translate("+-y.width/2+", "+(-y.height/2-x+3)+")"),s.attr("class","outer title-state").attr("x",-y.width/2-x).attr("y",-y.height/2-x).attr("width",y.width+e.padding).attr("height",y.height+e.padding),l.attr("class","divider").attr("x1",-y.width/2-x).attr("x2",y.width/2+x).attr("y1",-y.height/2-x+b.height+x).attr("y2",-y.height/2-x+b.height+x),c(e,s),e.intersect=function(t){return w.rect(e,t)},i},choice:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return r.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 w.circle(e,14,t)},r},circle:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,u(e,void 0),!0),s=r.insert("circle",":first-child");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),a.l.info("Circle main"),c(e,s),e.intersect=function(t){return a.l.info("Circle intersect",e,n.width/2+i,t),w.circle(e,n.width/2+i,t)},r},doublecircle:async(t,e)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,u(e,void 0),!0),s=r.insert("g",":first-child"),l=s.insert("circle"),o=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+5).attr("width",n.width+e.padding+10).attr("height",n.height+e.padding+10),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),a.l.info("DoubleCircle main"),c(e,l),e.intersect=function(t){return a.l.info("DoubleCircle intersect",e,n.width/2+i+5,t),w.circle(e,n.width/2+i+5,t)},r},stadium:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.height+e.padding,i=a.width+n/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",n/2).attr("ry",n/2).attr("x",-i/2).attr("y",-n/2).attr("width",i).attr("height",n);return c(e,s),e.intersect=function(t){return w.rect(e,t)},r},hexagon:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.height+e.padding,i=n/4,s=a.width+2*i+e.padding,l=[{x:i,y:0},{x:s-i,y:0},{x:s,y:-n/2},{x:s-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}],o=h(r,s,n,l);return o.attr("style",e.style),c(e,o),e.intersect=function(t){return w.polygon(e,l,t)},r},rect_left_inv_arrow:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-i/2,y:0},{x:n,y:0},{x:n,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];return h(r,n,i,s).attr("style",e.style),e.width=n+i,e.height=i,e.intersect=function(t){return w.polygon(e,s,t)},r},lean_right:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-2*i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},lean_left:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:2*i/6,y:0},{x:n+i/6,y:0},{x:n-2*i/6,y:-i},{x:-i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},trapezoid:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:-2*i/6,y:0},{x:n+2*i/6,y:0},{x:n-i/6,y:-i},{x:i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},inv_trapezoid:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:i/6,y:0},{x:n-i/6,y:0},{x:n+2*i/6,y:-i},{x:-2*i/6,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},rect_right_inv_arrow:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:0,y:0},{x:n+i/2,y:0},{x:n,y:-i/2},{x:n+i/2,y:-i},{x:0,y:-i}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},cylinder:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=n/2,s=i/(2.5+n/50),l=a.height+s+e.padding,o="M 0,"+s+" a "+i+","+s+" 0,0,0 "+n+" 0 a "+i+","+s+" 0,0,0 "+-n+" 0 l 0,"+l+" a "+i+","+s+" 0,0,0 "+n+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",o).attr("transform","translate("+-n/2+","+-(l/2+s)+")");return c(e,h),e.intersect=function(t){const r=w.rect(e,t),a=r.x-e.x;if(0!=i&&(Math.abs(a)<e.width/2||Math.abs(a)==e.width/2&&Math.abs(r.y-e.y)>e.height/2-s)){let n=s*s*(1-a*a/(i*i));0!=n&&(n=Math.sqrt(n)),n=s-n,t.y-e.y>0&&(n=-n),r.y+=n}return r},r},start:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),c(e,a),e.intersect=function(t){return w.circle(e,7,t)},r},end:(t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),c(e,n),e.intersect=function(t){return w.circle(e,7,t)},r},note:async(t,e)=>{e.useHtmlLabels||(0,a.c)().flowchart.htmlLabels||(e.centerLabel=!0);const{shapeSvg:r,bbox:n,halfPadding:i}=await d(t,e,"node "+e.classes,!0);a.l.info("Classes = ",e.classes);const s=r.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-n.width/2-i).attr("y",-n.height/2-i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),c(e,s),e.intersect=function(t){return w.rect(e,t)},r},subroutine:async(t,e)=>{const{shapeSvg:r,bbox:a}=await d(t,e,u(e,void 0),!0),n=a.width+e.padding,i=a.height+e.padding,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],l=h(r,n,i,s);return l.attr("style",e.style),c(e,l),e.intersect=function(t){return w.polygon(e,s,t)},r},fork:k,join:k,class_box:(t,e)=>{const r=e.padding/2;let i;i=e.classes?"node "+e.classes:"node default";const s=t.insert("g").attr("class",i).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),d=s.insert("line"),h=s.insert("line");let p=0,g=4;const y=s.insert("g").attr("class","label");let f=0;const b=e.classData.annotations&&e.classData.annotations[0],u=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",x=y.node().appendChild(o(u,e.labelStyle,!0,!0));let m=x.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=x.children[0],e=(0,n.Ys)(x);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}e.classData.annotations[0]&&(g+=m.height+4,p+=m.width);let k=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,a.c)().flowchart.htmlLabels?k+="<"+e.classData.type+">":k+="<"+e.classData.type+">");const L=y.node().appendChild(o(k,e.labelStyle,!0,!0));(0,n.Ys)(L).attr("class","classTitle");let S=L.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=L.children[0],e=(0,n.Ys)(L);S=t.getBoundingClientRect(),e.attr("width",S.width),e.attr("height",S.height)}g+=S.height+4,S.width>p&&(p=S.width);const v=[];e.classData.members.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;(0,a.c)().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const s=y.node().appendChild(o(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let l=s.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=s.children[0],e=(0,n.Ys)(s);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>p&&(p=l.width),g+=l.height+4,v.push(s)})),g+=8;const _=[];if(e.classData.methods.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;(0,a.c)().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const s=y.node().appendChild(o(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let l=s.getBBox();if((0,a.m)((0,a.c)().flowchart.htmlLabels)){const t=s.children[0],e=(0,n.Ys)(s);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}l.width>p&&(p=l.width),g+=l.height+4,_.push(s)})),g+=8,b){let t=(p-m.width)/2;(0,n.Ys)(x).attr("transform","translate( "+(-1*p/2+t)+", "+-1*g/2+")"),f=m.height+4}let M=(p-S.width)/2;return(0,n.Ys)(L).attr("transform","translate( "+(-1*p/2+M)+", "+(-1*g/2+f)+")"),f+=S.height+4,d.attr("class","divider").attr("x1",-p/2-r).attr("x2",p/2+r).attr("y1",-g/2-r+8+f).attr("y2",-g/2-r+8+f),f+=8,v.forEach((t=>{(0,n.Ys)(t).attr("transform","translate( "+-p/2+", "+(-1*g/2+f+4)+")");const e=null==t?void 0:t.getBBox();f+=((null==e?void 0:e.height)??0)+4})),f+=8,h.attr("class","divider").attr("x1",-p/2-r).attr("x2",p/2+r).attr("y1",-g/2-r+8+f).attr("y2",-g/2-r+8+f),f+=8,_.forEach((t=>{(0,n.Ys)(t).attr("transform","translate( "+-p/2+", "+(-1*g/2+f)+")");const e=null==t?void 0:t.getBBox();f+=((null==e?void 0:e.height)??0)+4})),l.attr("class","outer title-state").attr("x",-p/2-r).attr("y",-g/2-r).attr("width",p+e.padding).attr("height",g+e.padding),c(e,l),e.intersect=function(t){return w.rect(e,t)},s}};let S={};const v=async(t,e,r)=>{let n,i;if(e.link){let s;"sandbox"===(0,a.c)().securityLevel?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s),i=await L[e.shape](n,e,r)}else i=await L[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),S[e.id]=n,e.haveCallback&&S[e.id].attr("class",S[e.id].attr("class")+" clickable"),n},_=(t,e)=>{S[e.id]=t},M=()=>{S={}},T=t=>{const e=S[t.id];a.l.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},E={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function B(t,e){t=C(t),e=C(e);const[r,a]=[t.x,t.y],[n,i]=[e.x,e.y],s=n-r,l=i-a;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}const C=t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,Y=t=>({x:function(e,r,a){let n=0;if(0===r&&Object.hasOwn(E,t.arrowTypeStart)){const{angle:e,deltaX:r}=B(a[0],a[1]);n=E[t.arrowTypeStart]*Math.cos(e)*(r>=0?1:-1)}else if(r===a.length-1&&Object.hasOwn(E,t.arrowTypeEnd)){const{angle:e,deltaX:r}=B(a[a.length-1],a[a.length-2]);n=E[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}return C(e).x+n},y:function(e,r,a){let n=0;if(0===r&&Object.hasOwn(E,t.arrowTypeStart)){const{angle:e,deltaY:r}=B(a[0],a[1]);n=E[t.arrowTypeStart]*Math.abs(Math.sin(e))*(r>=0?1:-1)}else if(r===a.length-1&&Object.hasOwn(E,t.arrowTypeEnd)){const{angle:e,deltaY:r}=B(a[a.length-1],a[a.length-2]);n=E[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}return C(e).y+n}});let P={},R={};const H=()=>{P={},R={}},I=(t,e)=>{const r=(0,a.m)((0,a.c)().flowchart.htmlLabels),s="markdown"===e.labelType?(0,i.a)(t,e.label,{style:e.labelStyle,useHtmlLabels:r,addSvgBackground:!0}):o(e.label,e.labelStyle);a.l.info("abc82",e,e.labelType);const l=t.insert("g").attr("class","edgeLabel"),d=l.insert("g").attr("class","label");d.node().appendChild(s);let c,h=s.getBBox();if(r){const t=s.children[0],e=(0,n.Ys)(s);h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}if(d.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),P[e.id]=l,e.width=h.width,e.height=h.height,e.startLabelLeft){const r=o(e.startLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),R[e.id]||(R[e.id]={}),R[e.id].startLeft=a,O(c,e.startLabelLeft)}if(e.startLabelRight){const r=o(e.startLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=a.node().appendChild(r),n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),R[e.id]||(R[e.id]={}),R[e.id].startRight=a,O(c,e.startLabelRight)}if(e.endLabelLeft){const r=o(e.endLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),R[e.id]||(R[e.id]={}),R[e.id].endLeft=a,O(c,e.endLabelLeft)}if(e.endLabelRight){const r=o(e.endLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),n=a.insert("g").attr("class","inner");c=n.node().appendChild(r);const i=r.getBBox();n.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),a.node().appendChild(r),R[e.id]||(R[e.id]={}),R[e.id].endRight=a,O(c,e.endLabelRight)}return s};function O(t,e){(0,a.c)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const X=(t,e)=>{a.l.info("Moving label abc78 ",t.id,t.label,P[t.id]);let r=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const n=P[t.id];let i=t.x,s=t.y;if(r){const n=a.u.calcLabelPosition(r);a.l.info("Moving label "+t.label+" from (",i,",",s,") to (",n.x,",",n.y,") abc78"),e.updatedPath&&(i=n.x,s=n.y)}n.attr("transform","translate("+i+", "+s+")")}if(t.startLabelLeft){const e=R[t.id].startLeft;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.startLabelRight){const e=R[t.id].startRight;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.endLabelLeft){const e=R[t.id].endLeft;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}if(t.endLabelRight){const e=R[t.id].endRight;let n=t.x,i=t.y;if(r){const e=a.u.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);n=e.x,i=e.y}e.attr("transform","translate("+n+", "+i+")")}},$=(t,e)=>{a.l.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach((t=>{if(a.l.info("abc88 checking point",t,e),((t,e)=>{const r=t.x,a=t.y,n=Math.abs(e.x-r),i=Math.abs(e.y-a),s=t.width/2,l=t.height/2;return n>=s||i>=l})(e,t)||i)a.l.warn("abc88 outside",t,n),n=t,i||r.push(t);else{const s=((t,e,r)=>{a.l.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const n=t.x,i=t.y,s=Math.abs(n-r.x),l=t.width/2;let o=r.x<e.x?l-s:l+s;const d=t.height/2,c=Math.abs(e.y-r.y),h=Math.abs(e.x-r.x);if(Math.abs(i-e.y)*l>Math.abs(n-e.x)*d){let t=r.y<e.y?e.y-d-i:i-d-e.y;o=h*t/c;const n={x:r.x<e.x?r.x+o:r.x-h+o,y:r.y<e.y?r.y+c-t:r.y-c+t};return 0===o&&(n.x=e.x,n.y=e.y),0===h&&(n.x=e.x),0===c&&(n.y=e.y),a.l.warn(`abc89 topp/bott calc, Q ${c}, q ${t}, R ${h}, r ${o}`,n),n}{o=r.x<e.x?e.x-l-n:n-l-e.x;let t=c*o/h,i=r.x<e.x?r.x+h-o:r.x-h+o,s=r.y<e.y?r.y+t:r.y-t;return a.l.warn(`sides calc abc89, Q ${c}, q ${t}, R ${h}, r ${o}`,{_x:i,_y:s}),0===o&&(i=e.x,s=e.y),0===h&&(i=e.x),0===c&&(s=e.y),{x:i,y:s}}})(e,n,t);a.l.warn("abc88 inside",t,n,s),a.l.warn("abc88 intersection",s);let l=!1;r.forEach((t=>{l=l||t.x===s.x&&t.y===s.y})),r.some((t=>t.x===s.x&&t.y===s.y))?a.l.warn("abc88 no intersect",s,r):r.push(s),i=!0}})),a.l.warn("abc88 returning points",r),r},W=function(t,e,r,i,s,l,o){let d=r.points,c=!1;const h=l.node(e.v);var p=l.node(e.w);a.l.info("abc88 InsertEdge: ",r),p.intersect&&h.intersect&&(d=d.slice(1,r.points.length-1),d.unshift(h.intersect(d[0])),a.l.info("Last point",d[d.length-1],p,p.intersect(d[d.length-1])),d.push(p.intersect(d[d.length-1]))),r.toCluster&&(a.l.info("to cluster abc88",i[r.toCluster]),d=$(r.points,i[r.toCluster].node),c=!0),r.fromCluster&&(a.l.info("from cluster abc88",i[r.fromCluster]),d=$(d.reverse(),i[r.fromCluster].node).reverse(),c=!0);const g=d.filter((t=>!Number.isNaN(t.y)));let y=n.$0Z;!r.curve||"graph"!==s&&"flowchart"!==s||(y=r.curve);const{x:f,y:w}=Y(r),b=(0,n.jvg)().x(f).y(w).curve(y);let u;switch(r.thickness){case"normal":u="edge-thickness-normal";break;case"thick":case"invisible":u="edge-thickness-thick";break;default:u=""}switch(r.pattern){case"solid":u+=" edge-pattern-solid";break;case"dotted":u+=" edge-pattern-dotted";break;case"dashed":u+=" edge-pattern-dashed"}const x=t.append("path").attr("d",b(g)).attr("id",r.id).attr("class"," "+u+(r.classes?" "+r.classes:"")).attr("style",r.style);let m="";switch(((0,a.c)().flowchart.arrowMarkerAbsolute||(0,a.c)().state.arrowMarkerAbsolute)&&(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,m=m.replace(/\(/g,"\\("),m=m.replace(/\)/g,"\\)")),a.l.info("arrowTypeStart",r.arrowTypeStart),a.l.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-crossStart)");break;case"arrow_point":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-pointStart)");break;case"arrow_barb":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-barbStart)");break;case"arrow_circle":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-circleStart)");break;case"aggregation":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-aggregationStart)");break;case"extension":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-extensionStart)");break;case"composition":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-compositionStart)");break;case"dependency":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-dependencyStart)");break;case"lollipop":x.attr("marker-start","url("+m+"#"+o+"_"+s+"-lollipopStart)")}switch(r.arrowTypeEnd){case"arrow_cross":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-crossEnd)");break;case"arrow_point":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-pointEnd)");break;case"arrow_barb":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-barbEnd)");break;case"arrow_circle":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-circleEnd)");break;case"aggregation":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-aggregationEnd)");break;case"extension":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-extensionEnd)");break;case"composition":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-compositionEnd)");break;case"dependency":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-dependencyEnd)");break;case"lollipop":x.attr("marker-end","url("+m+"#"+o+"_"+s+"-lollipopEnd)")}let k={};return c&&(k.updatedPath=d),k.originalPath=r.points,k}}}]); \ No newline at end of file diff --git a/assets/js/52f2a5bf.47167693.js b/assets/js/52f2a5bf.47167693.js deleted file mode 100644 index dc34987..0000000 --- a/assets/js/52f2a5bf.47167693.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5430],{1387:a=>{a.exports=JSON.parse('{"label":"red-hat","permalink":"/blog/tags/red-hat","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/52f2a5bf.839d7f40.js b/assets/js/52f2a5bf.839d7f40.js new file mode 100644 index 0000000..f3a4ddb --- /dev/null +++ b/assets/js/52f2a5bf.839d7f40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5430],{61387:a=>{a.exports=JSON.parse('{"label":"red-hat","permalink":"/blog/tags/red-hat","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/5326.480380dd.js b/assets/js/5326.480380dd.js new file mode 100644 index 0000000..08dd4a9 --- /dev/null +++ b/assets/js/5326.480380dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5326],{45326:(t,i,n)=>{n.d(i,{diagram:()=>o});var s=n(85322),e=(n(27484),n(17967),n(64218),n(27856),function(){var t=function(t,i,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=i);return n},i=[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,i,n,s,e,r,h){switch(r.length,e){case 1:return s;case 4:break;case 6:s.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(i,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(i,[2,3]),t(i,[2,4]),t(i,[2,5]),t(i,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,i){if(!i.recoverable){var n=new Error(t);throw n.hash=i,n}this.trace(t)},parse:function(t){var i=this,n=[0],s=[],e=[null],r=[],h=this.table,o="",l=0,c=0,a=r.slice.call(arguments,1),y=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);y.setInput(t,u.yy),u.yy.lexer=y,u.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;r.push(f);var g=y.options&&y.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,m,d,k,x,b,v,w,I,S={};;){if(m=n[n.length-1],this.defaultActions[m]?d=this.defaultActions[m]:(null==_&&(I=void 0,"number"!=typeof(I=s.pop()||y.lex()||1)&&(I instanceof Array&&(I=(s=I).pop()),I=i.symbols_[I]||I),_=I),d=h[m]&&h[m][_]),void 0===d||!d.length||!d[0]){var E="";for(x in w=[],h[m])this.terminals_[x]&&x>2&&w.push("'"+this.terminals_[x]+"'");E=y.showPosition?"Parse error on line "+(l+1)+":\n"+y.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(E,{text:y.match,token:this.terminals_[_]||_,line:y.yylineno,loc:f,expected:w})}if(d[0]instanceof Array&&d.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+_);switch(d[0]){case 1:n.push(_),e.push(y.yytext),r.push(y.yylloc),n.push(d[1]),_=null,c=y.yyleng,o=y.yytext,l=y.yylineno,f=y.yylloc;break;case 2:if(b=this.productions_[d[1]][1],S.$=e[e.length-b],S._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},g&&(S._$.range=[r[r.length-(b||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(S,[o,c,l,u.yy,d[1],e,r].concat(a))))return k;b&&(n=n.slice(0,-1*b*2),e=e.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[d[1]][0]),e.push(S.$),r.push(S._$),v=h[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},s={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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 e=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===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var n,s,e;if(this.options.backtrack_lexer&&(e={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&&(e.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in e)this[r]=e[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,n,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e=this._currentRules(),r=0;r<e.length;r++)if((n=this._input.match(this.rules[e[r]]))&&(!i||n[0].length>i[0].length)){if(i=n,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,e[r])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,e[s]))&&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,i,n,s){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 e(){this.yy={}}return n.lexer=s,e.prototype=n,n.Parser=e,new e}());e.parser=e;const r=!1;let h=r;const o={parser:e,db:{clear:()=>{h=r},setInfo:t=>{h=t},getInfo:()=>h},renderer:{draw:(t,i,n)=>{s.l.debug("rendering info diagram\n"+t);const e=(0,s.z)(i);(0,s.i)(e,100,400,!0);e.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${n}`)}}}}}]); \ No newline at end of file diff --git a/assets/js/5326.c5ca7e9b.js b/assets/js/5326.c5ca7e9b.js deleted file mode 100644 index 9f746ef..0000000 --- a/assets/js/5326.c5ca7e9b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5326],{5326:(t,i,n)=>{n.d(i,{diagram:()=>o});var s=n(5322),e=(n(7484),n(7967),n(4218),n(7856),function(){var t=function(t,i,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=i);return n},i=[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,i,n,s,e,r,h){switch(r.length,e){case 1:return s;case 4:break;case 6:s.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(i,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(i,[2,3]),t(i,[2,4]),t(i,[2,5]),t(i,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,i){if(!i.recoverable){var n=new Error(t);throw n.hash=i,n}this.trace(t)},parse:function(t){var i=this,n=[0],s=[],e=[null],r=[],h=this.table,o="",l=0,c=0,a=r.slice.call(arguments,1),y=Object.create(this.lexer),u={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(u.yy[p]=this.yy[p]);y.setInput(t,u.yy),u.yy.lexer=y,u.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;r.push(f);var g=y.options&&y.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,m,d,k,x,b,v,w,I,S={};;){if(m=n[n.length-1],this.defaultActions[m]?d=this.defaultActions[m]:(null==_&&(I=void 0,"number"!=typeof(I=s.pop()||y.lex()||1)&&(I instanceof Array&&(I=(s=I).pop()),I=i.symbols_[I]||I),_=I),d=h[m]&&h[m][_]),void 0===d||!d.length||!d[0]){var E="";for(x in w=[],h[m])this.terminals_[x]&&x>2&&w.push("'"+this.terminals_[x]+"'");E=y.showPosition?"Parse error on line "+(l+1)+":\n"+y.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(E,{text:y.match,token:this.terminals_[_]||_,line:y.yylineno,loc:f,expected:w})}if(d[0]instanceof Array&&d.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+_);switch(d[0]){case 1:n.push(_),e.push(y.yytext),r.push(y.yylloc),n.push(d[1]),_=null,c=y.yyleng,o=y.yytext,l=y.yylineno,f=y.yylloc;break;case 2:if(b=this.productions_[d[1]][1],S.$=e[e.length-b],S._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},g&&(S._$.range=[r[r.length-(b||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(S,[o,c,l,u.yy,d[1],e,r].concat(a))))return k;b&&(n=n.slice(0,-1*b*2),e=e.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[d[1]][0]),e.push(S.$),r.push(S._$),v=h[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},s={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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 e=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===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var n,s,e;if(this.options.backtrack_lexer&&(e={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&&(e.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in e)this[r]=e[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,n,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e=this._currentRules(),r=0;r<e.length;r++)if((n=this._input.match(this.rules[e[r]]))&&(!i||n[0].length>i[0].length)){if(i=n,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,e[r])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,e[s]))&&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,i,n,s){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 e(){this.yy={}}return n.lexer=s,e.prototype=n,n.Parser=e,new e}());e.parser=e;const r=!1;let h=r;const o={parser:e,db:{clear:()=>{h=r},setInfo:t=>{h=t},getInfo:()=>h},renderer:{draw:(t,i,n)=>{s.l.debug("rendering info diagram\n"+t);const e=(0,s.z)(i);(0,s.i)(e,100,400,!0);e.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${n}`)}}}}}]); \ No newline at end of file diff --git a/assets/js/534d4833.162e2ecd.js b/assets/js/534d4833.162e2ecd.js new file mode 100644 index 0000000..f8e6f74 --- /dev/null +++ b/assets/js/534d4833.162e2ecd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9771],{93019:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=n(85893),i=n(11151);const o={id:"postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",tags:["python","testing","postconditions","sorting"],last_update:{date:new Date("2021-03-18T00:00:00.000Z")}},r=void 0,a={id:"algorithms-correctness/postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",source:"@site/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",sourceDirName:"02-algorithms-correctness",slug:"/algorithms-correctness/postcondition-ambiguity",permalink:"/algorithms/algorithms-correctness/postcondition-ambiguity",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",tags:[{label:"python",permalink:"/algorithms/tags/python"},{label:"testing",permalink:"/algorithms/tags/testing"},{label:"postconditions",permalink:"/algorithms/tags/postconditions"},{label:"sorting",permalink:"/algorithms/tags/sorting"}],version:"current",lastUpdatedAt:1616025600,formattedLastUpdatedAt:"Mar 18, 2021",frontMatter:{id:"postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",tags:["python","testing","postconditions","sorting"],last_update:{date:"2021-03-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"},next:{title:"Asymptotic Notation and Time Complexity",permalink:"/algorithms/category/asymptotic-notation-and-time-complexity"}},l={},c=[{value:"Introduction",id:"introduction",level:2},{value:"Implementation of select sort from the exercises",id:"implementation-of-select-sort-from-the-exercises",level:2},{value:"Discussed preconditions, loop invariants and postconditions",id:"discussed-preconditions-loop-invariants-and-postconditions",level:2},{value:"Precondition",id:"precondition",level:3},{value:"Loop invariant",id:"loop-invariant",level:3},{value:"Postcondition",id:"postcondition",level:3},{value:"So is the permutation really required?",id:"so-is-the-permutation-really-required",level:2},{value:"Implementation of the broken select sort",id:"implementation-of-the-broken-select-sort",level:2},{value:"Property-based tests for our sorts",id:"property-based-tests-for-our-sorts",level:2},{value:"Loop invariant",id:"loop-invariant-1",level:3},{value:"Postcondition(s)",id:"postconditions",level:3},{value:"Putting it together",id:"putting-it-together",level:3},{value:"Let's run the tests!",id:"lets-run-the-tests",level:3},{value:"Summary",id:"summary",level:2}];function h(e){const t={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mrow:"mrow",ol:"ol",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"pathname:///files/algorithms/algorithms-correctness/postcondition-ambiguity/test_sort.py",children:"Source code"})," used later on."]}),"\n",(0,s.jsx)(t.h2,{id:"implementation-of-select-sort-from-the-exercises",children:"Implementation of select sort from the exercises"}),"\n",(0,s.jsxs)(t.p,{children:["To implement select sort from the exercises and make it as easy to read as possible, I have implemented maximum function that returns index of the biggest element from the first ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsx)(t.mrow,{children:(0,s.jsx)(t.mi,{children:"n"})}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"})]})})]})," elements."]}),"\n",(0,s.jsxs)(t.p,{children:["For the sake of time and memory complexity, I am also using ",(0,s.jsx)(t.code,{children:"itertools.islice"}),", which makes a slice, but does not copy the elements into the memory like normal slice does."]}),"\n",(0,s.jsxs)(t.p,{children:["There is also a ",(0,s.jsx)(t.code,{children:"check_loop_invariant"})," function that will be described later."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def compare_by_value(pair):\n index, value = pair\n return value\n\n\ndef maximum(arr, n):\n first_n_elements = itertools.islice(enumerate(arr), n)\n index, value = max(first_n_elements, key=compare_by_value)\n return index\n\n\ndef select_sort(arr, n):\n assert n == len(arr)\n\n check_loop_invariant(arr, n, n)\n for i in reversed(range(1, n)):\n j = maximum(arr, i + 1)\n arr[i], arr[j] = arr[j], arr[i]\n\n check_loop_invariant(arr, n, i)\n\n return arr\n"})}),"\n",(0,s.jsx)(t.h2,{id:"discussed-preconditions-loop-invariants-and-postconditions",children:"Discussed preconditions, loop invariants and postconditions"}),"\n",(0,s.jsxs)(t.p,{children:["You can safely replace ",(0,s.jsx)(t.code,{children:"A"})," with ",(0,s.jsx)(t.code,{children:"arr"})," or array for list."]}),"\n",(0,s.jsx)(t.h3,{id:"precondition",children:"Precondition"}),"\n",(0,s.jsxs)(t.p,{children:["As a precondition we have established that ",(0,s.jsx)(t.code,{children:"A"})," represents an array of values and ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsx)(t.mrow,{children:(0,s.jsx)(t.mi,{children:"n"})}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"})]})})]})," is length of the ",(0,s.jsx)(t.code,{children:"A"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"loop-invariant",children:"Loop invariant"}),"\n",(0,s.jsx)(t.p,{children:"As for loop invariant we have established that we require two properties:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"A[i + 1 : n]"})," is sorted"]}),"\n",(0,s.jsxs)(t.li,{children:["all elements of ",(0,s.jsx)(t.code,{children:"A[i + 1 : n]"})," are bigger or equal to the other elements"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["This invariant is later defined as ",(0,s.jsx)(t.code,{children:"check_loop_invariant"})," function. It is checked before the first iteration and after each iteration."]}),"\n",(0,s.jsx)(t.h3,{id:"postcondition",children:"Postcondition"}),"\n",(0,s.jsxs)(t.p,{children:["For the postcondition the first suggestion was that ",(0,s.jsx)(t.code,{children:"A"})," must be sorted. And later we have added that ",(0,s.jsx)(t.code,{children:"A'"})," must be a permutation of ",(0,s.jsx)(t.code,{children:"A"}),"."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["However at the end of the session question arose if it is really required to state in the postcondition that ",(0,s.jsx)(t.code,{children:"A'"})," is a permutation."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"so-is-the-permutation-really-required",children:"So is the permutation really required?"}),"\n",(0,s.jsxs)(t.p,{children:["As I have said it is better to have postconditions explicit and do not expect anything that is not stated explicitly, e.g. ",(0,s.jsx)(t.em,{children:"name suggests it"}),". In reality we could consider it as a smaller mistake (but it has consequences)."]}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand explicit postconditions can be used to our advantage ",(0,s.jsx)(t.strong,{children:"and also"})," help our proof of correctness."]}),"\n",(0,s.jsx)(t.p,{children:"Consequences:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Property-based testing"}),"\n",(0,s.jsx)(t.p,{children:"If we have explicit postconditions we can use them to define properties of the output from our algorithms. That way we can use property-based testing, which does not depend on specific inputs and expected outputs, but rather on randomly generated input and checking if the output conforms to our expectations (the postconditions are fulfilled)."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Proof of correctness"}),"\n",(0,s.jsxs)(t.p,{children:["If we can prove that algorithm is correct even for algorithm that ",(0,s.jsx)(t.strong,{children:"is not"})," correct, we have a problem. That proof has no value and is useless."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:'For the sake of showcasing the power of postconditions I will introduce "select sort" that is not correct, but will comply with both the loop invariant and our vague postcondition and thus pass the tests.'}),"\n",(0,s.jsx)(t.h2,{id:"implementation-of-the-broken-select-sort",children:"Implementation of the broken select sort"}),"\n",(0,s.jsxs)(t.p,{children:["To make sure this thing passes everything, but our explicit postcondition with permutation will ",(0,s.jsx)(t.em,{children:"blow it up"}),', I have designed this "select sort" as follows:']}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"If I get empty list, there is nothing to do."}),"\n",(0,s.jsx)(t.li,{children:"I find maximum in the array."}),"\n",(0,s.jsxs)(t.li,{children:["For each index from the end, I will assign ",(0,s.jsx)(t.code,{children:"maximum + index"}),".\nThis will ensure that even if the maximum in the original array was the first element, I will always satisfy that 2nd part of the loop invariant."]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def broken_select_sort(arr, n):\n assert n == len(arr)\n\n if not arr:\n return\n\n max_value = max(arr)\n\n check_loop_invariant(arr, n, n)\n for i in reversed(range(n)):\n arr[i] = max_value + i\n\n check_loop_invariant(arr, n, i)\n\n return arr\n"})}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsx)(t.p,{children:"There is also an easier way to break this, I leave that as an exercise ;)"})}),"\n",(0,s.jsx)(t.h2,{id:"property-based-tests-for-our-sorts",children:"Property-based tests for our sorts"}),"\n",(0,s.jsx)(t.p,{children:"Since we have talked a lot about proofs at the seminar, I would like to demonstrate it on the testing of the sorts. In the following text I will cover implementation of the loop invariant and both postconditions we have talked about and then test our sorts using them."}),"\n",(0,s.jsx)(t.h3,{id:"loop-invariant-1",children:"Loop invariant"}),"\n",(0,s.jsx)(t.p,{children:"To check loop invariant I have implemented this function:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'def check_loop_invariant(arr, n, i):\n # A[i + 1 : n] is sorted\n for x, y in zip(itertools.islice(arr, i + 1, n), itertools.islice(arr, i + 2, n)):\n assert x <= y\n\n # all elements of A[i + 1 : n] are bigger or equal to the other elements\n if i + 1 >= n:\n # in case there are no elements\n return\n\n # otherwise, since the "tail" is sorted, we can assume that it is enough to\n # check the other elements to the smallest value of the tail\n smallest = arr[i + 1]\n for element in itertools.islice(arr, i + 1):\n assert smallest >= element\n'})}),"\n",(0,s.jsx)(t.p,{children:'First part checks if the "ending" of the array is sorted.'}),"\n",(0,s.jsxs)(t.p,{children:["In second part I have used a ",(0,s.jsx)(t.em,{children:"dirty trick"})," of taking just the first element that is the smallest and compared the rest of the elements to it. Why is it enough? I leave it as an exercise ;)"]}),"\n",(0,s.jsx)(t.h3,{id:"postconditions",children:"Postcondition(s)"}),"\n",(0,s.jsx)(t.p,{children:"I have defined both the vague and explicit postconditions:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def check_vague_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n\ndef check_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n # get counts from original list\n original_counts = {}\n for value in original_arr:\n original_counts[value] = 1 + original_counts.get(value, 0)\n\n # get counts from resulting list\n counts = {}\n for value in arr:\n counts[value] = 1 + counts.get(value, 0)\n\n # if arr is permutation of original_arr then all counts must be the same\n assert counts == original_counts\n"})}),"\n",(0,s.jsx)(t.h3,{id:"putting-it-together",children:"Putting it together"}),"\n",(0,s.jsx)(t.p,{children:"Now that we have everything implement, we can move on to the implementation of the tests:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'from hypothesis import given, settings\nfrom hypothesis.strategies import integers, lists\nimport pytest\n\n@given(lists(integers()))\n@settings(max_examples=1000)\n@pytest.mark.parametrize(\n "postcondition", [check_vague_postcondition, check_postcondition]\n)\n@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\ndef test_select_sort(sorting_function, postcondition, numbers):\n result = sorting_function(numbers[:], len(numbers))\n postcondition(numbers, result)\n'})}),"\n",(0,s.jsx)(t.p,{children:"Since it might seem a bit scary, I will disect it by parts."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Parameters of test function"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def test_select_sort(sorting_function, postcondition, numbers):\n"})}),"\n",(0,s.jsx)(t.p,{children:"We are given 3 parameters:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"sorting_function"})," - as the name suggests is the sorting function we test"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"postcondition"})," - as the name suggests is the postcondition that we check"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"numbers"})," - is random list of numbers that we will be sorting"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Body of the test"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"result = sorting_function(numbers[:], len(numbers))\npostcondition(numbers, result)\n"})}),"\n",(0,s.jsxs)(t.p,{children:["We pass to the sorting function ",(0,s.jsx)(t.strong,{children:"copy"})," of the numbers we got, this ensures that once we are checking the more strict postcondition, we can gather the necessary information even after sorting the list in-situ, i.e. we can check if the ",(0,s.jsx)(t.code,{children:"result"})," is really a ",(0,s.jsx)(t.code,{children:"permutation"})," of the ",(0,s.jsx)(t.code,{children:"numbers"})," even though the sorting functions has modified the passed in list."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsxs)(t.p,{children:["Now we get to the more complicated part and it is the ",(0,s.jsx)(t.em,{children:"decorators"}),"."]})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["1st ",(0,s.jsx)(t.code,{children:"parametrize"})," from the bottom"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\n'})}),"\n",(0,s.jsxs)(t.p,{children:["This tells pytest, that we want to pass the values from the list to the parameter ",(0,s.jsx)(t.code,{children:"sorting_function"}),". In other words, this lets us use the same test function for both the correct and incorrect select sort."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["2nd ",(0,s.jsx)(t.code,{children:"parametrize"})," from the bottom is similar, but works with the postcondition.\nThe reason why they are separated is pretty simple, this way they act like cartesian product: for each sorting function we also use each postcondition."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"@settings"})," raises the count of tests that hypothesis runs (from default of 100(?))."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"@given(lists(integers()))"}),"\nThis means hypothesis is randomly creating lists of integers and passing them to the function, which has only one parameter left and that is ",(0,s.jsx)(t.code,{children:"numbers"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"lets-run-the-tests",children:"Let's run the tests!"}),"\n",(0,s.jsxs)(t.p,{children:["In case you want to experiment locally, you should install ",(0,s.jsx)(t.code,{children:"pytest"})," and ",(0,s.jsx)(t.code,{children:"hypothesis"})," from the PyPI."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'% pytest -v test_sort.py\n=================================== test session starts ====================================\nplatform linux -- Python 3.6.8, pytest-3.8.2, py-1.7.0, pluggy-0.13.1 -- /usr/bin/python3\ncachedir: .pytest_cache\nrootdir: /home/xfocko/git/xfocko/ib002/postcondition-ambiguity, inifile:\nplugins: hypothesis-5.16.1\ncollected 4 items\n\ntest_sort.py::test_select_sort[select_sort-check_vague_postcondition] PASSED [ 25%]\ntest_sort.py::test_select_sort[select_sort-check_postcondition] PASSED [ 50%]\ntest_sort.py::test_select_sort[broken_select_sort-check_vague_postcondition] PASSED [ 75%]\ntest_sort.py::test_select_sort[broken_select_sort-check_postcondition] FAILED [100%]\n\n========================================= FAILURES =========================================\n_________________ test_select_sort[broken_select_sort-check_postcondition] _________________\n\nsorting_function = <function broken_select_sort at 0x7fac179308c8>\npostcondition = <function check_postcondition at 0x7fac1786d1e0>\n\n @given(lists(integers()))\n> @settings(max_examples=1000)\n @pytest.mark.parametrize(\n "postcondition", [check_vague_postcondition, check_postcondition]\n )\n @pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\n def test_select_sort(sorting_function, postcondition, numbers):\n\ntest_sort.py:132:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\ntest_sort.py:139: in test_select_sort\n postcondition(numbers, result)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\noriginal_arr = [0, 0], arr = [0, 1]\n\n def check_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n # get counts from original list\n original_counts = {}\n for value in original_arr:\n original_counts[value] = 1 + original_counts.get(value, 0)\n\n # get counts from resulting list\n counts = {}\n for value in arr:\n counts[value] = 1 + counts.get(value, 0)\n\n # if arr is permutation of original_arr then all counts must be the same\n> assert counts == original_counts\nE assert {0: 1, 1: 1} == {0: 2}\nE Differing items:\nE {0: 1} != {0: 2}\nE Left contains more items:\nE {1: 1}\nE Full diff:\nE - {0: 1, 1: 1}\nE + {0: 2}\n\ntest_sort.py:128: AssertionError\n----------------------------------- Captured stdout call -----------------------------------\nFalsifying example: test_select_sort(\n sorting_function=<function test_sort.broken_select_sort>,\n postcondition=<function test_sort.check_postcondition>,\n numbers=[0, 0],\n)\n============================ 1 failed, 3 passed in 6.84 seconds ============================\n'})}),"\n",(0,s.jsxs)(t.p,{children:["We can clearly see that our broken select sort has passed the ",(0,s.jsx)(t.em,{children:"vague postcondition"}),", but the explicit one was not satisfied."]}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsxs)(t.p,{children:["For proving the correctness of the algorithm it is better to be explicit than prove that algorithm is correct even though it is not. Being explicit also allows you to test smaller ",(0,s.jsx)(t.em,{children:"chunks"})," of code better."]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(67294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/534d4833.1a69a7bd.js b/assets/js/534d4833.1a69a7bd.js deleted file mode 100644 index 2db9dfe..0000000 --- a/assets/js/534d4833.1a69a7bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9771],{3019:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=n(5893),i=n(1151);const o={id:"postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",tags:["python","testing","postconditions","sorting"],last_update:{date:new Date("2021-03-18T00:00:00.000Z")}},r=void 0,a={id:"algorithms-correctness/postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",source:"@site/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",sourceDirName:"02-algorithms-correctness",slug:"/algorithms-correctness/postcondition-ambiguity",permalink:"/algorithms/algorithms-correctness/postcondition-ambiguity",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",tags:[{label:"python",permalink:"/algorithms/tags/python"},{label:"testing",permalink:"/algorithms/tags/testing"},{label:"postconditions",permalink:"/algorithms/tags/postconditions"},{label:"sorting",permalink:"/algorithms/tags/sorting"}],version:"current",lastUpdatedAt:1616025600,formattedLastUpdatedAt:"Mar 18, 2021",frontMatter:{id:"postcondition-ambiguity",title:"Vague postconditions and proving correctness of algorithms",description:"Debugging and testing with precise postconditions.\n",tags:["python","testing","postconditions","sorting"],last_update:{date:"2021-03-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"},next:{title:"Asymptotic Notation and Time Complexity",permalink:"/algorithms/category/asymptotic-notation-and-time-complexity"}},l={},c=[{value:"Introduction",id:"introduction",level:2},{value:"Implementation of select sort from the exercises",id:"implementation-of-select-sort-from-the-exercises",level:2},{value:"Discussed preconditions, loop invariants and postconditions",id:"discussed-preconditions-loop-invariants-and-postconditions",level:2},{value:"Precondition",id:"precondition",level:3},{value:"Loop invariant",id:"loop-invariant",level:3},{value:"Postcondition",id:"postcondition",level:3},{value:"So is the permutation really required?",id:"so-is-the-permutation-really-required",level:2},{value:"Implementation of the broken select sort",id:"implementation-of-the-broken-select-sort",level:2},{value:"Property-based tests for our sorts",id:"property-based-tests-for-our-sorts",level:2},{value:"Loop invariant",id:"loop-invariant-1",level:3},{value:"Postcondition(s)",id:"postconditions",level:3},{value:"Putting it together",id:"putting-it-together",level:3},{value:"Let's run the tests!",id:"lets-run-the-tests",level:3},{value:"Summary",id:"summary",level:2}];function h(e){const t={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mrow:"mrow",ol:"ol",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"pathname:///files/algorithms/algorithms-correctness/postcondition-ambiguity/test_sort.py",children:"Source code"})," used later on."]}),"\n",(0,s.jsx)(t.h2,{id:"implementation-of-select-sort-from-the-exercises",children:"Implementation of select sort from the exercises"}),"\n",(0,s.jsxs)(t.p,{children:["To implement select sort from the exercises and make it as easy to read as possible, I have implemented maximum function that returns index of the biggest element from the first ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsx)(t.mrow,{children:(0,s.jsx)(t.mi,{children:"n"})}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"})]})})]})," elements."]}),"\n",(0,s.jsxs)(t.p,{children:["For the sake of time and memory complexity, I am also using ",(0,s.jsx)(t.code,{children:"itertools.islice"}),", which makes a slice, but does not copy the elements into the memory like normal slice does."]}),"\n",(0,s.jsxs)(t.p,{children:["There is also a ",(0,s.jsx)(t.code,{children:"check_loop_invariant"})," function that will be described later."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def compare_by_value(pair):\n index, value = pair\n return value\n\n\ndef maximum(arr, n):\n first_n_elements = itertools.islice(enumerate(arr), n)\n index, value = max(first_n_elements, key=compare_by_value)\n return index\n\n\ndef select_sort(arr, n):\n assert n == len(arr)\n\n check_loop_invariant(arr, n, n)\n for i in reversed(range(1, n)):\n j = maximum(arr, i + 1)\n arr[i], arr[j] = arr[j], arr[i]\n\n check_loop_invariant(arr, n, i)\n\n return arr\n"})}),"\n",(0,s.jsx)(t.h2,{id:"discussed-preconditions-loop-invariants-and-postconditions",children:"Discussed preconditions, loop invariants and postconditions"}),"\n",(0,s.jsxs)(t.p,{children:["You can safely replace ",(0,s.jsx)(t.code,{children:"A"})," with ",(0,s.jsx)(t.code,{children:"arr"})," or array for list."]}),"\n",(0,s.jsx)(t.h3,{id:"precondition",children:"Precondition"}),"\n",(0,s.jsxs)(t.p,{children:["As a precondition we have established that ",(0,s.jsx)(t.code,{children:"A"})," represents an array of values and ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsx)(t.mrow,{children:(0,s.jsx)(t.mi,{children:"n"})}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"0.4306em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"})]})})]})," is length of the ",(0,s.jsx)(t.code,{children:"A"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"loop-invariant",children:"Loop invariant"}),"\n",(0,s.jsx)(t.p,{children:"As for loop invariant we have established that we require two properties:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"A[i + 1 : n]"})," is sorted"]}),"\n",(0,s.jsxs)(t.li,{children:["all elements of ",(0,s.jsx)(t.code,{children:"A[i + 1 : n]"})," are bigger or equal to the other elements"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["This invariant is later defined as ",(0,s.jsx)(t.code,{children:"check_loop_invariant"})," function. It is checked before the first iteration and after each iteration."]}),"\n",(0,s.jsx)(t.h3,{id:"postcondition",children:"Postcondition"}),"\n",(0,s.jsxs)(t.p,{children:["For the postcondition the first suggestion was that ",(0,s.jsx)(t.code,{children:"A"})," must be sorted. And later we have added that ",(0,s.jsx)(t.code,{children:"A'"})," must be a permutation of ",(0,s.jsx)(t.code,{children:"A"}),"."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["However at the end of the session question arose if it is really required to state in the postcondition that ",(0,s.jsx)(t.code,{children:"A'"})," is a permutation."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"so-is-the-permutation-really-required",children:"So is the permutation really required?"}),"\n",(0,s.jsxs)(t.p,{children:["As I have said it is better to have postconditions explicit and do not expect anything that is not stated explicitly, e.g. ",(0,s.jsx)(t.em,{children:"name suggests it"}),". In reality we could consider it as a smaller mistake (but it has consequences)."]}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand explicit postconditions can be used to our advantage ",(0,s.jsx)(t.strong,{children:"and also"})," help our proof of correctness."]}),"\n",(0,s.jsx)(t.p,{children:"Consequences:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Property-based testing"}),"\n",(0,s.jsx)(t.p,{children:"If we have explicit postconditions we can use them to define properties of the output from our algorithms. That way we can use property-based testing, which does not depend on specific inputs and expected outputs, but rather on randomly generated input and checking if the output conforms to our expectations (the postconditions are fulfilled)."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Proof of correctness"}),"\n",(0,s.jsxs)(t.p,{children:["If we can prove that algorithm is correct even for algorithm that ",(0,s.jsx)(t.strong,{children:"is not"})," correct, we have a problem. That proof has no value and is useless."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:'For the sake of showcasing the power of postconditions I will introduce "select sort" that is not correct, but will comply with both the loop invariant and our vague postcondition and thus pass the tests.'}),"\n",(0,s.jsx)(t.h2,{id:"implementation-of-the-broken-select-sort",children:"Implementation of the broken select sort"}),"\n",(0,s.jsxs)(t.p,{children:["To make sure this thing passes everything, but our explicit postcondition with permutation will ",(0,s.jsx)(t.em,{children:"blow it up"}),', I have designed this "select sort" as follows:']}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"If I get empty list, there is nothing to do."}),"\n",(0,s.jsx)(t.li,{children:"I find maximum in the array."}),"\n",(0,s.jsxs)(t.li,{children:["For each index from the end, I will assign ",(0,s.jsx)(t.code,{children:"maximum + index"}),".\nThis will ensure that even if the maximum in the original array was the first element, I will always satisfy that 2nd part of the loop invariant."]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def broken_select_sort(arr, n):\n assert n == len(arr)\n\n if not arr:\n return\n\n max_value = max(arr)\n\n check_loop_invariant(arr, n, n)\n for i in reversed(range(n)):\n arr[i] = max_value + i\n\n check_loop_invariant(arr, n, i)\n\n return arr\n"})}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsx)(t.p,{children:"There is also an easier way to break this, I leave that as an exercise ;)"})}),"\n",(0,s.jsx)(t.h2,{id:"property-based-tests-for-our-sorts",children:"Property-based tests for our sorts"}),"\n",(0,s.jsx)(t.p,{children:"Since we have talked a lot about proofs at the seminar, I would like to demonstrate it on the testing of the sorts. In the following text I will cover implementation of the loop invariant and both postconditions we have talked about and then test our sorts using them."}),"\n",(0,s.jsx)(t.h3,{id:"loop-invariant-1",children:"Loop invariant"}),"\n",(0,s.jsx)(t.p,{children:"To check loop invariant I have implemented this function:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'def check_loop_invariant(arr, n, i):\n # A[i + 1 : n] is sorted\n for x, y in zip(itertools.islice(arr, i + 1, n), itertools.islice(arr, i + 2, n)):\n assert x <= y\n\n # all elements of A[i + 1 : n] are bigger or equal to the other elements\n if i + 1 >= n:\n # in case there are no elements\n return\n\n # otherwise, since the "tail" is sorted, we can assume that it is enough to\n # check the other elements to the smallest value of the tail\n smallest = arr[i + 1]\n for element in itertools.islice(arr, i + 1):\n assert smallest >= element\n'})}),"\n",(0,s.jsx)(t.p,{children:'First part checks if the "ending" of the array is sorted.'}),"\n",(0,s.jsxs)(t.p,{children:["In second part I have used a ",(0,s.jsx)(t.em,{children:"dirty trick"})," of taking just the first element that is the smallest and compared the rest of the elements to it. Why is it enough? I leave it as an exercise ;)"]}),"\n",(0,s.jsx)(t.h3,{id:"postconditions",children:"Postcondition(s)"}),"\n",(0,s.jsx)(t.p,{children:"I have defined both the vague and explicit postconditions:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def check_vague_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n\ndef check_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n # get counts from original list\n original_counts = {}\n for value in original_arr:\n original_counts[value] = 1 + original_counts.get(value, 0)\n\n # get counts from resulting list\n counts = {}\n for value in arr:\n counts[value] = 1 + counts.get(value, 0)\n\n # if arr is permutation of original_arr then all counts must be the same\n assert counts == original_counts\n"})}),"\n",(0,s.jsx)(t.h3,{id:"putting-it-together",children:"Putting it together"}),"\n",(0,s.jsx)(t.p,{children:"Now that we have everything implement, we can move on to the implementation of the tests:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'from hypothesis import given, settings\nfrom hypothesis.strategies import integers, lists\nimport pytest\n\n@given(lists(integers()))\n@settings(max_examples=1000)\n@pytest.mark.parametrize(\n "postcondition", [check_vague_postcondition, check_postcondition]\n)\n@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\ndef test_select_sort(sorting_function, postcondition, numbers):\n result = sorting_function(numbers[:], len(numbers))\n postcondition(numbers, result)\n'})}),"\n",(0,s.jsx)(t.p,{children:"Since it might seem a bit scary, I will disect it by parts."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Parameters of test function"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"def test_select_sort(sorting_function, postcondition, numbers):\n"})}),"\n",(0,s.jsx)(t.p,{children:"We are given 3 parameters:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"sorting_function"})," - as the name suggests is the sorting function we test"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"postcondition"})," - as the name suggests is the postcondition that we check"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"numbers"})," - is random list of numbers that we will be sorting"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Body of the test"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:"result = sorting_function(numbers[:], len(numbers))\npostcondition(numbers, result)\n"})}),"\n",(0,s.jsxs)(t.p,{children:["We pass to the sorting function ",(0,s.jsx)(t.strong,{children:"copy"})," of the numbers we got, this ensures that once we are checking the more strict postcondition, we can gather the necessary information even after sorting the list in-situ, i.e. we can check if the ",(0,s.jsx)(t.code,{children:"result"})," is really a ",(0,s.jsx)(t.code,{children:"permutation"})," of the ",(0,s.jsx)(t.code,{children:"numbers"})," even though the sorting functions has modified the passed in list."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsxs)(t.p,{children:["Now we get to the more complicated part and it is the ",(0,s.jsx)(t.em,{children:"decorators"}),"."]})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["1st ",(0,s.jsx)(t.code,{children:"parametrize"})," from the bottom"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",metastring:"showLineNumbers",children:'@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\n'})}),"\n",(0,s.jsxs)(t.p,{children:["This tells pytest, that we want to pass the values from the list to the parameter ",(0,s.jsx)(t.code,{children:"sorting_function"}),". In other words, this lets us use the same test function for both the correct and incorrect select sort."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["2nd ",(0,s.jsx)(t.code,{children:"parametrize"})," from the bottom is similar, but works with the postcondition.\nThe reason why they are separated is pretty simple, this way they act like cartesian product: for each sorting function we also use each postcondition."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"@settings"})," raises the count of tests that hypothesis runs (from default of 100(?))."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"@given(lists(integers()))"}),"\nThis means hypothesis is randomly creating lists of integers and passing them to the function, which has only one parameter left and that is ",(0,s.jsx)(t.code,{children:"numbers"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"lets-run-the-tests",children:"Let's run the tests!"}),"\n",(0,s.jsxs)(t.p,{children:["In case you want to experiment locally, you should install ",(0,s.jsx)(t.code,{children:"pytest"})," and ",(0,s.jsx)(t.code,{children:"hypothesis"})," from the PyPI."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'% pytest -v test_sort.py\n=================================== test session starts ====================================\nplatform linux -- Python 3.6.8, pytest-3.8.2, py-1.7.0, pluggy-0.13.1 -- /usr/bin/python3\ncachedir: .pytest_cache\nrootdir: /home/xfocko/git/xfocko/ib002/postcondition-ambiguity, inifile:\nplugins: hypothesis-5.16.1\ncollected 4 items\n\ntest_sort.py::test_select_sort[select_sort-check_vague_postcondition] PASSED [ 25%]\ntest_sort.py::test_select_sort[select_sort-check_postcondition] PASSED [ 50%]\ntest_sort.py::test_select_sort[broken_select_sort-check_vague_postcondition] PASSED [ 75%]\ntest_sort.py::test_select_sort[broken_select_sort-check_postcondition] FAILED [100%]\n\n========================================= FAILURES =========================================\n_________________ test_select_sort[broken_select_sort-check_postcondition] _________________\n\nsorting_function = <function broken_select_sort at 0x7fac179308c8>\npostcondition = <function check_postcondition at 0x7fac1786d1e0>\n\n @given(lists(integers()))\n> @settings(max_examples=1000)\n @pytest.mark.parametrize(\n "postcondition", [check_vague_postcondition, check_postcondition]\n )\n @pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort])\n def test_select_sort(sorting_function, postcondition, numbers):\n\ntest_sort.py:132:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\ntest_sort.py:139: in test_select_sort\n postcondition(numbers, result)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\noriginal_arr = [0, 0], arr = [0, 1]\n\n def check_postcondition(original_arr, arr):\n if not arr:\n return\n\n # check ordering\n for x, y in zip(arr, itertools.islice(arr, 1, len(arr))):\n assert x <= y\n\n # get counts from original list\n original_counts = {}\n for value in original_arr:\n original_counts[value] = 1 + original_counts.get(value, 0)\n\n # get counts from resulting list\n counts = {}\n for value in arr:\n counts[value] = 1 + counts.get(value, 0)\n\n # if arr is permutation of original_arr then all counts must be the same\n> assert counts == original_counts\nE assert {0: 1, 1: 1} == {0: 2}\nE Differing items:\nE {0: 1} != {0: 2}\nE Left contains more items:\nE {1: 1}\nE Full diff:\nE - {0: 1, 1: 1}\nE + {0: 2}\n\ntest_sort.py:128: AssertionError\n----------------------------------- Captured stdout call -----------------------------------\nFalsifying example: test_select_sort(\n sorting_function=<function test_sort.broken_select_sort>,\n postcondition=<function test_sort.check_postcondition>,\n numbers=[0, 0],\n)\n============================ 1 failed, 3 passed in 6.84 seconds ============================\n'})}),"\n",(0,s.jsxs)(t.p,{children:["We can clearly see that our broken select sort has passed the ",(0,s.jsx)(t.em,{children:"vague postcondition"}),", but the explicit one was not satisfied."]}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsxs)(t.p,{children:["For proving the correctness of the algorithm it is better to be explicit than prove that algorithm is correct even though it is not. Being explicit also allows you to test smaller ",(0,s.jsx)(t.em,{children:"chunks"})," of code better."]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5790.1440c25f.js b/assets/js/5790.1440c25f.js deleted file mode 100644 index 7ad7da8..0000000 --- a/assets/js/5790.1440c25f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5790],{5790:(t,e,a)=>{a.d(e,{diagram:()=>nt});var r=a(5322),i=a(4218),s=a(3317),n=a(7967),o=(a(7484),a(7856),function(){var t=function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},e=[1,2],a=[1,3],r=[1,4],i=[2,4],s=[1,9],n=[1,11],o=[1,13],c=[1,14],l=[1,16],h=[1,17],d=[1,18],p=[1,24],g=[1,25],u=[1,26],x=[1,27],y=[1,28],m=[1,29],f=[1,30],b=[1,31],T=[1,32],E=[1,33],w=[1,34],P=[1,35],_=[1,36],L=[1,37],k=[1,38],v=[1,39],I=[1,41],M=[1,42],N=[1,43],A=[1,44],S=[1,45],O=[1,46],D=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],R=[4,5,16,50,52,53],C=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Y=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],B=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],V=[68,69,70],F=[1,120],W={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(t,e,a,r,i,s,n){var o=s.length-1;switch(i){case 3:return r.apply(s[o]),s[o];case 4:case 9:case 8:case 13:this.$=[];break;case 5:case 10:s[o-1].push(s[o]),this.$=s[o-1];break;case 6:case 7:case 11:case 12:case 62:this.$=s[o];break;case 15:s[o].type="createParticipant",this.$=s[o];break;case 16:s[o-1].unshift({type:"boxStart",boxData:r.parseBoxData(s[o-2])}),s[o-1].push({type:"boxEnd",boxText:s[o-2]}),this.$=s[o-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-2]),sequenceIndexStep:Number(s[o-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]};break;case 23:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-1]};break;case 29:r.setDiagramTitle(s[o].substring(6)),this.$=s[o].substring(6);break;case 30:r.setDiagramTitle(s[o].substring(7)),this.$=s[o].substring(7);break;case 31:this.$=s[o].trim(),r.setAccTitle(this.$);break;case 32:case 33:this.$=s[o].trim(),r.setAccDescription(this.$);break;case 34:s[o-1].unshift({type:"loopStart",loopText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.LOOP_START}),s[o-1].push({type:"loopEnd",loopText:s[o-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[o-1];break;case 35:s[o-1].unshift({type:"rectStart",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_START}),s[o-1].push({type:"rectEnd",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[o-1];break;case 36:s[o-1].unshift({type:"optStart",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_START}),s[o-1].push({type:"optEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[o-1];break;case 37:s[o-1].unshift({type:"altStart",altText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.ALT_START}),s[o-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[o-1];break;case 38:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 39:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_OVER_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 40:s[o-1].unshift({type:"criticalStart",criticalText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.CRITICAL_START}),s[o-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=s[o-1];break;case 41:s[o-1].unshift({type:"breakStart",breakText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_START}),s[o-1].push({type:"breakEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_END}),this.$=s[o-1];break;case 43:this.$=s[o-3].concat([{type:"option",optionText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.CRITICAL_OPTION},s[o]]);break;case 45:this.$=s[o-3].concat([{type:"and",parText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.PAR_AND},s[o]]);break;case 47:this.$=s[o-3].concat([{type:"else",altText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.ALT_ELSE},s[o]]);break;case 48:s[o-3].draw="participant",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 49:s[o-1].draw="participant",s[o-1].type="addParticipant",this.$=s[o-1];break;case 50:s[o-3].draw="actor",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 51:s[o-1].draw="actor",s[o-1].type="addParticipant",this.$=s[o-1];break;case 52:s[o-1].type="destroyParticipant",this.$=s[o-1];break;case 53:this.$=[s[o-1],{type:"addNote",placement:s[o-2],actor:s[o-1].actor,text:s[o]}];break;case 54:s[o-2]=[].concat(s[o-1],s[o-1]).slice(0,2),s[o-2][0]=s[o-2][0].actor,s[o-2][1]=s[o-2][1].actor,this.$=[s[o-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[o-2].slice(0,2),text:s[o]}];break;case 55:this.$=[s[o-1],{type:"addLinks",actor:s[o-1].actor,text:s[o]}];break;case 56:this.$=[s[o-1],{type:"addALink",actor:s[o-1].actor,text:s[o]}];break;case 57:this.$=[s[o-1],{type:"addProperties",actor:s[o-1].actor,text:s[o]}];break;case 58:this.$=[s[o-1],{type:"addDetails",actor:s[o-1].actor,text:s[o]}];break;case 61:this.$=[s[o-2],s[o]];break;case 63:this.$=r.PLACEMENT.LEFTOF;break;case 64:this.$=r.PLACEMENT.RIGHTOF;break;case 65:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o],activate:!0},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]}];break;case 66:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-4]}];break;case 67:this.$=[s[o-3],s[o-1],{type:"addMessage",from:s[o-3].actor,to:s[o-1].actor,signalType:s[o-2],msg:s[o]}];break;case 68:this.$={type:"addParticipant",actor:s[o]};break;case 69:this.$=r.LINETYPE.SOLID_OPEN;break;case 70:this.$=r.LINETYPE.DOTTED_OPEN;break;case 71:this.$=r.LINETYPE.SOLID;break;case 72:this.$=r.LINETYPE.DOTTED;break;case 73:this.$=r.LINETYPE.SOLID_CROSS;break;case 74:this.$=r.LINETYPE.DOTTED_CROSS;break;case 75:this.$=r.LINETYPE.SOLID_POINT;break;case 76:this.$=r.LINETYPE.DOTTED_POINT;break;case 77:this.$=r.parseMessage(s[o].trim().substring(1))}},table:[{3:1,4:e,5:a,6:r},{1:[3]},{3:5,4:e,5:a,6:r},{3:6,4:e,5:a,6:r},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:s,5:n,8:8,9:10,12:12,13:o,14:c,17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},t(D,[2,5]),{9:47,12:12,13:o,14:c,17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},t(D,[2,7]),t(D,[2,8]),t(D,[2,14]),{12:48,50:L,52:k,53:v},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:O},{22:55,70:O},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(D,[2,29]),t(D,[2,30]),{32:[1,61]},{34:[1,62]},t(D,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:O},{22:72,70:O},{22:73,70:O},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:O},{22:88,70:O},{22:89,70:O},{22:90,70:O},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(D,[2,6]),t(D,[2,15]),t(R,[2,9],{10:91}),t(D,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(D,[2,21]),{5:[1,95]},{5:[1,96]},t(D,[2,24]),t(D,[2,25]),t(D,[2,26]),t(D,[2,27]),t(D,[2,28]),t(D,[2,31]),t(D,[2,32]),t(C,i,{7:97}),t(C,i,{7:98}),t(C,i,{7:99}),t(Y,i,{40:100,7:101}),t($,i,{42:102,7:103}),t($,i,{7:103,42:104}),t(B,i,{45:105,7:106}),t(C,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:O},t(V,[2,69]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),{22:116,70:O},{22:118,58:117,70:O},{70:[2,63]},{70:[2,64]},{56:119,79:F},{56:121,79:F},{56:122,79:F},{56:123,79:F},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:L,52:k,53:v},{5:[1,129]},t(D,[2,19]),t(D,[2,20]),t(D,[2,22]),t(D,[2,23]),{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,130],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,131],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,132],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,133]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,46],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,49:[1,134],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,135]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,44],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,48:[1,136],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,137]},{16:[1,138]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,42],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,47:[1,139],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,140],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{15:[1,141]},t(D,[2,49]),{15:[1,142]},t(D,[2,51]),t(D,[2,52]),{22:143,70:O},{22:144,70:O},{56:145,79:F},{56:146,79:F},{56:147,79:F},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(D,[2,16]),t(R,[2,10]),{12:149,50:L,52:k,53:v},t(R,[2,12]),t(R,[2,13]),t(D,[2,18]),t(D,[2,34]),t(D,[2,35]),t(D,[2,36]),t(D,[2,37]),{15:[1,150]},t(D,[2,38]),{15:[1,151]},t(D,[2,39]),t(D,[2,40]),{15:[1,152]},t(D,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:F},{56:156,79:F},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:O},t(R,[2,11]),t(Y,i,{7:101,40:158}),t($,i,{7:103,42:159}),t(B,i,{7:106,45:160}),t(D,[2,48]),t(D,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(t,e){if(!e.recoverable){var a=new Error(t);throw a.hash=e,a}this.trace(t)},parse:function(t){var e=this,a=[0],r=[],i=[null],s=[],n=this.table,o="",c=0,l=0,h=s.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var u=d.yylloc;s.push(u);var x=d.options&&d.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,m,f,b,T,E,w,P,_,L={};;){if(m=a[a.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==y&&(_=void 0,"number"!=typeof(_=r.pop()||d.lex()||1)&&(_ instanceof Array&&(_=(r=_).pop()),_=e.symbols_[_]||_),y=_),f=n[m]&&n[m][y]),void 0===f||!f.length||!f[0]){var k="";for(T in P=[],n[m])this.terminals_[T]&&T>2&&P.push("'"+this.terminals_[T]+"'");k=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(k,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:u,expected:P})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+y);switch(f[0]){case 1:a.push(y),i.push(d.yytext),s.push(d.yylloc),a.push(f[1]),y=null,l=d.yyleng,o=d.yytext,c=d.yylineno,u=d.yylloc;break;case 2:if(E=this.productions_[f[1]][1],L.$=i[i.length-E],L._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},x&&(L._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(b=this.performAction.apply(L,[o,l,c,p.yy,f[1],i,s].concat(h))))return b;E&&(a=a.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),a.push(this.productions_[f[1]][0]),i.push(L.$),s.push(L._$),w=n[a[a.length-2]][a[a.length-1]],a.push(w);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,a=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 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),a.length-1&&(this.yylineno-=a.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:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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 a,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=t[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+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],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,a,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;s<i.length;s++)if((a=this._input.match(this.rules[i[s]]))&&(!e||a[0].length>e[0].length)){if(e=a,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&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,a,r){switch(a){case 0:case 51:case 64:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 52:return e.yytext=e.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 65:return"INVALID"}},rules:[/^(?:[\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,/^(?:create\b)/i,/^(?:destroy\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,/^(?:par_over\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:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};function z(){this.yy={}}return W.lexer=q,z.prototype=W,W.Parser=z,new z}());o.parser=o;const c=o;let l,h,d,p,g,u={},x={},y={},m=[],f=[],b=!1;const T=function(t,e,a,r){let i=d;const s=u[t];if(s){if(d&&s.box&&d!==s.box)throw new Error("A same participant should only be defined in one Box: "+s.name+" can't be in '"+s.box.name+"' and in '"+d.name+"' at the same time.");if(i=s.box?s.box:d,s.box=i,s&&e===s.name&&null==a)return}null!=a&&null!=a.text||(a={text:e,wrap:null,type:r}),null!=r&&null!=a.text||(a={text:e,wrap:null,type:r}),u[t]={box:i,name:e,description:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,prevActor:l,links:{},properties:{},actorCnt:null,rectData:null,type:r||"participant"},l&&u[l]&&(u[l].nextActor=t),d&&d.actorKeys.push(t),l=t},E=function(t,e,a={text:void 0,wrap:void 0},r,i=!1){if(r===_.ACTIVE_END){if((t=>{let e,a=0;for(e=0;e<f.length;e++)f[e].type===_.ACTIVE_START&&f[e].from.actor===t&&a++,f[e].type===_.ACTIVE_END&&f[e].from.actor===t&&a--;return a})(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 f.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,type:r,activate:i}),!0},w=function(t){return u[t]},P=()=>void 0!==h?h:(0,r.c)().sequence.wrap,_={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,PAR_OVER_START:32},L=function(t,e,a){a.text,void 0===a.wrap&&P()||a.wrap;const r=[].concat(t,t);f.push({from:r[0],to:r[1],message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,type:_.NOTE,placement:e})},k=function(t,e){const a=w(t);try{let t=(0,r.d)(e.text,(0,r.c)());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"=");v(a,JSON.parse(t))}catch(i){r.l.error("error while parsing actor link text",i)}};function v(t,e){if(null==t.links)t.links=e;else for(let a in e)t.links[a]=e[a]}const I=function(t,e){const a=w(t);try{let t=(0,r.d)(e.text,(0,r.c)());M(a,JSON.parse(t))}catch(i){r.l.error("error while parsing actor properties text",i)}};function M(t,e){if(null==t.properties)t.properties=e;else for(let a in e)t.properties[a]=e[a]}const N=function(t,e){const a=w(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&M(a,e.properties),e.links&&v(a,e.links)}catch(s){r.l.error("error while parsing actor details text",s)}},A=function(t){if(Array.isArray(t))t.forEach((function(t){A(t)}));else switch(t.type){case"sequenceIndex":f.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":T(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(u[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");p=t.actor,T(t.actor,t.actor,t.description,t.draw),x[t.actor]=f.length;break;case"destroyParticipant":g=t.actor,y[t.actor]=f.length;break;case"activeStart":case"activeEnd":E(t.actor,void 0,void 0,t.signalType);break;case"addNote":L(t.actor,t.placement,t.text);break;case"addLinks":k(t.actor,t.text);break;case"addALink":!function(t,e){const a=w(t);try{const t={};let o=(0,r.d)(e.text,(0,r.c)());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var s=o.slice(0,i-1).trim(),n=o.slice(i+1).trim();t[s]=n,v(a,t)}catch(o){r.l.error("error while parsing actor link text",o)}}(t.actor,t.text);break;case"addProperties":I(t.actor,t.text);break;case"addDetails":N(t.actor,t.text);break;case"addMessage":if(p){if(t.to!==p)throw new Error("The created participant "+p+" does not have an associated creating message after its declaration. Please check the sequence diagram.");p=void 0}else if(g){if(t.to!==g&&t.from!==g)throw new Error("The destroyed participant "+g+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");g=void 0}E(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":e=t.boxData,m.push({name:e.text,wrap:void 0===e.wrap&&P()||!!e.wrap,fill:e.color,actorKeys:[]}),d=m.slice(-1)[0];break;case"boxEnd":d=void 0;break;case"loopStart":E(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":E(void 0,void 0,void 0,t.signalType);break;case"rectStart":E(void 0,void 0,t.color,t.signalType);break;case"optStart":E(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":E(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":(0,r.s)(t.text);break;case"parStart":case"and":E(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":E(void 0,void 0,t.criticalText,t.signalType);break;case"option":E(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":E(void 0,void 0,t.breakText,t.signalType)}var e},S={addActor:T,addMessage:function(t,e,a,r){f.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,answer:r})},addSignal:E,addLinks:k,addDetails:N,addProperties:I,autoWrap:P,setWrap:function(t){h=t},enableSequenceNumbers:function(){b=!0},disableSequenceNumbers:function(){b=!1},showSequenceNumbers:()=>b,getMessages:function(){return f},getActors:function(){return u},getCreatedActors:function(){return x},getDestroyedActors:function(){return y},getActor:w,getActorKeys:function(){return Object.keys(u)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:r.g,getBoxes:function(){return m},getDiagramTitle:r.r,setDiagramTitle:r.q,getConfig:()=>(0,r.c)().sequence,clear:function(){u={},x={},y={},m=[],f=[],b=!1,(0,r.t)()},parseMessage:function(t){const e=t.trim(),a={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return r.l.debug("parseMessage:",a),a},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let a=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",a)||(a="transparent",i=t.trim());else{const e=(new Option).style;e.color=a,e.color!==a&&(a="transparent",i=t.trim())}return{color:a,text:void 0!==i?(0,r.d)(i.replace(/^:?(?:no)?wrap:/,""),(0,r.c)()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:_,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:L,setAccTitle:r.s,apply:A,setAccDescription:r.b,getAccDescription:r.a,hasAtLeastOneBox:function(){return m.length>0},hasAtLeastOneBoxWithTitle:function(){return m.some((t=>t.name))}},O=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`,D=function(t,e){return(0,s.d)(t,e)},R=(t,e)=>{(0,r.F)((()=>{const a=document.querySelectorAll(t);0!==a.length&&(a[0].addEventListener("mouseover",(function(){C("actor"+e+"_popup")})),a[0].addEventListener("mouseout",(function(){Y("actor"+e+"_popup")})))}))},C=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},Y=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},$=function(t,e){let a=0,i=0;const s=e.text.split(r.e.lineBreakRegex),[n,o]=(0,r.C)(e.fontSize);let c=[],l=0,h=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":h=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":h=()=>Math.round(e.y+(a+i+e.textMargin)/2);break;case"bottom":case"end":h=()=>Math.round(e.y+(a+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[d,p]of s.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==n&&(l=d*n);const s=t.append("text");s.attr("x",e.x),s.attr("y",h()),void 0!==e.anchor&&s.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&s.style("font-family",e.fontFamily),void 0!==o&&s.style("font-size",o),void 0!==e.fontWeight&&s.style("font-weight",e.fontWeight),void 0!==e.fill&&s.attr("fill",e.fill),void 0!==e.class&&s.attr("class",e.class),void 0!==e.dy?s.attr("dy",e.dy):0!==l&&s.attr("dy",l);const g=p||r.Z;if(e.tspan){const t=s.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(g)}else s.text(g);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(s._groups||s)[0][0].getBBox().height,a=i),c.push(s)}return c},B=function(t,e){const a=t.append("polygon");var r,i,s,n,o;return a.attr("points",(r=e.x,i=e.y,s=e.width,n=e.height,r+","+i+" "+(r+s)+","+i+" "+(r+s)+","+(i+n-(o=7))+" "+(r+s-1.2*o)+","+(i+n)+" "+r+","+(i+n))),a.attr("class","labelBox"),e.y=e.y+e.height/2,$(t,e),a};let V=-1;const F=(t,e,a,r)=>{t.select&&a.forEach((a=>{const i=e[a],s=t.select("#actor"+i.actorCnt);!r.mirrorActors&&i.stopy?s.attr("y2",i.stopy+i.height/2):r.mirrorActors&&s.attr("y2",i.stopy)}))},W=function(t,e){(0,s.a)(t,e)},q=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}},z=function(){function t(t,e,a,r,s,n,o){i(e.append("text").attr("x",a+s/2).attr("y",r+n/2+5).style("text-anchor","middle").text(t),o)}function e(t,e,a,s,n,o,c,l){const{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,[g,u]=(0,r.C)(h),x=t.split(r.e.lineBreakRegex);for(let r=0;r<x.length;r++){const t=r*g-g*(x.length-1)/2,l=e.append("text").attr("x",a+n/2).attr("y",s).style("text-anchor","middle").style("font-size",u).style("font-weight",p).style("font-family",d);l.append("tspan").attr("x",a+n/2).attr("dy",t).text(x[r]),l.attr("y",s+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,c)}}function a(t,a,r,s,n,o,c,l){const h=a.append("switch"),d=h.append("foreignObject").attr("x",r).attr("y",s).attr("width",n).attr("height",o).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,h,r,s,n,o,c,l),i(d,c)}function i(t,e){for(const a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),H=function(){function t(t,e,a,r,s,n,o){i(e.append("text").attr("x",a).attr("y",r).style("text-anchor","start").text(t),o)}function e(t,e,a,s,n,o,c,l){const{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,g=t.split(r.e.lineBreakRegex);for(let r=0;r<g.length;r++){const t=r*h-h*(g.length-1)/2,n=e.append("text").attr("x",a).attr("y",s).style("text-anchor","start").style("font-size",h).style("font-weight",p).style("font-family",d);n.append("tspan").attr("x",a).attr("dy",t).text(g[r]),n.attr("y",s+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(n,c)}}function a(t,a,r,s,n,o,c,l){const h=a.append("switch"),d=h.append("foreignObject").attr("x",r).attr("y",s).attr("width",n).attr("height",o).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,h,r,s,0,o,c,l),i(d,c)}function i(t,e){for(const a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),U={drawRect:D,drawText:$,drawLabel:B,drawActor:function(t,e,a,r){switch(e.type){case"actor":return function(t,e,a,r){const i=r?e.stopy:e.starty,n=e.x+e.width/2,o=i+80;t.lower(),r||(V++,t.append("line").attr("id","actor"+V).attr("x1",n).attr("y1",o).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=V);const c=t.append("g");c.attr("class","actor-man");const l=(0,s.g)();l.x=e.x,l.y=i,l.fill="#eaeaea",l.width=e.width,l.height=e.height,l.class="actor",l.rx=3,l.ry=3,c.append("line").attr("id","actor-man-torso"+V).attr("x1",n).attr("y1",i+25).attr("x2",n).attr("y2",i+45),c.append("line").attr("id","actor-man-arms"+V).attr("x1",n-18).attr("y1",i+33).attr("x2",n+18).attr("y2",i+33),c.append("line").attr("x1",n-18).attr("y1",i+60).attr("x2",n).attr("y2",i+45),c.append("line").attr("x1",n).attr("y1",i+45).attr("x2",n+18-2).attr("y2",i+60);const h=c.append("circle");h.attr("cx",e.x+e.width/2),h.attr("cy",i+10),h.attr("r",15),h.attr("width",e.width),h.attr("height",e.height);const d=c.node().getBBox();return e.height=d.height,z(a)(e.description,c,l.x,l.y+35,l.width,l.height,{class:"actor"},a),e.height}(t,e,a,r);case"participant":return function(t,e,a,r){const i=r?e.stopy:e.starty,n=e.x+e.width/2,o=i+5,c=t.append("g").lower();var l=c;r||(V++,l.append("line").attr("id","actor"+V).attr("x1",n).attr("y1",o).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),l=c.append("g"),e.actorCnt=V,null!=e.links&&(l.attr("id","root-"+V),R("#root-"+V,V)));const h=(0,s.g)();var d="actor";null!=e.properties&&e.properties.class?d=e.properties.class:h.fill="#eaeaea",h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=d,h.rx=3,h.ry=3;const p=D(l,h);if(e.rectData=h,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?(0,s.b)(l,h.x+h.width-20,h.y+10,t.substr(1)):(0,s.c)(l,h.x+h.width-20,h.y+10,t)}z(a)(e.description,l,h.x,h.y,h.width,h.height,{class:"actor"},a);let g=e.height;if(p.node){const t=p.node().getBBox();e.height=t.height,g=t.height}return g}(t,e,a,r)}},drawBox:function(t,e,a){const r=t.append("g");W(r,e),e.name&&z(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a),r.lower()},drawPopup:function(t,e,a,r,i){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const s=e.links,o=e.actorCnt,c=e.rectData;var l="none";i&&(l="block !important");const h=t.append("g");h.attr("id","actor"+o+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",l),R("#actor"+o+"_popup",o);var d="";void 0!==c.class&&(d=" "+c.class);let p=c.width>a?c.width:a;const g=h.append("rect");if(g.attr("class","actorPopupMenuPanel"+d),g.attr("x",c.x),g.attr("y",c.height),g.attr("fill",c.fill),g.attr("stroke",c.stroke),g.attr("width",p),g.attr("height",c.height),g.attr("rx",c.rx),g.attr("ry",c.ry),null!=s){var u=20;for(let t in s){var x=h.append("a"),y=(0,n.Nm)(s[t]);x.attr("xlink:href",y),x.attr("target","_blank"),H(r)(t,x,c.x+10,c.height+u,p,20,{class:"actor"},r),u+=30}}return g.attr("height",u),{height:c.height+u,width:p}},anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,a,r,i){const n=(0,s.g)(),o=e.anchored;n.x=e.startx,n.y=e.starty,n.class="activation"+i%3,n.width=e.stopx-e.startx,n.height=a-e.starty,D(o,n)},drawLoop:function(t,e,a,r){const{boxMargin:i,boxTextMargin:n,labelBoxHeight:o,labelBoxWidth:c,messageFontFamily:l,messageFontSize:h,messageFontWeight:d}=r,p=t.append("g"),g=function(t,e,a,r){return p.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",r).attr("class","loopLine")};g(e.startx,e.starty,e.stopx,e.starty),g(e.stopx,e.starty,e.stopx,e.stopy),g(e.startx,e.stopy,e.stopx,e.stopy),g(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){g(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let u=(0,s.e)();u.text=a,u.x=e.startx,u.y=e.starty,u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.anchor="middle",u.valign="middle",u.tspan=!1,u.width=c||50,u.height=o||20,u.textMargin=n,u.class="labelText",B(p,u),u=q(),u.text=e.title,u.x=e.startx+c/2+(e.stopx-e.startx)/2,u.y=e.starty+i+n,u.anchor="middle",u.valign="middle",u.textMargin=n,u.class="loopText",u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.wrap=!0;let x=$(p,u);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,a){if(t.message){u.text=t.message,u.x=e.startx+(e.stopx-e.startx)/2,u.y=e.sections[a].y+i+n,u.class="loopText",u.anchor="middle",u.valign="middle",u.tspan=!1,u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.wrap=e.wrap,x=$(p,u);let r=Math.round(x.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[a].height+=r-(i+n)}})),e.height=Math.round(e.stopy-e.starty),p},drawBackgroundRect:W,insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.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",15.5).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",4.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:q,getNoteRect:function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},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:F,sanitizeUrl:n.Nm};let j={};const K={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,tt((0,r.c)())},updateVal:function(t,e,a,r){void 0===t[e]?t[e]=a:t[e]=r(a,t[e])},updateBounds:function(t,e,a,r){const i=this;let s=0;function n(n){return function(o){s++;const c=i.sequenceItems.length-s+1;i.updateVal(o,"starty",e-c*j.boxMargin,Math.min),i.updateVal(o,"stopy",r+c*j.boxMargin,Math.max),i.updateVal(K.data,"startx",t-c*j.boxMargin,Math.min),i.updateVal(K.data,"stopx",a+c*j.boxMargin,Math.max),"activation"!==n&&(i.updateVal(o,"startx",t-c*j.boxMargin,Math.min),i.updateVal(o,"stopx",a+c*j.boxMargin,Math.max),i.updateVal(K.data,"starty",e-c*j.boxMargin,Math.min),i.updateVal(K.data,"stopy",r+c*j.boxMargin,Math.max))}}this.sequenceItems.forEach(n()),this.activations.forEach(n("activation"))},insert:function(t,e,a,i){const s=r.e.getMin(t,a),n=r.e.getMax(t,a),o=r.e.getMin(e,i),c=r.e.getMax(e,i);this.updateVal(K.data,"startx",s,Math.min),this.updateVal(K.data,"starty",o,Math.min),this.updateVal(K.data,"stopx",n,Math.max),this.updateVal(K.data,"stopy",c,Math.max),this.updateBounds(s,o,n,c)},newActivation:function(t,e,a){const r=a[t.from.actor],i=et(t.from.actor).length||0,s=r.x+r.width/2+(i-1)*j.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+j.activationWidth,stopy:void 0,actor:t.from.actor,anchored:U.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()},isLoopOverlap:function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:K.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=r.e.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},X=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),G=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),J=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});const Z=function(t,e,a,i){if(i){let i=0;K.bumpVerticalPos(2*j.boxMargin);for(const s of a){const a=e[s];a.stopy||(a.stopy=K.getVerticalPos());const n=U.drawActor(t,a,j,!0);i=r.e.getMax(i,n)}K.bumpVerticalPos(i+j.boxMargin)}else for(const r of a){const a=e[r];U.drawActor(t,a,j,!1)}},Q=function(t,e,a,r){let i=0,s=0;for(const n of a){const a=e[n],o=it(a),c=U.drawPopup(t,a,o,j,j.forceMenus,r);c.height>i&&(i=c.height),c.width+a.x>s&&(s=c.width+a.x)}return{maxHeight:i,maxWidth:s}},tt=function(t){(0,r.f)(j,t),t.fontFamily&&(j.actorFontFamily=j.noteFontFamily=j.messageFontFamily=t.fontFamily),t.fontSize&&(j.actorFontSize=j.noteFontSize=j.messageFontSize=t.fontSize),t.fontWeight&&(j.actorFontWeight=j.noteFontWeight=j.messageFontWeight=t.fontWeight)},et=function(t){return K.activations.filter((function(e){return e.actor===t}))},at=function(t,e){const a=e[t],i=et(t);return[i.reduce((function(t,e){return r.e.getMin(t,e.startx)}),a.x+a.width/2-1),i.reduce((function(t,e){return r.e.getMax(t,e.stopx)}),a.x+a.width/2+1)]};function rt(t,e,a,i,s){K.bumpVerticalPos(a);let n=i;if(e.id&&e.message&&t[e.id]){const a=t[e.id].width,s=X(j);e.message=r.u.wrapLabel(`[${e.message}]`,a-2*j.wrapPadding,s),e.width=a,e.wrap=!0;const o=r.u.calculateTextDimensions(e.message,s),c=r.e.getMax(o.height,j.labelBoxHeight);n=i+c,r.l.debug(`${c} - ${e.message}`)}s(e),K.bumpVerticalPos(n)}const it=function(t){let e=0;const a=J(j);for(const i in t.links){const t=r.u.calculateTextDimensions(i,a).width+2*j.wrapPadding+2*j.boxMargin;e<t&&(e=t)}return e};const st=function(t,e,a,i){const s={},n=[];let o,c,l;return t.forEach((function(t){switch(t.id=r.u.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.PAR_OVER_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:n.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=n.pop(),s[o.id]=o,s[t.id]=o,n.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=n.pop(),s[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const a=e[t.from?t.from.actor:t.to.actor],r=et(t.from?t.from.actor:t.to.actor).length,i=a.x+a.width/2+(r-1)*j.activationWidth/2,s={startx:i,stopx:i+j.activationWidth,actor:t.from.actor,enabled:!0};K.activations.push(s)}break;case i.db.LINETYPE.ACTIVE_END:{const e=K.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete K.activations.splice(e,1)[0]}}void 0!==t.placement?(c=function(t,e,a){const i=e[t.from].x,s=e[t.to].x,n=t.wrap&&t.message;let o=r.u.calculateTextDimensions(n?r.u.wrapLabel(t.message,j.width,G(j)):t.message,G(j));const c={width:n?j.width:r.e.getMax(j.width,o.width+2*j.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===a.db.PLACEMENT.RIGHTOF?(c.width=n?r.e.getMax(j.width,o.width):r.e.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*j.noteMargin),c.startx=i+(e[t.from].width+j.actorMargin)/2):t.placement===a.db.PLACEMENT.LEFTOF?(c.width=n?r.e.getMax(j.width,o.width+2*j.noteMargin):r.e.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*j.noteMargin),c.startx=i-c.width+(e[t.from].width-j.actorMargin)/2):t.to===t.from?(o=r.u.calculateTextDimensions(n?r.u.wrapLabel(t.message,r.e.getMax(j.width,e[t.from].width),G(j)):t.message,G(j)),c.width=n?r.e.getMax(j.width,e[t.from].width):r.e.getMax(e[t.from].width,j.width,o.width+2*j.noteMargin),c.startx=i+(e[t.from].width-c.width)/2):(c.width=Math.abs(i+e[t.from].width/2-(s+e[t.to].width/2))+j.actorMargin,c.startx=i<s?i+e[t.from].width/2-j.actorMargin/2:s+e[t.to].width/2-j.actorMargin/2),n&&(c.message=r.u.wrapLabel(t.message,c.width-2*j.wrapPadding,G(j))),r.l.debug(`NM:[${c.startx},${c.stopx},${c.starty},${c.stopy}:${c.width},${c.height}=${t.message}]`),c}(t,e,i),t.noteModel=c,n.forEach((t=>{o=t,o.from=r.e.getMin(o.from,c.startx),o.to=r.e.getMax(o.to,c.startx+c.width),o.width=r.e.getMax(o.width,Math.abs(o.from-o.to))-j.labelBoxWidth}))):(l=function(t,e,a){if(![a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.SOLID,a.db.LINETYPE.DOTTED,a.db.LINETYPE.SOLID_CROSS,a.db.LINETYPE.DOTTED_CROSS,a.db.LINETYPE.SOLID_POINT,a.db.LINETYPE.DOTTED_POINT].includes(t.type))return{};const[i,s]=at(t.from,e),[n,o]=at(t.to,e),c=i<=n,l=c?s:i;let h=c?n:o;const d=Math.abs(n-o)>2,p=t=>c?-t:t;t.from===t.to?h=l:(t.activate&&!d&&(h+=p(j.activationWidth/2-1)),[a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=p(3)));const g=[i,s,n,o],u=Math.abs(l-h);t.wrap&&t.message&&(t.message=r.u.wrapLabel(t.message,r.e.getMax(u+2*j.wrapPadding,j.width),X(j)));const x=r.u.calculateTextDimensions(t.message,X(j));return{width:r.e.getMax(t.wrap?0:x.width+2*j.wrapPadding,u+2*j.wrapPadding,j.width),height:0,startx:l,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,g),toBounds:Math.max.apply(null,g)}}(t,e,i),t.msgModel=l,l.startx&&l.stopx&&n.length>0&&n.forEach((a=>{if(o=a,l.startx===l.stopx){const a=e[t.from],i=e[t.to];o.from=r.e.getMin(a.x-l.width/2,a.x-a.width/2,o.from),o.to=r.e.getMax(i.x+l.width/2,i.x+a.width/2,o.to),o.width=r.e.getMax(o.width,Math.abs(o.to-o.from))-j.labelBoxWidth}else o.from=r.e.getMin(l.startx,o.from),o.to=r.e.getMax(l.stopx,o.to),o.width=r.e.getMax(o.width,l.width)-j.labelBoxWidth})))})),K.activations=[],r.l.debug("Loop type widths:",s),s},nt={parser:c,db:S,renderer:{bounds:K,drawActors:Z,drawActorsPopup:Q,setConf:tt,draw:function(t,e,a,n){const{securityLevel:o,sequence:c}=(0,r.c)();let l;j=c,"sandbox"===o&&(l=(0,i.Ys)("#i"+e));const h="sandbox"===o?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body"),d="sandbox"===o?l.nodes()[0].contentDocument:document;K.init(),r.l.debug(n.db);const p="sandbox"===o?h.select(`[id="${e}"]`):(0,i.Ys)(`[id="${e}"]`),g=n.db.getActors(),u=n.db.getCreatedActors(),x=n.db.getDestroyedActors(),y=n.db.getBoxes();let m=n.db.getActorKeys();const f=n.db.getMessages(),b=n.db.getDiagramTitle(),T=n.db.hasAtLeastOneBox(),E=n.db.hasAtLeastOneBoxWithTitle(),w=function(t,e,a){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const s=t[e.to];if(e.placement===a.db.PLACEMENT.LEFTOF&&!s.prevActor)return;if(e.placement===a.db.PLACEMENT.RIGHTOF&&!s.nextActor)return;const n=void 0!==e.placement,o=!n,c=n?G(j):X(j),l=e.wrap?r.u.wrapLabel(e.message,j.width-2*j.wrapPadding,c):e.message,h=r.u.calculateTextDimensions(l,c).width+2*j.wrapPadding;o&&e.from===s.nextActor?i[e.to]=r.e.getMax(i[e.to]||0,h):o&&e.from===s.prevActor?i[e.from]=r.e.getMax(i[e.from]||0,h):o&&e.from===e.to?(i[e.from]=r.e.getMax(i[e.from]||0,h/2),i[e.to]=r.e.getMax(i[e.to]||0,h/2)):e.placement===a.db.PLACEMENT.RIGHTOF?i[e.from]=r.e.getMax(i[e.from]||0,h):e.placement===a.db.PLACEMENT.LEFTOF?i[s.prevActor]=r.e.getMax(i[s.prevActor]||0,h):e.placement===a.db.PLACEMENT.OVER&&(s.prevActor&&(i[s.prevActor]=r.e.getMax(i[s.prevActor]||0,h/2)),s.nextActor&&(i[e.from]=r.e.getMax(i[e.from]||0,h/2)))}})),r.l.debug("maxMessageWidthPerActor:",i),i}(g,f,n);if(j.height=function(t,e,a){let i=0;Object.keys(t).forEach((e=>{const a=t[e];a.wrap&&(a.description=r.u.wrapLabel(a.description,j.width-2*j.wrapPadding,J(j)));const s=r.u.calculateTextDimensions(a.description,J(j));a.width=a.wrap?j.width:r.e.getMax(j.width,s.width+2*j.wrapPadding),a.height=a.wrap?r.e.getMax(s.height,j.height):j.height,i=r.e.getMax(i,a.height)}));for(const n in e){const a=t[n];if(!a)continue;const i=t[a.nextActor];if(!i){const t=e[n]+j.actorMargin-a.width/2;a.margin=r.e.getMax(t,j.actorMargin);continue}const s=e[n]+j.actorMargin-a.width/2-i.width/2;a.margin=r.e.getMax(s,j.actorMargin)}let s=0;return a.forEach((e=>{const a=X(j);let i=e.actorKeys.reduce(((e,a)=>e+(t[a].width+(t[a].margin||0))),0);i-=2*j.boxTextMargin,e.wrap&&(e.name=r.u.wrapLabel(e.name,i-2*j.wrapPadding,a));const n=r.u.calculateTextDimensions(e.name,a);s=r.e.getMax(n.height,s);const o=r.e.getMax(i,n.width+2*j.wrapPadding);if(e.margin=j.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),a.forEach((t=>t.textMaxHeight=s)),r.e.getMax(i,j.height)}(g,w,y),U.insertComputerIcon(p),U.insertDatabaseIcon(p),U.insertClockIcon(p),T&&(K.bumpVerticalPos(j.boxMargin),E&&K.bumpVerticalPos(y[0].textMaxHeight)),!0===j.hideUnusedParticipants){const t=new Set;f.forEach((e=>{t.add(e.from),t.add(e.to)})),m=m.filter((e=>t.has(e)))}!function(t,e,a,i,s,n,o){let c,l=0,h=0,d=0;for(const p of i){const t=e[p],i=t.box;c&&c!=i&&(o||K.models.addBox(c),h+=j.boxMargin+c.margin),i&&i!=c&&(o||(i.x=l+h,i.y=s),h+=i.margin),t.width=t.width||j.width,t.height=r.e.getMax(t.height||j.height,j.height),t.margin=t.margin||j.actorMargin,d=r.e.getMax(d,t.height),a[t.name]&&(h+=t.width/2),t.x=l+h,t.starty=K.getVerticalPos(),K.insert(t.x,s,t.x+t.width,t.height),l+=t.width+h,t.box&&(t.box.width=l+i.margin-t.box.x),h=t.margin,c=t.box,K.models.addActor(t)}c&&!o&&K.models.addBox(c),K.bumpVerticalPos(d)}(0,g,u,m,0,0,!1);const P=st(f,g,w,n);U.insertArrowHead(p),U.insertArrowCrossHead(p),U.insertArrowFilledHead(p),U.insertSequenceNumber(p);let _=1,L=1;const k=[],v=[];f.forEach((function(t,e){let a,i,o;switch(t.type){case n.db.LINETYPE.NOTE:K.resetVerticalPos(),i=t.noteModel,function(t,e){K.bumpVerticalPos(j.boxMargin),e.height=j.boxMargin,e.starty=K.getVerticalPos();const a=(0,s.g)();a.x=e.startx,a.y=e.starty,a.width=e.width||j.width,a.class="note";const r=t.append("g"),i=U.drawRect(r,a),n=(0,s.e)();n.x=e.startx,n.y=e.starty,n.width=a.width,n.dy="1em",n.text=e.message,n.class="noteText",n.fontFamily=j.noteFontFamily,n.fontSize=j.noteFontSize,n.fontWeight=j.noteFontWeight,n.anchor=j.noteAlign,n.textMargin=j.noteMargin,n.valign="center";const o=$(r,n),c=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));i.attr("height",c+2*j.noteMargin),e.height+=c+2*j.noteMargin,K.bumpVerticalPos(c+2*j.noteMargin),e.stopy=e.starty+c+2*j.noteMargin,e.stopx=e.startx+a.width,K.insert(e.startx,e.starty,e.stopx,e.stopy),K.models.addNote(e)}(p,i);break;case n.db.LINETYPE.ACTIVE_START:K.newActivation(t,p,g);break;case n.db.LINETYPE.ACTIVE_END:!function(t,e){const a=K.endActivation(t);a.starty+18>e&&(a.starty=e-6,e+=12),U.drawActivation(p,a,e,j,et(t.from.actor).length),K.insert(a.startx,e-10,a.stopx,e)}(t,K.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.LOOP_END:a=K.endLoop(),U.drawLoop(p,a,"loop",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.RECT_START:rt(P,t,j.boxMargin,j.boxMargin,(t=>K.newLoop(void 0,t.message)));break;case n.db.LINETYPE.RECT_END:a=K.endLoop(),v.push(a),K.models.addLoop(a),K.bumpVerticalPos(a.stopy-K.getVerticalPos());break;case n.db.LINETYPE.OPT_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.OPT_END:a=K.endLoop(),U.drawLoop(p,a,"opt",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.ALT_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.ALT_ELSE:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.ALT_END:a=K.endLoop(),U.drawLoop(p,a,"alt",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t))),K.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.PAR_END:a=K.endLoop(),U.drawLoop(p,a,"par",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.AUTONUMBER:_=t.message.start||_,L=t.message.step||L,t.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.CRITICAL_OPTION:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.CRITICAL_END:a=K.endLoop(),U.drawLoop(p,a,"critical",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.BREAK_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.BREAK_END:a=K.endLoop(),U.drawLoop(p,a,"break",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;default:try{o=t.msgModel,o.starty=K.getVerticalPos(),o.sequenceIndex=_,o.sequenceVisible=n.db.showSequenceNumbers();const a=function(t,e){K.bumpVerticalPos(10);const{startx:a,stopx:i,message:s}=e,n=r.e.splitBreaks(s).length,o=r.u.calculateTextDimensions(s,X(j)),c=o.height/n;let l;e.height+=c,K.bumpVerticalPos(c);let h=o.height-10;const d=o.width;if(a===i){l=K.getVerticalPos()+h,j.rightAngles||(h+=j.boxMargin,l=K.getVerticalPos()+h),h+=30;const t=r.e.getMax(d/2,j.width/2);K.insert(a-t,K.getVerticalPos()-10+h,i+t,K.getVerticalPos()+30+h)}else h+=j.boxMargin,l=K.getVerticalPos()+h,K.insert(a,l-10,i,l);return K.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,K.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),l}(0,o);!function(t,e,a,r,i,s,n){function o(a,r){a.x<i[t.from].x?(K.insert(e.stopx-r,e.starty,e.startx,e.stopy+a.height/2+j.noteMargin),e.stopx=e.stopx+r):(K.insert(e.startx,e.starty,e.stopx+r,e.stopy+a.height/2+j.noteMargin),e.stopx=e.stopx-r)}if(s[t.to]==r){const e=i[t.to];o(e,"actor"==e.type?21:e.width/2+3),e.starty=a-e.height/2,K.bumpVerticalPos(e.height/2)}else if(n[t.from]==r){const r=i[t.from];j.mirrorActors&&function(a,r){a.x<i[t.to].x?(K.insert(e.startx-r,e.starty,e.stopx,e.stopy+a.height/2+j.noteMargin),e.startx=e.startx+r):(K.insert(e.stopx,e.starty,e.startx+r,e.stopy+a.height/2+j.noteMargin),e.startx=e.startx-r)}(r,"actor"==r.type?18:r.width/2),r.stopy=a-r.height/2,K.bumpVerticalPos(r.height/2)}else if(n[t.to]==r){const e=i[t.to];j.mirrorActors&&o(e,"actor"==e.type?21:e.width/2+3),e.stopy=a-e.height/2,K.bumpVerticalPos(e.height/2)}}(t,o,a,e,g,u,x),k.push({messageModel:o,lineStartY:a}),K.models.addMessage(o)}catch(c){r.l.error("error while drawing message",c)}}[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)&&(_+=L)})),r.l.debug("createdActors",u),r.l.debug("destroyedActors",x),Z(p,g,m,!1),k.forEach((t=>function(t,e,a,i){const{startx:n,stopx:o,starty:c,message:l,type:h,sequenceIndex:d,sequenceVisible:p}=e,g=r.u.calculateTextDimensions(l,X(j)),u=(0,s.e)();u.x=n,u.y=c+10,u.width=o-n,u.class="messageText",u.dy="1em",u.text=l,u.fontFamily=j.messageFontFamily,u.fontSize=j.messageFontSize,u.fontWeight=j.messageFontWeight,u.anchor=j.messageAlign,u.valign="center",u.textMargin=j.wrapPadding,u.tspan=!1,$(t,u);const x=g.width;let y;n===o?y=j.rightAngles?t.append("path").attr("d",`M ${n},${a} H ${n+r.e.getMax(j.width/2,x/2)} V ${a+25} H ${n}`):t.append("path").attr("d","M "+n+","+a+" C "+(n+60)+","+(a-10)+" "+(n+60)+","+(a+30)+" "+n+","+(a+20)):(y=t.append("line"),y.attr("x1",n),y.attr("y1",a),y.attr("x2",o),y.attr("y2",a)),h===i.db.LINETYPE.DOTTED||h===i.db.LINETYPE.DOTTED_CROSS||h===i.db.LINETYPE.DOTTED_POINT||h===i.db.LINETYPE.DOTTED_OPEN?(y.style("stroke-dasharray","3, 3"),y.attr("class","messageLine1")):y.attr("class","messageLine0");let m="";j.arrowMarkerAbsolute&&(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,m=m.replace(/\(/g,"\\("),m=m.replace(/\)/g,"\\)")),y.attr("stroke-width",2),y.attr("stroke","none"),y.style("fill","none"),h!==i.db.LINETYPE.SOLID&&h!==i.db.LINETYPE.DOTTED||y.attr("marker-end","url("+m+"#arrowhead)"),h!==i.db.LINETYPE.SOLID_POINT&&h!==i.db.LINETYPE.DOTTED_POINT||y.attr("marker-end","url("+m+"#filled-head)"),h!==i.db.LINETYPE.SOLID_CROSS&&h!==i.db.LINETYPE.DOTTED_CROSS||y.attr("marker-end","url("+m+"#crosshead)"),(p||j.showSequenceNumbers)&&(y.attr("marker-start","url("+m+"#sequencenumber)"),t.append("text").attr("x",n).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(d))}(p,t.messageModel,t.lineStartY,n))),j.mirrorActors&&Z(p,g,m,!0),v.forEach((t=>U.drawBackgroundRect(p,t))),F(p,g,m,j),K.models.boxes.forEach((function(t){t.height=K.getVerticalPos()-t.y,K.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)",U.drawBox(p,t,j)})),T&&K.bumpVerticalPos(j.boxMargin);const I=Q(p,g,m,d),{bounds:M}=K.getBounds();let N=M.stopy-M.starty;N<I.maxHeight&&(N=I.maxHeight);let A=N+2*j.diagramMarginY;j.mirrorActors&&(A=A-j.boxMargin+j.bottomMarginAdj);let S=M.stopx-M.startx;S<I.maxWidth&&(S=I.maxWidth);const O=S+2*j.diagramMarginX;b&&p.append("text").text(b).attr("x",(M.stopx-M.startx)/2-2*j.diagramMarginX).attr("y",-25),(0,r.i)(p,A,O,j.useMaxWidth);const D=b?40:0;p.attr("viewBox",M.startx-j.diagramMarginX+" -"+(j.diagramMarginY+D)+" "+O+" "+(A+D)),r.l.debug("models:",K.models)}},styles:O,init:({wrap:t})=>{S.setWrap(t)}}},3317:(t,e,a)=>{a.d(e,{a:()=>n,b:()=>l,c:()=>c,d:()=>s,e:()=>d,f:()=>o,g:()=>h});var r=a(7967),i=a(5322);const s=(t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),void 0!==e.rx&&a.attr("rx",e.rx),void 0!==e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(const r in e.attrs)a.attr(r,e.attrs[r]);return void 0!==e.class&&a.attr("class",e.class),a},n=(t,e)=>{const a={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};s(t,a).lower()},o=(t,e)=>{const a=e.text.replace(i.H," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),void 0!==e.class&&r.attr("class",e.class);const s=r.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),r},c=(t,e,a,i)=>{const s=t.append("image");s.attr("x",e),s.attr("y",a);const n=(0,r.Nm)(i);s.attr("xlink:href",n)},l=(t,e,a,i)=>{const s=t.append("use");s.attr("x",e),s.attr("y",a);const n=(0,r.Nm)(i);s.attr("xlink:href",`#${n}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),d=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/5790.a9566ed9.js b/assets/js/5790.a9566ed9.js new file mode 100644 index 0000000..1823878 --- /dev/null +++ b/assets/js/5790.a9566ed9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5790],{25790:(t,e,a)=>{a.d(e,{diagram:()=>nt});var r=a(85322),i=a(64218),s=a(43317),n=a(17967),o=(a(27484),a(27856),function(){var t=function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},e=[1,2],a=[1,3],r=[1,4],i=[2,4],s=[1,9],n=[1,11],o=[1,13],c=[1,14],l=[1,16],h=[1,17],d=[1,18],p=[1,24],g=[1,25],u=[1,26],x=[1,27],y=[1,28],m=[1,29],f=[1,30],b=[1,31],T=[1,32],E=[1,33],w=[1,34],P=[1,35],_=[1,36],L=[1,37],k=[1,38],v=[1,39],I=[1,41],M=[1,42],N=[1,43],A=[1,44],S=[1,45],O=[1,46],D=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],R=[4,5,16,50,52,53],C=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Y=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],B=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],V=[68,69,70],F=[1,120],W={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(t,e,a,r,i,s,n){var o=s.length-1;switch(i){case 3:return r.apply(s[o]),s[o];case 4:case 9:case 8:case 13:this.$=[];break;case 5:case 10:s[o-1].push(s[o]),this.$=s[o-1];break;case 6:case 7:case 11:case 12:case 62:this.$=s[o];break;case 15:s[o].type="createParticipant",this.$=s[o];break;case 16:s[o-1].unshift({type:"boxStart",boxData:r.parseBoxData(s[o-2])}),s[o-1].push({type:"boxEnd",boxText:s[o-2]}),this.$=s[o-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-2]),sequenceIndexStep:Number(s[o-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]};break;case 23:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-1]};break;case 29:r.setDiagramTitle(s[o].substring(6)),this.$=s[o].substring(6);break;case 30:r.setDiagramTitle(s[o].substring(7)),this.$=s[o].substring(7);break;case 31:this.$=s[o].trim(),r.setAccTitle(this.$);break;case 32:case 33:this.$=s[o].trim(),r.setAccDescription(this.$);break;case 34:s[o-1].unshift({type:"loopStart",loopText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.LOOP_START}),s[o-1].push({type:"loopEnd",loopText:s[o-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[o-1];break;case 35:s[o-1].unshift({type:"rectStart",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_START}),s[o-1].push({type:"rectEnd",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[o-1];break;case 36:s[o-1].unshift({type:"optStart",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_START}),s[o-1].push({type:"optEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[o-1];break;case 37:s[o-1].unshift({type:"altStart",altText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.ALT_START}),s[o-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[o-1];break;case 38:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 39:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_OVER_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 40:s[o-1].unshift({type:"criticalStart",criticalText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.CRITICAL_START}),s[o-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=s[o-1];break;case 41:s[o-1].unshift({type:"breakStart",breakText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_START}),s[o-1].push({type:"breakEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_END}),this.$=s[o-1];break;case 43:this.$=s[o-3].concat([{type:"option",optionText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.CRITICAL_OPTION},s[o]]);break;case 45:this.$=s[o-3].concat([{type:"and",parText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.PAR_AND},s[o]]);break;case 47:this.$=s[o-3].concat([{type:"else",altText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.ALT_ELSE},s[o]]);break;case 48:s[o-3].draw="participant",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 49:s[o-1].draw="participant",s[o-1].type="addParticipant",this.$=s[o-1];break;case 50:s[o-3].draw="actor",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 51:s[o-1].draw="actor",s[o-1].type="addParticipant",this.$=s[o-1];break;case 52:s[o-1].type="destroyParticipant",this.$=s[o-1];break;case 53:this.$=[s[o-1],{type:"addNote",placement:s[o-2],actor:s[o-1].actor,text:s[o]}];break;case 54:s[o-2]=[].concat(s[o-1],s[o-1]).slice(0,2),s[o-2][0]=s[o-2][0].actor,s[o-2][1]=s[o-2][1].actor,this.$=[s[o-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[o-2].slice(0,2),text:s[o]}];break;case 55:this.$=[s[o-1],{type:"addLinks",actor:s[o-1].actor,text:s[o]}];break;case 56:this.$=[s[o-1],{type:"addALink",actor:s[o-1].actor,text:s[o]}];break;case 57:this.$=[s[o-1],{type:"addProperties",actor:s[o-1].actor,text:s[o]}];break;case 58:this.$=[s[o-1],{type:"addDetails",actor:s[o-1].actor,text:s[o]}];break;case 61:this.$=[s[o-2],s[o]];break;case 63:this.$=r.PLACEMENT.LEFTOF;break;case 64:this.$=r.PLACEMENT.RIGHTOF;break;case 65:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o],activate:!0},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1]}];break;case 66:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-4]}];break;case 67:this.$=[s[o-3],s[o-1],{type:"addMessage",from:s[o-3].actor,to:s[o-1].actor,signalType:s[o-2],msg:s[o]}];break;case 68:this.$={type:"addParticipant",actor:s[o]};break;case 69:this.$=r.LINETYPE.SOLID_OPEN;break;case 70:this.$=r.LINETYPE.DOTTED_OPEN;break;case 71:this.$=r.LINETYPE.SOLID;break;case 72:this.$=r.LINETYPE.DOTTED;break;case 73:this.$=r.LINETYPE.SOLID_CROSS;break;case 74:this.$=r.LINETYPE.DOTTED_CROSS;break;case 75:this.$=r.LINETYPE.SOLID_POINT;break;case 76:this.$=r.LINETYPE.DOTTED_POINT;break;case 77:this.$=r.parseMessage(s[o].trim().substring(1))}},table:[{3:1,4:e,5:a,6:r},{1:[3]},{3:5,4:e,5:a,6:r},{3:6,4:e,5:a,6:r},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:s,5:n,8:8,9:10,12:12,13:o,14:c,17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},t(D,[2,5]),{9:47,12:12,13:o,14:c,17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},t(D,[2,7]),t(D,[2,8]),t(D,[2,14]),{12:48,50:L,52:k,53:v},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:O},{22:55,70:O},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(D,[2,29]),t(D,[2,30]),{32:[1,61]},{34:[1,62]},t(D,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:O},{22:72,70:O},{22:73,70:O},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:O},{22:88,70:O},{22:89,70:O},{22:90,70:O},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(D,[2,6]),t(D,[2,15]),t(R,[2,9],{10:91}),t(D,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(D,[2,21]),{5:[1,95]},{5:[1,96]},t(D,[2,24]),t(D,[2,25]),t(D,[2,26]),t(D,[2,27]),t(D,[2,28]),t(D,[2,31]),t(D,[2,32]),t(C,i,{7:97}),t(C,i,{7:98}),t(C,i,{7:99}),t(Y,i,{40:100,7:101}),t($,i,{42:102,7:103}),t($,i,{7:103,42:104}),t(B,i,{45:105,7:106}),t(C,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:O},t(V,[2,69]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),{22:116,70:O},{22:118,58:117,70:O},{70:[2,63]},{70:[2,64]},{56:119,79:F},{56:121,79:F},{56:122,79:F},{56:123,79:F},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:L,52:k,53:v},{5:[1,129]},t(D,[2,19]),t(D,[2,20]),t(D,[2,22]),t(D,[2,23]),{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,130],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,131],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,132],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,133]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,46],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,49:[1,134],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,135]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,44],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,48:[1,136],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{16:[1,137]},{16:[1,138]},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[2,42],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,47:[1,139],50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{4:s,5:n,8:8,9:10,12:12,13:o,14:c,16:[1,140],17:15,18:l,21:h,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:g,31:u,33:x,35:y,36:m,37:f,38:b,39:T,41:E,43:w,44:P,46:_,50:L,52:k,53:v,54:I,59:M,60:N,61:A,62:S,70:O},{15:[1,141]},t(D,[2,49]),{15:[1,142]},t(D,[2,51]),t(D,[2,52]),{22:143,70:O},{22:144,70:O},{56:145,79:F},{56:146,79:F},{56:147,79:F},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(D,[2,16]),t(R,[2,10]),{12:149,50:L,52:k,53:v},t(R,[2,12]),t(R,[2,13]),t(D,[2,18]),t(D,[2,34]),t(D,[2,35]),t(D,[2,36]),t(D,[2,37]),{15:[1,150]},t(D,[2,38]),{15:[1,151]},t(D,[2,39]),t(D,[2,40]),{15:[1,152]},t(D,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:F},{56:156,79:F},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:O},t(R,[2,11]),t(Y,i,{7:101,40:158}),t($,i,{7:103,42:159}),t(B,i,{7:106,45:160}),t(D,[2,48]),t(D,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(t,e){if(!e.recoverable){var a=new Error(t);throw a.hash=e,a}this.trace(t)},parse:function(t){var e=this,a=[0],r=[],i=[null],s=[],n=this.table,o="",c=0,l=0,h=s.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var u=d.yylloc;s.push(u);var x=d.options&&d.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,m,f,b,T,E,w,P,_,L={};;){if(m=a[a.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==y&&(_=void 0,"number"!=typeof(_=r.pop()||d.lex()||1)&&(_ instanceof Array&&(_=(r=_).pop()),_=e.symbols_[_]||_),y=_),f=n[m]&&n[m][y]),void 0===f||!f.length||!f[0]){var k="";for(T in P=[],n[m])this.terminals_[T]&&T>2&&P.push("'"+this.terminals_[T]+"'");k=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(k,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:u,expected:P})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+y);switch(f[0]){case 1:a.push(y),i.push(d.yytext),s.push(d.yylloc),a.push(f[1]),y=null,l=d.yyleng,o=d.yytext,c=d.yylineno,u=d.yylloc;break;case 2:if(E=this.productions_[f[1]][1],L.$=i[i.length-E],L._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},x&&(L._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(b=this.performAction.apply(L,[o,l,c,p.yy,f[1],i,s].concat(h))))return b;E&&(a=a.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),a.push(this.productions_[f[1]][0]),i.push(L.$),s.push(L._$),w=n[a[a.length-2]][a[a.length-1]],a.push(w);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,a=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 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),a.length-1&&(this.yylineno-=a.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:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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 a,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=t[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+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],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,a,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;s<i.length;s++)if((a=this._input.match(this.rules[i[s]]))&&(!e||a[0].length>e[0].length)){if(e=a,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&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,a,r){switch(a){case 0:case 51:case 64:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 52:return e.yytext=e.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 65:return"INVALID"}},rules:[/^(?:[\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,/^(?:create\b)/i,/^(?:destroy\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,/^(?:par_over\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:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};function z(){this.yy={}}return W.lexer=q,z.prototype=W,W.Parser=z,new z}());o.parser=o;const c=o;let l,h,d,p,g,u={},x={},y={},m=[],f=[],b=!1;const T=function(t,e,a,r){let i=d;const s=u[t];if(s){if(d&&s.box&&d!==s.box)throw new Error("A same participant should only be defined in one Box: "+s.name+" can't be in '"+s.box.name+"' and in '"+d.name+"' at the same time.");if(i=s.box?s.box:d,s.box=i,s&&e===s.name&&null==a)return}null!=a&&null!=a.text||(a={text:e,wrap:null,type:r}),null!=r&&null!=a.text||(a={text:e,wrap:null,type:r}),u[t]={box:i,name:e,description:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,prevActor:l,links:{},properties:{},actorCnt:null,rectData:null,type:r||"participant"},l&&u[l]&&(u[l].nextActor=t),d&&d.actorKeys.push(t),l=t},E=function(t,e,a={text:void 0,wrap:void 0},r,i=!1){if(r===_.ACTIVE_END){if((t=>{let e,a=0;for(e=0;e<f.length;e++)f[e].type===_.ACTIVE_START&&f[e].from.actor===t&&a++,f[e].type===_.ACTIVE_END&&f[e].from.actor===t&&a--;return a})(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 f.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,type:r,activate:i}),!0},w=function(t){return u[t]},P=()=>void 0!==h?h:(0,r.c)().sequence.wrap,_={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,PAR_OVER_START:32},L=function(t,e,a){a.text,void 0===a.wrap&&P()||a.wrap;const r=[].concat(t,t);f.push({from:r[0],to:r[1],message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,type:_.NOTE,placement:e})},k=function(t,e){const a=w(t);try{let t=(0,r.d)(e.text,(0,r.c)());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"=");v(a,JSON.parse(t))}catch(i){r.l.error("error while parsing actor link text",i)}};function v(t,e){if(null==t.links)t.links=e;else for(let a in e)t.links[a]=e[a]}const I=function(t,e){const a=w(t);try{let t=(0,r.d)(e.text,(0,r.c)());M(a,JSON.parse(t))}catch(i){r.l.error("error while parsing actor properties text",i)}};function M(t,e){if(null==t.properties)t.properties=e;else for(let a in e)t.properties[a]=e[a]}const N=function(t,e){const a=w(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&M(a,e.properties),e.links&&v(a,e.links)}catch(s){r.l.error("error while parsing actor details text",s)}},A=function(t){if(Array.isArray(t))t.forEach((function(t){A(t)}));else switch(t.type){case"sequenceIndex":f.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":T(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(u[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");p=t.actor,T(t.actor,t.actor,t.description,t.draw),x[t.actor]=f.length;break;case"destroyParticipant":g=t.actor,y[t.actor]=f.length;break;case"activeStart":case"activeEnd":E(t.actor,void 0,void 0,t.signalType);break;case"addNote":L(t.actor,t.placement,t.text);break;case"addLinks":k(t.actor,t.text);break;case"addALink":!function(t,e){const a=w(t);try{const t={};let o=(0,r.d)(e.text,(0,r.c)());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var s=o.slice(0,i-1).trim(),n=o.slice(i+1).trim();t[s]=n,v(a,t)}catch(o){r.l.error("error while parsing actor link text",o)}}(t.actor,t.text);break;case"addProperties":I(t.actor,t.text);break;case"addDetails":N(t.actor,t.text);break;case"addMessage":if(p){if(t.to!==p)throw new Error("The created participant "+p+" does not have an associated creating message after its declaration. Please check the sequence diagram.");p=void 0}else if(g){if(t.to!==g&&t.from!==g)throw new Error("The destroyed participant "+g+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");g=void 0}E(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":e=t.boxData,m.push({name:e.text,wrap:void 0===e.wrap&&P()||!!e.wrap,fill:e.color,actorKeys:[]}),d=m.slice(-1)[0];break;case"boxEnd":d=void 0;break;case"loopStart":E(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":E(void 0,void 0,void 0,t.signalType);break;case"rectStart":E(void 0,void 0,t.color,t.signalType);break;case"optStart":E(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":E(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":(0,r.s)(t.text);break;case"parStart":case"and":E(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":E(void 0,void 0,t.criticalText,t.signalType);break;case"option":E(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":E(void 0,void 0,t.breakText,t.signalType)}var e},S={addActor:T,addMessage:function(t,e,a,r){f.push({from:t,to:e,message:a.text,wrap:void 0===a.wrap&&P()||!!a.wrap,answer:r})},addSignal:E,addLinks:k,addDetails:N,addProperties:I,autoWrap:P,setWrap:function(t){h=t},enableSequenceNumbers:function(){b=!0},disableSequenceNumbers:function(){b=!1},showSequenceNumbers:()=>b,getMessages:function(){return f},getActors:function(){return u},getCreatedActors:function(){return x},getDestroyedActors:function(){return y},getActor:w,getActorKeys:function(){return Object.keys(u)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:r.g,getBoxes:function(){return m},getDiagramTitle:r.r,setDiagramTitle:r.q,getConfig:()=>(0,r.c)().sequence,clear:function(){u={},x={},y={},m=[],f=[],b=!1,(0,r.t)()},parseMessage:function(t){const e=t.trim(),a={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return r.l.debug("parseMessage:",a),a},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let a=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",a)||(a="transparent",i=t.trim());else{const e=(new Option).style;e.color=a,e.color!==a&&(a="transparent",i=t.trim())}return{color:a,text:void 0!==i?(0,r.d)(i.replace(/^:?(?:no)?wrap:/,""),(0,r.c)()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:_,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:L,setAccTitle:r.s,apply:A,setAccDescription:r.b,getAccDescription:r.a,hasAtLeastOneBox:function(){return m.length>0},hasAtLeastOneBoxWithTitle:function(){return m.some((t=>t.name))}},O=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`,D=function(t,e){return(0,s.d)(t,e)},R=(t,e)=>{(0,r.F)((()=>{const a=document.querySelectorAll(t);0!==a.length&&(a[0].addEventListener("mouseover",(function(){C("actor"+e+"_popup")})),a[0].addEventListener("mouseout",(function(){Y("actor"+e+"_popup")})))}))},C=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},Y=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},$=function(t,e){let a=0,i=0;const s=e.text.split(r.e.lineBreakRegex),[n,o]=(0,r.C)(e.fontSize);let c=[],l=0,h=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":h=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":h=()=>Math.round(e.y+(a+i+e.textMargin)/2);break;case"bottom":case"end":h=()=>Math.round(e.y+(a+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[d,p]of s.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==n&&(l=d*n);const s=t.append("text");s.attr("x",e.x),s.attr("y",h()),void 0!==e.anchor&&s.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&s.style("font-family",e.fontFamily),void 0!==o&&s.style("font-size",o),void 0!==e.fontWeight&&s.style("font-weight",e.fontWeight),void 0!==e.fill&&s.attr("fill",e.fill),void 0!==e.class&&s.attr("class",e.class),void 0!==e.dy?s.attr("dy",e.dy):0!==l&&s.attr("dy",l);const g=p||r.Z;if(e.tspan){const t=s.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(g)}else s.text(g);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(s._groups||s)[0][0].getBBox().height,a=i),c.push(s)}return c},B=function(t,e){const a=t.append("polygon");var r,i,s,n,o;return a.attr("points",(r=e.x,i=e.y,s=e.width,n=e.height,r+","+i+" "+(r+s)+","+i+" "+(r+s)+","+(i+n-(o=7))+" "+(r+s-1.2*o)+","+(i+n)+" "+r+","+(i+n))),a.attr("class","labelBox"),e.y=e.y+e.height/2,$(t,e),a};let V=-1;const F=(t,e,a,r)=>{t.select&&a.forEach((a=>{const i=e[a],s=t.select("#actor"+i.actorCnt);!r.mirrorActors&&i.stopy?s.attr("y2",i.stopy+i.height/2):r.mirrorActors&&s.attr("y2",i.stopy)}))},W=function(t,e){(0,s.a)(t,e)},q=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}},z=function(){function t(t,e,a,r,s,n,o){i(e.append("text").attr("x",a+s/2).attr("y",r+n/2+5).style("text-anchor","middle").text(t),o)}function e(t,e,a,s,n,o,c,l){const{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,[g,u]=(0,r.C)(h),x=t.split(r.e.lineBreakRegex);for(let r=0;r<x.length;r++){const t=r*g-g*(x.length-1)/2,l=e.append("text").attr("x",a+n/2).attr("y",s).style("text-anchor","middle").style("font-size",u).style("font-weight",p).style("font-family",d);l.append("tspan").attr("x",a+n/2).attr("dy",t).text(x[r]),l.attr("y",s+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(l,c)}}function a(t,a,r,s,n,o,c,l){const h=a.append("switch"),d=h.append("foreignObject").attr("x",r).attr("y",s).attr("width",n).attr("height",o).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,h,r,s,n,o,c,l),i(d,c)}function i(t,e){for(const a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),H=function(){function t(t,e,a,r,s,n,o){i(e.append("text").attr("x",a).attr("y",r).style("text-anchor","start").text(t),o)}function e(t,e,a,s,n,o,c,l){const{actorFontSize:h,actorFontFamily:d,actorFontWeight:p}=l,g=t.split(r.e.lineBreakRegex);for(let r=0;r<g.length;r++){const t=r*h-h*(g.length-1)/2,n=e.append("text").attr("x",a).attr("y",s).style("text-anchor","start").style("font-size",h).style("font-weight",p).style("font-family",d);n.append("tspan").attr("x",a).attr("dy",t).text(g[r]),n.attr("y",s+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(n,c)}}function a(t,a,r,s,n,o,c,l){const h=a.append("switch"),d=h.append("foreignObject").attr("x",r).attr("y",s).attr("width",n).attr("height",o).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,h,r,s,0,o,c,l),i(d,c)}function i(t,e){for(const a in e)e.hasOwnProperty(a)&&t.attr(a,e[a])}return function(r){return"fo"===r.textPlacement?a:"old"===r.textPlacement?t:e}}(),U={drawRect:D,drawText:$,drawLabel:B,drawActor:function(t,e,a,r){switch(e.type){case"actor":return function(t,e,a,r){const i=r?e.stopy:e.starty,n=e.x+e.width/2,o=i+80;t.lower(),r||(V++,t.append("line").attr("id","actor"+V).attr("x1",n).attr("y1",o).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=V);const c=t.append("g");c.attr("class","actor-man");const l=(0,s.g)();l.x=e.x,l.y=i,l.fill="#eaeaea",l.width=e.width,l.height=e.height,l.class="actor",l.rx=3,l.ry=3,c.append("line").attr("id","actor-man-torso"+V).attr("x1",n).attr("y1",i+25).attr("x2",n).attr("y2",i+45),c.append("line").attr("id","actor-man-arms"+V).attr("x1",n-18).attr("y1",i+33).attr("x2",n+18).attr("y2",i+33),c.append("line").attr("x1",n-18).attr("y1",i+60).attr("x2",n).attr("y2",i+45),c.append("line").attr("x1",n).attr("y1",i+45).attr("x2",n+18-2).attr("y2",i+60);const h=c.append("circle");h.attr("cx",e.x+e.width/2),h.attr("cy",i+10),h.attr("r",15),h.attr("width",e.width),h.attr("height",e.height);const d=c.node().getBBox();return e.height=d.height,z(a)(e.description,c,l.x,l.y+35,l.width,l.height,{class:"actor"},a),e.height}(t,e,a,r);case"participant":return function(t,e,a,r){const i=r?e.stopy:e.starty,n=e.x+e.width/2,o=i+5,c=t.append("g").lower();var l=c;r||(V++,l.append("line").attr("id","actor"+V).attr("x1",n).attr("y1",o).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),l=c.append("g"),e.actorCnt=V,null!=e.links&&(l.attr("id","root-"+V),R("#root-"+V,V)));const h=(0,s.g)();var d="actor";null!=e.properties&&e.properties.class?d=e.properties.class:h.fill="#eaeaea",h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=d,h.rx=3,h.ry=3;const p=D(l,h);if(e.rectData=h,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?(0,s.b)(l,h.x+h.width-20,h.y+10,t.substr(1)):(0,s.c)(l,h.x+h.width-20,h.y+10,t)}z(a)(e.description,l,h.x,h.y,h.width,h.height,{class:"actor"},a);let g=e.height;if(p.node){const t=p.node().getBBox();e.height=t.height,g=t.height}return g}(t,e,a,r)}},drawBox:function(t,e,a){const r=t.append("g");W(r,e),e.name&&z(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a),r.lower()},drawPopup:function(t,e,a,r,i){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const s=e.links,o=e.actorCnt,c=e.rectData;var l="none";i&&(l="block !important");const h=t.append("g");h.attr("id","actor"+o+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",l),R("#actor"+o+"_popup",o);var d="";void 0!==c.class&&(d=" "+c.class);let p=c.width>a?c.width:a;const g=h.append("rect");if(g.attr("class","actorPopupMenuPanel"+d),g.attr("x",c.x),g.attr("y",c.height),g.attr("fill",c.fill),g.attr("stroke",c.stroke),g.attr("width",p),g.attr("height",c.height),g.attr("rx",c.rx),g.attr("ry",c.ry),null!=s){var u=20;for(let t in s){var x=h.append("a"),y=(0,n.Nm)(s[t]);x.attr("xlink:href",y),x.attr("target","_blank"),H(r)(t,x,c.x+10,c.height+u,p,20,{class:"actor"},r),u+=30}}return g.attr("height",u),{height:c.height+u,width:p}},anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,a,r,i){const n=(0,s.g)(),o=e.anchored;n.x=e.startx,n.y=e.starty,n.class="activation"+i%3,n.width=e.stopx-e.startx,n.height=a-e.starty,D(o,n)},drawLoop:function(t,e,a,r){const{boxMargin:i,boxTextMargin:n,labelBoxHeight:o,labelBoxWidth:c,messageFontFamily:l,messageFontSize:h,messageFontWeight:d}=r,p=t.append("g"),g=function(t,e,a,r){return p.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",r).attr("class","loopLine")};g(e.startx,e.starty,e.stopx,e.starty),g(e.stopx,e.starty,e.stopx,e.stopy),g(e.startx,e.stopy,e.stopx,e.stopy),g(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){g(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let u=(0,s.e)();u.text=a,u.x=e.startx,u.y=e.starty,u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.anchor="middle",u.valign="middle",u.tspan=!1,u.width=c||50,u.height=o||20,u.textMargin=n,u.class="labelText",B(p,u),u=q(),u.text=e.title,u.x=e.startx+c/2+(e.stopx-e.startx)/2,u.y=e.starty+i+n,u.anchor="middle",u.valign="middle",u.textMargin=n,u.class="loopText",u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.wrap=!0;let x=$(p,u);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,a){if(t.message){u.text=t.message,u.x=e.startx+(e.stopx-e.startx)/2,u.y=e.sections[a].y+i+n,u.class="loopText",u.anchor="middle",u.valign="middle",u.tspan=!1,u.fontFamily=l,u.fontSize=h,u.fontWeight=d,u.wrap=e.wrap,x=$(p,u);let r=Math.round(x.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[a].height+=r-(i+n)}})),e.height=Math.round(e.stopy-e.starty),p},drawBackgroundRect:W,insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.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",15.5).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",4.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:q,getNoteRect:function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},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:F,sanitizeUrl:n.Nm};let j={};const K={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,tt((0,r.c)())},updateVal:function(t,e,a,r){void 0===t[e]?t[e]=a:t[e]=r(a,t[e])},updateBounds:function(t,e,a,r){const i=this;let s=0;function n(n){return function(o){s++;const c=i.sequenceItems.length-s+1;i.updateVal(o,"starty",e-c*j.boxMargin,Math.min),i.updateVal(o,"stopy",r+c*j.boxMargin,Math.max),i.updateVal(K.data,"startx",t-c*j.boxMargin,Math.min),i.updateVal(K.data,"stopx",a+c*j.boxMargin,Math.max),"activation"!==n&&(i.updateVal(o,"startx",t-c*j.boxMargin,Math.min),i.updateVal(o,"stopx",a+c*j.boxMargin,Math.max),i.updateVal(K.data,"starty",e-c*j.boxMargin,Math.min),i.updateVal(K.data,"stopy",r+c*j.boxMargin,Math.max))}}this.sequenceItems.forEach(n()),this.activations.forEach(n("activation"))},insert:function(t,e,a,i){const s=r.e.getMin(t,a),n=r.e.getMax(t,a),o=r.e.getMin(e,i),c=r.e.getMax(e,i);this.updateVal(K.data,"startx",s,Math.min),this.updateVal(K.data,"starty",o,Math.min),this.updateVal(K.data,"stopx",n,Math.max),this.updateVal(K.data,"stopy",c,Math.max),this.updateBounds(s,o,n,c)},newActivation:function(t,e,a){const r=a[t.from.actor],i=et(t.from.actor).length||0,s=r.x+r.width/2+(i-1)*j.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+j.activationWidth,stopy:void 0,actor:t.from.actor,anchored:U.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()},isLoopOverlap:function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:K.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=r.e.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},X=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),G=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),J=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});const Z=function(t,e,a,i){if(i){let i=0;K.bumpVerticalPos(2*j.boxMargin);for(const s of a){const a=e[s];a.stopy||(a.stopy=K.getVerticalPos());const n=U.drawActor(t,a,j,!0);i=r.e.getMax(i,n)}K.bumpVerticalPos(i+j.boxMargin)}else for(const r of a){const a=e[r];U.drawActor(t,a,j,!1)}},Q=function(t,e,a,r){let i=0,s=0;for(const n of a){const a=e[n],o=it(a),c=U.drawPopup(t,a,o,j,j.forceMenus,r);c.height>i&&(i=c.height),c.width+a.x>s&&(s=c.width+a.x)}return{maxHeight:i,maxWidth:s}},tt=function(t){(0,r.f)(j,t),t.fontFamily&&(j.actorFontFamily=j.noteFontFamily=j.messageFontFamily=t.fontFamily),t.fontSize&&(j.actorFontSize=j.noteFontSize=j.messageFontSize=t.fontSize),t.fontWeight&&(j.actorFontWeight=j.noteFontWeight=j.messageFontWeight=t.fontWeight)},et=function(t){return K.activations.filter((function(e){return e.actor===t}))},at=function(t,e){const a=e[t],i=et(t);return[i.reduce((function(t,e){return r.e.getMin(t,e.startx)}),a.x+a.width/2-1),i.reduce((function(t,e){return r.e.getMax(t,e.stopx)}),a.x+a.width/2+1)]};function rt(t,e,a,i,s){K.bumpVerticalPos(a);let n=i;if(e.id&&e.message&&t[e.id]){const a=t[e.id].width,s=X(j);e.message=r.u.wrapLabel(`[${e.message}]`,a-2*j.wrapPadding,s),e.width=a,e.wrap=!0;const o=r.u.calculateTextDimensions(e.message,s),c=r.e.getMax(o.height,j.labelBoxHeight);n=i+c,r.l.debug(`${c} - ${e.message}`)}s(e),K.bumpVerticalPos(n)}const it=function(t){let e=0;const a=J(j);for(const i in t.links){const t=r.u.calculateTextDimensions(i,a).width+2*j.wrapPadding+2*j.boxMargin;e<t&&(e=t)}return e};const st=function(t,e,a,i){const s={},n=[];let o,c,l;return t.forEach((function(t){switch(t.id=r.u.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.PAR_OVER_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:n.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=n.pop(),s[o.id]=o,s[t.id]=o,n.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=n.pop(),s[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const a=e[t.from?t.from.actor:t.to.actor],r=et(t.from?t.from.actor:t.to.actor).length,i=a.x+a.width/2+(r-1)*j.activationWidth/2,s={startx:i,stopx:i+j.activationWidth,actor:t.from.actor,enabled:!0};K.activations.push(s)}break;case i.db.LINETYPE.ACTIVE_END:{const e=K.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete K.activations.splice(e,1)[0]}}void 0!==t.placement?(c=function(t,e,a){const i=e[t.from].x,s=e[t.to].x,n=t.wrap&&t.message;let o=r.u.calculateTextDimensions(n?r.u.wrapLabel(t.message,j.width,G(j)):t.message,G(j));const c={width:n?j.width:r.e.getMax(j.width,o.width+2*j.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===a.db.PLACEMENT.RIGHTOF?(c.width=n?r.e.getMax(j.width,o.width):r.e.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*j.noteMargin),c.startx=i+(e[t.from].width+j.actorMargin)/2):t.placement===a.db.PLACEMENT.LEFTOF?(c.width=n?r.e.getMax(j.width,o.width+2*j.noteMargin):r.e.getMax(e[t.from].width/2+e[t.to].width/2,o.width+2*j.noteMargin),c.startx=i-c.width+(e[t.from].width-j.actorMargin)/2):t.to===t.from?(o=r.u.calculateTextDimensions(n?r.u.wrapLabel(t.message,r.e.getMax(j.width,e[t.from].width),G(j)):t.message,G(j)),c.width=n?r.e.getMax(j.width,e[t.from].width):r.e.getMax(e[t.from].width,j.width,o.width+2*j.noteMargin),c.startx=i+(e[t.from].width-c.width)/2):(c.width=Math.abs(i+e[t.from].width/2-(s+e[t.to].width/2))+j.actorMargin,c.startx=i<s?i+e[t.from].width/2-j.actorMargin/2:s+e[t.to].width/2-j.actorMargin/2),n&&(c.message=r.u.wrapLabel(t.message,c.width-2*j.wrapPadding,G(j))),r.l.debug(`NM:[${c.startx},${c.stopx},${c.starty},${c.stopy}:${c.width},${c.height}=${t.message}]`),c}(t,e,i),t.noteModel=c,n.forEach((t=>{o=t,o.from=r.e.getMin(o.from,c.startx),o.to=r.e.getMax(o.to,c.startx+c.width),o.width=r.e.getMax(o.width,Math.abs(o.from-o.to))-j.labelBoxWidth}))):(l=function(t,e,a){if(![a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.SOLID,a.db.LINETYPE.DOTTED,a.db.LINETYPE.SOLID_CROSS,a.db.LINETYPE.DOTTED_CROSS,a.db.LINETYPE.SOLID_POINT,a.db.LINETYPE.DOTTED_POINT].includes(t.type))return{};const[i,s]=at(t.from,e),[n,o]=at(t.to,e),c=i<=n,l=c?s:i;let h=c?n:o;const d=Math.abs(n-o)>2,p=t=>c?-t:t;t.from===t.to?h=l:(t.activate&&!d&&(h+=p(j.activationWidth/2-1)),[a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=p(3)));const g=[i,s,n,o],u=Math.abs(l-h);t.wrap&&t.message&&(t.message=r.u.wrapLabel(t.message,r.e.getMax(u+2*j.wrapPadding,j.width),X(j)));const x=r.u.calculateTextDimensions(t.message,X(j));return{width:r.e.getMax(t.wrap?0:x.width+2*j.wrapPadding,u+2*j.wrapPadding,j.width),height:0,startx:l,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,g),toBounds:Math.max.apply(null,g)}}(t,e,i),t.msgModel=l,l.startx&&l.stopx&&n.length>0&&n.forEach((a=>{if(o=a,l.startx===l.stopx){const a=e[t.from],i=e[t.to];o.from=r.e.getMin(a.x-l.width/2,a.x-a.width/2,o.from),o.to=r.e.getMax(i.x+l.width/2,i.x+a.width/2,o.to),o.width=r.e.getMax(o.width,Math.abs(o.to-o.from))-j.labelBoxWidth}else o.from=r.e.getMin(l.startx,o.from),o.to=r.e.getMax(l.stopx,o.to),o.width=r.e.getMax(o.width,l.width)-j.labelBoxWidth})))})),K.activations=[],r.l.debug("Loop type widths:",s),s},nt={parser:c,db:S,renderer:{bounds:K,drawActors:Z,drawActorsPopup:Q,setConf:tt,draw:function(t,e,a,n){const{securityLevel:o,sequence:c}=(0,r.c)();let l;j=c,"sandbox"===o&&(l=(0,i.Ys)("#i"+e));const h="sandbox"===o?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body"),d="sandbox"===o?l.nodes()[0].contentDocument:document;K.init(),r.l.debug(n.db);const p="sandbox"===o?h.select(`[id="${e}"]`):(0,i.Ys)(`[id="${e}"]`),g=n.db.getActors(),u=n.db.getCreatedActors(),x=n.db.getDestroyedActors(),y=n.db.getBoxes();let m=n.db.getActorKeys();const f=n.db.getMessages(),b=n.db.getDiagramTitle(),T=n.db.hasAtLeastOneBox(),E=n.db.hasAtLeastOneBoxWithTitle(),w=function(t,e,a){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const s=t[e.to];if(e.placement===a.db.PLACEMENT.LEFTOF&&!s.prevActor)return;if(e.placement===a.db.PLACEMENT.RIGHTOF&&!s.nextActor)return;const n=void 0!==e.placement,o=!n,c=n?G(j):X(j),l=e.wrap?r.u.wrapLabel(e.message,j.width-2*j.wrapPadding,c):e.message,h=r.u.calculateTextDimensions(l,c).width+2*j.wrapPadding;o&&e.from===s.nextActor?i[e.to]=r.e.getMax(i[e.to]||0,h):o&&e.from===s.prevActor?i[e.from]=r.e.getMax(i[e.from]||0,h):o&&e.from===e.to?(i[e.from]=r.e.getMax(i[e.from]||0,h/2),i[e.to]=r.e.getMax(i[e.to]||0,h/2)):e.placement===a.db.PLACEMENT.RIGHTOF?i[e.from]=r.e.getMax(i[e.from]||0,h):e.placement===a.db.PLACEMENT.LEFTOF?i[s.prevActor]=r.e.getMax(i[s.prevActor]||0,h):e.placement===a.db.PLACEMENT.OVER&&(s.prevActor&&(i[s.prevActor]=r.e.getMax(i[s.prevActor]||0,h/2)),s.nextActor&&(i[e.from]=r.e.getMax(i[e.from]||0,h/2)))}})),r.l.debug("maxMessageWidthPerActor:",i),i}(g,f,n);if(j.height=function(t,e,a){let i=0;Object.keys(t).forEach((e=>{const a=t[e];a.wrap&&(a.description=r.u.wrapLabel(a.description,j.width-2*j.wrapPadding,J(j)));const s=r.u.calculateTextDimensions(a.description,J(j));a.width=a.wrap?j.width:r.e.getMax(j.width,s.width+2*j.wrapPadding),a.height=a.wrap?r.e.getMax(s.height,j.height):j.height,i=r.e.getMax(i,a.height)}));for(const n in e){const a=t[n];if(!a)continue;const i=t[a.nextActor];if(!i){const t=e[n]+j.actorMargin-a.width/2;a.margin=r.e.getMax(t,j.actorMargin);continue}const s=e[n]+j.actorMargin-a.width/2-i.width/2;a.margin=r.e.getMax(s,j.actorMargin)}let s=0;return a.forEach((e=>{const a=X(j);let i=e.actorKeys.reduce(((e,a)=>e+(t[a].width+(t[a].margin||0))),0);i-=2*j.boxTextMargin,e.wrap&&(e.name=r.u.wrapLabel(e.name,i-2*j.wrapPadding,a));const n=r.u.calculateTextDimensions(e.name,a);s=r.e.getMax(n.height,s);const o=r.e.getMax(i,n.width+2*j.wrapPadding);if(e.margin=j.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),a.forEach((t=>t.textMaxHeight=s)),r.e.getMax(i,j.height)}(g,w,y),U.insertComputerIcon(p),U.insertDatabaseIcon(p),U.insertClockIcon(p),T&&(K.bumpVerticalPos(j.boxMargin),E&&K.bumpVerticalPos(y[0].textMaxHeight)),!0===j.hideUnusedParticipants){const t=new Set;f.forEach((e=>{t.add(e.from),t.add(e.to)})),m=m.filter((e=>t.has(e)))}!function(t,e,a,i,s,n,o){let c,l=0,h=0,d=0;for(const p of i){const t=e[p],i=t.box;c&&c!=i&&(o||K.models.addBox(c),h+=j.boxMargin+c.margin),i&&i!=c&&(o||(i.x=l+h,i.y=s),h+=i.margin),t.width=t.width||j.width,t.height=r.e.getMax(t.height||j.height,j.height),t.margin=t.margin||j.actorMargin,d=r.e.getMax(d,t.height),a[t.name]&&(h+=t.width/2),t.x=l+h,t.starty=K.getVerticalPos(),K.insert(t.x,s,t.x+t.width,t.height),l+=t.width+h,t.box&&(t.box.width=l+i.margin-t.box.x),h=t.margin,c=t.box,K.models.addActor(t)}c&&!o&&K.models.addBox(c),K.bumpVerticalPos(d)}(0,g,u,m,0,0,!1);const P=st(f,g,w,n);U.insertArrowHead(p),U.insertArrowCrossHead(p),U.insertArrowFilledHead(p),U.insertSequenceNumber(p);let _=1,L=1;const k=[],v=[];f.forEach((function(t,e){let a,i,o;switch(t.type){case n.db.LINETYPE.NOTE:K.resetVerticalPos(),i=t.noteModel,function(t,e){K.bumpVerticalPos(j.boxMargin),e.height=j.boxMargin,e.starty=K.getVerticalPos();const a=(0,s.g)();a.x=e.startx,a.y=e.starty,a.width=e.width||j.width,a.class="note";const r=t.append("g"),i=U.drawRect(r,a),n=(0,s.e)();n.x=e.startx,n.y=e.starty,n.width=a.width,n.dy="1em",n.text=e.message,n.class="noteText",n.fontFamily=j.noteFontFamily,n.fontSize=j.noteFontSize,n.fontWeight=j.noteFontWeight,n.anchor=j.noteAlign,n.textMargin=j.noteMargin,n.valign="center";const o=$(r,n),c=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));i.attr("height",c+2*j.noteMargin),e.height+=c+2*j.noteMargin,K.bumpVerticalPos(c+2*j.noteMargin),e.stopy=e.starty+c+2*j.noteMargin,e.stopx=e.startx+a.width,K.insert(e.startx,e.starty,e.stopx,e.stopy),K.models.addNote(e)}(p,i);break;case n.db.LINETYPE.ACTIVE_START:K.newActivation(t,p,g);break;case n.db.LINETYPE.ACTIVE_END:!function(t,e){const a=K.endActivation(t);a.starty+18>e&&(a.starty=e-6,e+=12),U.drawActivation(p,a,e,j,et(t.from.actor).length),K.insert(a.startx,e-10,a.stopx,e)}(t,K.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.LOOP_END:a=K.endLoop(),U.drawLoop(p,a,"loop",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.RECT_START:rt(P,t,j.boxMargin,j.boxMargin,(t=>K.newLoop(void 0,t.message)));break;case n.db.LINETYPE.RECT_END:a=K.endLoop(),v.push(a),K.models.addLoop(a),K.bumpVerticalPos(a.stopy-K.getVerticalPos());break;case n.db.LINETYPE.OPT_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.OPT_END:a=K.endLoop(),U.drawLoop(p,a,"opt",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.ALT_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.ALT_ELSE:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.ALT_END:a=K.endLoop(),U.drawLoop(p,a,"alt",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t))),K.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.PAR_END:a=K.endLoop(),U.drawLoop(p,a,"par",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.AUTONUMBER:_=t.message.start||_,L=t.message.step||L,t.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.CRITICAL_OPTION:rt(P,t,j.boxMargin+j.boxTextMargin,j.boxMargin,(t=>K.addSectionToLoop(t)));break;case n.db.LINETYPE.CRITICAL_END:a=K.endLoop(),U.drawLoop(p,a,"critical",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;case n.db.LINETYPE.BREAK_START:rt(P,t,j.boxMargin,j.boxMargin+j.boxTextMargin,(t=>K.newLoop(t)));break;case n.db.LINETYPE.BREAK_END:a=K.endLoop(),U.drawLoop(p,a,"break",j),K.bumpVerticalPos(a.stopy-K.getVerticalPos()),K.models.addLoop(a);break;default:try{o=t.msgModel,o.starty=K.getVerticalPos(),o.sequenceIndex=_,o.sequenceVisible=n.db.showSequenceNumbers();const a=function(t,e){K.bumpVerticalPos(10);const{startx:a,stopx:i,message:s}=e,n=r.e.splitBreaks(s).length,o=r.u.calculateTextDimensions(s,X(j)),c=o.height/n;let l;e.height+=c,K.bumpVerticalPos(c);let h=o.height-10;const d=o.width;if(a===i){l=K.getVerticalPos()+h,j.rightAngles||(h+=j.boxMargin,l=K.getVerticalPos()+h),h+=30;const t=r.e.getMax(d/2,j.width/2);K.insert(a-t,K.getVerticalPos()-10+h,i+t,K.getVerticalPos()+30+h)}else h+=j.boxMargin,l=K.getVerticalPos()+h,K.insert(a,l-10,i,l);return K.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,K.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),l}(0,o);!function(t,e,a,r,i,s,n){function o(a,r){a.x<i[t.from].x?(K.insert(e.stopx-r,e.starty,e.startx,e.stopy+a.height/2+j.noteMargin),e.stopx=e.stopx+r):(K.insert(e.startx,e.starty,e.stopx+r,e.stopy+a.height/2+j.noteMargin),e.stopx=e.stopx-r)}if(s[t.to]==r){const e=i[t.to];o(e,"actor"==e.type?21:e.width/2+3),e.starty=a-e.height/2,K.bumpVerticalPos(e.height/2)}else if(n[t.from]==r){const r=i[t.from];j.mirrorActors&&function(a,r){a.x<i[t.to].x?(K.insert(e.startx-r,e.starty,e.stopx,e.stopy+a.height/2+j.noteMargin),e.startx=e.startx+r):(K.insert(e.stopx,e.starty,e.startx+r,e.stopy+a.height/2+j.noteMargin),e.startx=e.startx-r)}(r,"actor"==r.type?18:r.width/2),r.stopy=a-r.height/2,K.bumpVerticalPos(r.height/2)}else if(n[t.to]==r){const e=i[t.to];j.mirrorActors&&o(e,"actor"==e.type?21:e.width/2+3),e.stopy=a-e.height/2,K.bumpVerticalPos(e.height/2)}}(t,o,a,e,g,u,x),k.push({messageModel:o,lineStartY:a}),K.models.addMessage(o)}catch(c){r.l.error("error while drawing message",c)}}[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)&&(_+=L)})),r.l.debug("createdActors",u),r.l.debug("destroyedActors",x),Z(p,g,m,!1),k.forEach((t=>function(t,e,a,i){const{startx:n,stopx:o,starty:c,message:l,type:h,sequenceIndex:d,sequenceVisible:p}=e,g=r.u.calculateTextDimensions(l,X(j)),u=(0,s.e)();u.x=n,u.y=c+10,u.width=o-n,u.class="messageText",u.dy="1em",u.text=l,u.fontFamily=j.messageFontFamily,u.fontSize=j.messageFontSize,u.fontWeight=j.messageFontWeight,u.anchor=j.messageAlign,u.valign="center",u.textMargin=j.wrapPadding,u.tspan=!1,$(t,u);const x=g.width;let y;n===o?y=j.rightAngles?t.append("path").attr("d",`M ${n},${a} H ${n+r.e.getMax(j.width/2,x/2)} V ${a+25} H ${n}`):t.append("path").attr("d","M "+n+","+a+" C "+(n+60)+","+(a-10)+" "+(n+60)+","+(a+30)+" "+n+","+(a+20)):(y=t.append("line"),y.attr("x1",n),y.attr("y1",a),y.attr("x2",o),y.attr("y2",a)),h===i.db.LINETYPE.DOTTED||h===i.db.LINETYPE.DOTTED_CROSS||h===i.db.LINETYPE.DOTTED_POINT||h===i.db.LINETYPE.DOTTED_OPEN?(y.style("stroke-dasharray","3, 3"),y.attr("class","messageLine1")):y.attr("class","messageLine0");let m="";j.arrowMarkerAbsolute&&(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,m=m.replace(/\(/g,"\\("),m=m.replace(/\)/g,"\\)")),y.attr("stroke-width",2),y.attr("stroke","none"),y.style("fill","none"),h!==i.db.LINETYPE.SOLID&&h!==i.db.LINETYPE.DOTTED||y.attr("marker-end","url("+m+"#arrowhead)"),h!==i.db.LINETYPE.SOLID_POINT&&h!==i.db.LINETYPE.DOTTED_POINT||y.attr("marker-end","url("+m+"#filled-head)"),h!==i.db.LINETYPE.SOLID_CROSS&&h!==i.db.LINETYPE.DOTTED_CROSS||y.attr("marker-end","url("+m+"#crosshead)"),(p||j.showSequenceNumbers)&&(y.attr("marker-start","url("+m+"#sequencenumber)"),t.append("text").attr("x",n).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(d))}(p,t.messageModel,t.lineStartY,n))),j.mirrorActors&&Z(p,g,m,!0),v.forEach((t=>U.drawBackgroundRect(p,t))),F(p,g,m,j),K.models.boxes.forEach((function(t){t.height=K.getVerticalPos()-t.y,K.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)",U.drawBox(p,t,j)})),T&&K.bumpVerticalPos(j.boxMargin);const I=Q(p,g,m,d),{bounds:M}=K.getBounds();let N=M.stopy-M.starty;N<I.maxHeight&&(N=I.maxHeight);let A=N+2*j.diagramMarginY;j.mirrorActors&&(A=A-j.boxMargin+j.bottomMarginAdj);let S=M.stopx-M.startx;S<I.maxWidth&&(S=I.maxWidth);const O=S+2*j.diagramMarginX;b&&p.append("text").text(b).attr("x",(M.stopx-M.startx)/2-2*j.diagramMarginX).attr("y",-25),(0,r.i)(p,A,O,j.useMaxWidth);const D=b?40:0;p.attr("viewBox",M.startx-j.diagramMarginX+" -"+(j.diagramMarginY+D)+" "+O+" "+(A+D)),r.l.debug("models:",K.models)}},styles:O,init:({wrap:t})=>{S.setWrap(t)}}},43317:(t,e,a)=>{a.d(e,{a:()=>n,b:()=>l,c:()=>c,d:()=>s,e:()=>d,f:()=>o,g:()=>h});var r=a(17967),i=a(85322);const s=(t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),void 0!==e.rx&&a.attr("rx",e.rx),void 0!==e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(const r in e.attrs)a.attr(r,e.attrs[r]);return void 0!==e.class&&a.attr("class",e.class),a},n=(t,e)=>{const a={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};s(t,a).lower()},o=(t,e)=>{const a=e.text.replace(i.H," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),void 0!==e.class&&r.attr("class",e.class);const s=r.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),r},c=(t,e,a,i)=>{const s=t.append("image");s.attr("x",e),s.attr("y",a);const n=(0,r.Nm)(i);s.attr("xlink:href",n)},l=(t,e,a,i)=>{const s=t.append("use");s.attr("x",e),s.attr("y",a);const n=(0,r.Nm)(i);s.attr("xlink:href",`#${n}`)},h=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),d=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})}}]); \ No newline at end of file diff --git a/assets/js/5943.9c77168e.js b/assets/js/5943.9c77168e.js deleted file mode 100644 index 89ef6e1..0000000 --- a/assets/js/5943.9c77168e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5943],{5943:(e,t,s)=>{s.d(t,{diagram:()=>N});var o=s(1504),i=s(5625),a=s(4218),r=s(5322),n=s(7936);s(7484),s(7967),s(7856),s(1644),s(9354);const d="rect",l="rectWithTitle",c="statediagram",p=`${c}-state`,b="transition",g=`${b} note-edge`,h=`${c}-note`,u=`${c}-cluster`,y=`${c}-cluster-alt`,f="parent",w="note",x="----",$=`${x}${w}`,m=`${x}${f}`,T="fill:none",S="fill: #333",k="text",D="normal";let A={},v=0;function B(e="",t=0,s="",o=x){return`state-${e}${null!==s&&s.length>0?`${o}${s}`:""}-${t}`}const C=(e,t,s,i,a,n)=>{const c=s.id,b=null==(x=i[c])?"":x.classes?x.classes.join(" "):"";var x;if("root"!==c){let t=d;!0===s.start&&(t="start"),!1===s.start&&(t="end"),s.type!==o.D&&(t=s.type),A[c]||(A[c]={id:c,shape:t,description:r.e.sanitizeText(c,(0,r.c)()),classes:`${b} ${p}`});const i=A[c];s.description&&(Array.isArray(i.description)?(i.shape=l,i.description.push(s.description)):i.description.length>0?(i.shape=l,i.description===c?i.description=[s.description]:i.description=[i.description,s.description]):(i.shape=d,i.description=s.description),i.description=r.e.sanitizeTextOrArray(i.description,(0,r.c)())),1===i.description.length&&i.shape===l&&(i.shape=d),!i.type&&s.doc&&(r.l.info("Setting cluster for ",c,R(s)),i.type="group",i.dir=R(s),i.shape=s.type===o.a?"divider":"roundedWithTitle",i.classes=i.classes+" "+u+" "+(n?y:""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:c,dir:i.dir,domId:B(c,v),type:i.type,padding:15,centerLabel:!0};if(s.note){const t={labelStyle:"",shape:"note",labelText:s.note.text,classes:h,style:"",id:c+$+"-"+v,domId:B(c,v,w),type:i.type,padding:15},o={labelStyle:"",shape:"noteGroup",labelText:s.note.text,classes:i.classes,style:"",id:c+m,domId:B(c,v,f),type:"group",padding:0};v++;const r=c+m;e.setNode(r,o),e.setNode(t.id,t),e.setNode(c,a),e.setParent(c,r),e.setParent(t.id,r);let n=c,d=t.id;"left of"===s.note.position&&(n=t.id,d=c),e.setEdge(n,d,{arrowhead:"none",arrowType:"",style:T,labelStyle:"",classes:g,arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D})}else e.setNode(c,a)}t&&"root"!==t.id&&(r.l.trace("Setting node ",c," to be child of its parent ",t.id),e.setParent(c,t.id)),s.doc&&(r.l.trace("Adding nodes children "),E(e,s,s.doc,i,a,!n))},E=(e,t,s,i,a,n)=>{r.l.trace("items",s),s.forEach((s=>{switch(s.stmt){case o.b:case o.D:C(e,t,s,i,a,n);break;case o.S:{C(e,t,s.state1,i,a,n),C(e,t,s.state2,i,a,n);const o={id:"edge"+v,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:T,labelStyle:"",label:r.e.sanitizeText(s.description,(0,r.c)()),arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D,classes:b};e.setEdge(s.state1.id,s.state2.id,o,v),v++}}}))},R=(e,t=o.c)=>{let s=t;if(e.doc)for(let o=0;o<e.doc.length;o++){const t=e.doc[o];"dir"===t.stmt&&(s=t.value)}return s},V={setConf:function(e){const t=Object.keys(e);for(const s of t)e[s]},getClasses:function(e,t){return t.db.extract(t.db.getRootDocV2()),t.db.getClasses()},draw:async function(e,t,s,o){r.l.info("Drawing state diagram (v2)",t),A={},o.db.getDirection();const{securityLevel:l,state:p}=(0,r.c)(),b=p.nodeSpacing||50,g=p.rankSpacing||50;r.l.info(o.db.getRootDocV2()),o.db.extract(o.db.getRootDocV2()),r.l.info(o.db.getRootDocV2());const h=o.db.getStates(),u=new i.k({multigraph:!0,compound:!0}).setGraph({rankdir:R(o.db.getRootDocV2()),nodesep:b,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let y;C(u,void 0,o.db.getRootDocV2(),h,o.db,!0),"sandbox"===l&&(y=(0,a.Ys)("#i"+t));const f="sandbox"===l?(0,a.Ys)(y.nodes()[0].contentDocument.body):(0,a.Ys)("body"),w=f.select(`[id="${t}"]`),x=f.select("#"+t+" g");await(0,n.r)(x,u,["barb"],c,t);r.u.insertTitle(w,"statediagramTitleText",p.titleTopMargin,o.db.getDiagramTitle());const $=w.node().getBBox(),m=$.width+16,T=$.height+16;w.attr("class",c);const S=w.node().getBBox();(0,r.i)(w,T,m,p.useMaxWidth);const k=`${S.x-8} ${S.y-8} ${m} ${T}`;r.l.debug(`viewBox ${k}`),w.attr("viewBox",k);const D=document.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const i of D){const e=i.getBBox(),t=document.createElementNS("http://www.w3.org/2000/svg",d);t.setAttribute("rx",0),t.setAttribute("ry",0),t.setAttribute("width",e.width),t.setAttribute("height",e.height),i.insertBefore(t,i.firstChild)}}},N={parser:o.p,db:o.d,renderer:V,styles:o.s,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,o.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/5943.ebdacf10.js b/assets/js/5943.ebdacf10.js new file mode 100644 index 0000000..0db1afc --- /dev/null +++ b/assets/js/5943.ebdacf10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5943],{45943:(e,t,s)=>{s.d(t,{diagram:()=>N});var o=s(41504),i=s(45625),a=s(64218),r=s(85322),n=s(87936);s(27484),s(17967),s(27856),s(41644),s(39354);const d="rect",l="rectWithTitle",c="statediagram",p=`${c}-state`,b="transition",g=`${b} note-edge`,h=`${c}-note`,u=`${c}-cluster`,y=`${c}-cluster-alt`,f="parent",w="note",x="----",$=`${x}${w}`,m=`${x}${f}`,T="fill:none",S="fill: #333",k="text",D="normal";let A={},v=0;function B(e="",t=0,s="",o=x){return`state-${e}${null!==s&&s.length>0?`${o}${s}`:""}-${t}`}const C=(e,t,s,i,a,n)=>{const c=s.id,b=null==(x=i[c])?"":x.classes?x.classes.join(" "):"";var x;if("root"!==c){let t=d;!0===s.start&&(t="start"),!1===s.start&&(t="end"),s.type!==o.D&&(t=s.type),A[c]||(A[c]={id:c,shape:t,description:r.e.sanitizeText(c,(0,r.c)()),classes:`${b} ${p}`});const i=A[c];s.description&&(Array.isArray(i.description)?(i.shape=l,i.description.push(s.description)):i.description.length>0?(i.shape=l,i.description===c?i.description=[s.description]:i.description=[i.description,s.description]):(i.shape=d,i.description=s.description),i.description=r.e.sanitizeTextOrArray(i.description,(0,r.c)())),1===i.description.length&&i.shape===l&&(i.shape=d),!i.type&&s.doc&&(r.l.info("Setting cluster for ",c,R(s)),i.type="group",i.dir=R(s),i.shape=s.type===o.a?"divider":"roundedWithTitle",i.classes=i.classes+" "+u+" "+(n?y:""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:c,dir:i.dir,domId:B(c,v),type:i.type,padding:15,centerLabel:!0};if(s.note){const t={labelStyle:"",shape:"note",labelText:s.note.text,classes:h,style:"",id:c+$+"-"+v,domId:B(c,v,w),type:i.type,padding:15},o={labelStyle:"",shape:"noteGroup",labelText:s.note.text,classes:i.classes,style:"",id:c+m,domId:B(c,v,f),type:"group",padding:0};v++;const r=c+m;e.setNode(r,o),e.setNode(t.id,t),e.setNode(c,a),e.setParent(c,r),e.setParent(t.id,r);let n=c,d=t.id;"left of"===s.note.position&&(n=t.id,d=c),e.setEdge(n,d,{arrowhead:"none",arrowType:"",style:T,labelStyle:"",classes:g,arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D})}else e.setNode(c,a)}t&&"root"!==t.id&&(r.l.trace("Setting node ",c," to be child of its parent ",t.id),e.setParent(c,t.id)),s.doc&&(r.l.trace("Adding nodes children "),E(e,s,s.doc,i,a,!n))},E=(e,t,s,i,a,n)=>{r.l.trace("items",s),s.forEach((s=>{switch(s.stmt){case o.b:case o.D:C(e,t,s,i,a,n);break;case o.S:{C(e,t,s.state1,i,a,n),C(e,t,s.state2,i,a,n);const o={id:"edge"+v,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:T,labelStyle:"",label:r.e.sanitizeText(s.description,(0,r.c)()),arrowheadStyle:S,labelpos:"c",labelType:k,thickness:D,classes:b};e.setEdge(s.state1.id,s.state2.id,o,v),v++}}}))},R=(e,t=o.c)=>{let s=t;if(e.doc)for(let o=0;o<e.doc.length;o++){const t=e.doc[o];"dir"===t.stmt&&(s=t.value)}return s},V={setConf:function(e){const t=Object.keys(e);for(const s of t)e[s]},getClasses:function(e,t){return t.db.extract(t.db.getRootDocV2()),t.db.getClasses()},draw:async function(e,t,s,o){r.l.info("Drawing state diagram (v2)",t),A={},o.db.getDirection();const{securityLevel:l,state:p}=(0,r.c)(),b=p.nodeSpacing||50,g=p.rankSpacing||50;r.l.info(o.db.getRootDocV2()),o.db.extract(o.db.getRootDocV2()),r.l.info(o.db.getRootDocV2());const h=o.db.getStates(),u=new i.k({multigraph:!0,compound:!0}).setGraph({rankdir:R(o.db.getRootDocV2()),nodesep:b,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let y;C(u,void 0,o.db.getRootDocV2(),h,o.db,!0),"sandbox"===l&&(y=(0,a.Ys)("#i"+t));const f="sandbox"===l?(0,a.Ys)(y.nodes()[0].contentDocument.body):(0,a.Ys)("body"),w=f.select(`[id="${t}"]`),x=f.select("#"+t+" g");await(0,n.r)(x,u,["barb"],c,t);r.u.insertTitle(w,"statediagramTitleText",p.titleTopMargin,o.db.getDiagramTitle());const $=w.node().getBBox(),m=$.width+16,T=$.height+16;w.attr("class",c);const S=w.node().getBBox();(0,r.i)(w,T,m,p.useMaxWidth);const k=`${S.x-8} ${S.y-8} ${m} ${T}`;r.l.debug(`viewBox ${k}`),w.attr("viewBox",k);const D=document.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const i of D){const e=i.getBBox(),t=document.createElementNS("http://www.w3.org/2000/svg",d);t.setAttribute("rx",0),t.setAttribute("ry",0),t.setAttribute("width",e.width),t.setAttribute("height",e.height),i.insertBefore(t,i.firstChild)}}},N={parser:o.p,db:o.d,renderer:V,styles:o.s,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,o.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/595c7293.3a396f62.js b/assets/js/595c7293.3a396f62.js deleted file mode 100644 index 80d7e10..0000000 --- a/assets/js/595c7293.3a396f62.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5634],{8396:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var i=t(5893),s=t(1151);const r={id:"seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n"},o="8th seminar bonus assignment",c={id:"bonuses/seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n",source:"@site/c/bonuses/08.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-08",permalink:"/c/bonuses/seminar-08",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/08.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",frontMatter:{id:"seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n"},sidebar:"autogeneratedBar",previous:{title:"5th and 6th seminar",permalink:"/c/bonuses/seminar-05-06"},next:{title:"10th seminar",permalink:"/c/bonuses/seminar-10"}},a={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Warning",id:"warning",level:2},{value:"Testing",id:"testing",level:2},{value:"Task no. 1: Counting (0.75 K\u20a1)",id:"task-no-1-counting-075-k",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Bonus part (0.75 K\u20a1)",id:"bonus-part-075-k",level:3},{value:"Task no. 2: Weird trees (1 K\u20a1)",id:"task-no-2-weird-trees-1-k",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"8th-seminar-bonus-assignment",children:"8th seminar bonus assignment"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"pathname:///files/c/bonuses/08.tar.gz",children:"Source"})}),"\n",(0,i.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(n.p,{children:"In this bonus you can implement two tasks, one of them has a bonus part with generic\nsolution."}),"\n",(0,i.jsx)(n.p,{children:"One is focused on counting ananas or in case of generic version any substring in\nthe file, but with a restriction on the function you use."}),"\n",(0,i.jsx)(n.p,{children:"Other one has a more algorithmic spirit."}),"\n",(0,i.jsx)(n.p,{children:"For this bonus you can get at maximum 2.5 K\u20a1."}),"\n",(0,i.jsx)(n.h2,{id:"warning",children:"Warning"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"DO NOT COMMIT test data"})," to your own git repository, since the tests include\nfiles that exceed 10MB by themselves. Even if they are on separate branch, they\ntake up the space."]}),"\n",(0,i.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,i.jsxs)(n.p,{children:["For testing you are provided with python script (requires ",(0,i.jsx)(n.code,{children:"click"})," to be installed:\n",(0,i.jsx)(n.code,{children:"pip3 install --user click"}),") and ",(0,i.jsx)(n.code,{children:"Makefile"})," that provides following targets:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check-counting"})," - runs the ",(0,i.jsx)(n.code,{children:"counting"})," tests"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check-counting-bonus"})," - runs the ",(0,i.jsx)(n.code,{children:"counting"})," tests with bonus implemented"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check"})," - runs both ",(0,i.jsx)(n.code,{children:"counting"})," and ",(0,i.jsx)(n.code,{children:"counting-bonus"})," tests"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"clean"})," - removes output files from the test runs"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"task-no-1-counting-075-k",children:"Task no. 1: Counting (0.75 K\u20a1)"}),"\n",(0,i.jsx)(n.p,{children:"Your first task is to make smallish program that counts occurences of specific\n(or given) word from file and writes the number to other file."}),"\n",(0,i.jsx)(n.p,{children:"Usage of the program is:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Usage: ./counting <input-file> <output-file> [string-to-be-counted]\n"})}),"\n",(0,i.jsx)(n.p,{children:"Arguments that are passed to the program represent:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"<input-file>"})," - path to the file where we count the words"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"<output-file>"})," - path to the file where we output the count"]}),"\n",(0,i.jsxs)(n.li,{children:["(optional argument) ",(0,i.jsx)(n.code,{children:"[string-to-be-counted]"})," - in case you implement bonus,\notherwise we default to word ",(0,i.jsx)(n.code,{children:"ananas"})," ;)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In skeleton you are given 3 empty, but documented, functions to implement."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"count_anything"})," - function accepts input file and substring to be counted in\nthe file, returns the count."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"count_ananas"})," - same as ",(0,i.jsx)(n.code,{children:"count_anything"}),", but specialized for ananases, the\ndefault implementation from the skeleton expects you to implement ",(0,i.jsx)(n.code,{children:"count_anything"}),"\nand therefore it just calls the other function."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_number"})," - function that writes the number to the file, why would you\nneed the function is explained later :)"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"requirements",children:"Requirements"}),"\n",(0,i.jsxs)(n.p,{children:["For manipulation with the files you are only allowed to use ",(0,i.jsx)(n.code,{children:"fopen"}),", ",(0,i.jsx)(n.code,{children:"fclose"}),",\n",(0,i.jsx)(n.code,{children:"fgetc"})," and ",(0,i.jsx)(n.code,{children:"fputc"}),". Functions like ",(0,i.jsx)(n.code,{children:"fprintf"})," (except for ",(0,i.jsx)(n.code,{children:"stderr"})," or logging) and\n",(0,i.jsx)(n.code,{children:"fscanf"})," are ",(0,i.jsx)(n.strong,{children:"forbidden"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"In case you struggle and want to use one of those functions, the solution will be\npenalized by 50% of points."}),"\n",(0,i.jsx)(n.h3,{id:"bonus-part-075-k",children:"Bonus part (0.75 K\u20a1)"}),"\n",(0,i.jsxs)(n.p,{children:["Bonus part of this assignment is to implement ",(0,i.jsx)(n.code,{children:"count_anything"})," rather than ",(0,i.jsx)(n.code,{children:"count_ananas"}),"."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Smaller hint: This task does not need dynamic allocation :) You just need one\ngood helper function and the right idea ;)"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"task-no-2-weird-trees-1-k",children:"Task no. 2: Weird trees (1 K\u20a1)"}),"\n",(0,i.jsxs)(n.p,{children:["In this task we are crossing our paths with ",(0,i.jsx)(n.em,{children:"algorithms and data structures"}),".\nYour task is to write a program that constructs tree from the file that is given\nas an argument and pretty-prints it."]}),"\n",(0,i.jsxs)(n.p,{children:["Input file consists of lines, that include ",(0,i.jsx)(n.code,{children:"key"})," and ",(0,i.jsx)(n.code,{children:"rank"})," in form ",(0,i.jsx)(n.code,{children:"key;rank"}),"\nor ",(0,i.jsx)(n.code,{children:"nil"}),". Why would we have ",(0,i.jsx)(n.code,{children:"nil"})," in a file? The file represents pre-order iteration\nthrough the tree. Leaves never have rank different than 0, so you can safely assume\n2 non-existing ",(0,i.jsx)(n.code,{children:"nil"}),"s in the input after you read such node ;)"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Example input file"}),(0,i.jsx)("th",{children:"Tree it represents"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"8;4\n5;3\n3;2\n2;1\n1;0\nnil\n4;0\n7;1\n6;0\nnil\n11;2\n10;1\n9;0\nnil\n12;0\n"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"tree",src:t(73).Z+"",width:"633",height:"684"})})})]})]}),"\n",(0,i.jsxs)(n.p,{children:["In this task you are only provided with different trees in the ",(0,i.jsx)(n.code,{children:"test-trees"})," directory.\nImplementation and format of the pretty-print is totally up to you. :)"]}),"\n",(0,i.jsx)(n.p,{children:"Example of mine for the tree above:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"8 (rank = 4)\n+-- 5 (rank = 3)\n| +-- 3 (rank = 2)\n| | +-- 2 (rank = 1)\n| | | +-- 1 (rank = 0)\n| | +-- 4 (rank = 0)\n| +-- 7 (rank = 1)\n| +-- 6 (rank = 0)\n+-- 11 (rank = 2)\n +-- 10 (rank = 1)\n | +-- 9 (rank = 0)\n +-- 12 (rank = 0)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Can you find out what are those trees? :)"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,i.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,i.jsx)(n.hr,{})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},73:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/tree-c9e37f87f9095c00fad33ea034485ce6.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var i=t(7294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/595c7293.4258c254.js b/assets/js/595c7293.4258c254.js new file mode 100644 index 0000000..62f26cc --- /dev/null +++ b/assets/js/595c7293.4258c254.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5634],{58396:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var i=t(85893),s=t(11151);const r={id:"seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n"},o="8th seminar bonus assignment",c={id:"bonuses/seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n",source:"@site/c/bonuses/08.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-08",permalink:"/c/bonuses/seminar-08",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/08.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{id:"seminar-08",title:"8th seminar",description:"Manipulating with files only char-by-char and a magic tree.\n"},sidebar:"autogeneratedBar",previous:{title:"5th and 6th seminar",permalink:"/c/bonuses/seminar-05-06"},next:{title:"10th seminar",permalink:"/c/bonuses/seminar-10"}},a={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Warning",id:"warning",level:2},{value:"Testing",id:"testing",level:2},{value:"Task no. 1: Counting (0.75 K\u20a1)",id:"task-no-1-counting-075-k",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Bonus part (0.75 K\u20a1)",id:"bonus-part-075-k",level:3},{value:"Task no. 2: Weird trees (1 K\u20a1)",id:"task-no-2-weird-trees-1-k",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"8th-seminar-bonus-assignment",children:"8th seminar bonus assignment"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"pathname:///files/c/bonuses/08.tar.gz",children:"Source"})}),"\n",(0,i.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(n.p,{children:"In this bonus you can implement two tasks, one of them has a bonus part with generic\nsolution."}),"\n",(0,i.jsx)(n.p,{children:"One is focused on counting ananas or in case of generic version any substring in\nthe file, but with a restriction on the function you use."}),"\n",(0,i.jsx)(n.p,{children:"Other one has a more algorithmic spirit."}),"\n",(0,i.jsx)(n.p,{children:"For this bonus you can get at maximum 2.5 K\u20a1."}),"\n",(0,i.jsx)(n.h2,{id:"warning",children:"Warning"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"DO NOT COMMIT test data"})," to your own git repository, since the tests include\nfiles that exceed 10MB by themselves. Even if they are on separate branch, they\ntake up the space."]}),"\n",(0,i.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,i.jsxs)(n.p,{children:["For testing you are provided with python script (requires ",(0,i.jsx)(n.code,{children:"click"})," to be installed:\n",(0,i.jsx)(n.code,{children:"pip3 install --user click"}),") and ",(0,i.jsx)(n.code,{children:"Makefile"})," that provides following targets:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check-counting"})," - runs the ",(0,i.jsx)(n.code,{children:"counting"})," tests"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check-counting-bonus"})," - runs the ",(0,i.jsx)(n.code,{children:"counting"})," tests with bonus implemented"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"check"})," - runs both ",(0,i.jsx)(n.code,{children:"counting"})," and ",(0,i.jsx)(n.code,{children:"counting-bonus"})," tests"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"clean"})," - removes output files from the test runs"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"task-no-1-counting-075-k",children:"Task no. 1: Counting (0.75 K\u20a1)"}),"\n",(0,i.jsx)(n.p,{children:"Your first task is to make smallish program that counts occurences of specific\n(or given) word from file and writes the number to other file."}),"\n",(0,i.jsx)(n.p,{children:"Usage of the program is:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Usage: ./counting <input-file> <output-file> [string-to-be-counted]\n"})}),"\n",(0,i.jsx)(n.p,{children:"Arguments that are passed to the program represent:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"<input-file>"})," - path to the file where we count the words"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"<output-file>"})," - path to the file where we output the count"]}),"\n",(0,i.jsxs)(n.li,{children:["(optional argument) ",(0,i.jsx)(n.code,{children:"[string-to-be-counted]"})," - in case you implement bonus,\notherwise we default to word ",(0,i.jsx)(n.code,{children:"ananas"})," ;)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In skeleton you are given 3 empty, but documented, functions to implement."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"count_anything"})," - function accepts input file and substring to be counted in\nthe file, returns the count."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"count_ananas"})," - same as ",(0,i.jsx)(n.code,{children:"count_anything"}),", but specialized for ananases, the\ndefault implementation from the skeleton expects you to implement ",(0,i.jsx)(n.code,{children:"count_anything"}),"\nand therefore it just calls the other function."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_number"})," - function that writes the number to the file, why would you\nneed the function is explained later :)"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"requirements",children:"Requirements"}),"\n",(0,i.jsxs)(n.p,{children:["For manipulation with the files you are only allowed to use ",(0,i.jsx)(n.code,{children:"fopen"}),", ",(0,i.jsx)(n.code,{children:"fclose"}),",\n",(0,i.jsx)(n.code,{children:"fgetc"})," and ",(0,i.jsx)(n.code,{children:"fputc"}),". Functions like ",(0,i.jsx)(n.code,{children:"fprintf"})," (except for ",(0,i.jsx)(n.code,{children:"stderr"})," or logging) and\n",(0,i.jsx)(n.code,{children:"fscanf"})," are ",(0,i.jsx)(n.strong,{children:"forbidden"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"In case you struggle and want to use one of those functions, the solution will be\npenalized by 50% of points."}),"\n",(0,i.jsx)(n.h3,{id:"bonus-part-075-k",children:"Bonus part (0.75 K\u20a1)"}),"\n",(0,i.jsxs)(n.p,{children:["Bonus part of this assignment is to implement ",(0,i.jsx)(n.code,{children:"count_anything"})," rather than ",(0,i.jsx)(n.code,{children:"count_ananas"}),"."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Smaller hint: This task does not need dynamic allocation :) You just need one\ngood helper function and the right idea ;)"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"task-no-2-weird-trees-1-k",children:"Task no. 2: Weird trees (1 K\u20a1)"}),"\n",(0,i.jsxs)(n.p,{children:["In this task we are crossing our paths with ",(0,i.jsx)(n.em,{children:"algorithms and data structures"}),".\nYour task is to write a program that constructs tree from the file that is given\nas an argument and pretty-prints it."]}),"\n",(0,i.jsxs)(n.p,{children:["Input file consists of lines, that include ",(0,i.jsx)(n.code,{children:"key"})," and ",(0,i.jsx)(n.code,{children:"rank"})," in form ",(0,i.jsx)(n.code,{children:"key;rank"}),"\nor ",(0,i.jsx)(n.code,{children:"nil"}),". Why would we have ",(0,i.jsx)(n.code,{children:"nil"})," in a file? The file represents pre-order iteration\nthrough the tree. Leaves never have rank different than 0, so you can safely assume\n2 non-existing ",(0,i.jsx)(n.code,{children:"nil"}),"s in the input after you read such node ;)"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Example input file"}),(0,i.jsx)("th",{children:"Tree it represents"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"8;4\n5;3\n3;2\n2;1\n1;0\nnil\n4;0\n7;1\n6;0\nnil\n11;2\n10;1\n9;0\nnil\n12;0\n"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"tree",src:t(30073).Z+"",width:"633",height:"684"})})})]})]}),"\n",(0,i.jsxs)(n.p,{children:["In this task you are only provided with different trees in the ",(0,i.jsx)(n.code,{children:"test-trees"})," directory.\nImplementation and format of the pretty-print is totally up to you. :)"]}),"\n",(0,i.jsx)(n.p,{children:"Example of mine for the tree above:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"8 (rank = 4)\n+-- 5 (rank = 3)\n| +-- 3 (rank = 2)\n| | +-- 2 (rank = 1)\n| | | +-- 1 (rank = 0)\n| | +-- 4 (rank = 0)\n| +-- 7 (rank = 1)\n| +-- 6 (rank = 0)\n+-- 11 (rank = 2)\n +-- 10 (rank = 1)\n | +-- 9 (rank = 0)\n +-- 12 (rank = 0)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Can you find out what are those trees? :)"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,i.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,i.jsx)(n.hr,{})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},30073:(e,n,t)=>{t.d(n,{Z:()=>i});const i=t.p+"assets/images/tree-c9e37f87f9095c00fad33ea034485ce6.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var i=t(67294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5ca803d2.140c39b8.js b/assets/js/5ca803d2.140c39b8.js deleted file mode 100644 index 2708d70..0000000 --- a/assets/js/5ca803d2.140c39b8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9173],{4890:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"c"}')}}]); \ No newline at end of file diff --git a/assets/js/5ca803d2.986e22d4.js b/assets/js/5ca803d2.986e22d4.js new file mode 100644 index 0000000..d45901e --- /dev/null +++ b/assets/js/5ca803d2.986e22d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9173],{24890:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"c"}')}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.b9c79ca6.js b/assets/js/5e95c892.b9c79ca6.js deleted file mode 100644 index 3e156f7..0000000 --- a/assets/js/5e95c892.b9c79ca6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9661],{1892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(7294);var u=r(6010),a=r(833),c=r(5281),n=r(8790),t=r(8207),f=r(5893);function i(e){return(0,f.jsx)(a.FG,{className:(0,u.Z)(c.k.wrapper.docsPages),children:(0,f.jsx)(t.Z,{children:(0,n.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.ea0b11d7.js b/assets/js/5e95c892.ea0b11d7.js new file mode 100644 index 0000000..c16f2c4 --- /dev/null +++ b/assets/js/5e95c892.ea0b11d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9661],{41892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(67294);var u=r(86010),a=r(10833),c=r(35281),n=r(18790),t=r(58207),f=r(85893);function i(e){return(0,f.jsx)(a.FG,{className:(0,u.Z)(c.k.wrapper.docsPages),children:(0,f.jsx)(t.Z,{children:(0,n.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5fe5d476.56958e9b.js b/assets/js/5fe5d476.56958e9b.js deleted file mode 100644 index dd54bf7..0000000 --- a/assets/js/5fe5d476.56958e9b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2619],{4457:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var a=n(5893),i=n(1151);const l={id:"pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",tags:["java","recursion","exponential","greedy","dynamic-programming","top-down-dp","bottom-up-dp"],last_updated:{date:new Date("2023-08-17T00:00:00.000Z")}},t=void 0,r={id:"recursion/pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",source:"@site/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",sourceDirName:"04-recursion",slug:"/recursion/pyramid-slide-down",permalink:"/algorithms/recursion/pyramid-slide-down",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",tags:[{label:"java",permalink:"/algorithms/tags/java"},{label:"recursion",permalink:"/algorithms/tags/recursion"},{label:"exponential",permalink:"/algorithms/tags/exponential"},{label:"greedy",permalink:"/algorithms/tags/greedy"},{label:"dynamic-programming",permalink:"/algorithms/tags/dynamic-programming"},{label:"top-down-dp",permalink:"/algorithms/tags/top-down-dp"},{label:"bottom-up-dp",permalink:"/algorithms/tags/bottom-up-dp"}],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",frontMatter:{id:"pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",tags:["java","recursion","exponential","greedy","dynamic-programming","top-down-dp","bottom-up-dp"],last_updated:{date:"2023-08-17T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Recursion and backtracking with Robot Karel",permalink:"/algorithms/recursion/karel-1"},next:{title:"Red-Black Trees",permalink:"/algorithms/category/red-black-trees"}},c={},m=[{value:"Problem",id:"problem",level:2},{value:"Solving the problem",id:"solving-the-problem",level:2},{value:"Na\xefve solution",id:"na\xefve-solution",level:2},{value:"Time complexity",id:"time-complexity",level:3},{value:"Greedy solution",id:"greedy-solution",level:2},{value:"Time complexity",id:"time-complexity-1",level:3},{value:"Running the tests",id:"running-the-tests",level:3},{value:"Top-down DP",id:"top-down-dp",level:2},{value:"Time complexity",id:"time-complexity-2",level:3},{value:"Memory complexity",id:"memory-complexity",level:3},{value:"Bottom-up DP",id:"bottom-up-dp",level:2},{value:"Time complexity",id:"time-complexity-3",level:3},{value:"Memory complexity",id:"memory-complexity-1",level:3},{value:"Summary",id:"summary",level:2}];function h(s){const e={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",math:"math",mdxAdmonitionTitle:"mdxAdmonitionTitle",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mspace:"mspace",mstyle:"mstyle",msub:"msub",msup:"msup",mtable:"mtable",mtd:"mtd",mtext:"mtext",mtr:"mtr",munderover:"munderover",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",...(0,i.a)(),...s.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.p,{children:"In this post we will try to solve one problem in different ways."}),"\n",(0,a.jsx)(e.h2,{id:"problem",children:"Problem"}),"\n",(0,a.jsxs)(e.p,{children:["The problem we are going to solve is one of ",(0,a.jsx)(e.em,{children:"CodeWars"})," katas and is called\n",(0,a.jsx)(e.a,{href:"https://www.codewars.com/kata/551f23362ff852e2ab000037",children:"Pyramid Slide Down"}),"."]}),"\n",(0,a.jsxs)(e.p,{children:["We are given a 2D array of integers and we are to find the ",(0,a.jsx)(e.em,{children:"slide down"}),".\n",(0,a.jsx)(e.em,{children:"Slide down"})," is a maximum sum of consecutive numbers from the top to the bottom."]}),"\n",(0,a.jsx)(e.p,{children:"Let's have a look at few examples. Consider the following pyramid:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 3\n 7 4\n 2 4 6\n8 5 9 3\n"})}),"\n",(0,a.jsx)(e.p,{children:"This pyramid has following slide down:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" *3\n *7 4\n 2 *4 6\n8 5 *9 3\n"})}),"\n",(0,a.jsxs)(e.p,{children:["And its value is ",(0,a.jsx)(e.code,{children:"23"}),"."]}),"\n",(0,a.jsxs)(e.p,{children:["We can also have a look at a ",(0,a.jsx)(e.em,{children:"bigger"})," example:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 75\n 95 64\n 17 47 82\n 18 35 87 10\n 20 4 82 47 65\n 19 1 23 3 34\n 88 2 77 73 7 63 67\n 99 65 4 28 6 16 70 92\n 41 41 26 56 83 40 80 70 33\n 41 48 72 33 47 32 37 16 94 29\n 53 71 44 65 25 43 91 52 97 51 14\n 70 11 33 28 77 73 17 78 39 68 17 57\n 91 71 52 38 17 14 91 43 58 50 27 29 48\n 63 66 4 68 89 53 67 30 73 16 69 87 40 31\n 4 62 98 27 23 9 70 98 73 93 38 53 60 4 23\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Slide down in this case is equal to ",(0,a.jsx)(e.code,{children:"1074"}),"."]}),"\n",(0,a.jsx)(e.h2,{id:"solving-the-problem",children:"Solving the problem"}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["I will describe the following ways you can approach this problem and implement\nthem in ",(0,a.jsx)(e.em,{children:"Java"}),(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),"."]})}),"\n",(0,a.jsxs)(e.p,{children:["For all of the following solutions I will be using basic ",(0,a.jsx)(e.code,{children:"main"})," function that\nwill output ",(0,a.jsx)(e.code,{children:"true"}),"/",(0,a.jsx)(e.code,{children:"false"})," based on the expected output of our algorithm. Any\nother differences will lie only in the solutions of the problem. You can see the\n",(0,a.jsx)(e.code,{children:"main"})," here:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'public static void main(String[] args) {\n System.out.print("Test #1: ");\n System.out.println(longestSlideDown(new int[][] {\n { 3 },\n { 7, 4 },\n { 2, 4, 6 },\n { 8, 5, 9, 3 }\n }) == 23 ? "passed" : "failed");\n\n System.out.print("Test #2: ");\n System.out.println(longestSlideDown(new int[][] {\n { 75 },\n { 95, 64 },\n { 17, 47, 82 },\n { 18, 35, 87, 10 },\n { 20, 4, 82, 47, 65 },\n { 19, 1, 23, 75, 3, 34 },\n { 88, 2, 77, 73, 7, 63, 67 },\n { 99, 65, 4, 28, 6, 16, 70, 92 },\n { 41, 41, 26, 56, 83, 40, 80, 70, 33 },\n { 41, 48, 72, 33, 47, 32, 37, 16, 94, 29 },\n { 53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14 },\n { 70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57 },\n { 91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48 },\n { 63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31 },\n { 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23 },\n }) == 1074 ? "passed" : "failed");\n}\n'})}),"\n",(0,a.jsx)(e.h2,{id:"na\xefve-solution",children:"Na\xefve solution"}),"\n",(0,a.jsx)(e.p,{children:"Our na\xefve solution consists of trying out all the possible slides and finding\nthe one with maximum sum."}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: We have gotten out of bounds, there's no reasonable value to\n // return, so we just return the \u2039MIN_VALUE\u203a to ensure that it cannot\n // be maximum.\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: Bottom of the pyramid, we just return the value, there's\n // nowhere to slide anymore.\n return pyramid[row][col];\n }\n\n // Otherwise we account for the current position and return maximum of the\n // available \u201cslides\u201d.\n return pyramid[row][col] + Math.max(\n longestSlideDown(pyramid, row + 1, col),\n longestSlideDown(pyramid, row + 1, col + 1));\n}\n\npublic static int longestSlideDown(int[][] pyramid) {\n // We start the slide in the top cell of the pyramid.\n return longestSlideDown(pyramid, 0, 0);\n}\n"})}),"\n",(0,a.jsx)(e.p,{children:"As you can see, we have 2 overloads:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"int longestSlideDown(int[][] pyramid);\nint longestSlideDown(int[][] pyramid, int row, int col);\n"})}),"\n",(0,a.jsxs)(e.p,{children:["First one is used as a ",(0,a.jsx)(e.em,{children:"public interface"})," to the solution, you just pass in the\npyramid itself. Second one is the recursive \u201calgorithm\u201d that finds the slide\ndown."]}),"\n",(0,a.jsxs)(e.p,{children:["It is a relatively simple solution\u2026 There's nothing to do at the bottom of the\npyramid, so we just return the value in the ",(0,a.jsx)(e.em,{children:"cell"}),". Otherwise we add it and try\nto slide down the available cells below the current row."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"If you get the source code and run it yourself, it runs rather fine\u2026 I hope you\nare wondering about the time complexity of the proposed solution and, since it\nreally is a na\xefve solution, the time complexity is pretty bad. Let's find the\nworst case scenario."}),"\n",(0,a.jsx)(e.p,{children:"Let's start with the first overload:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid) {\n return longestSlideDown(pyramid, 0, 0);\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["There's not much to do here, so we can safely say that the time complexity of\nthis function is bounded by ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]}),", where ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"T"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6833em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"})]})})]})," is our second overload. This\ndoesn't tell us anything, so let's move on to the second overload where we are\ngoing to define the ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})," function."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: We have gotten out of bounds, there's no reasonable value to\n // return, so we just return the \u2039MIN_VALUE\u203a to ensure that it cannot\n // be maximum.\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: Bottom of the pyramid, we just return the value, there's\n // nowhere to slide anymore.\n return pyramid[row][col];\n }\n\n // Otherwise we account for the current position and return maximum of the\n // available \u201cslides\u201d.\n return pyramid[row][col] + Math.max(\n longestSlideDown(pyramid, row + 1, col),\n longestSlideDown(pyramid, row + 1, col + 1));\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Fun fact is that the whole \u201calgorithm\u201d consists of just 2 ",(0,a.jsx)(e.code,{children:"return"})," statements\nand nothing else. Let's dissect them!"]}),"\n",(0,a.jsxs)(e.p,{children:["First ",(0,a.jsx)(e.code,{children:"return"})," statement is the base case, so it has a constant time complexity."]}),"\n",(0,a.jsxs)(e.p,{children:["Second one a bit tricky. We add two numbers together, which we'll consider as\nconstant, but for the right part of the expression we take maximum from the left\nand right paths. OK\u2026 So what happens? We evaluate the ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," while\nchoosing the under and right both. They are separate computations though, so we\nare branching from each call of ",(0,a.jsx)(e.code,{children:"longestSlideDown"}),", unless it's a base case."]}),"\n",(0,a.jsx)(e.p,{children:"What does that mean for us then? We basically get"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"{"}),(0,a.jsxs)(e.mtable,{rowspacing:"0.36em",columnalign:"left left",columnspacing:"1em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsx)(e.mn,{children:"1"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mtext,{children:",\xa0if\xa0"}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"1"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"1"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsx)(e.mtext,{children:",\xa0otherwise"})})})]})]})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(y) =\n\\begin{cases}\n1 & \\text{, if } y = rows \\\\\n1 + 2 \\cdot T(y + 1) & \\text{, otherwise}\n\\end{cases}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mclose",children:")"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:(0,a.jsx)(e.span,{className:"delimsizing size4",children:"{"})}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.69em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.69em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord",children:"1"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.25em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord",children:"1"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"1"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.19em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"arraycolsep",style:{width:"1em"}}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.69em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.69em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord text",children:(0,a.jsx)(e.span,{className:"mord",children:",\xa0if\xa0"})}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.25em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord text",children:(0,a.jsx)(e.span,{className:"mord",children:",\xa0otherwise"})})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.19em"},children:(0,a.jsx)(e.span,{})})})]})})]})}),(0,a.jsx)(e.span,{className:"mclose nulldelimiter"})]})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"That looks rather easy to compute, isn't it? If you sum it up, you'll get:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mo,{children:"\u2208"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsxs)(e.msup,{children:[(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"})]})]}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(rows) \\in \\mathcal{O}(2^{rows})"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"\u2208"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsx)(e.span,{className:"vlist-t",children:(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.7144em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.113em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mathnormal mtight",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal mtight",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal mtight",children:"s"})]})})]})})})})})]}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"If you wonder why, I'll try to describe it intuitively:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["In each call to ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," we do some work in constant time,\nregardless of being in the base case. Those are the ",(0,a.jsx)(e.code,{children:"1"}),"s in both cases."]}),"\n",(0,a.jsxs)(e.li,{children:["If we are not in the base case, we move one row down ",(0,a.jsx)(e.strong,{children:"twice"}),". That's how we\nobtained ",(0,a.jsx)(e.code,{children:"2 *"})," and ",(0,a.jsx)(e.code,{children:"y + 1"})," in the ",(0,a.jsx)(e.em,{children:"otherwise"})," case."]}),"\n",(0,a.jsxs)(e.li,{children:["We move row-by-row, so we move down ",(0,a.jsx)(e.code,{children:"y"}),"-times and each call splits to two\nsubtrees."]}),"\n",(0,a.jsxs)(e.li,{children:["Overall, if we were to represent the calls as a tree, we would get a full\nbinary tree of height ",(0,a.jsx)(e.code,{children:"y"}),", in each node we do some work in constant time,\ntherefore we can just sum the ones."]}),"\n"]}),"\n",(0,a.jsx)(e.admonition,{type:"warning",children:(0,a.jsx)(e.p,{children:"It would've been more complicated to get an exact result. In the equation above\nwe are assuming that the width of the pyramid is bound by the height."})}),"\n",(0,a.jsxs)(e.p,{children:["Hopefully we can agree that this is not the best we can do. ","\ud83d\ude09"]}),"\n",(0,a.jsx)(e.h2,{id:"greedy-solution",children:"Greedy solution"}),"\n",(0,a.jsxs)(e.p,{children:["We will try to optimize it a bit. Let's start with a relatively simple ",(0,a.jsx)(e.em,{children:"greedy"}),"\napproach."]}),"\n",(0,a.jsx)(e.admonition,{title:"Greedy algorithms",type:"info",children:(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Greedy algorithms"})," can be described as algorithms that decide the action on the\noptimal option at the moment."]})}),"\n",(0,a.jsx)(e.p,{children:"We can try to adjust the na\xefve solution. The most problematic part are the\nrecursive calls. Let's apply the greedy approach there:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row == pyramid.length - 1) {\n // BASE: We're at the bottom\n return pyramid[row][col];\n }\n\n if (col + 1 >= pyramid[row + 1].length\n || pyramid[row + 1][col] > pyramid[row + 1][col + 1]) {\n // If we cannot go right or it's not feasible, we continue to the left.\n return pyramid[row][col] + longestSlideDown(pyramid, row + 1, col);\n }\n\n // Otherwise we just move to the right.\n return pyramid[row][col] + longestSlideDown(pyramid, row + 1, col + 1);\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["OK, if we cannot go right ",(0,a.jsx)(e.strong,{children:"or"})," the right path adds smaller value to the sum,\nwe simply go left."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-1",children:"Time complexity"}),"\n",(0,a.jsxs)(e.p,{children:["We have switched from ",(0,a.jsx)(e.em,{children:"adding the maximum"})," to ",(0,a.jsx)(e.em,{children:"following the \u201cbigger\u201d path"}),", so\nwe improved the time complexity tremendously. We just go down the pyramid all\nthe way to the bottom. Therefore we are getting:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsx)(e.p,{children:"We have managed to convert our exponential solution into a linear one."}),"\n",(0,a.jsx)(e.h3,{id:"running-the-tests",children:"Running the tests"}),"\n",(0,a.jsx)(e.p,{children:"However, if we run the tests, we notice that the second test failed:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"Test #1: passed\nTest #2: failed\n"})}),"\n",(0,a.jsxs)(e.p,{children:["What's going on? Well, we have improved the time complexity, but greedy\nalgorithms are not the ideal solution to ",(0,a.jsx)(e.strong,{children:"all"})," problems. In this case there\nmay be a solution that is bigger than the one found using the greedy algorithm."]}),"\n",(0,a.jsx)(e.p,{children:"Imagine the following pyramid:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 1\n 2 3\n 5 6 7\n 8 9 10 11\n99 13 14 15 16\n"})}),"\n",(0,a.jsx)(e.p,{children:"We start at the top:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"1"}),", we can choose from ",(0,a.jsx)(e.code,{children:"2"})," and ",(0,a.jsx)(e.code,{children:"3"}),", ",(0,a.jsx)(e.code,{children:"3"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"3"}),", we can choose from ",(0,a.jsx)(e.code,{children:"6"})," and ",(0,a.jsx)(e.code,{children:"7"}),", ",(0,a.jsx)(e.code,{children:"7"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"7"}),", we can choose from ",(0,a.jsx)(e.code,{children:"10"})," and ",(0,a.jsx)(e.code,{children:"11"}),", ",(0,a.jsx)(e.code,{children:"11"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"11"}),", we can choose from ",(0,a.jsx)(e.code,{children:"15"})," and ",(0,a.jsx)(e.code,{children:"16"}),", ",(0,a.jsx)(e.code,{children:"16"})," looks better, so\nwe choose it."]}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Our final sum is: ",(0,a.jsx)(e.code,{children:"1 + 3 + 7 + 11 + 16 = 38"}),", but in the bottom left cell we\nhave a ",(0,a.jsx)(e.code,{children:"99"})," that is bigger than our whole sum."]}),"\n",(0,a.jsx)(e.admonition,{type:"tip",children:(0,a.jsx)(e.p,{children:"Dijkstra's algorithm is a greedy algorithm too, try to think why it is correct."})}),"\n",(0,a.jsx)(e.h2,{id:"top-down-dp",children:"Top-down DP"}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Top-down dynamic programming"})," is probably the most common approach, since (at\nleast looks like) is the easiest to implement. The whole point is avoiding the\nunnecessary computations that we have already done."]}),"\n",(0,a.jsxs)(e.p,{children:["In our case, we can use our na\xefve solution and put a ",(0,a.jsx)(e.em,{children:"cache"})," on top of it that\nwill make sure, we don't do unnecessary calculations."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"// This \u201cstructure\u201d is required, since I have decided to use \u2039TreeMap\u203a which\n// requires the ordering on the keys. It represents one position in the pyramid.\nrecord Position(int row, int col) implements Comparable<Position> {\n public int compareTo(Position r) {\n if (row != r.row) {\n return Integer.valueOf(row).compareTo(r.row);\n }\n\n if (col != r.col) {\n return Integer.valueOf(col).compareTo(r.col);\n }\n\n return 0;\n }\n}\n\npublic static int longestSlideDown(\n int[][] pyramid,\n TreeMap<Position, Integer> cache,\n Position position) {\n int row = position.row;\n int col = position.col;\n\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: out of bounds\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: bottom of the pyramid\n return pyramid[position.row][position.col];\n }\n\n if (!cache.containsKey(position)) {\n // We haven't computed the position yet, so we run the same \u201cformula\u201d as\n // in the na\xefve version \xbband\xab we put calculated slide into the cache.\n // Next time we want the slide down from given position, it will be just\n // retrieved from the cache.\n int slideDown = Math.max(\n longestSlideDown(pyramid, cache, new Position(row + 1, col)),\n longestSlideDown(pyramid, cache, new Position(row + 1, col + 1)));\n cache.put(position, pyramid[row][col] + slideDown);\n }\n\n return cache.get(position);\n}\n\npublic static int longestSlideDown(int[][] pyramid) {\n // At the beginning we need to create a cache and share it across the calls.\n TreeMap<Position, Integer> cache = new TreeMap<>();\n return longestSlideDown(pyramid, cache, new Position(0, 0));\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["You have probably noticed that ",(0,a.jsx)(e.code,{children:"record Position"})," have appeared. Since we are\ncaching the already computed values, we need a \u201creasonable\u201d key. In this case we\nshare the cache only for one ",(0,a.jsx)(e.em,{children:"run"})," (i.e. pyramid) of the ",(0,a.jsx)(e.code,{children:"longestSlideDown"}),", so\nwe can cache just with the indices within the pyramid, i.e. the ",(0,a.jsx)(e.code,{children:"Position"}),"."]}),"\n",(0,a.jsx)(e.admonition,{title:"Record",type:"tip",children:(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Record"})," is relatively new addition to the Java language. It is basically an\nimmutable structure with implicitly defined ",(0,a.jsx)(e.code,{children:".equals()"}),", ",(0,a.jsx)(e.code,{children:".hashCode()"}),",\n",(0,a.jsx)(e.code,{children:".toString()"})," and getters for the attributes."]})}),"\n",(0,a.jsxs)(e.p,{children:["Because of the choice of ",(0,a.jsx)(e.code,{children:"TreeMap"}),", we had to additionally define the ordering\non it."]}),"\n",(0,a.jsxs)(e.p,{children:["In the ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," you can notice that the computation which used to be\nat the end of the na\xefve version above, is now wrapped in an ",(0,a.jsx)(e.code,{children:"if"})," statement that\nchecks for the presence of the position in the cache and computes the slide down\njust when it's needed."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-2",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"If you think that evaluating time complexity for this approach is a bit more\ntricky, you are right. Keeping the cache in mind, it is not the easiest thing\nto do. However there are some observations that might help us figure this out:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsx)(e.li,{children:"Slide down from each position is calculated only once."}),"\n",(0,a.jsx)(e.li,{children:"Once calculated, we use the result from the cache."}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Knowing this, we still cannot, at least easily, describe the time complexity of\nfinding the best slide down from a specific position, ",(0,a.jsx)(e.strong,{children:"but"})," we can bound it\nfrom above for the ",(0,a.jsx)(e.strong,{children:"whole"})," run from the top. Now the question is how we can do\nthat!"]}),"\n",(0,a.jsxs)(e.p,{children:["Overall we are doing the same things for almost",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," all of the positions within\nthe pyramid:"]}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"We calculate and store it (using the partial results stored in cache). This\nis done only once."}),"\n",(0,a.jsxs)(e.p,{children:["For each calculation we take 2 values from the cache and insert one value.\nBecause we have chosen ",(0,a.jsx)(e.code,{children:"TreeMap"}),", these 3 operations have logarithmic time\ncomplexity and therefore this step is equivalent to ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"3"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"3 \\cdot \\log_2{n}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"3"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),"."]}),"\n",(0,a.jsx)(e.p,{children:"However for the sake of simplicity, we are going to account only for the\ninsertion, the reason is rather simple, if we include the 2 retrievals here,\nit will be interleaved with the next step, therefore it is easier to keep the\nretrievals in the following point."}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsx)(e.p,{children:"You might have noticed it's still not that easy, cause we're not having full\ncache right from the beginning, but the sum of those logarithms cannot be\nexpressed in a nice way, so taking the upper bound, i.e. expecting the cache\nto be full at all times, is the best option for nice and readable complexity\nof the whole approach."})}),"\n",(0,a.jsxs)(e.p,{children:["Our final upper bound of this work is therefore ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\log_2{n}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})})]}),"."]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsxs)(e.p,{children:["We retrieve it from the cache. Same as in first point, but only twice, so we\nget ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"2 \\cdot \\log_2{n}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),"."]}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["It's done twice because of the ",(0,a.jsx)(e.code,{children:".containsKey()"})," in the ",(0,a.jsx)(e.code,{children:"if"})," condition."]})}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(e.p,{children:"Okay, we have evaluated work done for each of the cells in the pyramid and now\nwe need to put it together."}),"\n",(0,a.jsx)(e.p,{children:"Let's split the time complexity of our solution into two operands:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(r + s)"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"r"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"r"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})]})})]})," will represent the ",(0,a.jsx)(e.em,{children:"actual"})," calculation of the cells and ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"s"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"s"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})})]})," will represent\nthe additional retrievals on top of the calculation."]}),"\n",(0,a.jsxs)(e.p,{children:["We calculate the values only ",(0,a.jsx)(e.strong,{children:"once"}),", therefore we can safely agree on:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"r"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\nr &= n \\cdot \\log{n} \\\\\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1.5em",verticalAlign:"-0.5em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"1em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.16em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.5em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"1em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.16em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.5em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),"\n",(0,a.jsxs)(e.p,{children:["What about the ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"s"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"s"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})})]})," though? Key observation here is the fact that we have 2\nlookups on the tree in each of them ",(0,a.jsx)(e.strong,{children:"and"})," we do it twice, cause each cell has\nat most 2 parents:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"("}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{fence:"true",children:")"})]})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"4"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\ns &= n \\cdot 2 \\cdot \\left( 2 \\cdot \\log{n} \\right) \\\\\ns &= 4 \\cdot n \\cdot \\log{n}\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:"("}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose delimcenter",style:{top:"0em"},children:")"})]})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"4"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsxs)(e.p,{children:["You might've noticed that lookups actually take more time than the construction\nof the results. This is not entirely true, since we have included the\n",(0,a.jsx)(e.code,{children:".containsKey()"})," and ",(0,a.jsx)(e.code,{children:".get()"})," from the ",(0,a.jsx)(e.code,{children:"return"})," statement in the second part."]}),(0,a.jsx)(e.p,{children:"If we were to represent this more precisely, we could've gone with:"}),(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"r"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"3"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\nr &= 3 \\cdot n \\cdot \\log{n} \\\\\ns &= 2 \\cdot n \\cdot \\log{n}\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"3"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),(0,a.jsx)(e.p,{children:"On the other hand we are summing both numbers together, therefore in the end it\ndoesn't really matter."}),(0,a.jsxs)(e.p,{children:["(",(0,a.jsx)(e.em,{children:"Feel free to compare the sums of both \u201csplits\u201d."}),")"]})]}),"\n",(0,a.jsxs)(e.p,{children:["And so our final time complexity for the whole ",(0,a.jsx)(e.em,{children:"top-down dynamic programming"}),"\napproach is:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"4"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mn,{children:"5"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(r + s) \\\\\n\\mathcal{O}(n \\cdot \\log{n} + 4 \\cdot n \\cdot \\log{n}) \\\\\n\\mathcal{O}(5 \\cdot n \\cdot \\log{n}) \\\\\n\\mathcal{O}(n \\cdot \\log{n})"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"4"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4445em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord",children:"5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4445em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(e.p,{children:["As you can see, this is worse than our ",(0,a.jsx)(e.em,{children:"greedy"})," solution that was incorrect, but\nit's better than the ",(0,a.jsx)(e.em,{children:"na\xefve"})," one."]}),"\n",(0,a.jsx)(e.h3,{id:"memory-complexity",children:"Memory complexity"}),"\n",(0,a.jsxs)(e.p,{children:["With this approach we need to talk about the memory complexity too, because we\nhave introduced cache. If you think that the memory complexity is linear to the\ninput, you are right. We start at the top and try to find each and every slide\ndown. At the end we get the final result for ",(0,a.jsx)(e.code,{children:"new Position(0, 0)"}),", so we need to\ncompute everything below."]}),"\n",(0,a.jsx)(e.p,{children:"That's how we obtain:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"n"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})]})})]})," represents the total amount of cells in the pyramid, i.e."]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.munderover,{children:[(0,a.jsx)(e.mo,{children:"\u2211"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"0"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"p"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"y"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"r"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"a"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"m"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"i"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"d"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"."}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"l"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"e"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"n"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"g"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"t"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"h"})]}),(0,a.jsx)(e.mo,{children:"\u2212"}),(0,a.jsx)(e.mn,{children:"1"})]})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"p"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"y"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"r"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"a"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"m"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"i"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"d"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"["}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{fence:"true",children:"]"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"."}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"l"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"e"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"n"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"g"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"t"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"h"})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\sum_{y=0}^{\\mathtt{pyramid.length} - 1} \\mathtt{pyramid}\\left[y\\right]\\mathtt{.length}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3.2709em",verticalAlign:"-1.4032em"}}),(0,a.jsx)(e.span,{className:"mop op-limits",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.8677em"},children:[(0,a.jsxs)(e.span,{style:{top:"-1.8829em",marginLeft:"0em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mathnormal mtight",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mrel mtight",children:"="}),(0,a.jsx)(e.span,{className:"mord mtight",children:"0"})]})})]}),(0,a.jsxs)(e.span,{style:{top:"-3.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{children:(0,a.jsx)(e.span,{className:"mop op-symbol large-op",children:"\u2211"})})]}),(0,a.jsxs)(e.span,{style:{top:"-4.3666em",marginLeft:"0em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mtight",children:(0,a.jsx)(e.span,{className:"mord mathtt mtight",children:"pyramid.length"})}),(0,a.jsx)(e.span,{className:"mbin mtight",children:"\u2212"}),(0,a.jsx)(e.span,{className:"mord mtight",children:"1"})]})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.4032em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathtt",children:"pyramid"})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:"["}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mclose delimcenter",style:{top:"0em"},children:"]"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathtt",children:".length"})})]})})]})}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["If you're wondering whether it's correct because of the second ",(0,a.jsx)(e.code,{children:"if"})," in our\nfunction, your guess is right. However we are expressing the complexity in the\nBachmann-Landau notation, so we care about the ",(0,a.jsx)(e.strong,{children:"upper bound"}),", not the exact\nnumber."]})}),"\n",(0,a.jsxs)(e.admonition,{title:"Can this be optimized?",type:"tip",children:[(0,a.jsx)(e.p,{children:"Yes, it can! Try to think about a way, how can you minimize the memory\ncomplexity of this approach. I'll give you a hint:"}),(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})})]}),"\n",(0,a.jsx)(e.h2,{id:"bottom-up-dp",children:"Bottom-up DP"}),"\n",(0,a.jsxs)(e.p,{children:["If you try to think in depth about the top-down DP solution, you might notice\nthat the ",(0,a.jsx)(e.em,{children:"core"})," of it stands on caching the calculations that have been already\ndone on the lower \u201clevels\u201d of the pyramid. Our bottom-up implementation will be\nusing this fact!"]}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsxs)(e.p,{children:["As I have said in the ",(0,a.jsx)(e.em,{children:"top-down DP"})," section, it is the easiest way to implement\nDP (unless the cached function has complicated parameters, in that case it might\nget messy)."]}),(0,a.jsx)(e.p,{children:"Bottom-up dynamic programming can be more effective, but may be more complicated\nto implement right from the beginning."})]}),"\n",(0,a.jsx)(e.p,{children:"Let's see how we can implement it:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid) {\n // In the beginning we declare new array. At this point it is easier to just\n // work with the one dimension, i.e. just allocating the space for the rows.\n int[][] slideDowns = new int[pyramid.length][];\n\n // Bottom row gets just copied, there's nothing else to do\u2026 It's the base\n // case.\n slideDowns[pyramid.length - 1] = Arrays.copyOf(pyramid[pyramid.length - 1],\n pyramid[pyramid.length - 1].length);\n\n // Then we need to propagate the found slide downs for each of the levels\n // above.\n for (int y = pyramid.length - 2; y >= 0; --y) {\n // We start by copying the values lying in the row we're processing.\n // They get included in the final sum and we need to allocate the space\n // for the precalculated slide downs anyways.\n int[] row = Arrays.copyOf(pyramid[y], pyramid[y].length);\n\n // At this we just need to \u201cfetch\u201d the partial results from \u201cneighbours\u201d\n for (int x = 0; x < row.length; ++x) {\n // We look under our position, since we expect the rows to get\n // shorter, we can safely assume such position exists.\n int under = slideDowns[y + 1][x];\n\n // Then we have a look to the right, such position doesn't have to\n // exist, e.g. on the right edge, so we validate the index, and if\n // it doesn't exist, we just assign minimum of the \u2039int\u203a which makes\n // sure that it doesn't get picked in the \u2039Math.max()\u203a call.\n int toRight = x + 1 < slideDowns[y + 1].length\n ? slideDowns[y + 1][x + 1]\n : Integer.MIN_VALUE;\n\n // Finally we add the best choice at this point.\n row[x] += Math.max(under, toRight);\n }\n\n // And save the row we've just calculated partial results for to the\n // \u201ctable\u201d.\n slideDowns[y] = row;\n }\n\n // At the end we can find our seeked slide down at the top cell.\n return slideDowns[0][0];\n}\n"})}),"\n",(0,a.jsx)(e.p,{children:"I've tried to explain the code as much as possible within the comments, since it\nmight be more beneficial to see right next to the \u201coffending\u201d lines."}),"\n",(0,a.jsxs)(e.p,{children:["As you can see, in this approach we go from the other side",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-3",id:"user-content-fnref-3","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),", the bottom of\nthe pyramid and propagate the partial results up."]}),"\n",(0,a.jsxs)(e.admonition,{type:"info",children:[(0,a.jsxs)(e.mdxAdmonitionTitle,{children:["How is this different from the ",(0,a.jsx)(e.em,{children:"greedy"})," solution???"]}),(0,a.jsxs)(e.p,{children:["If you try to compare them, you might find a very noticable difference. The\ngreedy approach is going from the top to the bottom without ",(0,a.jsx)(e.strong,{children:"any"})," knowledge of\nwhat's going on below. On the other hand, bottom-up DP is going from the bottom\n(",(0,a.jsx)(e.em,{children:"DUH\u2026"}),") and ",(0,a.jsx)(e.strong,{children:"propagates"})," the partial results to the top. The propagation is\nwhat makes sure that at the top I don't choose the best ",(0,a.jsx)(e.strong,{children:"local"})," choice, but\nthe best ",(0,a.jsx)(e.strong,{children:"overall"})," result I can achieve."]})]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-3",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"Time complexity of this solution is rather simple. We allocate an array for the\nrows and then for each row, we copy it and adjust the partial results. Doing\nthis we get:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows + 2n)"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"Of course, this is an upper bound, since we iterate through the bottom row only\nonce."}),"\n",(0,a.jsx)(e.h3,{id:"memory-complexity-1",children:"Memory complexity"}),"\n",(0,a.jsxs)(e.p,{children:["We're allocating an array for the pyramid ",(0,a.jsx)(e.strong,{children:"again"})," for our partial results, so\nwe get:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsx)(e.p,{children:"If we were writing this in C++ or Rust, we could've avoided that, but not\nreally."}),(0,a.jsxs)(e.p,{children:["C++ would allow us to ",(0,a.jsx)(e.strong,{children:"copy"})," the pyramid rightaway into the parameter, so we\nwould be able to directly change it. However it's still a copy, even though we\ndon't need to allocate anything ourselves. It's just implicitly done for us."]}),(0,a.jsxs)(e.p,{children:["Rust is more funny in this case. If the pyramids weren't used after the call of\n",(0,a.jsx)(e.code,{children:"longest_slide_down"}),", it would simply ",(0,a.jsx)(e.strong,{children:"move"})," them into the functions. If they\nwere used afterwards, the compiler would force you to either borrow it, or\n",(0,a.jsx)(e.em,{children:"clone-and-move"})," for the function."]}),(0,a.jsx)(e.hr,{}),(0,a.jsxs)(e.p,{children:["Since we're doing it in Java, we get a reference to the ",(0,a.jsx)(e.em,{children:"original"})," array and we\ncan't do whatever we want with it."]})]}),"\n",(0,a.jsx)(e.h2,{id:"summary",children:"Summary"}),"\n",(0,a.jsxs)(e.p,{children:["And we've finally reached the end. We have seen 4 different \u201csolutions\u201d",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-4",id:"user-content-fnref-4","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"4"})})," of\nthe same problem using different approaches. Different approaches follow the\norder in which you might come up with them, each approach influences its\nsuccessor and represents the way we can enhance the existing implementation."]}),"\n",(0,a.jsx)(e.hr,{}),"\n",(0,a.jsx)(e.admonition,{title:"source",type:"info",children:(0,a.jsxs)(e.p,{children:["You can find source code referenced in the text\n",(0,a.jsx)(e.a,{href:"pathname:///files/algorithms/recursion/pyramid-slide-down.tar.gz",children:"here"}),"."]})}),"\n",(0,a.jsxs)(e.section,{"data-footnotes":!0,className:"footnotes",children:[(0,a.jsx)(e.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{id:"user-content-fn-1",children:["\n",(0,a.jsxs)(e.p,{children:["cause why not, right!? ",(0,a.jsx)(e.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-2",children:["\n",(0,a.jsxs)(e.p,{children:["except the bottom row ",(0,a.jsx)(e.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-3",children:["\n",(0,a.jsxs)(e.p,{children:["definitely not an RHCP reference ","\ud83d\ude09 ",(0,a.jsx)(e.a,{href:"#user-content-fnref-3","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-4",children:["\n",(0,a.jsxs)(e.p,{children:["one was not correct, thus the quotes ",(0,a.jsx)(e.a,{href:"#user-content-fnref-4","data-footnote-backref":"","aria-label":"Back to reference 4",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function o(s={}){const{wrapper:e}={...(0,i.a)(),...s.components};return e?(0,a.jsx)(e,{...s,children:(0,a.jsx)(h,{...s})}):h(s)}},1151:(s,e,n)=>{n.d(e,{Z:()=>r,a:()=>t});var a=n(7294);const i={},l=a.createContext(i);function t(s){const e=a.useContext(l);return a.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function r(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:t(s.components),a.createElement(l.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/assets/js/5fe5d476.f7c213ae.js b/assets/js/5fe5d476.f7c213ae.js new file mode 100644 index 0000000..85bbcb9 --- /dev/null +++ b/assets/js/5fe5d476.f7c213ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2619],{14457:(s,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var a=n(85893),i=n(11151);const l={id:"pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",tags:["java","recursion","exponential","greedy","dynamic-programming","top-down-dp","bottom-up-dp"],last_updated:{date:new Date("2023-08-17T00:00:00.000Z")}},t=void 0,r={id:"recursion/pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",source:"@site/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",sourceDirName:"04-recursion",slug:"/recursion/pyramid-slide-down",permalink:"/algorithms/recursion/pyramid-slide-down",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",tags:[{label:"java",permalink:"/algorithms/tags/java"},{label:"recursion",permalink:"/algorithms/tags/recursion"},{label:"exponential",permalink:"/algorithms/tags/exponential"},{label:"greedy",permalink:"/algorithms/tags/greedy"},{label:"dynamic-programming",permalink:"/algorithms/tags/dynamic-programming"},{label:"top-down-dp",permalink:"/algorithms/tags/top-down-dp"},{label:"bottom-up-dp",permalink:"/algorithms/tags/bottom-up-dp"}],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{id:"pyramid-slide-down",title:"Introduction to dynamic programming",description:"Solving a problem in different ways.\n",tags:["java","recursion","exponential","greedy","dynamic-programming","top-down-dp","bottom-up-dp"],last_updated:{date:"2023-08-17T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Recursion and backtracking with Robot Karel",permalink:"/algorithms/recursion/karel-1"},next:{title:"Red-Black Trees",permalink:"/algorithms/category/red-black-trees"}},c={},m=[{value:"Problem",id:"problem",level:2},{value:"Solving the problem",id:"solving-the-problem",level:2},{value:"Na\xefve solution",id:"na\xefve-solution",level:2},{value:"Time complexity",id:"time-complexity",level:3},{value:"Greedy solution",id:"greedy-solution",level:2},{value:"Time complexity",id:"time-complexity-1",level:3},{value:"Running the tests",id:"running-the-tests",level:3},{value:"Top-down DP",id:"top-down-dp",level:2},{value:"Time complexity",id:"time-complexity-2",level:3},{value:"Memory complexity",id:"memory-complexity",level:3},{value:"Bottom-up DP",id:"bottom-up-dp",level:2},{value:"Time complexity",id:"time-complexity-3",level:3},{value:"Memory complexity",id:"memory-complexity-1",level:3},{value:"Summary",id:"summary",level:2}];function h(s){const e={a:"a",admonition:"admonition",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",math:"math",mdxAdmonitionTitle:"mdxAdmonitionTitle",mi:"mi",mn:"mn",mo:"mo",mrow:"mrow",mspace:"mspace",mstyle:"mstyle",msub:"msub",msup:"msup",mtable:"mtable",mtd:"mtd",mtext:"mtext",mtr:"mtr",munderover:"munderover",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",...(0,i.a)(),...s.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.p,{children:"In this post we will try to solve one problem in different ways."}),"\n",(0,a.jsx)(e.h2,{id:"problem",children:"Problem"}),"\n",(0,a.jsxs)(e.p,{children:["The problem we are going to solve is one of ",(0,a.jsx)(e.em,{children:"CodeWars"})," katas and is called\n",(0,a.jsx)(e.a,{href:"https://www.codewars.com/kata/551f23362ff852e2ab000037",children:"Pyramid Slide Down"}),"."]}),"\n",(0,a.jsxs)(e.p,{children:["We are given a 2D array of integers and we are to find the ",(0,a.jsx)(e.em,{children:"slide down"}),".\n",(0,a.jsx)(e.em,{children:"Slide down"})," is a maximum sum of consecutive numbers from the top to the bottom."]}),"\n",(0,a.jsx)(e.p,{children:"Let's have a look at few examples. Consider the following pyramid:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 3\n 7 4\n 2 4 6\n8 5 9 3\n"})}),"\n",(0,a.jsx)(e.p,{children:"This pyramid has following slide down:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" *3\n *7 4\n 2 *4 6\n8 5 *9 3\n"})}),"\n",(0,a.jsxs)(e.p,{children:["And its value is ",(0,a.jsx)(e.code,{children:"23"}),"."]}),"\n",(0,a.jsxs)(e.p,{children:["We can also have a look at a ",(0,a.jsx)(e.em,{children:"bigger"})," example:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 75\n 95 64\n 17 47 82\n 18 35 87 10\n 20 4 82 47 65\n 19 1 23 3 34\n 88 2 77 73 7 63 67\n 99 65 4 28 6 16 70 92\n 41 41 26 56 83 40 80 70 33\n 41 48 72 33 47 32 37 16 94 29\n 53 71 44 65 25 43 91 52 97 51 14\n 70 11 33 28 77 73 17 78 39 68 17 57\n 91 71 52 38 17 14 91 43 58 50 27 29 48\n 63 66 4 68 89 53 67 30 73 16 69 87 40 31\n 4 62 98 27 23 9 70 98 73 93 38 53 60 4 23\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Slide down in this case is equal to ",(0,a.jsx)(e.code,{children:"1074"}),"."]}),"\n",(0,a.jsx)(e.h2,{id:"solving-the-problem",children:"Solving the problem"}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["I will describe the following ways you can approach this problem and implement\nthem in ",(0,a.jsx)(e.em,{children:"Java"}),(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),"."]})}),"\n",(0,a.jsxs)(e.p,{children:["For all of the following solutions I will be using basic ",(0,a.jsx)(e.code,{children:"main"})," function that\nwill output ",(0,a.jsx)(e.code,{children:"true"}),"/",(0,a.jsx)(e.code,{children:"false"})," based on the expected output of our algorithm. Any\nother differences will lie only in the solutions of the problem. You can see the\n",(0,a.jsx)(e.code,{children:"main"})," here:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:'public static void main(String[] args) {\n System.out.print("Test #1: ");\n System.out.println(longestSlideDown(new int[][] {\n { 3 },\n { 7, 4 },\n { 2, 4, 6 },\n { 8, 5, 9, 3 }\n }) == 23 ? "passed" : "failed");\n\n System.out.print("Test #2: ");\n System.out.println(longestSlideDown(new int[][] {\n { 75 },\n { 95, 64 },\n { 17, 47, 82 },\n { 18, 35, 87, 10 },\n { 20, 4, 82, 47, 65 },\n { 19, 1, 23, 75, 3, 34 },\n { 88, 2, 77, 73, 7, 63, 67 },\n { 99, 65, 4, 28, 6, 16, 70, 92 },\n { 41, 41, 26, 56, 83, 40, 80, 70, 33 },\n { 41, 48, 72, 33, 47, 32, 37, 16, 94, 29 },\n { 53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14 },\n { 70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57 },\n { 91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48 },\n { 63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31 },\n { 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23 },\n }) == 1074 ? "passed" : "failed");\n}\n'})}),"\n",(0,a.jsx)(e.h2,{id:"na\xefve-solution",children:"Na\xefve solution"}),"\n",(0,a.jsx)(e.p,{children:"Our na\xefve solution consists of trying out all the possible slides and finding\nthe one with maximum sum."}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: We have gotten out of bounds, there's no reasonable value to\n // return, so we just return the \u2039MIN_VALUE\u203a to ensure that it cannot\n // be maximum.\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: Bottom of the pyramid, we just return the value, there's\n // nowhere to slide anymore.\n return pyramid[row][col];\n }\n\n // Otherwise we account for the current position and return maximum of the\n // available \u201cslides\u201d.\n return pyramid[row][col] + Math.max(\n longestSlideDown(pyramid, row + 1, col),\n longestSlideDown(pyramid, row + 1, col + 1));\n}\n\npublic static int longestSlideDown(int[][] pyramid) {\n // We start the slide in the top cell of the pyramid.\n return longestSlideDown(pyramid, 0, 0);\n}\n"})}),"\n",(0,a.jsx)(e.p,{children:"As you can see, we have 2 overloads:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"int longestSlideDown(int[][] pyramid);\nint longestSlideDown(int[][] pyramid, int row, int col);\n"})}),"\n",(0,a.jsxs)(e.p,{children:["First one is used as a ",(0,a.jsx)(e.em,{children:"public interface"})," to the solution, you just pass in the\npyramid itself. Second one is the recursive \u201calgorithm\u201d that finds the slide\ndown."]}),"\n",(0,a.jsxs)(e.p,{children:["It is a relatively simple solution\u2026 There's nothing to do at the bottom of the\npyramid, so we just return the value in the ",(0,a.jsx)(e.em,{children:"cell"}),". Otherwise we add it and try\nto slide down the available cells below the current row."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"If you get the source code and run it yourself, it runs rather fine\u2026 I hope you\nare wondering about the time complexity of the proposed solution and, since it\nreally is a na\xefve solution, the time complexity is pretty bad. Let's find the\nworst case scenario."}),"\n",(0,a.jsx)(e.p,{children:"Let's start with the first overload:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid) {\n return longestSlideDown(pyramid, 0, 0);\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["There's not much to do here, so we can safely say that the time complexity of\nthis function is bounded by ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]}),", where ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"T"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6833em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"})]})})]})," is our second overload. This\ndoesn't tell us anything, so let's move on to the second overload where we are\ngoing to define the ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})," function."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: We have gotten out of bounds, there's no reasonable value to\n // return, so we just return the \u2039MIN_VALUE\u203a to ensure that it cannot\n // be maximum.\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: Bottom of the pyramid, we just return the value, there's\n // nowhere to slide anymore.\n return pyramid[row][col];\n }\n\n // Otherwise we account for the current position and return maximum of the\n // available \u201cslides\u201d.\n return pyramid[row][col] + Math.max(\n longestSlideDown(pyramid, row + 1, col),\n longestSlideDown(pyramid, row + 1, col + 1));\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Fun fact is that the whole \u201calgorithm\u201d consists of just 2 ",(0,a.jsx)(e.code,{children:"return"})," statements\nand nothing else. Let's dissect them!"]}),"\n",(0,a.jsxs)(e.p,{children:["First ",(0,a.jsx)(e.code,{children:"return"})," statement is the base case, so it has a constant time complexity."]}),"\n",(0,a.jsxs)(e.p,{children:["Second one a bit tricky. We add two numbers together, which we'll consider as\nconstant, but for the right part of the expression we take maximum from the left\nand right paths. OK\u2026 So what happens? We evaluate the ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," while\nchoosing the under and right both. They are separate computations though, so we\nare branching from each call of ",(0,a.jsx)(e.code,{children:"longestSlideDown"}),", unless it's a base case."]}),"\n",(0,a.jsx)(e.p,{children:"What does that mean for us then? We basically get"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"{"}),(0,a.jsxs)(e.mtable,{rowspacing:"0.36em",columnalign:"left left",columnspacing:"1em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsx)(e.mn,{children:"1"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mtext,{children:",\xa0if\xa0"}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"1"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"1"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"false",children:(0,a.jsx)(e.mtext,{children:",\xa0otherwise"})})})]})]})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(y) =\n\\begin{cases}\n1 & \\text{, if } y = rows \\\\\n1 + 2 \\cdot T(y + 1) & \\text{, otherwise}\n\\end{cases}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mclose",children:")"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:(0,a.jsx)(e.span,{className:"delimsizing size4",children:"{"})}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.69em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.69em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord",children:"1"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.25em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord",children:"1"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"1"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.19em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"arraycolsep",style:{width:"1em"}}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.69em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.69em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord text",children:(0,a.jsx)(e.span,{className:"mord",children:",\xa0if\xa0"})}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.25em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.008em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord text",children:(0,a.jsx)(e.span,{className:"mord",children:",\xa0otherwise"})})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.19em"},children:(0,a.jsx)(e.span,{})})})]})})]})}),(0,a.jsx)(e.span,{className:"mclose nulldelimiter"})]})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"That looks rather easy to compute, isn't it? If you sum it up, you'll get:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"T"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mo,{children:"\u2208"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsxs)(e.msup,{children:[(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"})]})]}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"T(rows) \\in \\mathcal{O}(2^{rows})"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.13889em"},children:"T"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"\u2208"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsx)(e.span,{className:"vlist-t",children:(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.7144em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.113em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mathnormal mtight",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal mtight",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal mtight",children:"s"})]})})]})})})})})]}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"If you wonder why, I'll try to describe it intuitively:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["In each call to ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," we do some work in constant time,\nregardless of being in the base case. Those are the ",(0,a.jsx)(e.code,{children:"1"}),"s in both cases."]}),"\n",(0,a.jsxs)(e.li,{children:["If we are not in the base case, we move one row down ",(0,a.jsx)(e.strong,{children:"twice"}),". That's how we\nobtained ",(0,a.jsx)(e.code,{children:"2 *"})," and ",(0,a.jsx)(e.code,{children:"y + 1"})," in the ",(0,a.jsx)(e.em,{children:"otherwise"})," case."]}),"\n",(0,a.jsxs)(e.li,{children:["We move row-by-row, so we move down ",(0,a.jsx)(e.code,{children:"y"}),"-times and each call splits to two\nsubtrees."]}),"\n",(0,a.jsxs)(e.li,{children:["Overall, if we were to represent the calls as a tree, we would get a full\nbinary tree of height ",(0,a.jsx)(e.code,{children:"y"}),", in each node we do some work in constant time,\ntherefore we can just sum the ones."]}),"\n"]}),"\n",(0,a.jsx)(e.admonition,{type:"warning",children:(0,a.jsx)(e.p,{children:"It would've been more complicated to get an exact result. In the equation above\nwe are assuming that the width of the pyramid is bound by the height."})}),"\n",(0,a.jsxs)(e.p,{children:["Hopefully we can agree that this is not the best we can do. ","\ud83d\ude09"]}),"\n",(0,a.jsx)(e.h2,{id:"greedy-solution",children:"Greedy solution"}),"\n",(0,a.jsxs)(e.p,{children:["We will try to optimize it a bit. Let's start with a relatively simple ",(0,a.jsx)(e.em,{children:"greedy"}),"\napproach."]}),"\n",(0,a.jsx)(e.admonition,{title:"Greedy algorithms",type:"info",children:(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Greedy algorithms"})," can be described as algorithms that decide the action on the\noptimal option at the moment."]})}),"\n",(0,a.jsx)(e.p,{children:"We can try to adjust the na\xefve solution. The most problematic part are the\nrecursive calls. Let's apply the greedy approach there:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid, int row, int col) {\n if (row == pyramid.length - 1) {\n // BASE: We're at the bottom\n return pyramid[row][col];\n }\n\n if (col + 1 >= pyramid[row + 1].length\n || pyramid[row + 1][col] > pyramid[row + 1][col + 1]) {\n // If we cannot go right or it's not feasible, we continue to the left.\n return pyramid[row][col] + longestSlideDown(pyramid, row + 1, col);\n }\n\n // Otherwise we just move to the right.\n return pyramid[row][col] + longestSlideDown(pyramid, row + 1, col + 1);\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["OK, if we cannot go right ",(0,a.jsx)(e.strong,{children:"or"})," the right path adds smaller value to the sum,\nwe simply go left."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-1",children:"Time complexity"}),"\n",(0,a.jsxs)(e.p,{children:["We have switched from ",(0,a.jsx)(e.em,{children:"adding the maximum"})," to ",(0,a.jsx)(e.em,{children:"following the \u201cbigger\u201d path"}),", so\nwe improved the time complexity tremendously. We just go down the pyramid all\nthe way to the bottom. Therefore we are getting:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsx)(e.p,{children:"We have managed to convert our exponential solution into a linear one."}),"\n",(0,a.jsx)(e.h3,{id:"running-the-tests",children:"Running the tests"}),"\n",(0,a.jsx)(e.p,{children:"However, if we run the tests, we notice that the second test failed:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"Test #1: passed\nTest #2: failed\n"})}),"\n",(0,a.jsxs)(e.p,{children:["What's going on? Well, we have improved the time complexity, but greedy\nalgorithms are not the ideal solution to ",(0,a.jsx)(e.strong,{children:"all"})," problems. In this case there\nmay be a solution that is bigger than the one found using the greedy algorithm."]}),"\n",(0,a.jsx)(e.p,{children:"Imagine the following pyramid:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:" 1\n 2 3\n 5 6 7\n 8 9 10 11\n99 13 14 15 16\n"})}),"\n",(0,a.jsx)(e.p,{children:"We start at the top:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"1"}),", we can choose from ",(0,a.jsx)(e.code,{children:"2"})," and ",(0,a.jsx)(e.code,{children:"3"}),", ",(0,a.jsx)(e.code,{children:"3"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"3"}),", we can choose from ",(0,a.jsx)(e.code,{children:"6"})," and ",(0,a.jsx)(e.code,{children:"7"}),", ",(0,a.jsx)(e.code,{children:"7"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"7"}),", we can choose from ",(0,a.jsx)(e.code,{children:"10"})," and ",(0,a.jsx)(e.code,{children:"11"}),", ",(0,a.jsx)(e.code,{children:"11"})," looks better, so we\nchoose it."]}),"\n",(0,a.jsxs)(e.li,{children:["Current cell: ",(0,a.jsx)(e.code,{children:"11"}),", we can choose from ",(0,a.jsx)(e.code,{children:"15"})," and ",(0,a.jsx)(e.code,{children:"16"}),", ",(0,a.jsx)(e.code,{children:"16"})," looks better, so\nwe choose it."]}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Our final sum is: ",(0,a.jsx)(e.code,{children:"1 + 3 + 7 + 11 + 16 = 38"}),", but in the bottom left cell we\nhave a ",(0,a.jsx)(e.code,{children:"99"})," that is bigger than our whole sum."]}),"\n",(0,a.jsx)(e.admonition,{type:"tip",children:(0,a.jsx)(e.p,{children:"Dijkstra's algorithm is a greedy algorithm too, try to think why it is correct."})}),"\n",(0,a.jsx)(e.h2,{id:"top-down-dp",children:"Top-down DP"}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Top-down dynamic programming"})," is probably the most common approach, since (at\nleast looks like) is the easiest to implement. The whole point is avoiding the\nunnecessary computations that we have already done."]}),"\n",(0,a.jsxs)(e.p,{children:["In our case, we can use our na\xefve solution and put a ",(0,a.jsx)(e.em,{children:"cache"})," on top of it that\nwill make sure, we don't do unnecessary calculations."]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"// This \u201cstructure\u201d is required, since I have decided to use \u2039TreeMap\u203a which\n// requires the ordering on the keys. It represents one position in the pyramid.\nrecord Position(int row, int col) implements Comparable<Position> {\n public int compareTo(Position r) {\n if (row != r.row) {\n return Integer.valueOf(row).compareTo(r.row);\n }\n\n if (col != r.col) {\n return Integer.valueOf(col).compareTo(r.col);\n }\n\n return 0;\n }\n}\n\npublic static int longestSlideDown(\n int[][] pyramid,\n TreeMap<Position, Integer> cache,\n Position position) {\n int row = position.row;\n int col = position.col;\n\n if (row >= pyramid.length || col < 0 || col >= pyramid[row].length) {\n // BASE: out of bounds\n return Integer.MIN_VALUE;\n }\n\n if (row == pyramid.length - 1) {\n // BASE: bottom of the pyramid\n return pyramid[position.row][position.col];\n }\n\n if (!cache.containsKey(position)) {\n // We haven't computed the position yet, so we run the same \u201cformula\u201d as\n // in the na\xefve version \xbband\xab we put calculated slide into the cache.\n // Next time we want the slide down from given position, it will be just\n // retrieved from the cache.\n int slideDown = Math.max(\n longestSlideDown(pyramid, cache, new Position(row + 1, col)),\n longestSlideDown(pyramid, cache, new Position(row + 1, col + 1)));\n cache.put(position, pyramid[row][col] + slideDown);\n }\n\n return cache.get(position);\n}\n\npublic static int longestSlideDown(int[][] pyramid) {\n // At the beginning we need to create a cache and share it across the calls.\n TreeMap<Position, Integer> cache = new TreeMap<>();\n return longestSlideDown(pyramid, cache, new Position(0, 0));\n}\n"})}),"\n",(0,a.jsxs)(e.p,{children:["You have probably noticed that ",(0,a.jsx)(e.code,{children:"record Position"})," have appeared. Since we are\ncaching the already computed values, we need a \u201creasonable\u201d key. In this case we\nshare the cache only for one ",(0,a.jsx)(e.em,{children:"run"})," (i.e. pyramid) of the ",(0,a.jsx)(e.code,{children:"longestSlideDown"}),", so\nwe can cache just with the indices within the pyramid, i.e. the ",(0,a.jsx)(e.code,{children:"Position"}),"."]}),"\n",(0,a.jsx)(e.admonition,{title:"Record",type:"tip",children:(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.em,{children:"Record"})," is relatively new addition to the Java language. It is basically an\nimmutable structure with implicitly defined ",(0,a.jsx)(e.code,{children:".equals()"}),", ",(0,a.jsx)(e.code,{children:".hashCode()"}),",\n",(0,a.jsx)(e.code,{children:".toString()"})," and getters for the attributes."]})}),"\n",(0,a.jsxs)(e.p,{children:["Because of the choice of ",(0,a.jsx)(e.code,{children:"TreeMap"}),", we had to additionally define the ordering\non it."]}),"\n",(0,a.jsxs)(e.p,{children:["In the ",(0,a.jsx)(e.code,{children:"longestSlideDown"})," you can notice that the computation which used to be\nat the end of the na\xefve version above, is now wrapped in an ",(0,a.jsx)(e.code,{children:"if"})," statement that\nchecks for the presence of the position in the cache and computes the slide down\njust when it's needed."]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-2",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"If you think that evaluating time complexity for this approach is a bit more\ntricky, you are right. Keeping the cache in mind, it is not the easiest thing\nto do. However there are some observations that might help us figure this out:"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsx)(e.li,{children:"Slide down from each position is calculated only once."}),"\n",(0,a.jsx)(e.li,{children:"Once calculated, we use the result from the cache."}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Knowing this, we still cannot, at least easily, describe the time complexity of\nfinding the best slide down from a specific position, ",(0,a.jsx)(e.strong,{children:"but"})," we can bound it\nfrom above for the ",(0,a.jsx)(e.strong,{children:"whole"})," run from the top. Now the question is how we can do\nthat!"]}),"\n",(0,a.jsxs)(e.p,{children:["Overall we are doing the same things for almost",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," all of the positions within\nthe pyramid:"]}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"We calculate and store it (using the partial results stored in cache). This\nis done only once."}),"\n",(0,a.jsxs)(e.p,{children:["For each calculation we take 2 values from the cache and insert one value.\nBecause we have chosen ",(0,a.jsx)(e.code,{children:"TreeMap"}),", these 3 operations have logarithmic time\ncomplexity and therefore this step is equivalent to ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"3"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"3 \\cdot \\log_2{n}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"3"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),"."]}),"\n",(0,a.jsx)(e.p,{children:"However for the sake of simplicity, we are going to account only for the\ninsertion, the reason is rather simple, if we include the 2 retrievals here,\nit will be interleaved with the next step, therefore it is easier to keep the\nretrievals in the following point."}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsx)(e.p,{children:"You might have noticed it's still not that easy, cause we're not having full\ncache right from the beginning, but the sum of those logarithms cannot be\nexpressed in a nice way, so taking the upper bound, i.e. expecting the cache\nto be full at all times, is the best option for nice and readable complexity\nof the whole approach."})}),"\n",(0,a.jsxs)(e.p,{children:["Our final upper bound of this work is therefore ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\log_2{n}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})})]}),"."]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsxs)(e.p,{children:["We retrieve it from the cache. Same as in first point, but only twice, so we\nget ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.msub,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"})]}),(0,a.jsx)(e.mn,{children:"2"})]}),(0,a.jsx)(e.mi,{children:"n"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"2 \\cdot \\log_2{n}"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.9386em",verticalAlign:"-0.2441em"}}),(0,a.jsxs)(e.span,{className:"mop",children:[(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"msupsub",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.207em"},children:(0,a.jsxs)(e.span,{style:{top:"-2.4559em",marginRight:"0.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"2.7em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsx)(e.span,{className:"mord mtight",children:"2"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.2441em"},children:(0,a.jsx)(e.span,{})})})]})})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),"."]}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["It's done twice because of the ",(0,a.jsx)(e.code,{children:".containsKey()"})," in the ",(0,a.jsx)(e.code,{children:"if"})," condition."]})}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(e.p,{children:"Okay, we have evaluated work done for each of the cells in the pyramid and now\nwe need to put it together."}),"\n",(0,a.jsx)(e.p,{children:"Let's split the time complexity of our solution into two operands:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(r + s)"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"r"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"r"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})]})})]})," will represent the ",(0,a.jsx)(e.em,{children:"actual"})," calculation of the cells and ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"s"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"s"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})})]})," will represent\nthe additional retrievals on top of the calculation."]}),"\n",(0,a.jsxs)(e.p,{children:["We calculate the values only ",(0,a.jsx)(e.strong,{children:"once"}),", therefore we can safely agree on:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"r"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\nr &= n \\cdot \\log{n} \\\\\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1.5em",verticalAlign:"-0.5em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"1em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.16em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.5em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsx)(e.span,{className:"vlist",style:{height:"1em"},children:(0,a.jsxs)(e.span,{style:{top:"-3.16em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"0.5em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),"\n",(0,a.jsxs)(e.p,{children:["What about the ",(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"s"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"s"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})]})})]})," though? Key observation here is the fact that we have 2\nlookups on the tree in each of them ",(0,a.jsx)(e.strong,{children:"and"})," we do it twice, cause each cell has\nat most 2 parents:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"("}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{fence:"true",children:")"})]})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"4"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\ns &= n \\cdot 2 \\cdot \\left( 2 \\cdot \\log{n} \\right) \\\\\ns &= 4 \\cdot n \\cdot \\log{n}\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:"("}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose delimcenter",style:{top:"0em"},children:")"})]})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"4"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsxs)(e.p,{children:["You might've noticed that lookups actually take more time than the construction\nof the results. This is not entirely true, since we have included the\n",(0,a.jsx)(e.code,{children:".containsKey()"})," and ",(0,a.jsx)(e.code,{children:".get()"})," from the ",(0,a.jsx)(e.code,{children:"return"})," statement in the second part."]}),(0,a.jsx)(e.p,{children:"If we were to represent this more precisely, we could've gone with:"}),(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mtable,{rowspacing:"0.25em",columnalign:"right left",columnspacing:"0em",children:[(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"r"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"3"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]}),(0,a.jsxs)(e.mtr,{children:[(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsx)(e.mi,{children:"s"})})}),(0,a.jsx)(e.mtd,{children:(0,a.jsx)(e.mstyle,{scriptlevel:"0",displaystyle:"true",children:(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mrow,{}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"})]})})})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\begin{align*}\nr &= 3 \\cdot n \\cdot \\log{n} \\\\\ns &= 2 \\cdot n \\cdot \\log{n}\n\\end{align*}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3em",verticalAlign:"-1.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsxs)(e.span,{className:"mtable",children:[(0,a.jsx)(e.span,{className:"col-align-r",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"})})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"col-align-l",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.75em"},children:[(0,a.jsxs)(e.span,{style:{top:"-3.91em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"3"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]}),(0,a.jsxs)(e.span,{style:{top:"-2.41em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3em"}}),(0,a.jsxs)(e.span,{className:"mord",children:[(0,a.jsx)(e.span,{className:"mord"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mrel",children:"="}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})})]})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.25em"},children:(0,a.jsx)(e.span,{})})})]})})]})})]})})]})}),(0,a.jsx)(e.p,{children:"On the other hand we are summing both numbers together, therefore in the end it\ndoesn't really matter."}),(0,a.jsxs)(e.p,{children:["(",(0,a.jsx)(e.em,{children:"Feel free to compare the sums of both \u201csplits\u201d."}),")"]})]}),"\n",(0,a.jsxs)(e.p,{children:["And so our final time complexity for the whole ",(0,a.jsx)(e.em,{children:"top-down dynamic programming"}),"\napproach is:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"4"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mn,{children:"5"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"}),(0,a.jsx)(e.mspace,{linebreak:"newline"}),(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{children:"\u22c5"}),(0,a.jsx)(e.mi,{children:"log"}),(0,a.jsx)(e.mo,{children:"\u2061"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(r + s) \\\\\n\\mathcal{O}(n \\cdot \\log{n} + 4 \\cdot n \\cdot \\log{n}) \\\\\n\\mathcal{O}(5 \\cdot n \\cdot \\log{n}) \\\\\n\\mathcal{O}(n \\cdot \\log{n})"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02778em"},children:"r"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.6444em"}}),(0,a.jsx)(e.span,{className:"mord",children:"4"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4445em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord",children:"5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4445em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]}),(0,a.jsx)(e.span,{className:"mspace newline"}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"\u22c5"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsxs)(e.span,{className:"mop",children:["lo",(0,a.jsx)(e.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsxs)(e.p,{children:["As you can see, this is worse than our ",(0,a.jsx)(e.em,{children:"greedy"})," solution that was incorrect, but\nit's better than the ",(0,a.jsx)(e.em,{children:"na\xefve"})," one."]}),"\n",(0,a.jsx)(e.h3,{id:"memory-complexity",children:"Memory complexity"}),"\n",(0,a.jsxs)(e.p,{children:["With this approach we need to talk about the memory complexity too, because we\nhave introduced cache. If you think that the memory complexity is linear to the\ninput, you are right. We start at the top and try to find each and every slide\ndown. At the end we get the final result for ",(0,a.jsx)(e.code,{children:"new Position(0, 0)"}),", so we need to\ncompute everything below."]}),"\n",(0,a.jsx)(e.p,{children:"That's how we obtain:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsx)(e.mrow,{children:(0,a.jsx)(e.mi,{children:"n"})}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"n"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"0.4306em"}}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"})]})})]})," represents the total amount of cells in the pyramid, i.e."]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.munderover,{children:[(0,a.jsx)(e.mo,{children:"\u2211"}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{children:"="}),(0,a.jsx)(e.mn,{children:"0"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"p"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"y"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"r"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"a"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"m"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"i"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"d"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"."}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"l"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"e"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"n"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"g"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"t"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"h"})]}),(0,a.jsx)(e.mo,{children:"\u2212"}),(0,a.jsx)(e.mn,{children:"1"})]})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"p"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"y"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"r"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"a"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"m"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"i"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"d"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mo,{fence:"true",children:"["}),(0,a.jsx)(e.mi,{children:"y"}),(0,a.jsx)(e.mo,{fence:"true",children:"]"})]}),(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"."}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"l"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"e"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"n"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"g"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"t"}),(0,a.jsx)(e.mi,{mathvariant:"monospace",children:"h"})]})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\sum_{y=0}^{\\mathtt{pyramid.length} - 1} \\mathtt{pyramid}\\left[y\\right]\\mathtt{.length}"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"3.2709em",verticalAlign:"-1.4032em"}}),(0,a.jsx)(e.span,{className:"mop op-limits",children:(0,a.jsxs)(e.span,{className:"vlist-t vlist-t2",children:[(0,a.jsxs)(e.span,{className:"vlist-r",children:[(0,a.jsxs)(e.span,{className:"vlist",style:{height:"1.8677em"},children:[(0,a.jsxs)(e.span,{style:{top:"-1.8829em",marginLeft:"0em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mathnormal mtight",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mrel mtight",children:"="}),(0,a.jsx)(e.span,{className:"mord mtight",children:"0"})]})})]}),(0,a.jsxs)(e.span,{style:{top:"-3.05em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{children:(0,a.jsx)(e.span,{className:"mop op-symbol large-op",children:"\u2211"})})]}),(0,a.jsxs)(e.span,{style:{top:"-4.3666em",marginLeft:"0em"},children:[(0,a.jsx)(e.span,{className:"pstrut",style:{height:"3.05em"}}),(0,a.jsx)(e.span,{className:"sizing reset-size6 size3 mtight",children:(0,a.jsxs)(e.span,{className:"mord mtight",children:[(0,a.jsx)(e.span,{className:"mord mtight",children:(0,a.jsx)(e.span,{className:"mord mathtt mtight",children:"pyramid.length"})}),(0,a.jsx)(e.span,{className:"mbin mtight",children:"\u2212"}),(0,a.jsx)(e.span,{className:"mord mtight",children:"1"})]})})]})]}),(0,a.jsx)(e.span,{className:"vlist-s",children:"\u200b"})]}),(0,a.jsx)(e.span,{className:"vlist-r",children:(0,a.jsx)(e.span,{className:"vlist",style:{height:"1.4032em"},children:(0,a.jsx)(e.span,{})})})]})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathtt",children:"pyramid"})}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsxs)(e.span,{className:"minner",children:[(0,a.jsx)(e.span,{className:"mopen delimcenter",style:{top:"0em"},children:"["}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.03588em"},children:"y"}),(0,a.jsx)(e.span,{className:"mclose delimcenter",style:{top:"0em"},children:"]"})]}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,a.jsx)(e.span,{className:"mord",children:(0,a.jsx)(e.span,{className:"mord mathtt",children:".length"})})]})})]})}),"\n",(0,a.jsx)(e.admonition,{type:"caution",children:(0,a.jsxs)(e.p,{children:["If you're wondering whether it's correct because of the second ",(0,a.jsx)(e.code,{children:"if"})," in our\nfunction, your guess is right. However we are expressing the complexity in the\nBachmann-Landau notation, so we care about the ",(0,a.jsx)(e.strong,{children:"upper bound"}),", not the exact\nnumber."]})}),"\n",(0,a.jsxs)(e.admonition,{title:"Can this be optimized?",type:"tip",children:[(0,a.jsx)(e.p,{children:"Yes, it can! Try to think about a way, how can you minimize the memory\ncomplexity of this approach. I'll give you a hint:"}),(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})})]}),"\n",(0,a.jsx)(e.h2,{id:"bottom-up-dp",children:"Bottom-up DP"}),"\n",(0,a.jsxs)(e.p,{children:["If you try to think in depth about the top-down DP solution, you might notice\nthat the ",(0,a.jsx)(e.em,{children:"core"})," of it stands on caching the calculations that have been already\ndone on the lower \u201clevels\u201d of the pyramid. Our bottom-up implementation will be\nusing this fact!"]}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsxs)(e.p,{children:["As I have said in the ",(0,a.jsx)(e.em,{children:"top-down DP"})," section, it is the easiest way to implement\nDP (unless the cached function has complicated parameters, in that case it might\nget messy)."]}),(0,a.jsx)(e.p,{children:"Bottom-up dynamic programming can be more effective, but may be more complicated\nto implement right from the beginning."})]}),"\n",(0,a.jsx)(e.p,{children:"Let's see how we can implement it:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-java",children:"public static int longestSlideDown(int[][] pyramid) {\n // In the beginning we declare new array. At this point it is easier to just\n // work with the one dimension, i.e. just allocating the space for the rows.\n int[][] slideDowns = new int[pyramid.length][];\n\n // Bottom row gets just copied, there's nothing else to do\u2026 It's the base\n // case.\n slideDowns[pyramid.length - 1] = Arrays.copyOf(pyramid[pyramid.length - 1],\n pyramid[pyramid.length - 1].length);\n\n // Then we need to propagate the found slide downs for each of the levels\n // above.\n for (int y = pyramid.length - 2; y >= 0; --y) {\n // We start by copying the values lying in the row we're processing.\n // They get included in the final sum and we need to allocate the space\n // for the precalculated slide downs anyways.\n int[] row = Arrays.copyOf(pyramid[y], pyramid[y].length);\n\n // At this we just need to \u201cfetch\u201d the partial results from \u201cneighbours\u201d\n for (int x = 0; x < row.length; ++x) {\n // We look under our position, since we expect the rows to get\n // shorter, we can safely assume such position exists.\n int under = slideDowns[y + 1][x];\n\n // Then we have a look to the right, such position doesn't have to\n // exist, e.g. on the right edge, so we validate the index, and if\n // it doesn't exist, we just assign minimum of the \u2039int\u203a which makes\n // sure that it doesn't get picked in the \u2039Math.max()\u203a call.\n int toRight = x + 1 < slideDowns[y + 1].length\n ? slideDowns[y + 1][x + 1]\n : Integer.MIN_VALUE;\n\n // Finally we add the best choice at this point.\n row[x] += Math.max(under, toRight);\n }\n\n // And save the row we've just calculated partial results for to the\n // \u201ctable\u201d.\n slideDowns[y] = row;\n }\n\n // At the end we can find our seeked slide down at the top cell.\n return slideDowns[0][0];\n}\n"})}),"\n",(0,a.jsx)(e.p,{children:"I've tried to explain the code as much as possible within the comments, since it\nmight be more beneficial to see right next to the \u201coffending\u201d lines."}),"\n",(0,a.jsxs)(e.p,{children:["As you can see, in this approach we go from the other side",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-3",id:"user-content-fnref-3","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),", the bottom of\nthe pyramid and propagate the partial results up."]}),"\n",(0,a.jsxs)(e.admonition,{type:"info",children:[(0,a.jsxs)(e.mdxAdmonitionTitle,{children:["How is this different from the ",(0,a.jsx)(e.em,{children:"greedy"})," solution???"]}),(0,a.jsxs)(e.p,{children:["If you try to compare them, you might find a very noticable difference. The\ngreedy approach is going from the top to the bottom without ",(0,a.jsx)(e.strong,{children:"any"})," knowledge of\nwhat's going on below. On the other hand, bottom-up DP is going from the bottom\n(",(0,a.jsx)(e.em,{children:"DUH\u2026"}),") and ",(0,a.jsx)(e.strong,{children:"propagates"})," the partial results to the top. The propagation is\nwhat makes sure that at the top I don't choose the best ",(0,a.jsx)(e.strong,{children:"local"})," choice, but\nthe best ",(0,a.jsx)(e.strong,{children:"overall"})," result I can achieve."]})]}),"\n",(0,a.jsx)(e.h3,{id:"time-complexity-3",children:"Time complexity"}),"\n",(0,a.jsx)(e.p,{children:"Time complexity of this solution is rather simple. We allocate an array for the\nrows and then for each row, we copy it and adjust the partial results. Doing\nthis we get:"}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"r"}),(0,a.jsx)(e.mi,{children:"o"}),(0,a.jsx)(e.mi,{children:"w"}),(0,a.jsx)(e.mi,{children:"s"}),(0,a.jsx)(e.mo,{children:"+"}),(0,a.jsx)(e.mn,{children:"2"}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(rows + 2n)"})]})})}),(0,a.jsxs)(e.span,{className:"katex-html","aria-hidden":"true",children:[(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"ro"}),(0,a.jsx)(e.span,{className:"mord mathnormal",style:{marginRight:"0.02691em"},children:"w"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"s"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}}),(0,a.jsx)(e.span,{className:"mbin",children:"+"}),(0,a.jsx)(e.span,{className:"mspace",style:{marginRight:"0.2222em"}})]}),(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord",children:"2"}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})]})]})}),"\n",(0,a.jsx)(e.p,{children:"Of course, this is an upper bound, since we iterate through the bottom row only\nonce."}),"\n",(0,a.jsx)(e.h3,{id:"memory-complexity-1",children:"Memory complexity"}),"\n",(0,a.jsxs)(e.p,{children:["We're allocating an array for the pyramid ",(0,a.jsx)(e.strong,{children:"again"})," for our partial results, so\nwe get:"]}),"\n",(0,a.jsx)(e.span,{className:"katex-display",children:(0,a.jsxs)(e.span,{className:"katex",children:[(0,a.jsx)(e.span,{className:"katex-mathml",children:(0,a.jsx)(e.math,{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block",children:(0,a.jsxs)(e.semantics,{children:[(0,a.jsxs)(e.mrow,{children:[(0,a.jsx)(e.mi,{mathvariant:"script",children:"O"}),(0,a.jsx)(e.mo,{stretchy:"false",children:"("}),(0,a.jsx)(e.mi,{children:"n"}),(0,a.jsx)(e.mo,{stretchy:"false",children:")"})]}),(0,a.jsx)(e.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,a.jsx)(e.span,{className:"katex-html","aria-hidden":"true",children:(0,a.jsxs)(e.span,{className:"base",children:[(0,a.jsx)(e.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,a.jsx)(e.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,a.jsx)(e.span,{className:"mopen",children:"("}),(0,a.jsx)(e.span,{className:"mord mathnormal",children:"n"}),(0,a.jsx)(e.span,{className:"mclose",children:")"})]})})]})}),"\n",(0,a.jsxs)(e.admonition,{type:"tip",children:[(0,a.jsx)(e.p,{children:"If we were writing this in C++ or Rust, we could've avoided that, but not\nreally."}),(0,a.jsxs)(e.p,{children:["C++ would allow us to ",(0,a.jsx)(e.strong,{children:"copy"})," the pyramid rightaway into the parameter, so we\nwould be able to directly change it. However it's still a copy, even though we\ndon't need to allocate anything ourselves. It's just implicitly done for us."]}),(0,a.jsxs)(e.p,{children:["Rust is more funny in this case. If the pyramids weren't used after the call of\n",(0,a.jsx)(e.code,{children:"longest_slide_down"}),", it would simply ",(0,a.jsx)(e.strong,{children:"move"})," them into the functions. If they\nwere used afterwards, the compiler would force you to either borrow it, or\n",(0,a.jsx)(e.em,{children:"clone-and-move"})," for the function."]}),(0,a.jsx)(e.hr,{}),(0,a.jsxs)(e.p,{children:["Since we're doing it in Java, we get a reference to the ",(0,a.jsx)(e.em,{children:"original"})," array and we\ncan't do whatever we want with it."]})]}),"\n",(0,a.jsx)(e.h2,{id:"summary",children:"Summary"}),"\n",(0,a.jsxs)(e.p,{children:["And we've finally reached the end. We have seen 4 different \u201csolutions\u201d",(0,a.jsx)(e.sup,{children:(0,a.jsx)(e.a,{href:"#user-content-fn-4",id:"user-content-fnref-4","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"4"})})," of\nthe same problem using different approaches. Different approaches follow the\norder in which you might come up with them, each approach influences its\nsuccessor and represents the way we can enhance the existing implementation."]}),"\n",(0,a.jsx)(e.hr,{}),"\n",(0,a.jsx)(e.admonition,{title:"source",type:"info",children:(0,a.jsxs)(e.p,{children:["You can find source code referenced in the text\n",(0,a.jsx)(e.a,{href:"pathname:///files/algorithms/recursion/pyramid-slide-down.tar.gz",children:"here"}),"."]})}),"\n",(0,a.jsxs)(e.section,{"data-footnotes":!0,className:"footnotes",children:[(0,a.jsx)(e.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,a.jsxs)(e.ol,{children:["\n",(0,a.jsxs)(e.li,{id:"user-content-fn-1",children:["\n",(0,a.jsxs)(e.p,{children:["cause why not, right!? ",(0,a.jsx)(e.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-2",children:["\n",(0,a.jsxs)(e.p,{children:["except the bottom row ",(0,a.jsx)(e.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-3",children:["\n",(0,a.jsxs)(e.p,{children:["definitely not an RHCP reference ","\ud83d\ude09 ",(0,a.jsx)(e.a,{href:"#user-content-fnref-3","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{id:"user-content-fn-4",children:["\n",(0,a.jsxs)(e.p,{children:["one was not correct, thus the quotes ",(0,a.jsx)(e.a,{href:"#user-content-fnref-4","data-footnote-backref":"","aria-label":"Back to reference 4",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function o(s={}){const{wrapper:e}={...(0,i.a)(),...s.components};return e?(0,a.jsx)(e,{...s,children:(0,a.jsx)(h,{...s})}):h(s)}},11151:(s,e,n)=>{n.d(e,{Z:()=>r,a:()=>t});var a=n(67294);const i={},l=a.createContext(i);function t(s){const e=a.useContext(l);return a.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function r(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:t(s.components),a.createElement(l.Provider,{value:e},s.children)}}}]); \ No newline at end of file diff --git a/assets/js/6255.4bb462ce.js b/assets/js/6255.4bb462ce.js new file mode 100644 index 0000000..ffdb03b --- /dev/null +++ b/assets/js/6255.4bb462ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6255],{56255:(e,t,l)=>{l.d(t,{diagram:()=>f});var n=l(54706),a=l(64218),o=l(45625),i=l(85322),s=l(87936);l(27484),l(17967),l(27856),l(41644),l(39354);const d=e=>i.e.sanitizeText(e,(0,i.c)());let r={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const c=function(e,t,l,n,a){const o=Object.keys(e);i.l.info("keys:",o),i.l.info(e),o.filter((t=>e[t].parent==a)).forEach((function(l){var o,s;const r=e[l],c=r.cssClasses.join(" "),p="",b="",f=r.label??r.id,u={labelStyle:p,shape:"class_box",labelText:d(f),classData:r,rx:0,ry:0,class:c,style:b,id:r.id,domId:r.domId,tooltip:n.db.getTooltip(r.id,a)||"",haveCallback:r.haveCallback,link:r.link,width:"group"===r.type?500:void 0,type:r.type,padding:(null==(o=(0,i.c)().flowchart)?void 0:o.padding)??(null==(s=(0,i.c)().class)?void 0:s.padding)};t.setNode(r.id,u),a&&t.setParent(r.id,a),i.l.info("setNode",u)}))};function p(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const b={setConf:function(e){r={...r,...e}},draw:async function(e,t,l,n){i.l.info("Drawing class - ",t);const b=(0,i.c)().flowchart??(0,i.c)().class,f=(0,i.c)().securityLevel;i.l.info("config:",b);const u=(null==b?void 0:b.nodeSpacing)??50,g=(null==b?void 0:b.rankSpacing)??50,y=new o.k({multigraph:!0,compound:!0}).setGraph({rankdir:n.db.getDirection(),nodesep:u,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),h=n.db.getNamespaces(),v=n.db.getClasses(),w=n.db.getRelations(),k=n.db.getNotes();let x;i.l.info(w),function(e,t,l,n){const a=Object.keys(e);i.l.info("keys:",a),i.l.info(e),a.forEach((function(a){var o,s;const r=e[a],p={shape:"rect",id:r.id,domId:r.domId,labelText:d(r.id),labelStyle:"",style:"fill: none; stroke: black",padding:(null==(o=(0,i.c)().flowchart)?void 0:o.padding)??(null==(s=(0,i.c)().class)?void 0:s.padding)};t.setNode(r.id,p),c(r.classes,t,l,n,r.id),i.l.info("setNode",p)}))}(h,y,t,n),c(v,y,t,n),function(e,t){const l=(0,i.c)().flowchart;let n=0;e.forEach((function(e){var o;n++;const s={classes:"relation",pattern:1==e.relation.lineType?"dashed":"solid",id:"id"+n,arrowhead:"arrow_open"===e.type?"none":"normal",startLabelRight:"none"===e.relationTitle1?"":e.relationTitle1,endLabelLeft:"none"===e.relationTitle2?"":e.relationTitle2,arrowTypeStart:p(e.relation.type1),arrowTypeEnd:p(e.relation.type2),style:"fill:none",labelStyle:"",curve:(0,i.n)(null==l?void 0:l.curve,a.c_6)};if(i.l.info(s,e),void 0!==e.style){const t=(0,i.k)(e.style);s.style=t.style,s.labelStyle=t.labelStyle}e.text=e.title,void 0===e.text?void 0!==e.style&&(s.arrowheadStyle="fill: #333"):(s.arrowheadStyle="fill: #333",s.labelpos="c",(null==(o=(0,i.c)().flowchart)?void 0:o.htmlLabels)??(0,i.c)().htmlLabels?(s.labelType="html",s.label='<span class="edgeLabel">'+e.text+"</span>"):(s.labelType="text",s.label=e.text.replace(i.e.lineBreakRegex,"\n"),void 0===e.style&&(s.style=s.style||"stroke: #333; stroke-width: 1.5px;fill:none"),s.labelStyle=s.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,s,n)}))}(w,y),function(e,t,l,n){i.l.info(e),e.forEach((function(e,o){var s,c;const p=e,b="",f="",u=p.text,g={labelStyle:b,shape:"note",labelText:d(u),noteData:p,rx:0,ry:0,class:"",style:f,id:p.id,domId:p.id,tooltip:"",type:"note",padding:(null==(s=(0,i.c)().flowchart)?void 0:s.padding)??(null==(c=(0,i.c)().class)?void 0:c.padding)};if(t.setNode(p.id,g),i.l.info("setNode",g),!p.class||!(p.class in n))return;const y=l+o,h={id:`edgeNote${y}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:(0,i.n)(r.curve,a.c_6)};t.setEdge(p.id,p.class,h,y)}))}(k,y,w.length+1,v),"sandbox"===f&&(x=(0,a.Ys)("#i"+t));const m="sandbox"===f?(0,a.Ys)(x.nodes()[0].contentDocument.body):(0,a.Ys)("body"),T=m.select(`[id="${t}"]`),S=m.select("#"+t+" g");if(await(0,s.r)(S,y,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),i.u.insertTitle(T,"classTitleText",(null==b?void 0:b.titleTopMargin)??5,n.db.getDiagramTitle()),(0,i.o)(y,T,null==b?void 0:b.diagramPadding,null==b?void 0:b.useMaxWidth),!(null==b?void 0:b.htmlLabels)){const e="sandbox"===f?x.nodes()[0].contentDocument:document,l=e.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of l){const l=t.getBBox(),n=e.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",l.width),n.setAttribute("height",l.height),t.insertBefore(n,t.firstChild)}}}},f={parser:n.p,db:n.d,renderer:b,styles:n.s,init:e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,n.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/6255.9b5f422e.js b/assets/js/6255.9b5f422e.js deleted file mode 100644 index cc83e89..0000000 --- a/assets/js/6255.9b5f422e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6255],{6255:(e,t,l)=>{l.d(t,{diagram:()=>f});var n=l(4706),a=l(4218),o=l(5625),i=l(5322),s=l(7936);l(7484),l(7967),l(7856),l(1644),l(9354);const d=e=>i.e.sanitizeText(e,(0,i.c)());let r={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const c=function(e,t,l,n,a){const o=Object.keys(e);i.l.info("keys:",o),i.l.info(e),o.filter((t=>e[t].parent==a)).forEach((function(l){var o,s;const r=e[l],c=r.cssClasses.join(" "),p="",b="",f=r.label??r.id,u={labelStyle:p,shape:"class_box",labelText:d(f),classData:r,rx:0,ry:0,class:c,style:b,id:r.id,domId:r.domId,tooltip:n.db.getTooltip(r.id,a)||"",haveCallback:r.haveCallback,link:r.link,width:"group"===r.type?500:void 0,type:r.type,padding:(null==(o=(0,i.c)().flowchart)?void 0:o.padding)??(null==(s=(0,i.c)().class)?void 0:s.padding)};t.setNode(r.id,u),a&&t.setParent(r.id,a),i.l.info("setNode",u)}))};function p(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const b={setConf:function(e){r={...r,...e}},draw:async function(e,t,l,n){i.l.info("Drawing class - ",t);const b=(0,i.c)().flowchart??(0,i.c)().class,f=(0,i.c)().securityLevel;i.l.info("config:",b);const u=(null==b?void 0:b.nodeSpacing)??50,g=(null==b?void 0:b.rankSpacing)??50,y=new o.k({multigraph:!0,compound:!0}).setGraph({rankdir:n.db.getDirection(),nodesep:u,ranksep:g,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),h=n.db.getNamespaces(),v=n.db.getClasses(),w=n.db.getRelations(),k=n.db.getNotes();let x;i.l.info(w),function(e,t,l,n){const a=Object.keys(e);i.l.info("keys:",a),i.l.info(e),a.forEach((function(a){var o,s;const r=e[a],p={shape:"rect",id:r.id,domId:r.domId,labelText:d(r.id),labelStyle:"",style:"fill: none; stroke: black",padding:(null==(o=(0,i.c)().flowchart)?void 0:o.padding)??(null==(s=(0,i.c)().class)?void 0:s.padding)};t.setNode(r.id,p),c(r.classes,t,l,n,r.id),i.l.info("setNode",p)}))}(h,y,t,n),c(v,y,t,n),function(e,t){const l=(0,i.c)().flowchart;let n=0;e.forEach((function(e){var o;n++;const s={classes:"relation",pattern:1==e.relation.lineType?"dashed":"solid",id:"id"+n,arrowhead:"arrow_open"===e.type?"none":"normal",startLabelRight:"none"===e.relationTitle1?"":e.relationTitle1,endLabelLeft:"none"===e.relationTitle2?"":e.relationTitle2,arrowTypeStart:p(e.relation.type1),arrowTypeEnd:p(e.relation.type2),style:"fill:none",labelStyle:"",curve:(0,i.n)(null==l?void 0:l.curve,a.c_6)};if(i.l.info(s,e),void 0!==e.style){const t=(0,i.k)(e.style);s.style=t.style,s.labelStyle=t.labelStyle}e.text=e.title,void 0===e.text?void 0!==e.style&&(s.arrowheadStyle="fill: #333"):(s.arrowheadStyle="fill: #333",s.labelpos="c",(null==(o=(0,i.c)().flowchart)?void 0:o.htmlLabels)??(0,i.c)().htmlLabels?(s.labelType="html",s.label='<span class="edgeLabel">'+e.text+"</span>"):(s.labelType="text",s.label=e.text.replace(i.e.lineBreakRegex,"\n"),void 0===e.style&&(s.style=s.style||"stroke: #333; stroke-width: 1.5px;fill:none"),s.labelStyle=s.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,s,n)}))}(w,y),function(e,t,l,n){i.l.info(e),e.forEach((function(e,o){var s,c;const p=e,b="",f="",u=p.text,g={labelStyle:b,shape:"note",labelText:d(u),noteData:p,rx:0,ry:0,class:"",style:f,id:p.id,domId:p.id,tooltip:"",type:"note",padding:(null==(s=(0,i.c)().flowchart)?void 0:s.padding)??(null==(c=(0,i.c)().class)?void 0:c.padding)};if(t.setNode(p.id,g),i.l.info("setNode",g),!p.class||!(p.class in n))return;const y=l+o,h={id:`edgeNote${y}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:(0,i.n)(r.curve,a.c_6)};t.setEdge(p.id,p.class,h,y)}))}(k,y,w.length+1,v),"sandbox"===f&&(x=(0,a.Ys)("#i"+t));const m="sandbox"===f?(0,a.Ys)(x.nodes()[0].contentDocument.body):(0,a.Ys)("body"),T=m.select(`[id="${t}"]`),S=m.select("#"+t+" g");if(await(0,s.r)(S,y,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),i.u.insertTitle(T,"classTitleText",(null==b?void 0:b.titleTopMargin)??5,n.db.getDiagramTitle()),(0,i.o)(y,T,null==b?void 0:b.diagramPadding,null==b?void 0:b.useMaxWidth),!(null==b?void 0:b.htmlLabels)){const e="sandbox"===f?x.nodes()[0].contentDocument:document,l=e.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of l){const l=t.getBBox(),n=e.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",l.width),n.setAttribute("height",l.height),t.insertBefore(n,t.firstChild)}}}},f={parser:n.p,db:n.d,renderer:b,styles:n.s,init:e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,n.d.clear()}}}}]); \ No newline at end of file diff --git a/assets/js/62d847b3.06e10519.js b/assets/js/62d847b3.06e10519.js deleted file mode 100644 index e8788ce..0000000 --- a/assets/js/62d847b3.06e10519.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8520],{1901:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/advent-of-code-2022","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/62d847b3.ea246a7d.js b/assets/js/62d847b3.ea246a7d.js new file mode 100644 index 0000000..9e70933 --- /dev/null +++ b/assets/js/62d847b3.ea246a7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8520],{91901:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/advent-of-code-2022","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/6648.4cdd8480.js b/assets/js/6648.4cdd8480.js deleted file mode 100644 index 1b51e71..0000000 --- a/assets/js/6648.4cdd8480.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6648],{6648:(t,i,e)=>{e.d(i,{diagram:()=>d});var a=e(5322),n=e(4218),r=(e(7484),e(7967),e(7856),function(){var t=function(t,i,e,a){for(e=e||{},a=t.length;a--;e[t[a]]=i);return e},i=[1,3],e=[1,4],a=[1,5],n=[1,6],r=[1,7],s=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],l=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],o=[32,33,34],h=[2,7],c=[1,13],d=[1,17],u=[1,18],x=[1,19],g=[1,20],f=[1,21],y=[1,22],p=[1,23],q=[1,24],T=[1,25],A=[1,26],m=[1,27],_=[1,30],b=[1,31],S=[1,32],k=[1,33],F=[1,34],P=[1,35],v=[1,36],L=[1,37],C=[1,38],z=[1,39],E=[1,40],D=[1,41],I=[1,42],B=[1,57],w=[1,58],R=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],W={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points: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,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",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",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(t,i,e,a,n,r,s){var l=r.length-1;switch(n){case 12:this.$=r[l].trim(),a.setDiagramTitle(this.$);break;case 13:this.$=r[l].trim(),a.setAccTitle(this.$);break;case 14:case 15:this.$=r[l].trim(),a.setAccDescription(this.$);break;case 16:a.addSection(r[l].substr(8)),this.$=r[l].substr(8);break;case 17:a.addPoint(r[l-3],r[l-1],r[l]);break;case 18:a.setXAxisLeftText(r[l-2]),a.setXAxisRightText(r[l]);break;case 19:r[l-1].text+=" \u27f6 ",a.setXAxisLeftText(r[l-1]);break;case 20:a.setXAxisLeftText(r[l]);break;case 21:a.setYAxisBottomText(r[l-2]),a.setYAxisTopText(r[l]);break;case 22:r[l-1].text+=" \u27f6 ",a.setYAxisBottomText(r[l-1]);break;case 23:a.setYAxisBottomText(r[l]);break;case 24:a.setQuadrant1Text(r[l]);break;case 25:a.setQuadrant2Text(r[l]);break;case 26:a.setQuadrant3Text(r[l]);break;case 27:a.setQuadrant4Text(r[l]);break;case 31:case 33:this.$={text:r[l],type:"text"};break;case 32:this.$={text:r[l-1].text+""+r[l],type:r[l-1].type};break;case 34:this.$={text:r[l],type:"markdown"};break;case 35:this.$=r[l];break;case 36:this.$=r[l-1]+""+r[l]}},table:[{3:1,4:2,5:i,6:e,32:a,33:n,34:r},{1:[3]},{3:8,4:2,5:i,6:e,32:a,33:n,34:r},{3:9,4:2,5:i,6:e,32:a,33:n,34:r},t(s,[2,4],{7:10}),t(l,[2,28]),t(l,[2,29]),t(l,[2,30]),{1:[2,1]},{1:[2,2]},t(o,h,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:c,13:d,15:u,17:x,19:g,20:f,25:y,27:p,28:q,29:T,30:A,31:m,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(s,[2,5]),{4:43,32:a,33:n,34:r},t(o,h,{10:14,11:15,12:16,21:28,35:29,9:44,5:c,13:d,15:u,17:x,19:g,20:f,25:y,27:p,28:q,29:T,30:A,31:m,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(o,[2,9]),t(o,[2,10]),t(o,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},t(o,[2,15]),t(o,[2,16]),{21:48,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:49,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:50,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:51,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:52,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:53,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{5:B,22:[1,54],35:56,36:55,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w},t(R,[2,31]),t(R,[2,33]),t(R,[2,34]),t(R,[2,37]),t(R,[2,38]),t(R,[2,39]),t(R,[2,40]),t(R,[2,41]),t(R,[2,42]),t(R,[2,43]),t(R,[2,44]),t(R,[2,45]),t(R,[2,46]),t(R,[2,47]),t(s,[2,6]),t(o,[2,8]),t(o,[2,12]),t(o,[2,13]),t(o,[2,14]),t(o,[2,20],{36:55,35:56,5:B,26:[1,59],40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,23],{36:55,35:56,5:B,26:[1,60],40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,24],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,25],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,26],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,27],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),{23:[1,61]},t(R,[2,32]),t(R,[2,48]),t(R,[2,49]),t(R,[2,50]),t(o,[2,19],{35:29,21:62,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(o,[2,22],{35:29,21:63,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),{24:[1,64]},t(o,[2,18],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,21],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(t,i){if(!i.recoverable){var e=new Error(t);throw e.hash=i,e}this.trace(t)},parse:function(t){var i=this,e=[0],a=[],n=[null],r=[],s=this.table,l="",o=0,h=0,c=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;r.push(g);var f=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,p,q,T,A,m,_,b,S,k={};;){if(p=e[e.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null==y&&(S=void 0,"number"!=typeof(S=a.pop()||d.lex()||1)&&(S instanceof Array&&(S=(a=S).pop()),S=i.symbols_[S]||S),y=S),q=s[p]&&s[p][y]),void 0===q||!q.length||!q[0]){var F="";for(A in b=[],s[p])this.terminals_[A]&&A>2&&b.push("'"+this.terminals_[A]+"'");F=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(F,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:b})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+y);switch(q[0]){case 1:e.push(y),n.push(d.yytext),r.push(d.yylloc),e.push(q[1]),y=null,h=d.yyleng,l=d.yytext,o=d.yylineno,g=d.yylloc;break;case 2:if(m=this.productions_[q[1]][1],k.$=n[n.length-m],k._$={first_line:r[r.length-(m||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(m||1)].first_column,last_column:r[r.length-1].last_column},f&&(k._$.range=[r[r.length-(m||1)].range[0],r[r.length-1].range[1]]),void 0!==(T=this.performAction.apply(k,[l,h,o,u.yy,q[1],n,r].concat(c))))return T;m&&(e=e.slice(0,-1*m*2),n=n.slice(0,-1*m),r=r.slice(0,-1*m)),e.push(this.productions_[q[1]][0]),n.push(k.$),r.push(k._$),_=s[e[e.length-2]][e[e.length-1]],e.push(_);break;case 3:return!0}}return!0}},N={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var a=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),e.length-1&&(this.yylineno-=e.length-1);var n=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:e?(e.length===a.length?this.yylloc.first_column:0)+a[a.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var e,a,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,e,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if((e=this._input.match(this.rules[n[r]]))&&(!i||e[0].length>i[0].length)){if(i=e,a=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[r])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[a]))&&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,i,e,a){switch(e){case 0:case 1:case 3:break;case 2:return 32;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 22:case 24:case 28:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 23:this.begin("string");break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/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,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};function U(){this.yy={}}return W.lexer=N,U.prototype=W,W.Parser=U,new U}());r.parser=r;const s=r,l=(0,a.D)();const o=(0,a.c)();function h(t){return(0,a.d)(t.trim(),o)}const c=new class{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var t,i,e,n,r,s,l,o,h,c,d,u,x,g,f,y,p,q;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:(null==(t=a.A.quadrantChart)?void 0:t.chartWidth)||500,chartWidth:(null==(i=a.A.quadrantChart)?void 0:i.chartHeight)||500,titlePadding:(null==(e=a.A.quadrantChart)?void 0:e.titlePadding)||10,titleFontSize:(null==(n=a.A.quadrantChart)?void 0:n.titleFontSize)||20,quadrantPadding:(null==(r=a.A.quadrantChart)?void 0:r.quadrantPadding)||5,xAxisLabelPadding:(null==(s=a.A.quadrantChart)?void 0:s.xAxisLabelPadding)||5,yAxisLabelPadding:(null==(l=a.A.quadrantChart)?void 0:l.yAxisLabelPadding)||5,xAxisLabelFontSize:(null==(o=a.A.quadrantChart)?void 0:o.xAxisLabelFontSize)||16,yAxisLabelFontSize:(null==(h=a.A.quadrantChart)?void 0:h.yAxisLabelFontSize)||16,quadrantLabelFontSize:(null==(c=a.A.quadrantChart)?void 0:c.quadrantLabelFontSize)||16,quadrantTextTopPadding:(null==(d=a.A.quadrantChart)?void 0:d.quadrantTextTopPadding)||5,pointTextPadding:(null==(u=a.A.quadrantChart)?void 0:u.pointTextPadding)||5,pointLabelFontSize:(null==(x=a.A.quadrantChart)?void 0:x.pointLabelFontSize)||12,pointRadius:(null==(g=a.A.quadrantChart)?void 0:g.pointRadius)||5,xAxisPosition:(null==(f=a.A.quadrantChart)?void 0:f.xAxisPosition)||"top",yAxisPosition:(null==(y=a.A.quadrantChart)?void 0:y.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:(null==(p=a.A.quadrantChart)?void 0:p.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:(null==(q=a.A.quadrantChart)?void 0:q.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:l.quadrant1Fill,quadrant2Fill:l.quadrant2Fill,quadrant3Fill:l.quadrant3Fill,quadrant4Fill:l.quadrant4Fill,quadrant1TextFill:l.quadrant1TextFill,quadrant2TextFill:l.quadrant2TextFill,quadrant3TextFill:l.quadrant3TextFill,quadrant4TextFill:l.quadrant4TextFill,quadrantPointFill:l.quadrantPointFill,quadrantPointTextFill:l.quadrantPointTextFill,quadrantXAxisTextFill:l.quadrantXAxisTextFill,quadrantYAxisTextFill:l.quadrantYAxisTextFill,quadrantTitleFill:l.quadrantTitleFill,quadrantInternalBorderStrokeFill:l.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:l.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),a.l.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}setConfig(t){a.l.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){a.l.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,i,e,a){const n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,r={top:"top"===t&&i?n:0,bottom:"bottom"===t&&i?n:0},s=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&e?s:0,right:"right"===this.config.yAxisPosition&&e?s:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+r.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-r.top-r.bottom-h.top;return{xAxisSpace:r,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,i,e,a){const{quadrantSpace:n,titleSpace:r}=a,{quadrantHalfHeight:s,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=Boolean(this.data.xAxisRightText),x=Boolean(this.data.yAxisTopText),g=[];return this.data.xAxisLeftText&&i&&g.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&i&&g.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&e&&g.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(x?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&e&&g.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+s-(x?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),g}getQuadrants(t){const{quadrantSpace:i}=t,{quadrantHalfHeight:e,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:r}=i,s=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r,width:n,height:e,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r,width:n,height:e,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant4Fill}];for(const l of s)l.text.x=l.x+l.width/2,0===this.data.points.length?(l.text.y=l.y+l.height/2,l.text.horizontalPos="middle"):(l.text.y=l.y+this.config.quadrantTextTopPadding,l.text.horizontalPos="top");return s}getQuadrantPoints(t){const{quadrantSpace:i}=t,{quadrantHeight:e,quadrantLeft:a,quadrantTop:r,quadrantWidth:s}=i,l=(0,n.BYU)().domain([0,1]).range([a,s+a]),o=(0,n.BYU)().domain([0,1]).range([e+r,r]);return this.data.points.map((t=>({x:l(t.x),y:o(t.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}})))}getBorders(t){const i=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:e}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:r,quadrantHalfWidth:s,quadrantTop:l,quadrantWidth:o}=e;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l,x2:r+o+i,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r+o,y1:l+i,x2:r+o,y2:l+n-i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l+n,x2:r+o+i,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r,y1:l+i,x2:r,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+s,y1:l+i,x2:r+s,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+i,y1:l+a,x2:r+o-i,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const t=this.config.showXAxis&&!(!this.data.xAxisLeftText&&!this.data.xAxisRightText),i=this.config.showYAxis&&!(!this.data.yAxisTopText&&!this.data.yAxisBottomText),e=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,i,e);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,i,n),borderLines:this.getBorders(n),title:this.getTitle(e)}}};const d={parser:s,db:{setWidth:function(t){c.setConfig({chartWidth:t})},setHeight:function(t){c.setConfig({chartHeight:t})},setQuadrant1Text:function(t){c.setData({quadrant1Text:h(t.text)})},setQuadrant2Text:function(t){c.setData({quadrant2Text:h(t.text)})},setQuadrant3Text:function(t){c.setData({quadrant3Text:h(t.text)})},setQuadrant4Text:function(t){c.setData({quadrant4Text:h(t.text)})},setXAxisLeftText:function(t){c.setData({xAxisLeftText:h(t.text)})},setXAxisRightText:function(t){c.setData({xAxisRightText:h(t.text)})},setYAxisTopText:function(t){c.setData({yAxisTopText:h(t.text)})},setYAxisBottomText:function(t){c.setData({yAxisBottomText:h(t.text)})},addPoint:function(t,i,e){c.addPoints([{x:i,y:e,text:h(t.text)}])},getQuadrantData:function(){const t=(0,a.c)(),{themeVariables:i,quadrantChart:e}=t;return e&&c.setConfig(e),c.setThemeConfig({quadrant1Fill:i.quadrant1Fill,quadrant2Fill:i.quadrant2Fill,quadrant3Fill:i.quadrant3Fill,quadrant4Fill:i.quadrant4Fill,quadrant1TextFill:i.quadrant1TextFill,quadrant2TextFill:i.quadrant2TextFill,quadrant3TextFill:i.quadrant3TextFill,quadrant4TextFill:i.quadrant4TextFill,quadrantPointFill:i.quadrantPointFill,quadrantPointTextFill:i.quadrantPointTextFill,quadrantXAxisTextFill:i.quadrantXAxisTextFill,quadrantYAxisTextFill:i.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:i.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:i.quadrantInternalBorderStrokeFill,quadrantTitleFill:i.quadrantTitleFill}),c.setData({titleText:(0,a.r)()}),c.build()},clear:function(){c.clear(),(0,a.t)()},setAccTitle:a.s,getAccTitle:a.g,setDiagramTitle:a.q,getDiagramTitle:a.r,getAccDescription:a.a,setAccDescription:a.b},renderer:{draw:(t,i,e,r)=>{var s,l,o;function h(t){return"top"===t?"hanging":"middle"}function c(t){return"left"===t?"start":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const u=(0,a.c)();a.l.debug("Rendering quadrant chart\n"+t);const x=u.securityLevel;let g;"sandbox"===x&&(g=(0,n.Ys)("#i"+i));const f=("sandbox"===x?(0,n.Ys)(g.nodes()[0].contentDocument.body):(0,n.Ys)("body")).select(`[id="${i}"]`),y=f.append("g").attr("class","main"),p=(null==(s=u.quadrantChart)?void 0:s.chartWidth)||500,q=(null==(l=u.quadrantChart)?void 0:l.chartHeight)||500;(0,a.i)(f,q,p,(null==(o=u.quadrantChart)?void 0:o.useMaxWidth)||!0),f.attr("viewBox","0 0 "+p+" "+q),r.db.setHeight(q),r.db.setWidth(p);const T=r.db.getQuadrantData(),A=y.append("g").attr("class","quadrants"),m=y.append("g").attr("class","border"),_=y.append("g").attr("class","data-points"),b=y.append("g").attr("class","labels"),S=y.append("g").attr("class","title");T.title&&S.append("text").attr("x",0).attr("y",0).attr("fill",T.title.fill).attr("font-size",T.title.fontSize).attr("dominant-baseline",h(T.title.horizontalPos)).attr("text-anchor",c(T.title.verticalPos)).attr("transform",d(T.title)).text(T.title.text),T.borderLines&&m.selectAll("line").data(T.borderLines).enter().append("line").attr("x1",(t=>t.x1)).attr("y1",(t=>t.y1)).attr("x2",(t=>t.x2)).attr("y2",(t=>t.y2)).style("stroke",(t=>t.strokeFill)).style("stroke-width",(t=>t.strokeWidth));const k=A.selectAll("g.quadrant").data(T.quadrants).enter().append("g").attr("class","quadrant");k.append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill)),k.append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>h(t.text.horizontalPos))).attr("text-anchor",(t=>c(t.text.verticalPos))).attr("transform",(t=>d(t.text))).text((t=>t.text.text));b.selectAll("g.label").data(T.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text((t=>t.text)).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>h(t.horizontalPos))).attr("text-anchor",(t=>c(t.verticalPos))).attr("transform",(t=>d(t)));const F=_.selectAll("g.data-point").data(T.points).enter().append("g").attr("class","data-point");F.append("circle").attr("cx",(t=>t.x)).attr("cy",(t=>t.y)).attr("r",(t=>t.radius)).attr("fill",(t=>t.fill)),F.append("text").attr("x",0).attr("y",0).text((t=>t.text.text)).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>h(t.text.horizontalPos))).attr("text-anchor",(t=>c(t.text.verticalPos))).attr("transform",(t=>d(t.text)))}},styles:()=>""}}}]); \ No newline at end of file diff --git a/assets/js/6648.7d3c04e0.js b/assets/js/6648.7d3c04e0.js new file mode 100644 index 0000000..1ef167e --- /dev/null +++ b/assets/js/6648.7d3c04e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6648],{46648:(t,i,e)=>{e.d(i,{diagram:()=>d});var a=e(85322),n=e(64218),r=(e(27484),e(17967),e(27856),function(){var t=function(t,i,e,a){for(e=e||{},a=t.length;a--;e[t[a]]=i);return e},i=[1,3],e=[1,4],a=[1,5],n=[1,6],r=[1,7],s=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],l=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],o=[32,33,34],h=[2,7],c=[1,13],d=[1,17],u=[1,18],x=[1,19],g=[1,20],f=[1,21],y=[1,22],p=[1,23],q=[1,24],T=[1,25],A=[1,26],m=[1,27],_=[1,30],b=[1,31],S=[1,32],k=[1,33],F=[1,34],P=[1,35],v=[1,36],L=[1,37],C=[1,38],z=[1,39],E=[1,40],D=[1,41],I=[1,42],B=[1,57],w=[1,58],R=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],W={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points: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,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",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",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(t,i,e,a,n,r,s){var l=r.length-1;switch(n){case 12:this.$=r[l].trim(),a.setDiagramTitle(this.$);break;case 13:this.$=r[l].trim(),a.setAccTitle(this.$);break;case 14:case 15:this.$=r[l].trim(),a.setAccDescription(this.$);break;case 16:a.addSection(r[l].substr(8)),this.$=r[l].substr(8);break;case 17:a.addPoint(r[l-3],r[l-1],r[l]);break;case 18:a.setXAxisLeftText(r[l-2]),a.setXAxisRightText(r[l]);break;case 19:r[l-1].text+=" \u27f6 ",a.setXAxisLeftText(r[l-1]);break;case 20:a.setXAxisLeftText(r[l]);break;case 21:a.setYAxisBottomText(r[l-2]),a.setYAxisTopText(r[l]);break;case 22:r[l-1].text+=" \u27f6 ",a.setYAxisBottomText(r[l-1]);break;case 23:a.setYAxisBottomText(r[l]);break;case 24:a.setQuadrant1Text(r[l]);break;case 25:a.setQuadrant2Text(r[l]);break;case 26:a.setQuadrant3Text(r[l]);break;case 27:a.setQuadrant4Text(r[l]);break;case 31:case 33:this.$={text:r[l],type:"text"};break;case 32:this.$={text:r[l-1].text+""+r[l],type:r[l-1].type};break;case 34:this.$={text:r[l],type:"markdown"};break;case 35:this.$=r[l];break;case 36:this.$=r[l-1]+""+r[l]}},table:[{3:1,4:2,5:i,6:e,32:a,33:n,34:r},{1:[3]},{3:8,4:2,5:i,6:e,32:a,33:n,34:r},{3:9,4:2,5:i,6:e,32:a,33:n,34:r},t(s,[2,4],{7:10}),t(l,[2,28]),t(l,[2,29]),t(l,[2,30]),{1:[2,1]},{1:[2,2]},t(o,h,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:c,13:d,15:u,17:x,19:g,20:f,25:y,27:p,28:q,29:T,30:A,31:m,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(s,[2,5]),{4:43,32:a,33:n,34:r},t(o,h,{10:14,11:15,12:16,21:28,35:29,9:44,5:c,13:d,15:u,17:x,19:g,20:f,25:y,27:p,28:q,29:T,30:A,31:m,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(o,[2,9]),t(o,[2,10]),t(o,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},t(o,[2,15]),t(o,[2,16]),{21:48,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:49,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:50,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:51,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:52,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{21:53,35:29,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I},{5:B,22:[1,54],35:56,36:55,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w},t(R,[2,31]),t(R,[2,33]),t(R,[2,34]),t(R,[2,37]),t(R,[2,38]),t(R,[2,39]),t(R,[2,40]),t(R,[2,41]),t(R,[2,42]),t(R,[2,43]),t(R,[2,44]),t(R,[2,45]),t(R,[2,46]),t(R,[2,47]),t(s,[2,6]),t(o,[2,8]),t(o,[2,12]),t(o,[2,13]),t(o,[2,14]),t(o,[2,20],{36:55,35:56,5:B,26:[1,59],40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,23],{36:55,35:56,5:B,26:[1,60],40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,24],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,25],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,26],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,27],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),{23:[1,61]},t(R,[2,32]),t(R,[2,48]),t(R,[2,49]),t(R,[2,50]),t(o,[2,19],{35:29,21:62,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),t(o,[2,22],{35:29,21:63,37:_,38:b,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I}),{24:[1,64]},t(o,[2,18],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,21],{36:55,35:56,5:B,40:S,41:k,42:F,43:P,44:v,45:L,46:C,47:z,48:E,49:D,50:I,51:w}),t(o,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(t,i){if(!i.recoverable){var e=new Error(t);throw e.hash=i,e}this.trace(t)},parse:function(t){var i=this,e=[0],a=[],n=[null],r=[],s=this.table,l="",o=0,h=0,c=r.slice.call(arguments,1),d=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);d.setInput(t,u.yy),u.yy.lexer=d,u.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var g=d.yylloc;r.push(g);var f=d.options&&d.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var y,p,q,T,A,m,_,b,S,k={};;){if(p=e[e.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null==y&&(S=void 0,"number"!=typeof(S=a.pop()||d.lex()||1)&&(S instanceof Array&&(S=(a=S).pop()),S=i.symbols_[S]||S),y=S),q=s[p]&&s[p][y]),void 0===q||!q.length||!q[0]){var F="";for(A in b=[],s[p])this.terminals_[A]&&A>2&&b.push("'"+this.terminals_[A]+"'");F=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(F,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:b})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+y);switch(q[0]){case 1:e.push(y),n.push(d.yytext),r.push(d.yylloc),e.push(q[1]),y=null,h=d.yyleng,l=d.yytext,o=d.yylineno,g=d.yylloc;break;case 2:if(m=this.productions_[q[1]][1],k.$=n[n.length-m],k._$={first_line:r[r.length-(m||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(m||1)].first_column,last_column:r[r.length-1].last_column},f&&(k._$.range=[r[r.length-(m||1)].range[0],r[r.length-1].range[1]]),void 0!==(T=this.performAction.apply(k,[l,h,o,u.yy,q[1],n,r].concat(c))))return T;m&&(e=e.slice(0,-1*m*2),n=n.slice(0,-1*m),r=r.slice(0,-1*m)),e.push(this.productions_[q[1]][0]),n.push(k.$),r.push(k._$),_=s[e[e.length-2]][e[e.length-1]],e.push(_);break;case 3:return!0}}return!0}},N={EOF:1,parseError:function(t,i){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,i)},setInput:function(t,i){return this.yy=i||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 i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var a=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),e.length-1&&(this.yylineno-=e.length-1);var n=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:e?(e.length===a.length?this.yylloc.first_column:0)+a[a.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),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(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},test_match:function(t,i){var e,a,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,i,e,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if((e=this._input.match(this.rules[n[r]]))&&(!i||e[0].length>i[0].length)){if(i=e,a=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[r])))return t;if(this._backtrack){i=!1;continue}return!1}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,n[a]))&&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,i,e,a){switch(e){case 0:case 1:case 3:break;case 2:return 32;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 22:case 24:case 28:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 23:this.begin("string");break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/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,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};function U(){this.yy={}}return W.lexer=N,U.prototype=W,W.Parser=U,new U}());r.parser=r;const s=r,l=(0,a.D)();const o=(0,a.c)();function h(t){return(0,a.d)(t.trim(),o)}const c=new class{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var t,i,e,n,r,s,l,o,h,c,d,u,x,g,f,y,p,q;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:(null==(t=a.A.quadrantChart)?void 0:t.chartWidth)||500,chartWidth:(null==(i=a.A.quadrantChart)?void 0:i.chartHeight)||500,titlePadding:(null==(e=a.A.quadrantChart)?void 0:e.titlePadding)||10,titleFontSize:(null==(n=a.A.quadrantChart)?void 0:n.titleFontSize)||20,quadrantPadding:(null==(r=a.A.quadrantChart)?void 0:r.quadrantPadding)||5,xAxisLabelPadding:(null==(s=a.A.quadrantChart)?void 0:s.xAxisLabelPadding)||5,yAxisLabelPadding:(null==(l=a.A.quadrantChart)?void 0:l.yAxisLabelPadding)||5,xAxisLabelFontSize:(null==(o=a.A.quadrantChart)?void 0:o.xAxisLabelFontSize)||16,yAxisLabelFontSize:(null==(h=a.A.quadrantChart)?void 0:h.yAxisLabelFontSize)||16,quadrantLabelFontSize:(null==(c=a.A.quadrantChart)?void 0:c.quadrantLabelFontSize)||16,quadrantTextTopPadding:(null==(d=a.A.quadrantChart)?void 0:d.quadrantTextTopPadding)||5,pointTextPadding:(null==(u=a.A.quadrantChart)?void 0:u.pointTextPadding)||5,pointLabelFontSize:(null==(x=a.A.quadrantChart)?void 0:x.pointLabelFontSize)||12,pointRadius:(null==(g=a.A.quadrantChart)?void 0:g.pointRadius)||5,xAxisPosition:(null==(f=a.A.quadrantChart)?void 0:f.xAxisPosition)||"top",yAxisPosition:(null==(y=a.A.quadrantChart)?void 0:y.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:(null==(p=a.A.quadrantChart)?void 0:p.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:(null==(q=a.A.quadrantChart)?void 0:q.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:l.quadrant1Fill,quadrant2Fill:l.quadrant2Fill,quadrant3Fill:l.quadrant3Fill,quadrant4Fill:l.quadrant4Fill,quadrant1TextFill:l.quadrant1TextFill,quadrant2TextFill:l.quadrant2TextFill,quadrant3TextFill:l.quadrant3TextFill,quadrant4TextFill:l.quadrant4TextFill,quadrantPointFill:l.quadrantPointFill,quadrantPointTextFill:l.quadrantPointTextFill,quadrantXAxisTextFill:l.quadrantXAxisTextFill,quadrantYAxisTextFill:l.quadrantYAxisTextFill,quadrantTitleFill:l.quadrantTitleFill,quadrantInternalBorderStrokeFill:l.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:l.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),a.l.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}setConfig(t){a.l.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){a.l.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,i,e,a){const n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,r={top:"top"===t&&i?n:0,bottom:"bottom"===t&&i?n:0},s=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&e?s:0,right:"right"===this.config.yAxisPosition&&e?s:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+r.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-r.top-r.bottom-h.top;return{xAxisSpace:r,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,i,e,a){const{quadrantSpace:n,titleSpace:r}=a,{quadrantHalfHeight:s,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=Boolean(this.data.xAxisRightText),x=Boolean(this.data.yAxisTopText),g=[];return this.data.xAxisLeftText&&i&&g.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&i&&g.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+r.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&e&&g.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(x?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&e&&g.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+s-(x?s/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),g}getQuadrants(t){const{quadrantSpace:i}=t,{quadrantHalfHeight:e,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:r}=i,s=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r,width:n,height:e,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r,width:n,height:e,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:r+e,width:n,height:e,fill:this.themeConfig.quadrant4Fill}];for(const l of s)l.text.x=l.x+l.width/2,0===this.data.points.length?(l.text.y=l.y+l.height/2,l.text.horizontalPos="middle"):(l.text.y=l.y+this.config.quadrantTextTopPadding,l.text.horizontalPos="top");return s}getQuadrantPoints(t){const{quadrantSpace:i}=t,{quadrantHeight:e,quadrantLeft:a,quadrantTop:r,quadrantWidth:s}=i,l=(0,n.BYU)().domain([0,1]).range([a,s+a]),o=(0,n.BYU)().domain([0,1]).range([e+r,r]);return this.data.points.map((t=>({x:l(t.x),y:o(t.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}})))}getBorders(t){const i=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:e}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:r,quadrantHalfWidth:s,quadrantTop:l,quadrantWidth:o}=e;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l,x2:r+o+i,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r+o,y1:l+i,x2:r+o,y2:l+n-i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r-i,y1:l+n,x2:r+o+i,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:r,y1:l+i,x2:r,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+s,y1:l+i,x2:r+s,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:r+i,y1:l+a,x2:r+o-i,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const t=this.config.showXAxis&&!(!this.data.xAxisLeftText&&!this.data.xAxisRightText),i=this.config.showYAxis&&!(!this.data.yAxisTopText&&!this.data.yAxisBottomText),e=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,i,e);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,i,n),borderLines:this.getBorders(n),title:this.getTitle(e)}}};const d={parser:s,db:{setWidth:function(t){c.setConfig({chartWidth:t})},setHeight:function(t){c.setConfig({chartHeight:t})},setQuadrant1Text:function(t){c.setData({quadrant1Text:h(t.text)})},setQuadrant2Text:function(t){c.setData({quadrant2Text:h(t.text)})},setQuadrant3Text:function(t){c.setData({quadrant3Text:h(t.text)})},setQuadrant4Text:function(t){c.setData({quadrant4Text:h(t.text)})},setXAxisLeftText:function(t){c.setData({xAxisLeftText:h(t.text)})},setXAxisRightText:function(t){c.setData({xAxisRightText:h(t.text)})},setYAxisTopText:function(t){c.setData({yAxisTopText:h(t.text)})},setYAxisBottomText:function(t){c.setData({yAxisBottomText:h(t.text)})},addPoint:function(t,i,e){c.addPoints([{x:i,y:e,text:h(t.text)}])},getQuadrantData:function(){const t=(0,a.c)(),{themeVariables:i,quadrantChart:e}=t;return e&&c.setConfig(e),c.setThemeConfig({quadrant1Fill:i.quadrant1Fill,quadrant2Fill:i.quadrant2Fill,quadrant3Fill:i.quadrant3Fill,quadrant4Fill:i.quadrant4Fill,quadrant1TextFill:i.quadrant1TextFill,quadrant2TextFill:i.quadrant2TextFill,quadrant3TextFill:i.quadrant3TextFill,quadrant4TextFill:i.quadrant4TextFill,quadrantPointFill:i.quadrantPointFill,quadrantPointTextFill:i.quadrantPointTextFill,quadrantXAxisTextFill:i.quadrantXAxisTextFill,quadrantYAxisTextFill:i.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:i.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:i.quadrantInternalBorderStrokeFill,quadrantTitleFill:i.quadrantTitleFill}),c.setData({titleText:(0,a.r)()}),c.build()},clear:function(){c.clear(),(0,a.t)()},setAccTitle:a.s,getAccTitle:a.g,setDiagramTitle:a.q,getDiagramTitle:a.r,getAccDescription:a.a,setAccDescription:a.b},renderer:{draw:(t,i,e,r)=>{var s,l,o;function h(t){return"top"===t?"hanging":"middle"}function c(t){return"left"===t?"start":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const u=(0,a.c)();a.l.debug("Rendering quadrant chart\n"+t);const x=u.securityLevel;let g;"sandbox"===x&&(g=(0,n.Ys)("#i"+i));const f=("sandbox"===x?(0,n.Ys)(g.nodes()[0].contentDocument.body):(0,n.Ys)("body")).select(`[id="${i}"]`),y=f.append("g").attr("class","main"),p=(null==(s=u.quadrantChart)?void 0:s.chartWidth)||500,q=(null==(l=u.quadrantChart)?void 0:l.chartHeight)||500;(0,a.i)(f,q,p,(null==(o=u.quadrantChart)?void 0:o.useMaxWidth)||!0),f.attr("viewBox","0 0 "+p+" "+q),r.db.setHeight(q),r.db.setWidth(p);const T=r.db.getQuadrantData(),A=y.append("g").attr("class","quadrants"),m=y.append("g").attr("class","border"),_=y.append("g").attr("class","data-points"),b=y.append("g").attr("class","labels"),S=y.append("g").attr("class","title");T.title&&S.append("text").attr("x",0).attr("y",0).attr("fill",T.title.fill).attr("font-size",T.title.fontSize).attr("dominant-baseline",h(T.title.horizontalPos)).attr("text-anchor",c(T.title.verticalPos)).attr("transform",d(T.title)).text(T.title.text),T.borderLines&&m.selectAll("line").data(T.borderLines).enter().append("line").attr("x1",(t=>t.x1)).attr("y1",(t=>t.y1)).attr("x2",(t=>t.x2)).attr("y2",(t=>t.y2)).style("stroke",(t=>t.strokeFill)).style("stroke-width",(t=>t.strokeWidth));const k=A.selectAll("g.quadrant").data(T.quadrants).enter().append("g").attr("class","quadrant");k.append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill)),k.append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>h(t.text.horizontalPos))).attr("text-anchor",(t=>c(t.text.verticalPos))).attr("transform",(t=>d(t.text))).text((t=>t.text.text));b.selectAll("g.label").data(T.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text((t=>t.text)).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>h(t.horizontalPos))).attr("text-anchor",(t=>c(t.verticalPos))).attr("transform",(t=>d(t)));const F=_.selectAll("g.data-point").data(T.points).enter().append("g").attr("class","data-point");F.append("circle").attr("cx",(t=>t.x)).attr("cy",(t=>t.y)).attr("r",(t=>t.radius)).attr("fill",(t=>t.fill)),F.append("text").attr("x",0).attr("y",0).text((t=>t.text.text)).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>h(t.text.horizontalPos))).attr("text-anchor",(t=>c(t.text.verticalPos))).attr("transform",(t=>d(t.text)))}},styles:()=>""}}}]); \ No newline at end of file diff --git a/assets/js/686a7a89.ebbeda14.js b/assets/js/686a7a89.ebbeda14.js new file mode 100644 index 0000000..d4ce2d8 --- /dev/null +++ b/assets/js/686a7a89.ebbeda14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[728],{77507:e=>{e.exports=JSON.parse('{"label":"graphs","permalink":"/algorithms/tags/graphs","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"graphs/bfs-tree","title":"Distance boundaries from BFS tree on undirected graphs","description":"Short explanation of distance boundaries deduced from a BFS tree.\\n","permalink":"/algorithms/graphs/bfs-tree"},{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/686a7a89.f7132b93.js b/assets/js/686a7a89.f7132b93.js deleted file mode 100644 index a516307..0000000 --- a/assets/js/686a7a89.f7132b93.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[728],{7507:e=>{e.exports=JSON.parse('{"label":"graphs","permalink":"/algorithms/tags/graphs","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"graphs/bfs-tree","title":"Distance boundaries from BFS tree on undirected graphs","description":"Short explanation of distance boundaries deduced from a BFS tree.\\n","permalink":"/algorithms/graphs/bfs-tree"},{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/6875c492.194341fa.js b/assets/js/6875c492.194341fa.js deleted file mode 100644 index 15830c4..0000000 --- a/assets/js/6875c492.194341fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8610],{9703:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(5999),a=n(2244),i=n(5893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},9985:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(9460),a=n(390),i=n(5893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},1714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(7294);var s=n(6010),a=n(5999),i=n(8824),l=n(833),r=n(5281),o=n(9960),c=n(1460),g=n(9703),d=n(197),u=n(9985),h=n(2212),p=n(7955),m=n(5893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". 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 post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},2212:(e,t,n)=>{n.d(t,{Z:()=>h});n(7294);var s=n(6010),a=n(5999),i=n(5742),l=n(5893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(5281),d=n(9047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.d5bd7daa.js b/assets/js/6875c492.d5bd7daa.js new file mode 100644 index 0000000..4f399c6 --- /dev/null +++ b/assets/js/6875c492.d5bd7daa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8610],{99703:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(95999),a=n(32244),i=n(85893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(9460),a=n(30390),i=n(85893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},41714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(67294);var s=n(86010),a=n(95999),i=n(88824),l=n(10833),r=n(35281),o=n(39960),c=n(61460),g=n(99703),d=n(90197),u=n(79985),h=n(22212),p=n(92503),m=n(85893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". 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 post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},22212:(e,t,n)=>{n.d(t,{Z:()=>h});n(67294);var s=n(86010),a=n(95999),i=n(35742),l=n(85893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(35281),d=n(59047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/6945.04a6ca6a.js b/assets/js/6945.1665fd21.js similarity index 64% rename from assets/js/6945.04a6ca6a.js rename to assets/js/6945.1665fd21.js index b40e21c..129c59b 100644 --- a/assets/js/6945.04a6ca6a.js +++ b/assets/js/6945.1665fd21.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6945],{6945:(e,s,f)=>{f.r(s)}}]); \ No newline at end of file +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6945],{46945:(e,s,f)=>{f.r(s)}}]); \ No newline at end of file diff --git a/assets/js/6985.5a048aa9.js b/assets/js/6985.5a048aa9.js deleted file mode 100644 index 4a3e758..0000000 --- a/assets/js/6985.5a048aa9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6985],{6985:(t,e,i)=>{i.d(e,{diagram:()=>T});var n=i(5322),r=i(4218),s=i(1644),a=i(5625),l=(i(7484),i(7967),i(7856),function(){var t=function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},e=[1,3],i=[1,4],n=[1,5],r=[1,6],s=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],a=[1,18],l=[2,7],c=[1,22],o=[1,23],h=[1,24],u=[1,25],y=[1,26],d=[1,27],p=[1,20],_=[1,28],E=[1,29],g=[62,63],R=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],f=[1,47],m=[1,48],I=[1,49],b=[1,50],k=[1,51],S=[1,52],T=[1,53],N=[53,54],x=[1,64],A=[1,60],v=[1,61],q=[1,62],$=[1,63],O=[1,65],w=[1,69],C=[1,70],L=[1,67],F=[1,68],M=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],D={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(t,e,i,n,r,s,a){var l=s.length-1;switch(r){case 4:this.$=s[l].trim(),n.setAccTitle(this.$);break;case 5:case 6:this.$=s[l].trim(),n.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:n.addRequirement(s[l-3],s[l-4]);break;case 14:n.setNewReqId(s[l-2]);break;case 15:n.setNewReqText(s[l-2]);break;case 16:n.setNewReqRisk(s[l-2]);break;case 17:n.setNewReqVerifyMethod(s[l-2]);break;case 20:this.$=n.RequirementType.REQUIREMENT;break;case 21:this.$=n.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=n.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=n.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=n.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=n.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=n.RiskLevel.LOW_RISK;break;case 27:this.$=n.RiskLevel.MED_RISK;break;case 28:this.$=n.RiskLevel.HIGH_RISK;break;case 29:this.$=n.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=n.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=n.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=n.VerifyType.VERIFY_TEST;break;case 33:n.addElement(s[l-3]);break;case 34:n.setNewElementType(s[l-2]);break;case 35:n.setNewElementDocRef(s[l-2]);break;case 38:n.addRelationship(s[l-2],s[l],s[l-4]);break;case 39:n.addRelationship(s[l-2],s[l-4],s[l]);break;case 40:this.$=n.Relationships.CONTAINS;break;case 41:this.$=n.Relationships.COPIES;break;case 42:this.$=n.Relationships.DERIVES;break;case 43:this.$=n.Relationships.SATISFIES;break;case 44:this.$=n.Relationships.VERIFIES;break;case 45:this.$=n.Relationships.REFINES;break;case 46:this.$=n.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:i,11:n,13:r},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:i,11:n,13:r},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(s,[2,6]),{3:12,4:2,6:e,9:i,11:n,13:r},{1:[2,2]},{4:17,5:a,7:13,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},t(s,[2,4]),t(s,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:a,7:31,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:32,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:33,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:34,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:35,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(g,[2,20]),t(g,[2,21]),t(g,[2,22]),t(g,[2,23]),t(g,[2,24]),t(g,[2,25]),t(R,[2,49]),t(R,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:f,56:m,57:I,58:b,59:k,60:S,61:T},{52:54,55:f,56:m,57:I,58:b,59:k,60:S,61:T},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(N,[2,40]),t(N,[2,41]),t(N,[2,42]),t(N,[2,43]),t(N,[2,44]),t(N,[2,45]),t(N,[2,46]),{54:[1,58]},{5:x,20:59,21:A,24:v,26:q,28:$,30:O},{5:w,30:C,46:66,47:L,49:F},{23:71,62:_,63:E},{23:72,62:_,63:E},t(M,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:x,20:77,21:A,24:v,26:q,28:$,30:O},t(M,[2,19]),t(M,[2,33]),{22:[1,78]},{22:[1,79]},{5:w,30:C,46:80,47:L,49:F},t(M,[2,37]),t(M,[2,38]),t(M,[2,39]),{23:81,62:_,63:E},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(M,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(M,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:x,20:106,21:A,24:v,26:q,28:$,30:O},{5:x,20:107,21:A,24:v,26:q,28:$,30:O},{5:x,20:108,21:A,24:v,26:q,28:$,30:O},{5:x,20:109,21:A,24:v,26:q,28:$,30:O},{5:w,30:C,46:110,47:L,49:F},{5:w,30:C,46:111,47:L,49:F},t(M,[2,14]),t(M,[2,15]),t(M,[2,16]),t(M,[2,17]),t(M,[2,34]),t(M,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(t,e){if(!e.recoverable){var i=new Error(t);throw i.hash=e,i}this.trace(t)},parse:function(t){var e=this,i=[0],n=[],r=[null],s=[],a=this.table,l="",c=0,o=0,h=s.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(y.yy[d]=this.yy[d]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var p=u.yylloc;s.push(p);var _=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,g,R,f,m,I,b,k,S,T={};;){if(g=i[i.length-1],this.defaultActions[g]?R=this.defaultActions[g]:(null==E&&(S=void 0,"number"!=typeof(S=n.pop()||u.lex()||1)&&(S instanceof Array&&(S=(n=S).pop()),S=e.symbols_[S]||S),E=S),R=a[g]&&a[g][E]),void 0===R||!R.length||!R[0]){var N="";for(m in k=[],a[g])this.terminals_[m]&&m>2&&k.push("'"+this.terminals_[m]+"'");N=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(N,{text:u.match,token:this.terminals_[E]||E,line:u.yylineno,loc:p,expected:k})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+E);switch(R[0]){case 1:i.push(E),r.push(u.yytext),s.push(u.yylloc),i.push(R[1]),E=null,o=u.yyleng,l=u.yytext,c=u.yylineno,p=u.yylloc;break;case 2:if(I=this.productions_[R[1]][1],T.$=r[r.length-I],T._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},_&&(T._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),void 0!==(f=this.performAction.apply(T,[l,o,c,y.yy,R[1],r,s].concat(h))))return f;I&&(i=i.slice(0,-1*I*2),r=r.slice(0,-1*I),s=s.slice(0,-1*I)),i.push(this.productions_[R[1]][0]),r.push(T.$),s.push(T._$),b=a[i[i.length-2]][i[i.length-1]],i.push(b);break;case 3:return!0}}return!0}},P={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,i=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 n=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),i.length-1&&(this.yylineno-=i.length-1);var r=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:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[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 i,n,r;if(this.options.backtrack_lexer&&(r={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&&(r.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var s in r)this[s]=r[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,i,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;s<r.length;s++)if((i=this._input.match(this.rules[r[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[n]))&&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,i,n){switch(i){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 48:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:case 10:case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 49:return"qString";case 50:return e.yytext=e.yytext.trim(),62}},rules:[/^(?: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:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,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,50],inclusive:!0}}};function V(){this.yy={}}return D.lexer=P,V.prototype=D,D.Parser=V,new V}());l.parser=l;const c=l;let o=[],h={},u={},y={},d={};const p={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"},getConfig:()=>(0,n.c)().req,addRequirement:(t,e)=>(void 0===u[t]&&(u[t]={name:t,type:e,id:h.id,text:h.text,risk:h.risk,verifyMethod:h.verifyMethod}),h={},u[t]),getRequirements:()=>u,setNewReqId:t=>{void 0!==h&&(h.id=t)},setNewReqText:t=>{void 0!==h&&(h.text=t)},setNewReqRisk:t=>{void 0!==h&&(h.risk=t)},setNewReqVerifyMethod:t=>{void 0!==h&&(h.verifyMethod=t)},setAccTitle:n.s,getAccTitle:n.g,setAccDescription:n.b,getAccDescription:n.a,addElement:t=>(void 0===d[t]&&(d[t]={name:t,type:y.type,docRef:y.docRef},n.l.info("Added new requirement: ",t)),y={},d[t]),getElements:()=>d,setNewElementType:t=>{void 0!==y&&(y.type=t)},setNewElementDocRef:t=>{void 0!==y&&(y.docRef=t)},addRelationship:(t,e,i)=>{o.push({type:t,src:e,dst:i})},getRelationships:()=>o,clear:()=>{o=[],h={},u={},y={},d={},(0,n.t)()}},_={CONTAINS:"contains",ARROW:"arrow"},E=_,g=(t,e)=>{let i=t.append("defs").append("marker").attr("id",_.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");i.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),i.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),i.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",_.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 R={},f=0;const m=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",R.rect_min_width+"px").attr("height",R.rect_min_height+"px"),I=(t,e,i)=>{let n=R.rect_min_width/2,r=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",R.rect_padding).attr("dominant-baseline","hanging"),s=0;i.forEach((t=>{0==s?r.append("tspan").attr("text-anchor","middle").attr("x",R.rect_min_width/2).attr("dy",0).text(t):r.append("tspan").attr("text-anchor","middle").attr("x",R.rect_min_width/2).attr("dy",.75*R.line_height).text(t),s++}));let a=1.5*R.rect_padding+s*R.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",R.rect_min_width).attr("y1",a).attr("y2",a),{titleNode:r,y:a}},b=(t,e,i,n)=>{let r=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",R.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),s=0;let a=[];return i.forEach((t=>{let e=t.length;for(;e>30&&s<3;){let i=t.substring(0,30);e=(t=t.substring(30,t.length)).length,a[a.length]=i,s++}if(3==s){let t=a[a.length-1];a[a.length-1]=t.substring(0,t.length-4)+"..."}else a[a.length]=t;s=0})),a.forEach((t=>{r.append("tspan").attr("x",R.rect_padding).attr("dy",R.line_height).text(t)})),r},k=function(t,e,i,s,a){const l=i.edge(S(e.src),S(e.dst)),c=(0,r.jvg)().x((function(t){return t.x})).y((function(t){return t.y})),o=t.insert("path","#"+s).attr("class","er relationshipLine").attr("d",c(l.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?o.attr("marker-start","url("+n.e.getUrl(R.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(o.attr("stroke-dasharray","10,7"),o.attr("marker-end","url("+n.e.getUrl(R.arrowMarkerAbsolute)+"#"+E.ARROW+"_line_ending)")),((t,e,i,n)=>{const r=e.node().getTotalLength(),s=e.node().getPointAtLength(.5*r),a="rel"+f;f++;const l=t.append("text").attr("class","req relationshipLabel").attr("id",a).attr("x",s.x).attr("y",s.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();t.insert("rect","#"+a).attr("class","req reqLabelBox").attr("x",s.x-l.width/2).attr("y",s.y-l.height/2).attr("width",l.width).attr("height",l.height).attr("fill","white").attr("fill-opacity","85%")})(t,o,0,`<<${e.type}>>`)},S=t=>t.replace(/\s/g,"").replace(/\./g,"_"),T={parser:c,db:p,renderer:{draw:(t,e,i,l)=>{R=(0,n.c)().requirement;const c=R.securityLevel;let o;"sandbox"===c&&(o=(0,r.Ys)("#i"+e));const h=("sandbox"===c?(0,r.Ys)(o.nodes()[0].contentDocument.body):(0,r.Ys)("body")).select(`[id='${e}']`);g(h,R);const u=new a.k({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:R.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let y=l.db.getRequirements(),d=l.db.getElements(),p=l.db.getRelationships();var _,E,f;_=y,E=u,f=h,Object.keys(_).forEach((t=>{let e=_[t];t=S(t),n.l.info("Added new requirement: ",t);const i=f.append("g").attr("id",t),r=m(i,"req-"+t);let s=I(i,t+"_title",[`<<${e.type}>>`,`${e.name}`]);b(i,t+"_body",[`Id: ${e.id}`,`Text: ${e.text}`,`Risk: ${e.risk}`,`Verification: ${e.verifyMethod}`],s.y);const a=r.node().getBBox();E.setNode(t,{width:a.width,height:a.height,shape:"rect",id:t})})),((t,e,i)=>{Object.keys(t).forEach((n=>{let r=t[n];const s=S(n),a=i.append("g").attr("id",s),l="element-"+s,c=m(a,l);let o=I(a,l+"_title",["<<Element>>",`${n}`]);b(a,l+"_body",[`Type: ${r.type||"Not Specified"}`,`Doc Ref: ${r.docRef||"None"}`],o.y);const h=c.node().getBBox();e.setNode(s,{width:h.width,height:h.height,shape:"rect",id:s})}))})(d,u,h),((t,e)=>{t.forEach((function(t){let i=S(t.src),n=S(t.dst);e.setEdge(i,n,{relationship:t})}))})(p,u),(0,s.bK)(u),function(t,e){e.nodes().forEach((function(i){void 0!==i&&void 0!==e.node(i)&&(t.select("#"+i),t.select("#"+i).attr("transform","translate("+(e.node(i).x-e.node(i).width/2)+","+(e.node(i).y-e.node(i).height/2)+" )"))}))}(h,u),p.forEach((function(t){k(h,t,u,e,l)}));const T=R.rect_padding,N=h.node().getBBox(),x=N.width+2*T,A=N.height+2*T;(0,n.i)(h,A,x,R.useMaxWidth),h.attr("viewBox",`${N.x-T} ${N.y-T} ${x} ${A}`)}},styles: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: 1.0;\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: 1.0;\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`}}}]); \ No newline at end of file diff --git a/assets/js/6985.b22ddd47.js b/assets/js/6985.b22ddd47.js new file mode 100644 index 0000000..f550465 --- /dev/null +++ b/assets/js/6985.b22ddd47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6985],{66985:(t,e,i)=>{i.d(e,{diagram:()=>T});var n=i(85322),r=i(64218),s=i(41644),a=i(45625),l=(i(27484),i(17967),i(27856),function(){var t=function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},e=[1,3],i=[1,4],n=[1,5],r=[1,6],s=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],a=[1,18],l=[2,7],c=[1,22],o=[1,23],h=[1,24],u=[1,25],y=[1,26],d=[1,27],p=[1,20],_=[1,28],E=[1,29],g=[62,63],R=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],f=[1,47],m=[1,48],I=[1,49],b=[1,50],k=[1,51],S=[1,52],T=[1,53],N=[53,54],x=[1,64],A=[1,60],v=[1,61],q=[1,62],$=[1,63],O=[1,65],w=[1,69],C=[1,70],L=[1,67],F=[1,68],M=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],D={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(t,e,i,n,r,s,a){var l=s.length-1;switch(r){case 4:this.$=s[l].trim(),n.setAccTitle(this.$);break;case 5:case 6:this.$=s[l].trim(),n.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:n.addRequirement(s[l-3],s[l-4]);break;case 14:n.setNewReqId(s[l-2]);break;case 15:n.setNewReqText(s[l-2]);break;case 16:n.setNewReqRisk(s[l-2]);break;case 17:n.setNewReqVerifyMethod(s[l-2]);break;case 20:this.$=n.RequirementType.REQUIREMENT;break;case 21:this.$=n.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=n.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=n.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=n.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=n.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=n.RiskLevel.LOW_RISK;break;case 27:this.$=n.RiskLevel.MED_RISK;break;case 28:this.$=n.RiskLevel.HIGH_RISK;break;case 29:this.$=n.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=n.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=n.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=n.VerifyType.VERIFY_TEST;break;case 33:n.addElement(s[l-3]);break;case 34:n.setNewElementType(s[l-2]);break;case 35:n.setNewElementDocRef(s[l-2]);break;case 38:n.addRelationship(s[l-2],s[l],s[l-4]);break;case 39:n.addRelationship(s[l-2],s[l-4],s[l]);break;case 40:this.$=n.Relationships.CONTAINS;break;case 41:this.$=n.Relationships.COPIES;break;case 42:this.$=n.Relationships.DERIVES;break;case 43:this.$=n.Relationships.SATISFIES;break;case 44:this.$=n.Relationships.VERIFIES;break;case 45:this.$=n.Relationships.REFINES;break;case 46:this.$=n.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:i,11:n,13:r},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:i,11:n,13:r},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(s,[2,6]),{3:12,4:2,6:e,9:i,11:n,13:r},{1:[2,2]},{4:17,5:a,7:13,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},t(s,[2,4]),t(s,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:a,7:31,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:32,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:33,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:34,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{4:17,5:a,7:35,8:l,9:i,11:n,13:r,14:14,15:15,16:16,17:19,23:21,31:c,32:o,33:h,34:u,35:y,36:d,44:p,62:_,63:E},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(g,[2,20]),t(g,[2,21]),t(g,[2,22]),t(g,[2,23]),t(g,[2,24]),t(g,[2,25]),t(R,[2,49]),t(R,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:f,56:m,57:I,58:b,59:k,60:S,61:T},{52:54,55:f,56:m,57:I,58:b,59:k,60:S,61:T},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(N,[2,40]),t(N,[2,41]),t(N,[2,42]),t(N,[2,43]),t(N,[2,44]),t(N,[2,45]),t(N,[2,46]),{54:[1,58]},{5:x,20:59,21:A,24:v,26:q,28:$,30:O},{5:w,30:C,46:66,47:L,49:F},{23:71,62:_,63:E},{23:72,62:_,63:E},t(M,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:x,20:77,21:A,24:v,26:q,28:$,30:O},t(M,[2,19]),t(M,[2,33]),{22:[1,78]},{22:[1,79]},{5:w,30:C,46:80,47:L,49:F},t(M,[2,37]),t(M,[2,38]),t(M,[2,39]),{23:81,62:_,63:E},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(M,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(M,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:x,20:106,21:A,24:v,26:q,28:$,30:O},{5:x,20:107,21:A,24:v,26:q,28:$,30:O},{5:x,20:108,21:A,24:v,26:q,28:$,30:O},{5:x,20:109,21:A,24:v,26:q,28:$,30:O},{5:w,30:C,46:110,47:L,49:F},{5:w,30:C,46:111,47:L,49:F},t(M,[2,14]),t(M,[2,15]),t(M,[2,16]),t(M,[2,17]),t(M,[2,34]),t(M,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(t,e){if(!e.recoverable){var i=new Error(t);throw i.hash=e,i}this.trace(t)},parse:function(t){var e=this,i=[0],n=[],r=[null],s=[],a=this.table,l="",c=0,o=0,h=s.slice.call(arguments,1),u=Object.create(this.lexer),y={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(y.yy[d]=this.yy[d]);u.setInput(t,y.yy),y.yy.lexer=u,y.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var p=u.yylloc;s.push(p);var _=u.options&&u.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,g,R,f,m,I,b,k,S,T={};;){if(g=i[i.length-1],this.defaultActions[g]?R=this.defaultActions[g]:(null==E&&(S=void 0,"number"!=typeof(S=n.pop()||u.lex()||1)&&(S instanceof Array&&(S=(n=S).pop()),S=e.symbols_[S]||S),E=S),R=a[g]&&a[g][E]),void 0===R||!R.length||!R[0]){var N="";for(m in k=[],a[g])this.terminals_[m]&&m>2&&k.push("'"+this.terminals_[m]+"'");N=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(N,{text:u.match,token:this.terminals_[E]||E,line:u.yylineno,loc:p,expected:k})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+E);switch(R[0]){case 1:i.push(E),r.push(u.yytext),s.push(u.yylloc),i.push(R[1]),E=null,o=u.yyleng,l=u.yytext,c=u.yylineno,p=u.yylloc;break;case 2:if(I=this.productions_[R[1]][1],T.$=r[r.length-I],T._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},_&&(T._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),void 0!==(f=this.performAction.apply(T,[l,o,c,y.yy,R[1],r,s].concat(h))))return f;I&&(i=i.slice(0,-1*I*2),r=r.slice(0,-1*I),s=s.slice(0,-1*I)),i.push(this.productions_[R[1]][0]),r.push(T.$),s.push(T._$),b=a[i[i.length-2]][i[i.length-1]],i.push(b);break;case 3:return!0}}return!0}},P={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,i=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 n=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),i.length-1&&(this.yylineno-=i.length-1);var r=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:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[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 i,n,r;if(this.options.backtrack_lexer&&(r={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&&(r.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var s in r)this[s]=r[s];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,i,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;s<r.length;s++)if((i=this._input.match(this.rules[r[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,n=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[n]))&&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,i,n){switch(i){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 48:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:case 10:case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 49:return"qString";case 50:return e.yytext=e.yytext.trim(),62}},rules:[/^(?: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:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,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,50],inclusive:!0}}};function V(){this.yy={}}return D.lexer=P,V.prototype=D,D.Parser=V,new V}());l.parser=l;const c=l;let o=[],h={},u={},y={},d={};const p={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"},getConfig:()=>(0,n.c)().req,addRequirement:(t,e)=>(void 0===u[t]&&(u[t]={name:t,type:e,id:h.id,text:h.text,risk:h.risk,verifyMethod:h.verifyMethod}),h={},u[t]),getRequirements:()=>u,setNewReqId:t=>{void 0!==h&&(h.id=t)},setNewReqText:t=>{void 0!==h&&(h.text=t)},setNewReqRisk:t=>{void 0!==h&&(h.risk=t)},setNewReqVerifyMethod:t=>{void 0!==h&&(h.verifyMethod=t)},setAccTitle:n.s,getAccTitle:n.g,setAccDescription:n.b,getAccDescription:n.a,addElement:t=>(void 0===d[t]&&(d[t]={name:t,type:y.type,docRef:y.docRef},n.l.info("Added new requirement: ",t)),y={},d[t]),getElements:()=>d,setNewElementType:t=>{void 0!==y&&(y.type=t)},setNewElementDocRef:t=>{void 0!==y&&(y.docRef=t)},addRelationship:(t,e,i)=>{o.push({type:t,src:e,dst:i})},getRelationships:()=>o,clear:()=>{o=[],h={},u={},y={},d={},(0,n.t)()}},_={CONTAINS:"contains",ARROW:"arrow"},E=_,g=(t,e)=>{let i=t.append("defs").append("marker").attr("id",_.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");i.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),i.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),i.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",_.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 R={},f=0;const m=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",R.rect_min_width+"px").attr("height",R.rect_min_height+"px"),I=(t,e,i)=>{let n=R.rect_min_width/2,r=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",R.rect_padding).attr("dominant-baseline","hanging"),s=0;i.forEach((t=>{0==s?r.append("tspan").attr("text-anchor","middle").attr("x",R.rect_min_width/2).attr("dy",0).text(t):r.append("tspan").attr("text-anchor","middle").attr("x",R.rect_min_width/2).attr("dy",.75*R.line_height).text(t),s++}));let a=1.5*R.rect_padding+s*R.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",R.rect_min_width).attr("y1",a).attr("y2",a),{titleNode:r,y:a}},b=(t,e,i,n)=>{let r=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",R.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),s=0;let a=[];return i.forEach((t=>{let e=t.length;for(;e>30&&s<3;){let i=t.substring(0,30);e=(t=t.substring(30,t.length)).length,a[a.length]=i,s++}if(3==s){let t=a[a.length-1];a[a.length-1]=t.substring(0,t.length-4)+"..."}else a[a.length]=t;s=0})),a.forEach((t=>{r.append("tspan").attr("x",R.rect_padding).attr("dy",R.line_height).text(t)})),r},k=function(t,e,i,s,a){const l=i.edge(S(e.src),S(e.dst)),c=(0,r.jvg)().x((function(t){return t.x})).y((function(t){return t.y})),o=t.insert("path","#"+s).attr("class","er relationshipLine").attr("d",c(l.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?o.attr("marker-start","url("+n.e.getUrl(R.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(o.attr("stroke-dasharray","10,7"),o.attr("marker-end","url("+n.e.getUrl(R.arrowMarkerAbsolute)+"#"+E.ARROW+"_line_ending)")),((t,e,i,n)=>{const r=e.node().getTotalLength(),s=e.node().getPointAtLength(.5*r),a="rel"+f;f++;const l=t.append("text").attr("class","req relationshipLabel").attr("id",a).attr("x",s.x).attr("y",s.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();t.insert("rect","#"+a).attr("class","req reqLabelBox").attr("x",s.x-l.width/2).attr("y",s.y-l.height/2).attr("width",l.width).attr("height",l.height).attr("fill","white").attr("fill-opacity","85%")})(t,o,0,`<<${e.type}>>`)},S=t=>t.replace(/\s/g,"").replace(/\./g,"_"),T={parser:c,db:p,renderer:{draw:(t,e,i,l)=>{R=(0,n.c)().requirement;const c=R.securityLevel;let o;"sandbox"===c&&(o=(0,r.Ys)("#i"+e));const h=("sandbox"===c?(0,r.Ys)(o.nodes()[0].contentDocument.body):(0,r.Ys)("body")).select(`[id='${e}']`);g(h,R);const u=new a.k({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:R.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let y=l.db.getRequirements(),d=l.db.getElements(),p=l.db.getRelationships();var _,E,f;_=y,E=u,f=h,Object.keys(_).forEach((t=>{let e=_[t];t=S(t),n.l.info("Added new requirement: ",t);const i=f.append("g").attr("id",t),r=m(i,"req-"+t);let s=I(i,t+"_title",[`<<${e.type}>>`,`${e.name}`]);b(i,t+"_body",[`Id: ${e.id}`,`Text: ${e.text}`,`Risk: ${e.risk}`,`Verification: ${e.verifyMethod}`],s.y);const a=r.node().getBBox();E.setNode(t,{width:a.width,height:a.height,shape:"rect",id:t})})),((t,e,i)=>{Object.keys(t).forEach((n=>{let r=t[n];const s=S(n),a=i.append("g").attr("id",s),l="element-"+s,c=m(a,l);let o=I(a,l+"_title",["<<Element>>",`${n}`]);b(a,l+"_body",[`Type: ${r.type||"Not Specified"}`,`Doc Ref: ${r.docRef||"None"}`],o.y);const h=c.node().getBBox();e.setNode(s,{width:h.width,height:h.height,shape:"rect",id:s})}))})(d,u,h),((t,e)=>{t.forEach((function(t){let i=S(t.src),n=S(t.dst);e.setEdge(i,n,{relationship:t})}))})(p,u),(0,s.bK)(u),function(t,e){e.nodes().forEach((function(i){void 0!==i&&void 0!==e.node(i)&&(t.select("#"+i),t.select("#"+i).attr("transform","translate("+(e.node(i).x-e.node(i).width/2)+","+(e.node(i).y-e.node(i).height/2)+" )"))}))}(h,u),p.forEach((function(t){k(h,t,u,e,l)}));const T=R.rect_padding,N=h.node().getBBox(),x=N.width+2*T,A=N.height+2*T;(0,n.i)(h,A,x,R.useMaxWidth),h.attr("viewBox",`${N.x-T} ${N.y-T} ${x} ${A}`)}},styles: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: 1.0;\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: 1.0;\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`}}}]); \ No newline at end of file diff --git a/assets/js/6bc697d0.1bfc859a.js b/assets/js/6bc697d0.1bfc859a.js deleted file mode 100644 index efe662c..0000000 --- a/assets/js/6bc697d0.1bfc859a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5287],{8529:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"cpp"}')}}]); \ No newline at end of file diff --git a/assets/js/6bc697d0.410760a1.js b/assets/js/6bc697d0.410760a1.js new file mode 100644 index 0000000..606db4d --- /dev/null +++ b/assets/js/6bc697d0.410760a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5287],{68529:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"cpp"}')}}]); \ No newline at end of file diff --git a/assets/js/6e3cbca1.a0392349.js b/assets/js/6e3cbca1.a0392349.js new file mode 100644 index 0000000..f515bee --- /dev/null +++ b/assets/js/6e3cbca1.a0392349.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3276],{29538:e=>{e.exports=JSON.parse('{"pluginId":"algorithms","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/algorithms/","docId":"algorithms-intro","unlisted":false},{"type":"category","label":"Algorithms and Correctness","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Vague postconditions and proving correctness of algorithms","href":"/algorithms/algorithms-correctness/postcondition-ambiguity","docId":"algorithms-correctness/postcondition-ambiguity","unlisted":false}],"href":"/algorithms/category/algorithms-and-correctness"},{"type":"category","label":"Asymptotic Notation and Time Complexity","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Time complexity of \u2039extend\u203a","href":"/algorithms/time-complexity/extend","docId":"time-complexity/extend","unlisted":false}],"href":"/algorithms/category/asymptotic-notation-and-time-complexity"},{"type":"category","label":"Recursion","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Recursion and backtracking with Robot Karel","href":"/algorithms/recursion/karel-1","docId":"recursion/karel-1","unlisted":false},{"type":"link","label":"Introduction to dynamic programming","href":"/algorithms/recursion/pyramid-slide-down","docId":"recursion/pyramid-slide-down","unlisted":false}],"href":"/algorithms/category/recursion"},{"type":"category","label":"Red-Black Trees","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","href":"/algorithms/rb-trees/applications","docId":"rb-trees/applications","unlisted":false},{"type":"link","label":"On the rules of the red-black tree","href":"/algorithms/rb-trees/rules","docId":"rb-trees/rules","unlisted":false}],"href":"/algorithms/category/red-black-trees"},{"type":"category","label":"Graphs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Iterative algorithms via iterators","href":"/algorithms/graphs/iterative-and-iterators","docId":"graphs/iterative-and-iterators","unlisted":false},{"type":"link","label":"Distance boundaries from BFS tree on undirected graphs","href":"/algorithms/graphs/bfs-tree","docId":"graphs/bfs-tree","unlisted":false}],"href":"/algorithms/category/graphs"},{"type":"category","label":"Hash Tables","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Breaking Hash Table","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Breaking Python","href":"/algorithms/hash-tables/breaking/python","docId":"hash-tables/2023-11-28-breaking/python","unlisted":false},{"type":"link","label":"Possible Mitigations","href":"/algorithms/hash-tables/breaking/mitigations","docId":"hash-tables/2023-11-28-breaking/mitigations","unlisted":false}],"href":"/algorithms/hash-tables/breaking"}],"href":"/algorithms/category/hash-tables"}]},"docs":{"algorithms-correctness/postcondition-ambiguity":{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","sidebar":"autogeneratedBar"},"algorithms-intro":{"id":"algorithms-intro","title":"Introduction","description":"In this part you can find \u201crandom\u201d additional materials I have written over the","sidebar":"autogeneratedBar"},"graphs/bfs-tree":{"id":"graphs/bfs-tree","title":"Distance boundaries from BFS tree on undirected graphs","description":"Short explanation of distance boundaries deduced from a BFS tree.\\n","sidebar":"autogeneratedBar"},"graphs/iterative-and-iterators":{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","sidebar":"autogeneratedBar"},"hash-tables/2023-11-28-breaking/breaking":{"id":"hash-tables/2023-11-28-breaking/breaking","title":"Breaking Hash Table","description":"How to get the linear time complexity in a hash table.\\n","sidebar":"autogeneratedBar"},"hash-tables/2023-11-28-breaking/mitigations":{"id":"hash-tables/2023-11-28-breaking/mitigations","title":"Possible Mitigations","description":"Talking about the ways how to prevent the attacks on the hash table.\\n","sidebar":"autogeneratedBar"},"hash-tables/2023-11-28-breaking/python":{"id":"hash-tables/2023-11-28-breaking/python","title":"Breaking Python","description":"Actually getting the worst-case time complexity in Python.\\n","sidebar":"autogeneratedBar"},"rb-trees/applications":{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","sidebar":"autogeneratedBar"},"rb-trees/rules":{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","sidebar":"autogeneratedBar"},"recursion/karel-1":{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","sidebar":"autogeneratedBar"},"recursion/pyramid-slide-down":{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","sidebar":"autogeneratedBar"},"time-complexity/extend":{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/6e3cbca1.fa9cc87f.js b/assets/js/6e3cbca1.fa9cc87f.js deleted file mode 100644 index 494176b..0000000 --- a/assets/js/6e3cbca1.fa9cc87f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3276],{9538:e=>{e.exports=JSON.parse('{"pluginId":"algorithms","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/algorithms/","docId":"algorithms-intro","unlisted":false},{"type":"category","label":"Algorithms and Correctness","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Vague postconditions and proving correctness of algorithms","href":"/algorithms/algorithms-correctness/postcondition-ambiguity","docId":"algorithms-correctness/postcondition-ambiguity","unlisted":false}],"href":"/algorithms/category/algorithms-and-correctness"},{"type":"category","label":"Asymptotic Notation and Time Complexity","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Time complexity of \u2039extend\u203a","href":"/algorithms/time-complexity/extend","docId":"time-complexity/extend","unlisted":false}],"href":"/algorithms/category/asymptotic-notation-and-time-complexity"},{"type":"category","label":"Recursion","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Recursion and backtracking with Robot Karel","href":"/algorithms/recursion/karel-1","docId":"recursion/karel-1","unlisted":false},{"type":"link","label":"Introduction to dynamic programming","href":"/algorithms/recursion/pyramid-slide-down","docId":"recursion/pyramid-slide-down","unlisted":false}],"href":"/algorithms/category/recursion"},{"type":"category","label":"Red-Black Trees","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","href":"/algorithms/rb-trees/applications","docId":"rb-trees/applications","unlisted":false},{"type":"link","label":"On the rules of the red-black tree","href":"/algorithms/rb-trees/rules","docId":"rb-trees/rules","unlisted":false}],"href":"/algorithms/category/red-black-trees"},{"type":"category","label":"Graphs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Iterative algorithms via iterators","href":"/algorithms/graphs/iterative-and-iterators","docId":"graphs/iterative-and-iterators","unlisted":false},{"type":"link","label":"Distance boundaries from BFS tree on undirected graphs","href":"/algorithms/graphs/bfs-tree","docId":"graphs/bfs-tree","unlisted":false}],"href":"/algorithms/category/graphs"}]},"docs":{"algorithms-correctness/postcondition-ambiguity":{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","sidebar":"autogeneratedBar"},"algorithms-intro":{"id":"algorithms-intro","title":"Introduction","description":"In this part you can find \u201crandom\u201d additional materials I have written over the","sidebar":"autogeneratedBar"},"graphs/bfs-tree":{"id":"graphs/bfs-tree","title":"Distance boundaries from BFS tree on undirected graphs","description":"Short explanation of distance boundaries deduced from a BFS tree.\\n","sidebar":"autogeneratedBar"},"graphs/iterative-and-iterators":{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","sidebar":"autogeneratedBar"},"rb-trees/applications":{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","sidebar":"autogeneratedBar"},"rb-trees/rules":{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","sidebar":"autogeneratedBar"},"recursion/karel-1":{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","sidebar":"autogeneratedBar"},"recursion/pyramid-slide-down":{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","sidebar":"autogeneratedBar"},"time-complexity/extend":{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/7052c0bc.7ea7b00f.js b/assets/js/7052c0bc.7ea7b00f.js deleted file mode 100644 index bd4f059..0000000 --- a/assets/js/7052c0bc.7ea7b00f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9731],{2286:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(5893),r=n(1151);const i={id:"cpp-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"cpp-intro",title:"Introduction",description:"",source:"@site/cpp/00-intro.md",sourceDirName:".",slug:"/",permalink:"/cpp/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/00-intro.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",sidebarPosition:0,frontMatter:{id:"cpp-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"}},a={},p=[];function u(t){return(0,o.jsx)(o.Fragment,{})}function d(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u()}},1151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(7294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/7052c0bc.beae1b38.js b/assets/js/7052c0bc.beae1b38.js new file mode 100644 index 0000000..7d7cab7 --- /dev/null +++ b/assets/js/7052c0bc.beae1b38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9731],{42286:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(85893),r=n(11151);const i={id:"cpp-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"cpp-intro",title:"Introduction",description:"",source:"@site/cpp/00-intro.md",sourceDirName:".",slug:"/",permalink:"/cpp/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/00-intro.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",sidebarPosition:0,frontMatter:{id:"cpp-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"}},a={},p=[];function u(t){return(0,o.jsx)(o.Fragment,{})}function d(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u()}},11151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(67294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/75cccf44.61f0ccf1.js b/assets/js/75cccf44.61f0ccf1.js deleted file mode 100644 index 2b97cb2..0000000 --- a/assets/js/75cccf44.61f0ccf1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4256],{8215:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=o(5893),n=o(1151);const l={title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},r=void 0,i={permalink:"/blog/leetcode/sort-diagonally",editUrl:"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md",source:"@site/blog/leetcode/sort-matrix-diagonally.md",title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15:00.000Z",formattedDate:"March 4, 2023",tags:[{label:"cpp",permalink:"/blog/tags/cpp"},{label:"leetcode",permalink:"/blog/tags/leetcode"},{label:"iterators",permalink:"/blog/tags/iterators"}],readingTime:16.99,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"},nextItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"}},s={authorsImageUrls:[void 0]},c=[];function d(e){const t={p:"p",...(0,n.a)(),...e.components};return(0,a.jsx)(t.p,{children:"Let's try to solve one of the LeetCode challenges in easy and hard mode at the\nsame time."})}function m(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>i,a:()=>r});var a=o(7294);const n={},l=a.createContext(n);function r(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/75cccf44.b0cfb80e.js b/assets/js/75cccf44.b0cfb80e.js new file mode 100644 index 0000000..2ea420b --- /dev/null +++ b/assets/js/75cccf44.b0cfb80e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4256],{98215:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=o(85893),n=o(11151);const l={title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},r=void 0,i={permalink:"/blog/leetcode/sort-diagonally",editUrl:"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md",source:"@site/blog/leetcode/sort-matrix-diagonally.md",title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15:00.000Z",formattedDate:"March 4, 2023",tags:[{label:"cpp",permalink:"/blog/tags/cpp"},{label:"leetcode",permalink:"/blog/tags/leetcode"},{label:"iterators",permalink:"/blog/tags/iterators"}],readingTime:16.99,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"},nextItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"}},s={authorsImageUrls:[void 0]},c=[];function d(e){const t={p:"p",...(0,n.a)(),...e.components};return(0,a.jsx)(t.p,{children:"Let's try to solve one of the LeetCode challenges in easy and hard mode at the\nsame time."})}function m(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>i,a:()=>r});var a=o(67294);const n={},l=a.createContext(n);function r(e){const t=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/765ea78b.29a37caf.js b/assets/js/765ea78b.29a37caf.js new file mode 100644 index 0000000..584c771 --- /dev/null +++ b/assets/js/765ea78b.29a37caf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3039],{83010:s=>{s.exports=JSON.parse('{"label":"\ud83c\udfed","permalink":"/blog/tags/\ud83c\udfed","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/765ea78b.d017fb4d.js b/assets/js/765ea78b.d017fb4d.js deleted file mode 100644 index 6805ac7..0000000 --- a/assets/js/765ea78b.d017fb4d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3039],{3010:s=>{s.exports=JSON.parse('{"label":"\ud83c\udfed","permalink":"/blog/tags/\ud83c\udfed","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/7936.da5208cb.js b/assets/js/7936.da5208cb.js new file mode 100644 index 0000000..c60e517 --- /dev/null +++ b/assets/js/7936.da5208cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7936],{39354:(e,t,n)=>{n.d(t,{c:()=>l});var r=n(49360),i=n(48451);const a=function(e){return(0,i.Z)(e,4)};var d=n(43836);n(52544);function l(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:s(e)};return r.Z(e.graph())||(t.value=a(e.graph())),t}function o(e){return d.Z(e.nodes(),(function(t){var n=e.node(t),i=e.parent(t),a={v:t};return r.Z(n)||(a.value=n),r.Z(i)||(a.parent=i),a}))}function s(e){return d.Z(e.edges(),(function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.Z(t.name)||(i.name=t.name),r.Z(n)||(i.value=n),i}))}},87936:(e,t,n)=>{n.d(t,{r:()=>X});var r=n(41644),i=n(39354),a=n(25269),d=n(85322),l=n(45625),o=n(13076),s=n(64218);let c={},h={},g={};const f=(e,t)=>(d.l.trace("In isDecendant",t," ",e," = ",h[t].includes(e)),!!h[t].includes(e)),u=(e,t,n,r)=>{d.l.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),d.l.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach((i=>{if(t.children(i).length>0)u(i,t,n,r);else{const a=t.node(i);d.l.info("cp ",i," to ",r," with parent ",e),n.setNode(i,a),r!==t.parent(i)&&(d.l.warn("Setting parent",i,t.parent(i)),n.setParent(i,t.parent(i))),e!==r&&i!==e?(d.l.debug("Setting parent",i,e),n.setParent(i,e)):(d.l.info("In copy ",e,"root",r,"data",t.node(e),r),d.l.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==r,"node!==clusterId",i!==e));const l=t.edges(i);d.l.debug("Copying Edges",l),l.forEach((i=>{d.l.info("Edge",i);const a=t.edge(i.v,i.w,i.name);d.l.info("Edge data",a,r);try{((e,t)=>(d.l.info("Decendants of ",t," is ",h[t]),d.l.info("Edge is ",e),e.v!==t&&e.w!==t&&(h[t]?h[t].includes(e.v)||f(e.v,t)||f(e.w,t)||h[t].includes(e.w):(d.l.debug("Tilt, ",t,",not in decendants"),!1))))(i,r)?(d.l.info("Copying as ",i.v,i.w,a,i.name),n.setEdge(i.v,i.w,a,i.name),d.l.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):d.l.info("Skipping copy of edge ",i.v,"--\x3e",i.w," rootId: ",r," clusterId:",e)}catch(l){d.l.error(l)}}))}d.l.debug("Removing node",i),t.removeNode(i)}))},w=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)g[i]=e,r=[...r,...w(i,t)];return r},p=(e,t)=>{d.l.trace("Searching",e);const n=t.children(e);if(d.l.trace("Searching children of id ",e,n),n.length<1)return d.l.trace("This is a valid node",e),e;for(const r of n){const n=p(r,t);if(n)return d.l.trace("Found replacement for",e," => ",n),n}},v=e=>c[e]&&c[e].externalConnections&&c[e]?c[e].id:e,y=(e,t)=>{if(d.l.warn("extractor - ",t,i.c(e),e.children("D")),t>10)return void d.l.error("Bailing out");let n=e.nodes(),r=!1;for(const i of n){const t=e.children(i);r=r||t.length>0}if(r){d.l.debug("Nodes = ",n,t);for(const r of n)if(d.l.debug("Extracting node",r,c,c[r]&&!c[r].externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),c[r])if(!c[r].externalConnections&&e.children(r)&&e.children(r).length>0){d.l.warn("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";c[r]&&c[r].clusterData&&c[r].clusterData.dir&&(n=c[r].clusterData.dir,d.l.warn("Fixing dir",c[r].clusterData.dir,n));const a=new l.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));d.l.warn("Old graph before copy",i.c(e)),u(r,e,a,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:c[r].clusterData,labelText:c[r].labelText,graph:a}),d.l.warn("New graph after copy node: (",r,")",i.c(a)),d.l.debug("Old graph after copy",i.c(e))}else d.l.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!c[r].externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),d.l.debug(c);else d.l.debug("Not a cluster",r,t);n=e.nodes(),d.l.warn("New list of nodes",n);for(const r of n){const n=e.node(r);d.l.warn(" Now next level",r,n),n.clusterNode&&y(n.graph,t+1)}}else d.l.debug("Done, no node has children",e.nodes())},m=(e,t)=>{if(0===t.length)return[];let n=Object.assign(t);return t.forEach((t=>{const r=e.children(t),i=m(e,r);n=[...n,...i]})),n},x={rect:(e,t)=>{d.l.info("Creating subgraph rect for ",t.id,t);const n=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=n.insert("rect",":first-child"),i=(0,d.m)((0,d.c)().flowchart.htmlLabels),l=n.insert("g").attr("class","cluster-label"),c="markdown"===t.labelType?(0,o.a)(l,t.labelText,{style:t.labelStyle,useHtmlLabels:i}):l.node().appendChild((0,a.c)(t.labelText,t.labelStyle,void 0,!0));let h=c.getBBox();if((0,d.m)((0,d.c)().flowchart.htmlLabels)){const e=c.children[0],t=(0,s.Ys)(c);h=e.getBoundingClientRect(),t.attr("width",h.width),t.attr("height",h.height)}const g=0*t.padding,f=g/2,u=t.width<=h.width+g?h.width+g:t.width;t.width<=h.width+g?t.diff=(h.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,d.l.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-u/2).attr("y",t.y-t.height/2-f).attr("width",u).attr("height",t.height+g),i?l.attr("transform","translate("+(t.x-h.width/2)+", "+(t.y-t.height/2)+")"):l.attr("transform","translate("+t.x+", "+(t.y-t.height/2)+")");const w=r.node().getBBox();return t.width=w.width,t.height=w.height,t.intersect=function(e){return(0,a.i)(t,e)},n},roundedWithTitle:(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=n.insert("g").attr("class","cluster-label"),l=n.append("rect"),o=i.node().appendChild((0,a.c)(t.labelText,t.labelStyle,void 0,!0));let c=o.getBBox();if((0,d.m)((0,d.c)().flowchart.htmlLabels)){const e=o.children[0],t=(0,s.Ys)(o);c=e.getBoundingClientRect(),t.attr("width",c.width),t.attr("height",c.height)}c=o.getBBox();const h=0*t.padding,g=h/2,f=t.width<=c.width+t.padding?c.width+t.padding:t.width;t.width<=c.width+t.padding?t.diff=(c.width+0*t.padding-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-f/2-g).attr("y",t.y-t.height/2-g).attr("width",f+h).attr("height",t.height+h),l.attr("class","inner").attr("x",t.x-f/2-g).attr("y",t.y-t.height/2-g+c.height-1).attr("width",f+h).attr("height",t.height+h-c.height-3),i.attr("transform","translate("+(t.x-c.width/2)+", "+(t.y-t.height/2-t.padding/3+((0,d.m)((0,d.c)().flowchart.htmlLabels)?5:3))+")");const u=r.node().getBBox();return t.height=u.height,t.intersect=function(e){return(0,a.i)(t,e)},n},noteGroup:(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,d=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-d).attr("y",t.y-t.height/2-d).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const l=r.node().getBBox();return t.width=l.width,t.height=l.height,t.intersect=function(e){return(0,a.i)(t,e)},n},divider:(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,d=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-d).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const l=r.node().getBBox();return t.width=l.width,t.height=l.height,t.diff=-t.padding/2,t.intersect=function(e){return(0,a.i)(t,e)},n}};let b={};const N=async(e,t,n,l,o)=>{d.l.info("Graph in recursive render: XXX",i.c(t),o);const s=t.graph().rankdir;d.l.trace("Dir in recursive render - dir:",s);const h=e.insert("g").attr("class","root");t.nodes()?d.l.info("Recursive render XXX",t.nodes()):d.l.info("No nodes found for",t),t.edges().length>0&&d.l.trace("Recursive edges",t.edge(t.edges()[0]));const g=h.insert("g").attr("class","clusters"),f=h.insert("g").attr("class","edgePaths"),u=h.insert("g").attr("class","edgeLabels"),w=h.insert("g").attr("class","nodes");await Promise.all(t.nodes().map((async function(e){const r=t.node(e);if(void 0!==o){const n=JSON.parse(JSON.stringify(o.clusterData));d.l.info("Setting data for cluster XXX (",e,") ",n,o),t.setNode(o.id,n),t.parent(e)||(d.l.trace("Setting parent",e,o.id),t.setParent(e,o.id,n))}if(d.l.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),r&&r.clusterNode){d.l.info("Cluster identified",e,r.width,t.node(e));const i=await N(w,r.graph,n,l,t.node(e)),o=i.elem;(0,a.u)(r,o),r.diff=i.diff||0,d.l.info("Node bounds (abc123)",e,r,r.width,r.x,r.y),(0,a.s)(o,r),d.l.warn("Recursive render complete ",o,r)}else t.children(e).length>0?(d.l.info("Cluster - the non recursive path XXX",e,r.id,r,t),d.l.info(p(r.id,t)),c[r.id]={id:p(r.id,t),node:r}):(d.l.info("Node - the non recursive path",e,r.id,r),await(0,a.e)(w,t.node(e),s))}))),t.edges().forEach((function(e){const n=t.edge(e.v,e.w,e.name);d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),d.l.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),d.l.info("Fix",c,"ids:",e.v,e.w,"Translateing: ",c[e.v],c[e.w]),(0,a.f)(u,n)})),t.edges().forEach((function(e){d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e))})),d.l.info("#############################################"),d.l.info("### Layout ###"),d.l.info("#############################################"),d.l.info(t),(0,r.bK)(t),d.l.info("Graph after layout:",i.c(t));let v=0;return(e=>m(e,e.children()))(t).forEach((function(e){const n=t.node(e);d.l.info("Position "+e+": "+JSON.stringify(t.node(e))),d.l.info("Position "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?(0,a.p)(n):t.children(e).length>0?(((e,t)=>{d.l.trace("Inserting cluster");const n=t.shape||"rect";b[t.id]=x[n](e,t)})(g,n),c[n.id].node=n):(0,a.p)(n)})),t.edges().forEach((function(e){const r=t.edge(e);d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r),r);const i=(0,a.g)(f,e,r,c,n,t,l);(0,a.h)(r,i)})),t.nodes().forEach((function(e){const n=t.node(e);d.l.info(e,n.type,n.diff),"group"===n.type&&(v=n.diff)})),{elem:h,diff:v}},X=async(e,t,n,r,l)=>{(0,a.a)(e,n,r,l),(0,a.b)(),(0,a.d)(),b={},h={},g={},c={},d.l.warn("Graph at first:",JSON.stringify(i.c(t))),((e,t)=>{!e||t>10?d.l.debug("Opting out, no graph "):(d.l.debug("Opting in, graph "),e.nodes().forEach((function(t){e.children(t).length>0&&(d.l.warn("Cluster identified",t," Replacement id in edges: ",p(t,e)),h[t]=w(t,e),c[t]={id:p(t,e),clusterData:e.node(t)})})),e.nodes().forEach((function(t){const n=e.children(t),r=e.edges();n.length>0?(d.l.debug("Cluster identified",t,h),r.forEach((e=>{e.v!==t&&e.w!==t&&f(e.v,t)^f(e.w,t)&&(d.l.warn("Edge: ",e," leaves cluster ",t),d.l.warn("Decendants of XXX ",t,": ",h[t]),c[t].externalConnections=!0)}))):d.l.debug("Not a cluster ",t,h)})),e.edges().forEach((function(t){const n=e.edge(t);d.l.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),d.l.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(d.l.warn("Fix XXX",c,"ids:",t.v,t.w,"Translating: ",c[t.v]," --- ",c[t.w]),c[t.v]&&c[t.w]&&c[t.v]===c[t.w]){d.l.warn("Fixing and trixing link to self - removing XXX",t.v,t.w,t.name),d.l.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=v(t.v),i=v(t.w),e.removeEdge(t.v,t.w,t.name);const a=t.w+"---"+t.v;e.setNode(a,{domId:a,id:a,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const l=structuredClone(n),o=structuredClone(n);l.label="",l.arrowTypeEnd="none",o.label="",l.fromCluster=t.v,o.toCluster=t.v,e.setEdge(r,a,l,t.name+"-cyclic-special"),e.setEdge(a,i,o,t.name+"-cyclic-special")}else(c[t.v]||c[t.w])&&(d.l.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=v(t.v),i=v(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v&&(n.fromCluster=t.v),i!==t.w&&(n.toCluster=t.w),d.l.warn("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,n,t.name))})),d.l.warn("Adjusted Graph",i.c(e)),y(e,0),d.l.trace(c))})(t),d.l.warn("Graph after:",JSON.stringify(i.c(t))),await N(e,t,r,l)}}}]); \ No newline at end of file diff --git a/assets/js/7936.fe0998ca.js b/assets/js/7936.fe0998ca.js deleted file mode 100644 index d5a0cca..0000000 --- a/assets/js/7936.fe0998ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7936],{9354:(e,t,n)=>{n.d(t,{c:()=>l});var r=n(9360),i=n(8451);const a=function(e){return(0,i.Z)(e,4)};var d=n(3836);n(2544);function l(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:s(e)};return r.Z(e.graph())||(t.value=a(e.graph())),t}function o(e){return d.Z(e.nodes(),(function(t){var n=e.node(t),i=e.parent(t),a={v:t};return r.Z(n)||(a.value=n),r.Z(i)||(a.parent=i),a}))}function s(e){return d.Z(e.edges(),(function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.Z(t.name)||(i.name=t.name),r.Z(n)||(i.value=n),i}))}},7936:(e,t,n)=>{n.d(t,{r:()=>X});var r=n(1644),i=n(9354),a=n(5269),d=n(5322),l=n(5625),o=n(6042),s=n(4218);let c={},h={},g={};const f=(e,t)=>(d.l.trace("In isDecendant",t," ",e," = ",h[t].includes(e)),!!h[t].includes(e)),u=(e,t,n,r)=>{d.l.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),d.l.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach((i=>{if(t.children(i).length>0)u(i,t,n,r);else{const a=t.node(i);d.l.info("cp ",i," to ",r," with parent ",e),n.setNode(i,a),r!==t.parent(i)&&(d.l.warn("Setting parent",i,t.parent(i)),n.setParent(i,t.parent(i))),e!==r&&i!==e?(d.l.debug("Setting parent",i,e),n.setParent(i,e)):(d.l.info("In copy ",e,"root",r,"data",t.node(e),r),d.l.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==r,"node!==clusterId",i!==e));const l=t.edges(i);d.l.debug("Copying Edges",l),l.forEach((i=>{d.l.info("Edge",i);const a=t.edge(i.v,i.w,i.name);d.l.info("Edge data",a,r);try{((e,t)=>(d.l.info("Decendants of ",t," is ",h[t]),d.l.info("Edge is ",e),e.v!==t&&e.w!==t&&(h[t]?h[t].includes(e.v)||f(e.v,t)||f(e.w,t)||h[t].includes(e.w):(d.l.debug("Tilt, ",t,",not in decendants"),!1))))(i,r)?(d.l.info("Copying as ",i.v,i.w,a,i.name),n.setEdge(i.v,i.w,a,i.name),d.l.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):d.l.info("Skipping copy of edge ",i.v,"--\x3e",i.w," rootId: ",r," clusterId:",e)}catch(l){d.l.error(l)}}))}d.l.debug("Removing node",i),t.removeNode(i)}))},w=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)g[i]=e,r=[...r,...w(i,t)];return r},p=(e,t)=>{d.l.trace("Searching",e);const n=t.children(e);if(d.l.trace("Searching children of id ",e,n),n.length<1)return d.l.trace("This is a valid node",e),e;for(const r of n){const n=p(r,t);if(n)return d.l.trace("Found replacement for",e," => ",n),n}},v=e=>c[e]&&c[e].externalConnections&&c[e]?c[e].id:e,y=(e,t)=>{if(d.l.warn("extractor - ",t,i.c(e),e.children("D")),t>10)return void d.l.error("Bailing out");let n=e.nodes(),r=!1;for(const i of n){const t=e.children(i);r=r||t.length>0}if(r){d.l.debug("Nodes = ",n,t);for(const r of n)if(d.l.debug("Extracting node",r,c,c[r]&&!c[r].externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),c[r])if(!c[r].externalConnections&&e.children(r)&&e.children(r).length>0){d.l.warn("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";c[r]&&c[r].clusterData&&c[r].clusterData.dir&&(n=c[r].clusterData.dir,d.l.warn("Fixing dir",c[r].clusterData.dir,n));const a=new l.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));d.l.warn("Old graph before copy",i.c(e)),u(r,e,a,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:c[r].clusterData,labelText:c[r].labelText,graph:a}),d.l.warn("New graph after copy node: (",r,")",i.c(a)),d.l.debug("Old graph after copy",i.c(e))}else d.l.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!c[r].externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),d.l.debug(c);else d.l.debug("Not a cluster",r,t);n=e.nodes(),d.l.warn("New list of nodes",n);for(const r of n){const n=e.node(r);d.l.warn(" Now next level",r,n),n.clusterNode&&y(n.graph,t+1)}}else d.l.debug("Done, no node has children",e.nodes())},m=(e,t)=>{if(0===t.length)return[];let n=Object.assign(t);return t.forEach((t=>{const r=e.children(t),i=m(e,r);n=[...n,...i]})),n},x={rect:(e,t)=>{d.l.info("Creating subgraph rect for ",t.id,t);const n=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=n.insert("rect",":first-child"),i=(0,d.m)((0,d.c)().flowchart.htmlLabels),l=n.insert("g").attr("class","cluster-label"),c="markdown"===t.labelType?(0,o.a)(l,t.labelText,{style:t.labelStyle,useHtmlLabels:i}):l.node().appendChild((0,a.c)(t.labelText,t.labelStyle,void 0,!0));let h=c.getBBox();if((0,d.m)((0,d.c)().flowchart.htmlLabels)){const e=c.children[0],t=(0,s.Ys)(c);h=e.getBoundingClientRect(),t.attr("width",h.width),t.attr("height",h.height)}const g=0*t.padding,f=g/2,u=t.width<=h.width+g?h.width+g:t.width;t.width<=h.width+g?t.diff=(h.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,d.l.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-u/2).attr("y",t.y-t.height/2-f).attr("width",u).attr("height",t.height+g),i?l.attr("transform","translate("+(t.x-h.width/2)+", "+(t.y-t.height/2)+")"):l.attr("transform","translate("+t.x+", "+(t.y-t.height/2)+")");const w=r.node().getBBox();return t.width=w.width,t.height=w.height,t.intersect=function(e){return(0,a.i)(t,e)},n},roundedWithTitle:(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=n.insert("g").attr("class","cluster-label"),l=n.append("rect"),o=i.node().appendChild((0,a.c)(t.labelText,t.labelStyle,void 0,!0));let c=o.getBBox();if((0,d.m)((0,d.c)().flowchart.htmlLabels)){const e=o.children[0],t=(0,s.Ys)(o);c=e.getBoundingClientRect(),t.attr("width",c.width),t.attr("height",c.height)}c=o.getBBox();const h=0*t.padding,g=h/2,f=t.width<=c.width+t.padding?c.width+t.padding:t.width;t.width<=c.width+t.padding?t.diff=(c.width+0*t.padding-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-f/2-g).attr("y",t.y-t.height/2-g).attr("width",f+h).attr("height",t.height+h),l.attr("class","inner").attr("x",t.x-f/2-g).attr("y",t.y-t.height/2-g+c.height-1).attr("width",f+h).attr("height",t.height+h-c.height-3),i.attr("transform","translate("+(t.x-c.width/2)+", "+(t.y-t.height/2-t.padding/3+((0,d.m)((0,d.c)().flowchart.htmlLabels)?5:3))+")");const u=r.node().getBBox();return t.height=u.height,t.intersect=function(e){return(0,a.i)(t,e)},n},noteGroup:(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,d=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-d).attr("y",t.y-t.height/2-d).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const l=r.node().getBBox();return t.width=l.width,t.height=l.height,t.intersect=function(e){return(0,a.i)(t,e)},n},divider:(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,d=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-d).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const l=r.node().getBBox();return t.width=l.width,t.height=l.height,t.diff=-t.padding/2,t.intersect=function(e){return(0,a.i)(t,e)},n}};let b={};const N=async(e,t,n,l,o)=>{d.l.info("Graph in recursive render: XXX",i.c(t),o);const s=t.graph().rankdir;d.l.trace("Dir in recursive render - dir:",s);const h=e.insert("g").attr("class","root");t.nodes()?d.l.info("Recursive render XXX",t.nodes()):d.l.info("No nodes found for",t),t.edges().length>0&&d.l.trace("Recursive edges",t.edge(t.edges()[0]));const g=h.insert("g").attr("class","clusters"),f=h.insert("g").attr("class","edgePaths"),u=h.insert("g").attr("class","edgeLabels"),w=h.insert("g").attr("class","nodes");await Promise.all(t.nodes().map((async function(e){const r=t.node(e);if(void 0!==o){const n=JSON.parse(JSON.stringify(o.clusterData));d.l.info("Setting data for cluster XXX (",e,") ",n,o),t.setNode(o.id,n),t.parent(e)||(d.l.trace("Setting parent",e,o.id),t.setParent(e,o.id,n))}if(d.l.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),r&&r.clusterNode){d.l.info("Cluster identified",e,r.width,t.node(e));const i=await N(w,r.graph,n,l,t.node(e)),o=i.elem;(0,a.u)(r,o),r.diff=i.diff||0,d.l.info("Node bounds (abc123)",e,r,r.width,r.x,r.y),(0,a.s)(o,r),d.l.warn("Recursive render complete ",o,r)}else t.children(e).length>0?(d.l.info("Cluster - the non recursive path XXX",e,r.id,r,t),d.l.info(p(r.id,t)),c[r.id]={id:p(r.id,t),node:r}):(d.l.info("Node - the non recursive path",e,r.id,r),await(0,a.e)(w,t.node(e),s))}))),t.edges().forEach((function(e){const n=t.edge(e.v,e.w,e.name);d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),d.l.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),d.l.info("Fix",c,"ids:",e.v,e.w,"Translateing: ",c[e.v],c[e.w]),(0,a.f)(u,n)})),t.edges().forEach((function(e){d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e))})),d.l.info("#############################################"),d.l.info("### Layout ###"),d.l.info("#############################################"),d.l.info(t),(0,r.bK)(t),d.l.info("Graph after layout:",i.c(t));let v=0;return(e=>m(e,e.children()))(t).forEach((function(e){const n=t.node(e);d.l.info("Position "+e+": "+JSON.stringify(t.node(e))),d.l.info("Position "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?(0,a.p)(n):t.children(e).length>0?(((e,t)=>{d.l.trace("Inserting cluster");const n=t.shape||"rect";b[t.id]=x[n](e,t)})(g,n),c[n.id].node=n):(0,a.p)(n)})),t.edges().forEach((function(e){const r=t.edge(e);d.l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r),r);const i=(0,a.g)(f,e,r,c,n,t,l);(0,a.h)(r,i)})),t.nodes().forEach((function(e){const n=t.node(e);d.l.info(e,n.type,n.diff),"group"===n.type&&(v=n.diff)})),{elem:h,diff:v}},X=async(e,t,n,r,l)=>{(0,a.a)(e,n,r,l),(0,a.b)(),(0,a.d)(),b={},h={},g={},c={},d.l.warn("Graph at first:",JSON.stringify(i.c(t))),((e,t)=>{!e||t>10?d.l.debug("Opting out, no graph "):(d.l.debug("Opting in, graph "),e.nodes().forEach((function(t){e.children(t).length>0&&(d.l.warn("Cluster identified",t," Replacement id in edges: ",p(t,e)),h[t]=w(t,e),c[t]={id:p(t,e),clusterData:e.node(t)})})),e.nodes().forEach((function(t){const n=e.children(t),r=e.edges();n.length>0?(d.l.debug("Cluster identified",t,h),r.forEach((e=>{e.v!==t&&e.w!==t&&f(e.v,t)^f(e.w,t)&&(d.l.warn("Edge: ",e," leaves cluster ",t),d.l.warn("Decendants of XXX ",t,": ",h[t]),c[t].externalConnections=!0)}))):d.l.debug("Not a cluster ",t,h)})),e.edges().forEach((function(t){const n=e.edge(t);d.l.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),d.l.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(d.l.warn("Fix XXX",c,"ids:",t.v,t.w,"Translating: ",c[t.v]," --- ",c[t.w]),c[t.v]&&c[t.w]&&c[t.v]===c[t.w]){d.l.warn("Fixing and trixing link to self - removing XXX",t.v,t.w,t.name),d.l.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=v(t.v),i=v(t.w),e.removeEdge(t.v,t.w,t.name);const a=t.w+"---"+t.v;e.setNode(a,{domId:a,id:a,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const l=structuredClone(n),o=structuredClone(n);l.label="",l.arrowTypeEnd="none",o.label="",l.fromCluster=t.v,o.toCluster=t.v,e.setEdge(r,a,l,t.name+"-cyclic-special"),e.setEdge(a,i,o,t.name+"-cyclic-special")}else(c[t.v]||c[t.w])&&(d.l.warn("Fixing and trixing - removing XXX",t.v,t.w,t.name),r=v(t.v),i=v(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v&&(n.fromCluster=t.v),i!==t.w&&(n.toCluster=t.w),d.l.warn("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,n,t.name))})),d.l.warn("Adjusted Graph",i.c(e)),y(e,0),d.l.trace(c))})(t),d.l.warn("Graph after:",JSON.stringify(i.c(t))),await N(e,t,r,l)}}}]); \ No newline at end of file diff --git a/assets/js/794ef108.316f10cc.js b/assets/js/794ef108.316f10cc.js deleted file mode 100644 index bbf1445..0000000 --- a/assets/js/794ef108.316f10cc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3803],{6427:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=n(5893),r=n(1151);const i={id:"c-intro",title:"Introduction",slug:"/"},s=void 0,c={id:"c-intro",title:"Introduction",description:"",source:"@site/c/00-intro.md",sourceDirName:".",slug:"/",permalink:"/c/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/00-intro.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",sidebarPosition:0,frontMatter:{id:"c-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Bonuses",permalink:"/c/category/bonuses"}},a={},u=[];function d(t){return(0,o.jsx)(o.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d()}},1151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>s});var o=n(7294);const r={},i=o.createContext(r);function s(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/794ef108.ed8ed4b7.js b/assets/js/794ef108.ed8ed4b7.js new file mode 100644 index 0000000..613e4d6 --- /dev/null +++ b/assets/js/794ef108.ed8ed4b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3803],{86427:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=n(85893),r=n(11151);const i={id:"c-intro",title:"Introduction",slug:"/"},s=void 0,c={id:"c-intro",title:"Introduction",description:"",source:"@site/c/00-intro.md",sourceDirName:".",slug:"/",permalink:"/c/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/00-intro.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",sidebarPosition:0,frontMatter:{id:"c-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Bonuses",permalink:"/c/category/bonuses"}},a={},u=[];function d(t){return(0,o.jsx)(o.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d()}},11151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>s});var o=n(67294);const r={},i=o.createContext(r);function s(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/7e6d325b.0dc3275f.js b/assets/js/7e6d325b.0dc3275f.js new file mode 100644 index 0000000..4c888b8 --- /dev/null +++ b/assets/js/7e6d325b.0dc3275f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3184],{26139:e=>{e.exports=JSON.parse('{"pluginId":"cpp","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/cpp/","docId":"cpp-intro","unlisted":false},{"type":"category","label":"Exceptions and RAII","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Placeholders","href":"/cpp/exceptions-and-raii/placeholders","docId":"exceptions-and-raii/2023-11-24-placeholders","unlisted":false}],"href":"/cpp/category/exceptions-and-raii"},{"type":"link","label":"Environment","href":"/cpp/environment","docId":"environment","unlisted":false}]},"docs":{"cpp-intro":{"id":"cpp-intro","title":"Introduction","description":"","sidebar":"autogeneratedBar"},"environment":{"id":"environment","title":"Environment","description":"Suggestions for setting up a local environment for C++ course.\\n","sidebar":"autogeneratedBar"},"exceptions-and-raii/2023-11-24-placeholders":{"id":"exceptions-and-raii/2023-11-24-placeholders","title":"Placeholders","description":"Placeholders that are quite convenient to use when working on the code.\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/7e6d325b.dca18707.js b/assets/js/7e6d325b.dca18707.js deleted file mode 100644 index 99422f5..0000000 --- a/assets/js/7e6d325b.dca18707.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3184],{6139:e=>{e.exports=JSON.parse('{"pluginId":"cpp","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"autogeneratedBar":[{"type":"link","label":"Introduction","href":"/cpp/","docId":"cpp-intro","unlisted":false},{"type":"category","label":"Exceptions and RAII","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Placeholders","href":"/cpp/exceptions-and-raii/placeholders","docId":"exceptions-and-raii/2023-11-24-placeholders","unlisted":false}],"href":"/cpp/category/exceptions-and-raii"},{"type":"link","label":"Environment","href":"/cpp/environment","docId":"environment","unlisted":false}]},"docs":{"cpp-intro":{"id":"cpp-intro","title":"Introduction","description":"","sidebar":"autogeneratedBar"},"environment":{"id":"environment","title":"Environment","description":"Suggestions for setting up a local environment for C++ course.\\n","sidebar":"autogeneratedBar"},"exceptions-and-raii/2023-11-24-placeholders":{"id":"exceptions-and-raii/2023-11-24-placeholders","title":"Placeholders","description":"Placeholders that are quite convenient to use when working on the code.\\n","sidebar":"autogeneratedBar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8016.cb675faa.js b/assets/js/8016.cb675faa.js deleted file mode 100644 index 3842cbc..0000000 --- a/assets/js/8016.cb675faa.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8016],{8734: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 s=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 s.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return s.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return s.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)}}}()},285: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?/,s=/\d*[^-_:/,()\s\d]+/,r={},a=function(t){return(t=+t)+(t>68?1900:2e3)},o=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))},d=function(t,e){var n,i=r.meridiem;if(i){for(var s=1;s<=24;s+=1)if(t.indexOf(i(s,0,e))>-1){n=s>12;break}}else n=t===(e?"pm":"PM");return n},u={A:[s,function(t){this.afternoon=d(t,!1)}],a:[s,function(t){this.afternoon=d(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,o("seconds")],ss:[i,o("seconds")],m:[i,o("minutes")],mm:[i,o("minutes")],H:[i,o("hours")],h:[i,o("hours")],HH:[i,o("hours")],hh:[i,o("hours")],D:[i,o("day")],DD:[n,o("day")],Do:[s,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,o("month")],MM:[n,o("month")],MMM:[s,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:[s,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,o("year")],YY:[n,function(t){this.year=a(t)}],YYYY:[/\d{4}/,o("year")],Z:c,ZZ:c};function h(n){var i,s;i=n,s=r&&r.formats;for(var a=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||s[i]||t[i]||s[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),o=a.length,c=0;c<o;c+=1){var l=a[c],d=u[l],h=d&&d[0],f=d&&d[1];a[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<o;n+=1){var s=a[n];if("string"==typeof s)i+=s.length;else{var r=s.regex,c=s.parser,l=t.slice(i),d=r.exec(l)[0];c.call(e,d),t=t.replace(d,"")}}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&&(a=t.parseTwoDigitYear);var i=e.prototype,s=i.parse;i.parse=function(t){var e=t.date,i=t.utc,a=t.args;this.$u=i;var o=a[1];if("string"==typeof o){var c=!0===a[2],l=!0===a[3],d=c||l,u=a[2];l&&(u=a[2]),r=this.$locale(),!c&&u&&(r=n.Ls[u]),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),s=i.year,r=i.month,a=i.day,o=i.hours,c=i.minutes,l=i.seconds,d=i.milliseconds,u=i.zone,f=new Date,y=a||(s||r?1:f.getDate()),m=s||f.getFullYear(),k=0;s&&!r||(k=r>0?r-1:f.getMonth());var p=o||0,g=c||0,b=l||0,x=d||0;return u?new Date(Date.UTC(m,k,y,p,g,b,x+60*u.offset*1e3)):n?new Date(Date.UTC(m,k,y,p,g,b,x)):new Date(m,k,y,p,g,b,x)}catch(t){return new Date("")}}(e,o,i),this.init(),u&&!0!==u&&(this.$L=this.locale(u).$L),d&&e!=this.format(o)&&(this.$d=new Date("")),r={}}else if(o instanceof Array)for(var f=o.length,y=1;y<=f;y+=1){a[1]=o[y-1];var m=n.apply(this,a);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}y===f&&(this.$d=new Date(""))}else s.call(this,t)}}}()},9542:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(a+=7),r.add(a,t));return o.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 a=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"):a.bind(this)(t,e)}}}()},8016:(t,e,n)=>{"use strict";n.d(e,{diagram:()=>X});var i=n(7967),s=n(7484),r=n(9542),a=n(285),o=n(8734),c=n(5322),l=n(4218),d=(n(7856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],i=[1,26],s=[1,27],r=[1,28],a=[1,29],o=[1,30],c=[1,31],l=[1,9],d=[1,10],u=[1,11],h=[1,12],f=[1,13],y=[1,14],m=[1,15],k=[1,16],p=[1,18],g=[1,19],b=[1,20],x=[1,21],T=[1,22],v=[1,24],_=[1,32],w={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.setWeekday("monday");break;case 9:i.setWeekday("tuesday");break;case 10:i.setWeekday("wednesday");break;case 11:i.setWeekday("thursday");break;case 12:i.setWeekday("friday");break;case 13:i.setWeekday("saturday");break;case 14:i.setWeekday("sunday");break;case 15:i.setDateFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 16:i.enableInclusiveEndDates(),this.$=r[o].substr(18);break;case 17:i.TopAxis(),this.$=r[o].substr(8);break;case 18:i.setAxisFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 19:i.setTickInterval(r[o].substr(13)),this.$=r[o].substr(13);break;case 20:i.setExcludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 21:i.setIncludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 22:i.setTodayMarker(r[o].substr(12)),this.$=r[o].substr(12);break;case 24:i.setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 25:this.$=r[o].trim(),i.setAccTitle(this.$);break;case 26:case 27:this.$=r[o].trim(),i.setAccDescription(this.$);break;case 28:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 30:i.addTask(r[o-1],r[o]),this.$="task";break;case 31:this.$=r[o-1],i.setClickEvent(r[o-1],r[o],null);break;case 32:this.$=r[o-2],i.setClickEvent(r[o-2],r[o-1],r[o]);break;case 33:this.$=r[o-2],i.setClickEvent(r[o-2],r[o-1],null),i.setLink(r[o-2],r[o]);break;case 34:this.$=r[o-3],i.setClickEvent(r[o-3],r[o-2],r[o-1]),i.setLink(r[o-3],r[o]);break;case 35:this.$=r[o-2],i.setClickEvent(r[o-2],r[o],null),i.setLink(r[o-2],r[o-1]);break;case 36:this.$=r[o-3],i.setClickEvent(r[o-3],r[o-1],r[o]),i.setLink(r[o-3],r[o-2]);break;case 37:this.$=r[o-1],i.setLink(r[o-1],r[o]);break;case 38:case 44:this.$=r[o-1]+" "+r[o];break;case 39:case 40:case 42:this.$=r[o-2]+" "+r[o-1]+" "+r[o];break;case 41:case 43:this.$=r[o-3]+" "+r[o-2]+" "+r[o-1]+" "+r[o]}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:i,14:s,15:r,16:a,17:o,18:c,19:l,20:d,21:u,22:h,23:f,24:y,25:m,26:k,27:p,28:g,30:b,32:x,33:T,34:23,35:v,37:_},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:i,14:s,15:r,16:a,17:o,18:c,19:l,20:d,21:u,22:h,23:f,24:y,25:m,26:k,27:p,28:g,30:b,32:x,33:T,34:23,35:v,37:_},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},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,d=r.slice.call(arguments,1),u=Object.create(this.lexer),h={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(h.yy[f]=this.yy[f]);u.setInput(t,h.yy),h.yy.lexer=u,h.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;r.push(y);var m=u.options&&u.options.ranges;"function"==typeof h.yy.parseError?this.parseError=h.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var k,p,g,b,x,T,v,_,w,$={};;){if(p=n[n.length-1],this.defaultActions[p]?g=this.defaultActions[p]:(null==k&&(w=void 0,"number"!=typeof(w=i.pop()||u.lex()||1)&&(w instanceof Array&&(w=(i=w).pop()),w=e.symbols_[w]||w),k=w),g=a[p]&&a[p][k]),void 0===g||!g.length||!g[0]){var D="";for(x in _=[],a[p])this.terminals_[x]&&x>2&&_.push("'"+this.terminals_[x]+"'");D=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[k]||k)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==k?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(D,{text:u.match,token:this.terminals_[k]||k,line:u.yylineno,loc:y,expected:_})}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+k);switch(g[0]){case 1:n.push(k),s.push(u.yytext),r.push(u.yylloc),n.push(g[1]),k=null,l=u.yyleng,o=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(T=this.productions_[g[1]][1],$.$=s[s.length-T],$._$={first_line:r[r.length-(T||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(T||1)].first_column,last_column:r[r.length-1].last_column},m&&($._$.range=[r[r.length-(T||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[o,l,c,h.yy,g[1],s,r].concat(d))))return b;T&&(n=n.slice(0,-1*T*2),s=s.slice(0,-1*T),r=r.slice(0,-1*T)),n.push(this.productions_[g[1]][0]),s.push($.$),r.push($._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},$={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 16:case 19:case 22:case 25:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:case 9:case 10:case 12:case 13:case 14:break;case 11:return 10;case 15:this.begin("href");break;case 17:return 40;case 18:this.begin("callbackname");break;case 20:this.popState(),this.begin("callbackargs");break;case 21:return 38;case 23:return 39;case 24:this.begin("click");break;case 26:return 37;case 27:return 4;case 28:return 19;case 29:return 20;case 30:return 21;case 31:return 22;case 32:return 23;case 33:return 25;case 34:return 24;case 35:return 26;case 36:return 12;case 37:return 13;case 38:return 14;case 39:return 15;case 40:return 16;case 41:return 17;case 42:return 18;case 43:return"date";case 44:return 27;case 45:return"accDescription";case 46:return 33;case 47:return 35;case 48:return 36;case 49:return":";case 50:return 6;case 51:return"INVALID"}},rules:[/^(?:%%\{)/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,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/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:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[22,23],inclusive:!1},callbackname:{rules:[19,20,21],inclusive:!1},href:{rules:[16,17],inclusive:!1},click:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,18,24,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],inclusive:!0}}};function D(){this.yy={}}return w.lexer=$,D.prototype=w,w.Parser=D,new D}());d.parser=d;const u=d;s.extend(r),s.extend(a),s.extend(o);let h,f="",y="",m="",k=[],p=[],g={},b=[],x=[],T="",v="";const _=["active","done","crit","milestone"];let w=[],$=!1,D=!1,S="sunday",C=0;const E=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()))))},M=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let r,a;r=t.startTime instanceof Date?s(t.startTime):s(t.startTime,e,!0),r=r.add(1,"d"),a=t.endTime instanceof Date?s(t.endTime):s(t.endTime,e,!0);const[o,c]=Y(r,a,e,n,i);t.endTime=o.toDate(),t.renderEndTime=c},Y=function(t,e,n,i,s){let r=!1,a=null;for(;t<=e;)r||(a=e.toDate()),r=E(t,n,i,s),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},A=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=N(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 r=s(n,e.trim(),!0);if(r.isValid())return r.toDate();{c.l.debug("Invalid date:"+n),c.l.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime())||t.getFullYear()<-1e4||t.getFullYear()>1e4)throw new Error("Invalid date:"+n);return t}},L=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},F=function(t,e,n,i=!1){n=n.trim();let r=s(n,e.trim(),!0);if(r.isValid())return i&&(r=r.add(1,"d")),r.toDate();let a=s(t);const[o,c]=L(n);if(!Number.isNaN(o)){const t=a.add(o,c);t.isValid()&&(a=t)}return a.toDate()};let I=0;const O=function(t){return void 0===t?(I+=1,"task"+I):t};let W,z,B=[];const P={},N=function(t){const e=P[t];return B[e]},H=function(){const t=function(t){const e=B[t];let n="";switch(B[t].raw.startTime.type){case"prevTaskEnd":{const t=N(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=A(0,f,B[t].raw.startTime.startData),n&&(B[t].startTime=n)}return B[t].startTime&&(B[t].endTime=F(B[t].startTime,f,B[t].raw.endTime.data,$),B[t].endTime&&(B[t].processed=!0,B[t].manualEndTime=s(B[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),M(B[t],f,p,k))),B[t].processed};let e=!0;for(const[n,i]of B.entries())t(n),e=e&&i.processed;return e},j=function(t,e){t.split(",").forEach((function(t){let n=N(t);void 0!==n&&n.classes.push(e)}))},Z=function(t,e){w.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()}))}))},G={getConfig:()=>(0,c.c)().gantt,clear:function(){b=[],x=[],T="",w=[],I=0,W=void 0,z=void 0,B=[],f="",y="",v="",h=void 0,m="",k=[],p=[],$=!1,D=!1,C=0,g={},(0,c.t)(),S="sunday"},setDateFormat:function(t){f=t},getDateFormat:function(){return f},enableInclusiveEndDates:function(){$=!0},endDatesAreInclusive:function(){return $},enableTopAxis:function(){D=!0},topAxisEnabled:function(){return D},setAxisFormat:function(t){y=t},getAxisFormat:function(){return y},setTickInterval:function(t){h=t},getTickInterval:function(){return h},setTodayMarker:function(t){m=t},getTodayMarker:function(){return m},setAccTitle:c.s,getAccTitle:c.g,setDiagramTitle:c.q,getDiagramTitle:c.r,setDisplayMode:function(t){v=t},getDisplayMode:function(){return v},setAccDescription:c.b,getAccDescription:c.a,addSection:function(t){T=t,b.push(t)},getSections:function(){return b},getTasks:function(){let t=H();let e=0;for(;!t&&e<10;)t=H(),e++;return x=B,x},addTask:function(t,e){const n={section:T,type:T,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(","),s={};V(i,s,_);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:s.id=O(),s.startTime={type:"prevTaskEnd",id:t},s.endTime={data:i[0]};break;case 2:s.id=O(),s.startTime={type:"getStartDate",startData:i[0]},s.endTime={data:i[1]};break;case 3:s.id=O(i[0]),s.startTime={type:"getStartDate",startData:i[1]},s.endTime={data:i[2]}}return s}(z,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=z,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=C,C++;const s=B.push(n);z=n.id,P[n.id]=s-1},findTaskById:N,addTaskOrg:function(t,e){const n={section:T,type:T,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(","),r={};V(i,r,_);for(let s=0;s<i.length;s++)i[s]=i[s].trim();let a="";switch(i.length){case 1:r.id=O(),r.startTime=t.endTime,a=i[0];break;case 2:r.id=O(),r.startTime=A(0,f,i[0]),a=i[1];break;case 3:r.id=O(i[0]),r.startTime=A(0,f,i[1]),a=i[2]}return a&&(r.endTime=F(r.startTime,f,a,$),r.manualEndTime=s(a,"YYYY-MM-DD",!0).isValid(),M(r,f,p,k)),r}(W,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,W=n,x.push(n)},setIncludes:function(t){k=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return k},setExcludes:function(t){p=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return p},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){if("loose"!==(0,c.c)().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!==N(t)&&Z(t,(()=>{c.u.runFunc(e,...i)}))}(t,e,n)})),j(t,"clickable")},setLink:function(t,e){let n=e;"loose"!==(0,c.c)().securityLevel&&(n=(0,i.Nm)(e)),t.split(",").forEach((function(t){void 0!==N(t)&&(Z(t,(()=>{window.open(n,"_self")})),g[t]=n)})),j(t,"clickable")},getLinks:function(){return g},bindFunctions:function(t){w.forEach((function(e){e(t)}))},parseDuration:L,isInvalidDate:E,setWeekday:function(t){S=t},getWeekday:function(){return S}};function V(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const s=new RegExp("^\\s*"+n+"\\s*$");t[0].match(s)&&(e[n]=!0,t.shift(1),i=!0)}))}const q={monday:l.Ox9,tuesday:l.YDX,wednesday:l.EFj,thursday:l.Igq,friday:l.y2j,saturday:l.LqH,sunday:l.Zyz},R=(t,e)=>{let n=[...t].map((()=>-1/0)),i=[...t].sort(((t,e)=>t.startTime-e.startTime||t.order-e.order)),s=0;for(const r of i)for(let t=0;t<n.length;t++)if(r.startTime>=n[t]){n[t]=r.endTime,r.order=t+e,t>s&&(s=t);break}return s};let U;const X={parser:u,db:G,renderer:{setConf:function(){c.l.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const r=(0,c.c)().gantt,a=(0,c.c)().securityLevel;let o;"sandbox"===a&&(o=(0,l.Ys)("#i"+e));const d="sandbox"===a?(0,l.Ys)(o.nodes()[0].contentDocument.body):(0,l.Ys)("body"),u="sandbox"===a?o.nodes()[0].contentDocument:document,h=u.getElementById(e);U=h.parentElement.offsetWidth,void 0===U&&(U=1200),void 0!==r.useWidth&&(U=r.useWidth);const f=i.db.getTasks();let y=[];for(const s of f)y.push(s.type);y=function(t){const e={},n=[];for(let i=0,s=t.length;i<s;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}(y);const m={};let k=2*r.topPadding;if("compact"===i.db.getDisplayMode()||"compact"===r.displayMode){const t={};for(const n of f)void 0===t[n.section]?t[n.section]=[n]:t[n.section].push(n);let e=0;for(const n of Object.keys(t)){const i=R(t[n],e)+1;e+=i,k+=i*(r.barHeight+r.barGap),m[n]=i}}else{k+=f.length*(r.barHeight+r.barGap);for(const t of y)m[t]=f.filter((e=>e.type===t)).length}h.setAttribute("viewBox","0 0 "+U+" "+k);const p=d.select(`[id="${e}"]`),g=(0,l.Xf)().domain([(0,l.VV$)(f,(function(t){return t.startTime})),(0,l.Fp7)(f,(function(t){return t.endTime}))]).rangeRound([0,U-r.leftPadding-r.rightPadding]);f.sort((function(t,e){const n=t.startTime,i=e.startTime;let s=0;return n>i?s=1:n<i&&(s=-1),s})),function(t,n,a){const o=r.barHeight,d=o+r.barGap,h=r.topPadding,f=r.leftPadding;(0,l.BYU)().domain([0,y.length]).range(["#00B9FA","#F95002"]).interpolate(l.JHv);(function(t,e,n,a,o,l,d,u){if(0===d.length&&0===u.length)return;let h,f;for(const{startTime:i,endTime:s}of l)(void 0===h||i<h)&&(h=i),(void 0===f||s>f)&&(f=s);if(!h||!f)return;if(s(f).diff(s(h),"year")>5)return void c.l.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");const y=i.db.getDateFormat(),m=[];let k=null,b=s(h);for(;b.valueOf()<=f;)i.db.isInvalidDate(b,y,d,u)?k?k.end=b:k={start:b,end:b}:k&&(m.push(k),k=null),b=b.add(1,"d");p.append("g").selectAll("rect").data(m).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",r.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return g(e)-g(t.start)})).attr("height",o-e-r.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")})(d,h,f,0,a,t,i.db.getExcludes(),i.db.getIncludes()),function(t,e,n,s){let a=(0,l.LLu)(g).tickSize(-s+e+r.gridLineStartPadding).tickFormat((0,l.i$Z)(i.db.getAxisFormat()||r.axisFormat||"%Y-%m-%d"));const o=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||r.tickInterval);if(null!==o){const t=o[1],e=o[2],n=i.db.getWeekday()||r.weekday;switch(e){case"millisecond":a.ticks(l.U8T.every(t));break;case"second":a.ticks(l.S1K.every(t));break;case"minute":a.ticks(l.Z_i.every(t));break;case"hour":a.ticks(l.WQD.every(t));break;case"day":a.ticks(l.rr1.every(t));break;case"week":a.ticks(q[n].every(t));break;case"month":a.ticks(l.F0B.every(t))}}if(p.append("g").attr("class","grid").attr("transform","translate("+t+", "+(s-50)+")").call(a).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||r.topAxis){let n=(0,l.F5q)(g).tickSize(-s+e+r.gridLineStartPadding).tickFormat((0,l.i$Z)(i.db.getAxisFormat()||r.axisFormat||"%Y-%m-%d"));if(null!==o){const t=o[1],e=o[2],s=i.db.getWeekday()||r.weekday;switch(e){case"millisecond":n.ticks(l.U8T.every(t));break;case"second":n.ticks(l.S1K.every(t));break;case"minute":n.ticks(l.Z_i.every(t));break;case"hour":n.ticks(l.WQD.every(t));break;case"day":n.ticks(l.rr1.every(t));break;case"week":n.ticks(q[s].every(t));break;case"month":n.ticks(l.F0B.every(t))}}p.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)}}(f,h,0,a),function(t,n,s,a,o,d,u){const h=[...new Set(t.map((t=>t.order)))].map((e=>t.find((t=>t.order===e))));p.append("g").selectAll("rect").data(h).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+s-2})).attr("width",(function(){return u-r.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of y.entries())if(t.type===n)return"section section"+e%r.numberSectionStyles;return"section section0"}));const f=p.append("g").selectAll("rect").data(t).enter(),m=i.db.getLinks();f.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)+a+.5*(g(t.endTime)-g(t.startTime))-.5*o:g(t.startTime)+a})).attr("y",(function(t,e){return t.order*n+s})).attr("width",(function(t){return t.milestone?o:g(t.renderEndTime||t.endTime)-g(t.startTime)})).attr("height",o).attr("transform-origin",(function(t,e){return e=t.order,(g(t.startTime)+a+.5*(g(t.endTime)-g(t.startTime))).toString()+"px "+(e*n+s+.5*o).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[a,o]of y.entries())t.type===o&&(i=a%r.numberSectionStyles);let s="";return t.active?t.crit?s+=" activeCrit":s=" active":t.done?s=t.crit?" doneCrit":" done":t.crit&&(s+=" crit"),0===s.length&&(s=" task"),t.milestone&&(s=" milestone "+s),s+=i,s+=" "+n,e+s})),f.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",r.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*o),t.milestone&&(n=e+o);const i=this.getBBox().width;return i>n-e?n+i+1.5*r.leftPadding>u?e+a-5:n+a+5:(n-e)/2+e+a})).attr("y",(function(t,e){return t.order*n+r.barHeight/2+(r.fontSize/2-2)+s})).attr("text-height",o).attr("class",(function(t){const e=g(t.startTime);let n=g(t.endTime);t.milestone&&(n=e+o);const i=this.getBBox().width;let s="";t.classes.length>0&&(s=t.classes.join(" "));let a=0;for(const[o,l]of y.entries())t.type===l&&(a=o%r.numberSectionStyles);let c="";return t.active&&(c=t.crit?"activeCritText"+a:"activeText"+a),t.done?c=t.crit?c+" doneCritText"+a:c+" doneText"+a:t.crit&&(c=c+" critText"+a),t.milestone&&(c+=" milestoneText"),i>n-e?n+i+1.5*r.leftPadding>u?s+" taskTextOutsideLeft taskTextOutside"+a+" "+c:s+" taskTextOutsideRight taskTextOutside"+a+" "+c+" width-"+i:s+" taskText taskText"+a+" "+c+" width-"+i}));if("sandbox"===(0,c.c)().securityLevel){let t;t=(0,l.Ys)("#i"+e);const n=t.nodes()[0].contentDocument;f.filter((function(t){return void 0!==m[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const s=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",m[t.id]),r.setAttribute("target","_top"),s.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}(t,d,h,f,o,0,n),function(t,e){let n=0;const i=Object.keys(m).map((t=>[t,m[t]]));p.append("g").selectAll("text").data(i).enter().append((function(t){const e=t[0].split(c.e.lineBreakRegex),n=-(e.length-1)/2,i=u.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[s,r]of e.entries()){const t=u.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),s>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(s,r){if(!(r>0))return s[1]*t/2+e;for(let a=0;a<r;a++)return n+=i[r-1][1],s[1]*t/2+n*t+e})).attr("font-size",r.sectionFontSize).attr("class",(function(t){for(const[e,n]of y.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%r.numberSectionStyles;return"sectionTitle"}))}(d,h),function(t,e,n,s){const a=i.db.getTodayMarker();if("off"===a)return;const o=p.append("g").attr("class","today"),c=new Date,l=o.append("line");l.attr("x1",g(c)+t).attr("x2",g(c)+t).attr("y1",r.titleTopMargin).attr("y2",s-r.titleTopMargin).attr("class","today"),""!==a&&l.attr("style",a.replace(/,/g,";"))}(f,0,0,a)}(f,U,k),(0,c.i)(p,k,U,r.useMaxWidth),p.append("text").text(i.db.getDiagramTitle()).attr("x",U/2).attr("y",r.titleTopMargin).attr("class","titleText")}},styles: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`}}}]); \ No newline at end of file diff --git a/assets/js/8016.f7e4e334.js b/assets/js/8016.f7e4e334.js new file mode 100644 index 0000000..b4ee260 --- /dev/null +++ b/assets/js/8016.f7e4e334.js @@ -0,0 +1 @@ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8016],{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 s=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 s.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return s.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return s.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?/,s=/\d*[^-_:/,()\s\d]+/,r={},a=function(t){return(t=+t)+(t>68?1900:2e3)},o=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))},d=function(t,e){var n,i=r.meridiem;if(i){for(var s=1;s<=24;s+=1)if(t.indexOf(i(s,0,e))>-1){n=s>12;break}}else n=t===(e?"pm":"PM");return n},u={A:[s,function(t){this.afternoon=d(t,!1)}],a:[s,function(t){this.afternoon=d(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,o("seconds")],ss:[i,o("seconds")],m:[i,o("minutes")],mm:[i,o("minutes")],H:[i,o("hours")],h:[i,o("hours")],HH:[i,o("hours")],hh:[i,o("hours")],D:[i,o("day")],DD:[n,o("day")],Do:[s,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,o("month")],MM:[n,o("month")],MMM:[s,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:[s,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,o("year")],YY:[n,function(t){this.year=a(t)}],YYYY:[/\d{4}/,o("year")],Z:c,ZZ:c};function h(n){var i,s;i=n,s=r&&r.formats;for(var a=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||s[i]||t[i]||s[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),o=a.length,c=0;c<o;c+=1){var l=a[c],d=u[l],h=d&&d[0],f=d&&d[1];a[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<o;n+=1){var s=a[n];if("string"==typeof s)i+=s.length;else{var r=s.regex,c=s.parser,l=t.slice(i),d=r.exec(l)[0];c.call(e,d),t=t.replace(d,"")}}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&&(a=t.parseTwoDigitYear);var i=e.prototype,s=i.parse;i.parse=function(t){var e=t.date,i=t.utc,a=t.args;this.$u=i;var o=a[1];if("string"==typeof o){var c=!0===a[2],l=!0===a[3],d=c||l,u=a[2];l&&(u=a[2]),r=this.$locale(),!c&&u&&(r=n.Ls[u]),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),s=i.year,r=i.month,a=i.day,o=i.hours,c=i.minutes,l=i.seconds,d=i.milliseconds,u=i.zone,f=new Date,y=a||(s||r?1:f.getDate()),m=s||f.getFullYear(),k=0;s&&!r||(k=r>0?r-1:f.getMonth());var p=o||0,g=c||0,b=l||0,x=d||0;return u?new Date(Date.UTC(m,k,y,p,g,b,x+60*u.offset*1e3)):n?new Date(Date.UTC(m,k,y,p,g,b,x)):new Date(m,k,y,p,g,b,x)}catch(t){return new Date("")}}(e,o,i),this.init(),u&&!0!==u&&(this.$L=this.locale(u).$L),d&&e!=this.format(o)&&(this.$d=new Date("")),r={}}else if(o instanceof Array)for(var f=o.length,y=1;y<=f;y+=1){a[1]=o[y-1];var m=n.apply(this,a);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}y===f&&(this.$d=new Date(""))}else s.call(this,t)}}}()},59542:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(a+=7),r.add(a,t));return o.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 a=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"):a.bind(this)(t,e)}}}()},88016:(t,e,n)=>{"use strict";n.d(e,{diagram:()=>X});var i=n(17967),s=n(27484),r=n(59542),a=n(10285),o=n(28734),c=n(85322),l=n(64218),d=(n(27856),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],i=[1,26],s=[1,27],r=[1,28],a=[1,29],o=[1,30],c=[1,31],l=[1,9],d=[1,10],u=[1,11],h=[1,12],f=[1,13],y=[1,14],m=[1,15],k=[1,16],p=[1,18],g=[1,19],b=[1,20],x=[1,21],T=[1,22],v=[1,24],_=[1,32],w={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:i.setWeekday("monday");break;case 9:i.setWeekday("tuesday");break;case 10:i.setWeekday("wednesday");break;case 11:i.setWeekday("thursday");break;case 12:i.setWeekday("friday");break;case 13:i.setWeekday("saturday");break;case 14:i.setWeekday("sunday");break;case 15:i.setDateFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 16:i.enableInclusiveEndDates(),this.$=r[o].substr(18);break;case 17:i.TopAxis(),this.$=r[o].substr(8);break;case 18:i.setAxisFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 19:i.setTickInterval(r[o].substr(13)),this.$=r[o].substr(13);break;case 20:i.setExcludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 21:i.setIncludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 22:i.setTodayMarker(r[o].substr(12)),this.$=r[o].substr(12);break;case 24:i.setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 25:this.$=r[o].trim(),i.setAccTitle(this.$);break;case 26:case 27:this.$=r[o].trim(),i.setAccDescription(this.$);break;case 28:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 30:i.addTask(r[o-1],r[o]),this.$="task";break;case 31:this.$=r[o-1],i.setClickEvent(r[o-1],r[o],null);break;case 32:this.$=r[o-2],i.setClickEvent(r[o-2],r[o-1],r[o]);break;case 33:this.$=r[o-2],i.setClickEvent(r[o-2],r[o-1],null),i.setLink(r[o-2],r[o]);break;case 34:this.$=r[o-3],i.setClickEvent(r[o-3],r[o-2],r[o-1]),i.setLink(r[o-3],r[o]);break;case 35:this.$=r[o-2],i.setClickEvent(r[o-2],r[o],null),i.setLink(r[o-2],r[o-1]);break;case 36:this.$=r[o-3],i.setClickEvent(r[o-3],r[o-1],r[o]),i.setLink(r[o-3],r[o-2]);break;case 37:this.$=r[o-1],i.setLink(r[o-1],r[o]);break;case 38:case 44:this.$=r[o-1]+" "+r[o];break;case 39:case 40:case 42:this.$=r[o-2]+" "+r[o-1]+" "+r[o];break;case 41:case 43:this.$=r[o-3]+" "+r[o-2]+" "+r[o-1]+" "+r[o]}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:i,14:s,15:r,16:a,17:o,18:c,19:l,20:d,21:u,22:h,23:f,24:y,25:m,26:k,27:p,28:g,30:b,32:x,33:T,34:23,35:v,37:_},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:i,14:s,15:r,16:a,17:o,18:c,19:l,20:d,21:u,22:h,23:f,24:y,25:m,26:k,27:p,28:g,30:b,32:x,33:T,34:23,35:v,37:_},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},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,d=r.slice.call(arguments,1),u=Object.create(this.lexer),h={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(h.yy[f]=this.yy[f]);u.setInput(t,h.yy),h.yy.lexer=u,h.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var y=u.yylloc;r.push(y);var m=u.options&&u.options.ranges;"function"==typeof h.yy.parseError?this.parseError=h.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var k,p,g,b,x,T,v,_,w,$={};;){if(p=n[n.length-1],this.defaultActions[p]?g=this.defaultActions[p]:(null==k&&(w=void 0,"number"!=typeof(w=i.pop()||u.lex()||1)&&(w instanceof Array&&(w=(i=w).pop()),w=e.symbols_[w]||w),k=w),g=a[p]&&a[p][k]),void 0===g||!g.length||!g[0]){var D="";for(x in _=[],a[p])this.terminals_[x]&&x>2&&_.push("'"+this.terminals_[x]+"'");D=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[k]||k)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==k?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(D,{text:u.match,token:this.terminals_[k]||k,line:u.yylineno,loc:y,expected:_})}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+k);switch(g[0]){case 1:n.push(k),s.push(u.yytext),r.push(u.yylloc),n.push(g[1]),k=null,l=u.yyleng,o=u.yytext,c=u.yylineno,y=u.yylloc;break;case 2:if(T=this.productions_[g[1]][1],$.$=s[s.length-T],$._$={first_line:r[r.length-(T||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(T||1)].first_column,last_column:r[r.length-1].last_column},m&&($._$.range=[r[r.length-(T||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply($,[o,l,c,h.yy,g[1],s,r].concat(d))))return b;T&&(n=n.slice(0,-1*T*2),s=s.slice(0,-1*T),r=r.slice(0,-1*T)),n.push(this.productions_[g[1]][0]),s.push($.$),r.push($._$),v=a[n[n.length-2]][n[n.length-1]],n.push(v);break;case 3:return!0}}return!0}},$={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;r<s.length;r++)if((n=this._input.match(this.rules[s[r]]))&&(!e||n[0].length>e[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"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 16:case 19:case 22:case 25:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:case 9:case 10:case 12:case 13:case 14:break;case 11:return 10;case 15:this.begin("href");break;case 17:return 40;case 18:this.begin("callbackname");break;case 20:this.popState(),this.begin("callbackargs");break;case 21:return 38;case 23:return 39;case 24:this.begin("click");break;case 26:return 37;case 27:return 4;case 28:return 19;case 29:return 20;case 30:return 21;case 31:return 22;case 32:return 23;case 33:return 25;case 34:return 24;case 35:return 26;case 36:return 12;case 37:return 13;case 38:return 14;case 39:return 15;case 40:return 16;case 41:return 17;case 42:return 18;case 43:return"date";case 44:return 27;case 45:return"accDescription";case 46:return 33;case 47:return 35;case 48:return 36;case 49:return":";case 50:return 6;case 51:return"INVALID"}},rules:[/^(?:%%\{)/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,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/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:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[22,23],inclusive:!1},callbackname:{rules:[19,20,21],inclusive:!1},href:{rules:[16,17],inclusive:!1},click:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,18,24,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],inclusive:!0}}};function D(){this.yy={}}return w.lexer=$,D.prototype=w,w.Parser=D,new D}());d.parser=d;const u=d;s.extend(r),s.extend(a),s.extend(o);let h,f="",y="",m="",k=[],p=[],g={},b=[],x=[],T="",v="";const _=["active","done","crit","milestone"];let w=[],$=!1,D=!1,S="sunday",C=0;const E=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()))))},M=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let r,a;r=t.startTime instanceof Date?s(t.startTime):s(t.startTime,e,!0),r=r.add(1,"d"),a=t.endTime instanceof Date?s(t.endTime):s(t.endTime,e,!0);const[o,c]=Y(r,a,e,n,i);t.endTime=o.toDate(),t.renderEndTime=c},Y=function(t,e,n,i,s){let r=!1,a=null;for(;t<=e;)r||(a=e.toDate()),r=E(t,n,i,s),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},A=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=N(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 r=s(n,e.trim(),!0);if(r.isValid())return r.toDate();{c.l.debug("Invalid date:"+n),c.l.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime())||t.getFullYear()<-1e4||t.getFullYear()>1e4)throw new Error("Invalid date:"+n);return t}},L=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},F=function(t,e,n,i=!1){n=n.trim();let r=s(n,e.trim(),!0);if(r.isValid())return i&&(r=r.add(1,"d")),r.toDate();let a=s(t);const[o,c]=L(n);if(!Number.isNaN(o)){const t=a.add(o,c);t.isValid()&&(a=t)}return a.toDate()};let I=0;const O=function(t){return void 0===t?(I+=1,"task"+I):t};let W,z,B=[];const P={},N=function(t){const e=P[t];return B[e]},H=function(){const t=function(t){const e=B[t];let n="";switch(B[t].raw.startTime.type){case"prevTaskEnd":{const t=N(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=A(0,f,B[t].raw.startTime.startData),n&&(B[t].startTime=n)}return B[t].startTime&&(B[t].endTime=F(B[t].startTime,f,B[t].raw.endTime.data,$),B[t].endTime&&(B[t].processed=!0,B[t].manualEndTime=s(B[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),M(B[t],f,p,k))),B[t].processed};let e=!0;for(const[n,i]of B.entries())t(n),e=e&&i.processed;return e},j=function(t,e){t.split(",").forEach((function(t){let n=N(t);void 0!==n&&n.classes.push(e)}))},Z=function(t,e){w.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()}))}))},G={getConfig:()=>(0,c.c)().gantt,clear:function(){b=[],x=[],T="",w=[],I=0,W=void 0,z=void 0,B=[],f="",y="",v="",h=void 0,m="",k=[],p=[],$=!1,D=!1,C=0,g={},(0,c.t)(),S="sunday"},setDateFormat:function(t){f=t},getDateFormat:function(){return f},enableInclusiveEndDates:function(){$=!0},endDatesAreInclusive:function(){return $},enableTopAxis:function(){D=!0},topAxisEnabled:function(){return D},setAxisFormat:function(t){y=t},getAxisFormat:function(){return y},setTickInterval:function(t){h=t},getTickInterval:function(){return h},setTodayMarker:function(t){m=t},getTodayMarker:function(){return m},setAccTitle:c.s,getAccTitle:c.g,setDiagramTitle:c.q,getDiagramTitle:c.r,setDisplayMode:function(t){v=t},getDisplayMode:function(){return v},setAccDescription:c.b,getAccDescription:c.a,addSection:function(t){T=t,b.push(t)},getSections:function(){return b},getTasks:function(){let t=H();let e=0;for(;!t&&e<10;)t=H(),e++;return x=B,x},addTask:function(t,e){const n={section:T,type:T,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(","),s={};V(i,s,_);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:s.id=O(),s.startTime={type:"prevTaskEnd",id:t},s.endTime={data:i[0]};break;case 2:s.id=O(),s.startTime={type:"getStartDate",startData:i[0]},s.endTime={data:i[1]};break;case 3:s.id=O(i[0]),s.startTime={type:"getStartDate",startData:i[1]},s.endTime={data:i[2]}}return s}(z,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=z,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=C,C++;const s=B.push(n);z=n.id,P[n.id]=s-1},findTaskById:N,addTaskOrg:function(t,e){const n={section:T,type:T,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(","),r={};V(i,r,_);for(let s=0;s<i.length;s++)i[s]=i[s].trim();let a="";switch(i.length){case 1:r.id=O(),r.startTime=t.endTime,a=i[0];break;case 2:r.id=O(),r.startTime=A(0,f,i[0]),a=i[1];break;case 3:r.id=O(i[0]),r.startTime=A(0,f,i[1]),a=i[2]}return a&&(r.endTime=F(r.startTime,f,a,$),r.manualEndTime=s(a,"YYYY-MM-DD",!0).isValid(),M(r,f,p,k)),r}(W,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,W=n,x.push(n)},setIncludes:function(t){k=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return k},setExcludes:function(t){p=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return p},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){if("loose"!==(0,c.c)().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!==N(t)&&Z(t,(()=>{c.u.runFunc(e,...i)}))}(t,e,n)})),j(t,"clickable")},setLink:function(t,e){let n=e;"loose"!==(0,c.c)().securityLevel&&(n=(0,i.Nm)(e)),t.split(",").forEach((function(t){void 0!==N(t)&&(Z(t,(()=>{window.open(n,"_self")})),g[t]=n)})),j(t,"clickable")},getLinks:function(){return g},bindFunctions:function(t){w.forEach((function(e){e(t)}))},parseDuration:L,isInvalidDate:E,setWeekday:function(t){S=t},getWeekday:function(){return S}};function V(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const s=new RegExp("^\\s*"+n+"\\s*$");t[0].match(s)&&(e[n]=!0,t.shift(1),i=!0)}))}const q={monday:l.Ox9,tuesday:l.YDX,wednesday:l.EFj,thursday:l.Igq,friday:l.y2j,saturday:l.LqH,sunday:l.Zyz},R=(t,e)=>{let n=[...t].map((()=>-1/0)),i=[...t].sort(((t,e)=>t.startTime-e.startTime||t.order-e.order)),s=0;for(const r of i)for(let t=0;t<n.length;t++)if(r.startTime>=n[t]){n[t]=r.endTime,r.order=t+e,t>s&&(s=t);break}return s};let U;const X={parser:u,db:G,renderer:{setConf:function(){c.l.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const r=(0,c.c)().gantt,a=(0,c.c)().securityLevel;let o;"sandbox"===a&&(o=(0,l.Ys)("#i"+e));const d="sandbox"===a?(0,l.Ys)(o.nodes()[0].contentDocument.body):(0,l.Ys)("body"),u="sandbox"===a?o.nodes()[0].contentDocument:document,h=u.getElementById(e);U=h.parentElement.offsetWidth,void 0===U&&(U=1200),void 0!==r.useWidth&&(U=r.useWidth);const f=i.db.getTasks();let y=[];for(const s of f)y.push(s.type);y=function(t){const e={},n=[];for(let i=0,s=t.length;i<s;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}(y);const m={};let k=2*r.topPadding;if("compact"===i.db.getDisplayMode()||"compact"===r.displayMode){const t={};for(const n of f)void 0===t[n.section]?t[n.section]=[n]:t[n.section].push(n);let e=0;for(const n of Object.keys(t)){const i=R(t[n],e)+1;e+=i,k+=i*(r.barHeight+r.barGap),m[n]=i}}else{k+=f.length*(r.barHeight+r.barGap);for(const t of y)m[t]=f.filter((e=>e.type===t)).length}h.setAttribute("viewBox","0 0 "+U+" "+k);const p=d.select(`[id="${e}"]`),g=(0,l.Xf)().domain([(0,l.VV$)(f,(function(t){return t.startTime})),(0,l.Fp7)(f,(function(t){return t.endTime}))]).rangeRound([0,U-r.leftPadding-r.rightPadding]);f.sort((function(t,e){const n=t.startTime,i=e.startTime;let s=0;return n>i?s=1:n<i&&(s=-1),s})),function(t,n,a){const o=r.barHeight,d=o+r.barGap,h=r.topPadding,f=r.leftPadding;(0,l.BYU)().domain([0,y.length]).range(["#00B9FA","#F95002"]).interpolate(l.JHv);(function(t,e,n,a,o,l,d,u){if(0===d.length&&0===u.length)return;let h,f;for(const{startTime:i,endTime:s}of l)(void 0===h||i<h)&&(h=i),(void 0===f||s>f)&&(f=s);if(!h||!f)return;if(s(f).diff(s(h),"year")>5)return void c.l.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");const y=i.db.getDateFormat(),m=[];let k=null,b=s(h);for(;b.valueOf()<=f;)i.db.isInvalidDate(b,y,d,u)?k?k.end=b:k={start:b,end:b}:k&&(m.push(k),k=null),b=b.add(1,"d");p.append("g").selectAll("rect").data(m).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",r.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return g(e)-g(t.start)})).attr("height",o-e-r.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")})(d,h,f,0,a,t,i.db.getExcludes(),i.db.getIncludes()),function(t,e,n,s){let a=(0,l.LLu)(g).tickSize(-s+e+r.gridLineStartPadding).tickFormat((0,l.i$Z)(i.db.getAxisFormat()||r.axisFormat||"%Y-%m-%d"));const o=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||r.tickInterval);if(null!==o){const t=o[1],e=o[2],n=i.db.getWeekday()||r.weekday;switch(e){case"millisecond":a.ticks(l.U8T.every(t));break;case"second":a.ticks(l.S1K.every(t));break;case"minute":a.ticks(l.Z_i.every(t));break;case"hour":a.ticks(l.WQD.every(t));break;case"day":a.ticks(l.rr1.every(t));break;case"week":a.ticks(q[n].every(t));break;case"month":a.ticks(l.F0B.every(t))}}if(p.append("g").attr("class","grid").attr("transform","translate("+t+", "+(s-50)+")").call(a).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||r.topAxis){let n=(0,l.F5q)(g).tickSize(-s+e+r.gridLineStartPadding).tickFormat((0,l.i$Z)(i.db.getAxisFormat()||r.axisFormat||"%Y-%m-%d"));if(null!==o){const t=o[1],e=o[2],s=i.db.getWeekday()||r.weekday;switch(e){case"millisecond":n.ticks(l.U8T.every(t));break;case"second":n.ticks(l.S1K.every(t));break;case"minute":n.ticks(l.Z_i.every(t));break;case"hour":n.ticks(l.WQD.every(t));break;case"day":n.ticks(l.rr1.every(t));break;case"week":n.ticks(q[s].every(t));break;case"month":n.ticks(l.F0B.every(t))}}p.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)}}(f,h,0,a),function(t,n,s,a,o,d,u){const h=[...new Set(t.map((t=>t.order)))].map((e=>t.find((t=>t.order===e))));p.append("g").selectAll("rect").data(h).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+s-2})).attr("width",(function(){return u-r.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of y.entries())if(t.type===n)return"section section"+e%r.numberSectionStyles;return"section section0"}));const f=p.append("g").selectAll("rect").data(t).enter(),m=i.db.getLinks();f.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)+a+.5*(g(t.endTime)-g(t.startTime))-.5*o:g(t.startTime)+a})).attr("y",(function(t,e){return t.order*n+s})).attr("width",(function(t){return t.milestone?o:g(t.renderEndTime||t.endTime)-g(t.startTime)})).attr("height",o).attr("transform-origin",(function(t,e){return e=t.order,(g(t.startTime)+a+.5*(g(t.endTime)-g(t.startTime))).toString()+"px "+(e*n+s+.5*o).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[a,o]of y.entries())t.type===o&&(i=a%r.numberSectionStyles);let s="";return t.active?t.crit?s+=" activeCrit":s=" active":t.done?s=t.crit?" doneCrit":" done":t.crit&&(s+=" crit"),0===s.length&&(s=" task"),t.milestone&&(s=" milestone "+s),s+=i,s+=" "+n,e+s})),f.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",r.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*o),t.milestone&&(n=e+o);const i=this.getBBox().width;return i>n-e?n+i+1.5*r.leftPadding>u?e+a-5:n+a+5:(n-e)/2+e+a})).attr("y",(function(t,e){return t.order*n+r.barHeight/2+(r.fontSize/2-2)+s})).attr("text-height",o).attr("class",(function(t){const e=g(t.startTime);let n=g(t.endTime);t.milestone&&(n=e+o);const i=this.getBBox().width;let s="";t.classes.length>0&&(s=t.classes.join(" "));let a=0;for(const[o,l]of y.entries())t.type===l&&(a=o%r.numberSectionStyles);let c="";return t.active&&(c=t.crit?"activeCritText"+a:"activeText"+a),t.done?c=t.crit?c+" doneCritText"+a:c+" doneText"+a:t.crit&&(c=c+" critText"+a),t.milestone&&(c+=" milestoneText"),i>n-e?n+i+1.5*r.leftPadding>u?s+" taskTextOutsideLeft taskTextOutside"+a+" "+c:s+" taskTextOutsideRight taskTextOutside"+a+" "+c+" width-"+i:s+" taskText taskText"+a+" "+c+" width-"+i}));if("sandbox"===(0,c.c)().securityLevel){let t;t=(0,l.Ys)("#i"+e);const n=t.nodes()[0].contentDocument;f.filter((function(t){return void 0!==m[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const s=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",m[t.id]),r.setAttribute("target","_top"),s.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}(t,d,h,f,o,0,n),function(t,e){let n=0;const i=Object.keys(m).map((t=>[t,m[t]]));p.append("g").selectAll("text").data(i).enter().append((function(t){const e=t[0].split(c.e.lineBreakRegex),n=-(e.length-1)/2,i=u.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[s,r]of e.entries()){const t=u.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),s>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(s,r){if(!(r>0))return s[1]*t/2+e;for(let a=0;a<r;a++)return n+=i[r-1][1],s[1]*t/2+n*t+e})).attr("font-size",r.sectionFontSize).attr("class",(function(t){for(const[e,n]of y.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%r.numberSectionStyles;return"sectionTitle"}))}(d,h),function(t,e,n,s){const a=i.db.getTodayMarker();if("off"===a)return;const o=p.append("g").attr("class","today"),c=new Date,l=o.append("line");l.attr("x1",g(c)+t).attr("x2",g(c)+t).attr("y1",r.titleTopMargin).attr("y2",s-r.titleTopMargin).attr("class","today"),""!==a&&l.attr("style",a.replace(/,/g,";"))}(f,0,0,a)}(f,U,k),(0,c.i)(p,k,U,r.useMaxWidth),p.append("text").text(i.db.getDiagramTitle()).attr("x",U/2).attr("y",r.titleTopMargin).attr("class","titleText")}},styles: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`}}}]); \ No newline at end of file diff --git a/assets/js/84d1e0d8.05d31058.js b/assets/js/84d1e0d8.05d31058.js deleted file mode 100644 index 87da178..0000000 --- a/assets/js/84d1e0d8.05d31058.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1885],{9713:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var o=n(5893),s=n(1151);const r={id:"algorithms-intro",title:"Introduction",slug:"/"},i=void 0,a={id:"algorithms-intro",title:"Introduction",description:"In this part you can find \u201crandom\u201d additional materials I have written over the",source:"@site/algorithms/00-intro.md",sourceDirName:".",slug:"/",permalink:"/algorithms/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/00-intro.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",sidebarPosition:0,frontMatter:{id:"algorithms-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"}},c={},d=[];function l(t){const e={a:"a",em:"em",p:"p",...(0,s.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["In this part you can find \u201crandom\u201d additional materials I have written over the\ncourse of teaching ",(0,o.jsx)(e.em,{children:"Algorithms and data structures I"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It is a various mix of stuff that may have been produced as a follow-up on some\nquestion asked at the seminar or spontanously."}),"\n",(0,o.jsxs)(e.p,{children:["If you have some ideas for posts, please do not hesitate to submit them as issues\nin the linked ",(0,o.jsx)(e.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/issues",children:"GitLab"}),"."]})]})}function u(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>i});var o=n(7294);const s={},r=o.createContext(s);function i(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/84d1e0d8.2391d00c.js b/assets/js/84d1e0d8.2391d00c.js new file mode 100644 index 0000000..952c41f --- /dev/null +++ b/assets/js/84d1e0d8.2391d00c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1885],{49713:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var o=n(85893),s=n(11151);const r={id:"algorithms-intro",title:"Introduction",slug:"/"},i=void 0,a={id:"algorithms-intro",title:"Introduction",description:"In this part you can find \u201crandom\u201d additional materials I have written over the",source:"@site/algorithms/00-intro.md",sourceDirName:".",slug:"/",permalink:"/algorithms/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/00-intro.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",sidebarPosition:0,frontMatter:{id:"algorithms-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"}},c={},d=[];function l(t){const e={a:"a",em:"em",p:"p",...(0,s.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["In this part you can find \u201crandom\u201d additional materials I have written over the\ncourse of teaching ",(0,o.jsx)(e.em,{children:"Algorithms and data structures I"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It is a various mix of stuff that may have been produced as a follow-up on some\nquestion asked at the seminar or spontanously."}),"\n",(0,o.jsxs)(e.p,{children:["If you have some ideas for posts, please do not hesitate to submit them as issues\nin the linked ",(0,o.jsx)(e.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/issues",children:"GitLab"}),"."]})]})}function u(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},11151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>i});var o=n(67294);const s={},r=o.createContext(s);function i(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/86cd1460.2562aa3d.js b/assets/js/86cd1460.2562aa3d.js deleted file mode 100644 index 6011270..0000000 --- a/assets/js/86cd1460.2562aa3d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1235],{8968:e=>{e.exports=JSON.parse('{"label":"leetcode","permalink":"/blog/tags/leetcode","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/86cd1460.f549d2c3.js b/assets/js/86cd1460.f549d2c3.js new file mode 100644 index 0000000..dd9f4ff --- /dev/null +++ b/assets/js/86cd1460.f549d2c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1235],{38968:e=>{e.exports=JSON.parse('{"label":"leetcode","permalink":"/blog/tags/leetcode","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/8894.de4803df.js b/assets/js/8894.bbb1746a.js similarity index 64% rename from assets/js/8894.de4803df.js rename to assets/js/8894.bbb1746a.js index 981fb12..8cf20a2 100644 --- a/assets/js/8894.de4803df.js +++ b/assets/js/8894.bbb1746a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8894],{8894:(e,s,f)=>{f.r(s)}}]); \ No newline at end of file +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8894],{18894:(e,s,f)=>{f.r(s)}}]); \ No newline at end of file diff --git a/assets/js/8955.66b94ea5.js b/assets/js/8955.66b94ea5.js deleted file mode 100644 index e987bfb..0000000 --- a/assets/js/8955.66b94ea5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8955],{8955:(t,e,s)=>{s.d(e,{d:()=>st,f:()=>et,p:()=>r});var u=s(4218),i=s(5322),n=function(){var t=function(t,e,s,u){for(s=s||{},u=t.length;u--;s[t[u]]=e);return s},e=[1,4],s=[1,3],u=[1,5],i=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],n=[2,2],r=[1,13],a=[1,14],c=[1,15],o=[1,16],l=[1,23],h=[1,25],A=[1,26],d=[1,27],p=[1,49],y=[1,48],E=[1,29],f=[1,30],k=[1,31],D=[1,32],g=[1,33],b=[1,44],F=[1,46],T=[1,42],C=[1,47],_=[1,43],B=[1,50],S=[1,45],m=[1,51],x=[1,52],v=[1,34],L=[1,35],I=[1,36],R=[1,37],N=[1,57],$=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],O=[1,61],P=[1,60],w=[1,62],U=[8,9,11,73,75],V=[1,88],G=[1,93],M=[1,92],Y=[1,89],K=[1,85],j=[1,91],X=[1,87],z=[1,94],H=[1,90],W=[1,95],Q=[1,86],q=[8,9,10,11,73,75],Z=[8,9,10,11,44,73,75],J=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],tt=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],et=[42,58,86,99,102,103,106,108,111,112,113],st=[1,121],ut=[1,120],it=[1,128],nt=[1,142],rt=[1,143],at=[1,144],ct=[1,145],ot=[1,130],lt=[1,132],ht=[1,136],At=[1,137],dt=[1,138],pt=[1,139],yt=[1,140],Et=[1,141],ft=[1,146],kt=[1,147],Dt=[1,126],gt=[1,127],bt=[1,134],Ft=[1,129],Tt=[1,133],Ct=[1,131],_t=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Bt=[1,149],St=[8,9,11],mt=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],xt=[1,169],vt=[1,165],Lt=[1,166],It=[1,170],Rt=[1,167],Nt=[1,168],$t=[75,113,116],Ot=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Pt=[10,103],wt=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Ut=[1,235],Vt=[1,233],Gt=[1,237],Mt=[1,231],Yt=[1,232],Kt=[1,234],jt=[1,236],Xt=[1,238],zt=[1,255],Ht=[8,9,11,103],Wt=[8,9,10,11,58,81,102,103,106,107,108,109],Qt={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(t,e,s,u,i,n,r){var a=n.length-1;switch(i){case 2:case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 3:(!Array.isArray(n[a])||n[a].length>0)&&n[a-1].push(n[a]),this.$=n[a-1];break;case 4:case 176:case 49:case 71:case 174:this.$=n[a];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(n[a-1]),this.$=n[a-1];break;case 27:this.$=n[a-1].nodes;break;case 33:this.$=u.addSubGraph(n[a-6],n[a-1],n[a-4]);break;case 34:this.$=u.addSubGraph(n[a-3],n[a-1],n[a-3]);break;case 35:this.$=u.addSubGraph(void 0,n[a-1],void 0);break;case 37:this.$=n[a].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=n[a].trim(),u.setAccDescription(this.$);break;case 43:u.addLink(n[a-2].stmt,n[a],n[a-1]),this.$={stmt:n[a],nodes:n[a].concat(n[a-2].nodes)};break;case 44:u.addLink(n[a-3].stmt,n[a-1],n[a-2]),this.$={stmt:n[a-1],nodes:n[a-1].concat(n[a-3].nodes)};break;case 45:this.$={stmt:n[a-1],nodes:n[a-1]};break;case 46:this.$={stmt:n[a],nodes:n[a]};break;case 47:case 121:case 123:this.$=[n[a]];break;case 48:this.$=n[a-4].concat(n[a]);break;case 50:this.$=n[a-2],u.setClass(n[a-2],n[a]);break;case 51:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"square");break;case 52:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"doublecircle");break;case 53:this.$=n[a-5],u.addVertex(n[a-5],n[a-2],"circle");break;case 54:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"ellipse");break;case 55:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"stadium");break;case 56:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"subroutine");break;case 57:this.$=n[a-7],u.addVertex(n[a-7],n[a-1],"rect",void 0,void 0,void 0,Object.fromEntries([[n[a-5],n[a-3]]]));break;case 58:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"cylinder");break;case 59:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"round");break;case 60:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"diamond");break;case 61:this.$=n[a-5],u.addVertex(n[a-5],n[a-2],"hexagon");break;case 62:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"odd");break;case 63:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"trapezoid");break;case 64:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"inv_trapezoid");break;case 65:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"lean_right");break;case 66:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"lean_left");break;case 67:this.$=n[a],u.addVertex(n[a]);break;case 68:n[a-1].text=n[a],this.$=n[a-1];break;case 69:case 70:n[a-2].text=n[a-1],this.$=n[a-2];break;case 72:var c=u.destructLink(n[a],n[a-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:n[a-1]};break;case 73:case 79:case 94:case 96:this.$={text:n[a],type:"text"};break;case 74:case 80:case 95:this.$={text:n[a-1].text+""+n[a],type:n[a-1].type};break;case 75:case 81:this.$={text:n[a],type:"string"};break;case 76:case 82:case 97:this.$={text:n[a],type:"markdown"};break;case 77:c=u.destructLink(n[a]);this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 78:this.$=n[a-1];break;case 98:this.$=n[a-4],u.addClass(n[a-2],n[a]);break;case 99:this.$=n[a-4],u.setClass(n[a-2],n[a]);break;case 100:case 108:this.$=n[a-1],u.setClickEvent(n[a-1],n[a]);break;case 101:case 109:this.$=n[a-3],u.setClickEvent(n[a-3],n[a-2]),u.setTooltip(n[a-3],n[a]);break;case 102:this.$=n[a-2],u.setClickEvent(n[a-2],n[a-1],n[a]);break;case 103:this.$=n[a-4],u.setClickEvent(n[a-4],n[a-3],n[a-2]),u.setTooltip(n[a-4],n[a]);break;case 104:this.$=n[a-2],u.setLink(n[a-2],n[a]);break;case 105:this.$=n[a-4],u.setLink(n[a-4],n[a-2]),u.setTooltip(n[a-4],n[a]);break;case 106:this.$=n[a-4],u.setLink(n[a-4],n[a-2],n[a]);break;case 107:this.$=n[a-6],u.setLink(n[a-6],n[a-4],n[a]),u.setTooltip(n[a-6],n[a-2]);break;case 110:this.$=n[a-1],u.setLink(n[a-1],n[a]);break;case 111:this.$=n[a-3],u.setLink(n[a-3],n[a-2]),u.setTooltip(n[a-3],n[a]);break;case 112:this.$=n[a-3],u.setLink(n[a-3],n[a-2],n[a]);break;case 113:this.$=n[a-5],u.setLink(n[a-5],n[a-4],n[a]),u.setTooltip(n[a-5],n[a-2]);break;case 114:this.$=n[a-4],u.addVertex(n[a-2],void 0,void 0,n[a]);break;case 115:this.$=n[a-4],u.updateLink([n[a-2]],n[a]);break;case 116:this.$=n[a-4],u.updateLink(n[a-2],n[a]);break;case 117:this.$=n[a-8],u.updateLinkInterpolate([n[a-6]],n[a-2]),u.updateLink([n[a-6]],n[a]);break;case 118:this.$=n[a-8],u.updateLinkInterpolate(n[a-6],n[a-2]),u.updateLink(n[a-6],n[a]);break;case 119:this.$=n[a-6],u.updateLinkInterpolate([n[a-4]],n[a]);break;case 120:this.$=n[a-6],u.updateLinkInterpolate(n[a-4],n[a]);break;case 122:case 124:n[a-2].push(n[a]),this.$=n[a-2];break;case 126:this.$=n[a-1]+n[a];break;case 175:case 177:this.$=n[a-1]+""+n[a];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,9:e,10:s,12:u},{1:[3]},t(i,n,{5:6}),{4:7,9:e,10:s,12:u},{4:8,9:e,10:s,12:u},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:N,15:53,18:56},t($,[2,3]),t($,[2,4]),t($,[2,5]),t($,[2,6]),t($,[2,7]),t($,[2,8]),{8:O,9:P,11:w,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:O,9:P,11:w,21:66},{8:O,9:P,11:w,21:67},{8:O,9:P,11:w,21:68},{8:O,9:P,11:w,21:69},{8:O,9:P,11:w,21:70},{8:O,9:P,10:[1,71],11:w,21:72},t($,[2,36]),{35:[1,73]},{37:[1,74]},t($,[2,39]),t(U,[2,46],{18:75,10:N}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:V,42:G,58:M,77:[1,83],86:Y,92:[1,80],94:[1,81],98:82,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},t($,[2,178]),t($,[2,179]),t($,[2,180]),t($,[2,181]),t(q,[2,47]),t(q,[2,49],{44:[1,96]}),t(Z,[2,67],{110:109,29:[1,97],42:p,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:y,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),t(J,[2,174]),t(J,[2,135]),t(J,[2,136]),t(J,[2,137]),t(J,[2,138]),t(J,[2,139]),t(J,[2,140]),t(J,[2,141]),t(J,[2,142]),t(J,[2,143]),t(J,[2,144]),t(J,[2,145]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,110]},t(tt,[2,26],{18:111,10:N}),t($,[2,27]),{40:112,41:38,42:p,43:39,45:40,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t($,[2,40]),t($,[2,41]),t($,[2,42]),t(et,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:st,116:ut},t([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),t($,[2,28]),t($,[2,29]),t($,[2,30]),t($,[2,31]),t($,[2,32]),{10:it,12:nt,14:rt,27:at,28:122,32:ct,42:ot,58:lt,73:ht,77:[1,124],78:[1,125],80:135,81:At,82:dt,83:pt,84:yt,85:Et,86:ft,87:kt,88:123,102:Dt,106:gt,108:bt,111:Ft,112:Tt,113:Ct},t(_t,n,{5:148}),t($,[2,37]),t($,[2,38]),t(U,[2,45],{42:Bt}),{42:p,45:150,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{99:[1,151],100:152,102:[1,153]},{42:p,45:154,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{42:p,45:155,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t(St,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},t(St,[2,108],{117:160,10:[1,159],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,110],{10:[1,161]}),t(mt,[2,176]),t(mt,[2,163]),t(mt,[2,164]),t(mt,[2,165]),t(mt,[2,166]),t(mt,[2,167]),t(mt,[2,168]),t(mt,[2,169]),t(mt,[2,170]),t(mt,[2,171]),t(mt,[2,172]),t(mt,[2,173]),{42:p,45:162,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{30:163,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:171,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:173,48:[1,172],65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:174,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:175,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:176,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{106:[1,177]},{30:178,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:179,63:[1,180],65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:181,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:182,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:183,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(J,[2,175]),t(i,[2,20]),t(tt,[2,25]),t(U,[2,43],{18:184,10:N}),t(et,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{75:[1,188],76:189,113:st,116:ut},t($t,[2,73]),t($t,[2,75]),t($t,[2,76]),t($t,[2,161]),t($t,[2,162]),{8:O,9:P,10:it,11:w,12:nt,14:rt,21:191,27:at,29:[1,190],32:ct,42:ot,58:lt,73:ht,80:135,81:At,82:dt,83:pt,84:yt,85:Et,86:ft,87:kt,88:192,102:Dt,106:gt,108:bt,111:Ft,112:Tt,113:Ct},t(Ot,[2,94]),t(Ot,[2,96]),t(Ot,[2,97]),t(Ot,[2,150]),t(Ot,[2,151]),t(Ot,[2,152]),t(Ot,[2,153]),t(Ot,[2,154]),t(Ot,[2,155]),t(Ot,[2,156]),t(Ot,[2,157]),t(Ot,[2,158]),t(Ot,[2,159]),t(Ot,[2,160]),t(Ot,[2,83]),t(Ot,[2,84]),t(Ot,[2,85]),t(Ot,[2,86]),t(Ot,[2,87]),t(Ot,[2,88]),t(Ot,[2,89]),t(Ot,[2,90]),t(Ot,[2,91]),t(Ot,[2,92]),t(Ot,[2,93]),{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,193],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},{10:N,18:194},{10:[1,195],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{10:[1,196]},{10:[1,197],103:[1,198]},t(Pt,[2,121]),{10:[1,199],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{10:[1,200],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{77:[1,201]},t(St,[2,102],{10:[1,202]}),t(St,[2,104],{10:[1,203]}),{77:[1,204]},t(mt,[2,177]),{77:[1,205],95:[1,206]},t(q,[2,50],{110:109,42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),{31:[1,207],65:xt,79:208,113:It,114:Rt,115:Nt},t(wt,[2,79]),t(wt,[2,81]),t(wt,[2,82]),t(wt,[2,146]),t(wt,[2,147]),t(wt,[2,148]),t(wt,[2,149]),{47:[1,209],65:xt,79:208,113:It,114:Rt,115:Nt},{30:210,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{49:[1,211],65:xt,79:208,113:It,114:Rt,115:Nt},{51:[1,212],65:xt,79:208,113:It,114:Rt,115:Nt},{53:[1,213],65:xt,79:208,113:It,114:Rt,115:Nt},{55:[1,214],65:xt,79:208,113:It,114:Rt,115:Nt},{58:[1,215]},{62:[1,216],65:xt,79:208,113:It,114:Rt,115:Nt},{64:[1,217],65:xt,79:208,113:It,114:Rt,115:Nt},{30:218,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{31:[1,219],65:xt,79:208,113:It,114:Rt,115:Nt},{65:xt,67:[1,220],69:[1,221],79:208,113:It,114:Rt,115:Nt},{65:xt,67:[1,223],69:[1,222],79:208,113:It,114:Rt,115:Nt},t(U,[2,44],{42:Bt}),t(et,[2,70]),t(et,[2,69]),{60:[1,224],65:xt,79:208,113:It,114:Rt,115:Nt},t(et,[2,72]),t($t,[2,74]),{30:225,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(_t,n,{5:226}),t(Ot,[2,95]),t($,[2,35]),{41:227,42:p,43:39,45:40,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{10:Ut,58:Vt,81:Gt,89:228,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:239,101:[1,240],102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:241,101:[1,242],102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{102:[1,243]},{10:Ut,58:Vt,81:Gt,89:244,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{42:p,45:245,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t(St,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},t(St,[2,109]),t(St,[2,111],{10:[1,249]}),t(St,[2,112]),t(Z,[2,51]),t(wt,[2,80]),t(Z,[2,52]),{49:[1,250],65:xt,79:208,113:It,114:Rt,115:Nt},t(Z,[2,59]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),{106:[1,251]},t(Z,[2,58]),t(Z,[2,60]),{64:[1,252],65:xt,79:208,113:It,114:Rt,115:Nt},t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,65]),t(Z,[2,64]),t(Z,[2,66]),t([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:xt,79:208,113:It,114:Rt,115:Nt},{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,254],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},t(q,[2,48]),t(St,[2,114],{103:zt}),t(Ht,[2,123],{105:256,10:Ut,58:Vt,81:Gt,102:Mt,106:Yt,107:Kt,108:jt,109:Xt}),t(Wt,[2,125]),t(Wt,[2,127]),t(Wt,[2,128]),t(Wt,[2,129]),t(Wt,[2,130]),t(Wt,[2,131]),t(Wt,[2,132]),t(Wt,[2,133]),t(Wt,[2,134]),t(St,[2,115],{103:zt}),{10:[1,257]},t(St,[2,116],{103:zt}),{10:[1,258]},t(Pt,[2,122]),t(St,[2,98],{103:zt}),t(St,[2,99],{110:109,42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),t(St,[2,103]),t(St,[2,105],{10:[1,259]}),t(St,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:O,9:P,11:w,21:264},t($,[2,34]),{10:Ut,58:Vt,81:Gt,102:Mt,104:265,105:230,106:Yt,107:Kt,108:jt,109:Xt},t(Wt,[2,126]),{14:V,42:G,58:M,86:Y,98:266,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},{14:V,42:G,58:M,86:Y,98:267,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},{95:[1,268]},t(St,[2,113]),t(Z,[2,53]),{30:269,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(Z,[2,61]),t(_t,n,{5:270}),t(Ht,[2,124],{105:256,10:Ut,58:Vt,81:Gt,102:Mt,106:Yt,107:Kt,108:jt,109:Xt}),t(St,[2,119],{117:160,10:[1,271],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,120],{117:160,10:[1,272],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,107]),{31:[1,273],65:xt,79:208,113:It,114:Rt,115:Nt},{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,274],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},{10:Ut,58:Vt,81:Gt,89:275,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:276,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},t(Z,[2,57]),t($,[2,33]),t(St,[2,117],{103:zt}),t(St,[2,118],{103:zt})],defaultActions:{},parseError:function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},parse:function(t){var e=this,s=[0],u=[],i=[null],n=[],r=this.table,a="",c=0,o=0,l=n.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(A.yy[d]=this.yy[d]);h.setInput(t,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var p=h.yylloc;n.push(p);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,f,k,D,g,b,F,T,C,_={};;){if(f=s[s.length-1],this.defaultActions[f]?k=this.defaultActions[f]:(null==E&&(C=void 0,"number"!=typeof(C=u.pop()||h.lex()||1)&&(C instanceof Array&&(C=(u=C).pop()),C=e.symbols_[C]||C),E=C),k=r[f]&&r[f][E]),void 0===k||!k.length||!k[0]){var B="";for(g in T=[],r[f])this.terminals_[g]&&g>2&&T.push("'"+this.terminals_[g]+"'");B=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(B,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:p,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+E);switch(k[0]){case 1:s.push(E),i.push(h.yytext),n.push(h.yylloc),s.push(k[1]),E=null,o=h.yyleng,a=h.yytext,c=h.yylineno,p=h.yylloc;break;case 2:if(b=this.productions_[k[1]][1],_.$=i[i.length-b],_._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},y&&(_._$.range=[n[n.length-(b||1)].range[0],n[n.length-1].range[1]]),void 0!==(D=this.performAction.apply(_,[a,o,c,A.yy,k[1],i,n].concat(l))))return D;b&&(s=s.slice(0,-1*b*2),i=i.slice(0,-1*b),n=n.slice(0,-1*b)),s.push(this.productions_[k[1]][0]),i.push(_.$),n.push(_._$),F=r[s[s.length-2]][s[s.length-1]],s.push(F);break;case 3:return!0}}return!0}},qt={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,s=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 u=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),s.length-1&&(this.yylineno-=s.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:s?(s.length===u.length?this.yylloc.first_column:0)+u[u.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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 s,u,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))),(u=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.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],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var n in i)this[n]=i[n];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,s,u;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),n=0;n<i.length;n++)if((s=this._input.match(this.rules[i[n]]))&&(!e||s[0].length>e[0].length)){if(e=s,u=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,i[n])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[u]))&&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,s,u){switch(s){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 8:case 11:case 14:case 17:case 27:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 12:return 93;case 13:return"MD_STR";case 15:this.begin("md_string");break;case 16:return"STR";case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 28:return 85;case 29:case 30:case 31:return t.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:case 35:case 36:case 37:return 95;case 38:return this.popState(),13;case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:case 95:return 108;case 55:return 44;case 56:return 58;case 57:case 96:return 42;case 58:return 8;case 59:return 103;case 60:case 94:return 112;case 61:case 64:case 67:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:case 66:case 69:return 116;case 65:return this.pushState("thickEdgeText"),73;case 68:return this.pushState("dottedEdgeText"),73;case 70:return 75;case 71:return this.popState(),51;case 72:case 108:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\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<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-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])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};function Zt(){this.yy={}}return Qt.lexer=qt,Zt.prototype=Qt,Qt.Parser=Zt,new Zt}();n.parser=n;const r=n;let a,c,o=0,l=(0,i.c)(),h={},A=[],d={},p=[],y={},E={},f=0,k=!0,D=[];const g=t=>i.e.sanitizeText(t,l),b=function(t){const e=Object.keys(h);for(const s of e)if(h[s].id===t)return h[s].domId;return t},F=function(t,e,s,u,n,r,a={}){let c,A=t;void 0!==A&&0!==A.trim().length&&(void 0===h[A]&&(h[A]={id:A,labelType:"text",domId:"flowchart-"+A+"-"+o,styles:[],classes:[]}),o++,void 0!==e?(l=(0,i.c)(),c=g(e.text.trim()),h[A].labelType=e.type,'"'===c[0]&&'"'===c[c.length-1]&&(c=c.substring(1,c.length-1)),h[A].text=c):void 0===h[A].text&&(h[A].text=t),void 0!==s&&(h[A].type=s),null!=u&&u.forEach((function(t){h[A].styles.push(t)})),null!=n&&n.forEach((function(t){h[A].classes.push(t)})),void 0!==r&&(h[A].dir=r),void 0===h[A].props?h[A].props=a:void 0!==a&&Object.assign(h[A].props,a))},T=function(t,e,s){const u={start:t,end:e,type:void 0,text:"",labelType:"text"};i.l.info("abc78 Got edge...",u);const n=s.text;if(void 0!==n&&(u.text=g(n.text.trim()),'"'===u.text[0]&&'"'===u.text[u.text.length-1]&&(u.text=u.text.substring(1,u.text.length-1)),u.labelType=n.type),void 0!==s&&(u.type=s.type,u.stroke=s.stroke,u.length=s.length),(null==u?void 0:u.length)>10&&(u.length=10),!(A.length<280))throw new Error("Too many edges");i.l.info("abc78 pushing edge..."),A.push(u)},C=function(t,e,s){let u,n;for(i.l.info("addLink (abc78)",t,e,s),u=0;u<t.length;u++)for(n=0;n<e.length;n++)T(t[u],e[n],s)},_=function(t,e){t.forEach((function(t){"default"===t?A.defaultInterpolate=e:A[t].interpolate=e}))},B=function(t,e){t.forEach((function(t){"default"===t?A.defaultStyle=e:(-1===i.u.isSubstringInArray("fill",e)&&e.push("fill:none"),A[t].style=e)}))},S=function(t,e){t.split(",").forEach((function(t){void 0===d[t]&&(d[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const s=e.replace("fill","bgFill").replace("color","fill");d[t].textStyles.push(s)}d[t].styles.push(e)}))}))},m=function(t){a=t,a.match(/.*</)&&(a="RL"),a.match(/.*\^/)&&(a="BT"),a.match(/.*>/)&&(a="LR"),a.match(/.*v/)&&(a="TB"),"TD"===a&&(a="TB")},x=function(t,e){t.split(",").forEach((function(t){let s=t;void 0!==h[s]&&h[s].classes.push(e),void 0!==y[s]&&y[s].classes.push(e)}))},v=function(t,e,s){t.split(",").forEach((function(t){void 0!==h[t]&&(h[t].link=i.u.formatUrl(e,l),h[t].linkTarget=s)})),x(t,"clickable")},L=function(t){if(E.hasOwnProperty(t))return E[t]},I=function(t,e,s){t.split(",").forEach((function(t){!function(t,e,s){let u=b(t);if("loose"!==(0,i.c)().securityLevel)return;if(void 0===e)return;let n=[];if("string"==typeof s){n=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<n.length;t++){let e=n[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),n[t]=e}}0===n.length&&n.push(t),void 0!==h[t]&&(h[t].haveCallback=!0,D.push((function(){const t=document.querySelector(`[id="${u}"]`);null!==t&&t.addEventListener("click",(function(){i.u.runFunc(e,...n)}),!1)})))}(t,e,s)})),x(t,"clickable")},R=function(t){D.forEach((function(e){e(t)}))},N=function(){return a.trim()},$=function(){return h},O=function(){return A},P=function(){return d},w=function(t){let e=(0,u.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,u.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,u.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,u.Ys)(this);if(null===t.attr("title"))return;const s=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+s.left+(s.right-s.left)/2+"px").style("top",window.scrollY+s.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,u.Ys)(this).classed("hover",!1)}))};D.push(w);const U=function(t="gen-1"){h={},d={},A=[],D=[w],p=[],y={},f=0,E={},k=!0,c=t,(0,i.t)()},V=t=>{c=t||"gen-2"},G=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},M=function(t,e,s){let u=t.text.trim(),n=s.text;t===s&&s.text.match(/\s/)&&(u=void 0);let r=[];const{nodeList:a,dir:o}=function(t){const e={boolean:{},number:{},string:{}},s=[];let u;return{nodeList:t.filter((function(t){const i=typeof t;return t.stmt&&"dir"===t.stmt?(u=t.value,!1):""!==t.trim()&&(i in e?!e[i].hasOwnProperty(t)&&(e[i][t]=!0):!s.includes(t)&&s.push(t))})),dir:u}}(r.concat.apply(r,e));if(r=a,"gen-1"===c)for(let i=0;i<r.length;i++)r[i]=b(r[i]);u=u||"subGraph"+f,n=n||"",n=g(n),f+=1;const l={id:u,nodes:r,title:n.trim(),classes:[],dir:o,labelType:s.type};return i.l.info("Adding",l.id,l.nodes,l.dir),l.nodes=J(l,p).nodes,p.push(l),y[u]=l,u},Y=function(t){for(const[e,s]of p.entries())if(s.id===t)return e;return-1};let K=-1;const j=[],X=function(t,e){const s=p[e].nodes;if(K+=1,K>2e3)return;if(j[K]=e,p[e].id===t)return{result:!0,count:0};let u=0,i=1;for(;u<s.length;){const e=Y(s[u]);if(e>=0){const s=X(t,e);if(s.result)return{result:!0,count:i+s.count};i+=s.count}u+=1}return{result:!1,count:i}},z=function(t){return j[t]},H=function(){K=-1,p.length>0&&X("none",p.length-1)},W=function(){return p},Q=()=>!!k&&(k=!1,!0),q=(t,e)=>{const s=(t=>{const e=t.trim();let s=e.slice(0,-1),u="arrow_open";switch(e.slice(-1)){case"x":u="arrow_cross","x"===e[0]&&(u="double_"+u,s=s.slice(1));break;case">":u="arrow_point","<"===e[0]&&(u="double_"+u,s=s.slice(1));break;case"o":u="arrow_circle","o"===e[0]&&(u="double_"+u,s=s.slice(1))}let i="normal",n=s.length-1;"="===s[0]&&(i="thick"),"~"===s[0]&&(i="invisible");let r=((t,e)=>{const s=e.length;let u=0;for(let i=0;i<s;++i)e[i]===t&&++u;return u})(".",s);return r&&(i="dotted",n=r),{type:u,stroke:i,length:n}})(t);let u;if(e){if(u=(t=>{let e=t.trim(),s="arrow_open";switch(e[0]){case"<":s="arrow_point",e=e.slice(1);break;case"x":s="arrow_cross",e=e.slice(1);break;case"o":s="arrow_circle",e=e.slice(1)}let u="normal";return e.includes("=")&&(u="thick"),e.includes(".")&&(u="dotted"),{type:s,stroke:u}})(e),u.stroke!==s.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===u.type)u.type=s.type;else{if(u.type!==s.type)return{type:"INVALID",stroke:"INVALID"};u.type="double_"+u.type}return"double_arrow"===u.type&&(u.type="double_arrow_point"),u.length=s.length,u}return s},Z=(t,e)=>{let s=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(s=!0)})),s},J=(t,e)=>{const s=[];return t.nodes.forEach(((u,i)=>{Z(e,u)||s.push(t.nodes[i])})),{nodes:s}},tt={firstGraph:Q},et={defaultConfig:()=>i.I.flowchart,setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,addVertex:F,lookUpDomId:b,addLink:C,updateLinkInterpolate:_,updateLink:B,addClass:S,setDirection:m,setClass:x,setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(E["gen-1"===c?b(t):t]=g(e))}))},getTooltip:L,setClickEvent:I,setLink:v,bindFunctions:R,getDirection:N,getVertices:$,getEdges:O,getClasses:P,clear:U,setGen:V,defaultStyle:G,addSubGraph:M,getDepthFirstPos:z,indexNodes:H,getSubGraphs:W,destructLink:q,lex:tt,exists:Z,makeUniq:J,setDiagramTitle:i.q,getDiagramTitle:i.r},st=Object.freeze(Object.defineProperty({__proto__:null,addClass:S,addLink:C,addSingleLink:T,addSubGraph:M,addVertex:F,bindFunctions:R,clear:U,default:et,defaultStyle:G,destructLink:q,firstGraph:Q,getClasses:P,getDepthFirstPos:z,getDirection:N,getEdges:O,getSubGraphs:W,getTooltip:L,getVertices:$,indexNodes:H,lex:tt,lookUpDomId:b,setClass:x,setClickEvent:I,setDirection:m,setGen:V,setLink:v,updateLink:B,updateLinkInterpolate:_},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/assets/js/8955.88257d8a.js b/assets/js/8955.88257d8a.js new file mode 100644 index 0000000..3087528 --- /dev/null +++ b/assets/js/8955.88257d8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8955],{88955:(t,e,s)=>{s.d(e,{d:()=>st,f:()=>et,p:()=>r});var u=s(64218),i=s(85322),n=function(){var t=function(t,e,s,u){for(s=s||{},u=t.length;u--;s[t[u]]=e);return s},e=[1,4],s=[1,3],u=[1,5],i=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],n=[2,2],r=[1,13],a=[1,14],c=[1,15],o=[1,16],l=[1,23],h=[1,25],A=[1,26],d=[1,27],p=[1,49],y=[1,48],E=[1,29],f=[1,30],k=[1,31],D=[1,32],g=[1,33],b=[1,44],F=[1,46],T=[1,42],C=[1,47],_=[1,43],B=[1,50],S=[1,45],m=[1,51],x=[1,52],v=[1,34],L=[1,35],I=[1,36],R=[1,37],N=[1,57],$=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],O=[1,61],P=[1,60],w=[1,62],U=[8,9,11,73,75],V=[1,88],G=[1,93],M=[1,92],Y=[1,89],K=[1,85],j=[1,91],X=[1,87],z=[1,94],H=[1,90],W=[1,95],Q=[1,86],q=[8,9,10,11,73,75],Z=[8,9,10,11,44,73,75],J=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],tt=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],et=[42,58,86,99,102,103,106,108,111,112,113],st=[1,121],ut=[1,120],it=[1,128],nt=[1,142],rt=[1,143],at=[1,144],ct=[1,145],ot=[1,130],lt=[1,132],ht=[1,136],At=[1,137],dt=[1,138],pt=[1,139],yt=[1,140],Et=[1,141],ft=[1,146],kt=[1,147],Dt=[1,126],gt=[1,127],bt=[1,134],Ft=[1,129],Tt=[1,133],Ct=[1,131],_t=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Bt=[1,149],St=[8,9,11],mt=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],xt=[1,169],vt=[1,165],Lt=[1,166],It=[1,170],Rt=[1,167],Nt=[1,168],$t=[75,113,116],Ot=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Pt=[10,103],wt=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Ut=[1,235],Vt=[1,233],Gt=[1,237],Mt=[1,231],Yt=[1,232],Kt=[1,234],jt=[1,236],Xt=[1,238],zt=[1,255],Ht=[8,9,11,103],Wt=[8,9,10,11,58,81,102,103,106,107,108,109],Qt={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(t,e,s,u,i,n,r){var a=n.length-1;switch(i){case 2:case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 3:(!Array.isArray(n[a])||n[a].length>0)&&n[a-1].push(n[a]),this.$=n[a-1];break;case 4:case 176:case 49:case 71:case 174:this.$=n[a];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(n[a-1]),this.$=n[a-1];break;case 27:this.$=n[a-1].nodes;break;case 33:this.$=u.addSubGraph(n[a-6],n[a-1],n[a-4]);break;case 34:this.$=u.addSubGraph(n[a-3],n[a-1],n[a-3]);break;case 35:this.$=u.addSubGraph(void 0,n[a-1],void 0);break;case 37:this.$=n[a].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=n[a].trim(),u.setAccDescription(this.$);break;case 43:u.addLink(n[a-2].stmt,n[a],n[a-1]),this.$={stmt:n[a],nodes:n[a].concat(n[a-2].nodes)};break;case 44:u.addLink(n[a-3].stmt,n[a-1],n[a-2]),this.$={stmt:n[a-1],nodes:n[a-1].concat(n[a-3].nodes)};break;case 45:this.$={stmt:n[a-1],nodes:n[a-1]};break;case 46:this.$={stmt:n[a],nodes:n[a]};break;case 47:case 121:case 123:this.$=[n[a]];break;case 48:this.$=n[a-4].concat(n[a]);break;case 50:this.$=n[a-2],u.setClass(n[a-2],n[a]);break;case 51:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"square");break;case 52:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"doublecircle");break;case 53:this.$=n[a-5],u.addVertex(n[a-5],n[a-2],"circle");break;case 54:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"ellipse");break;case 55:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"stadium");break;case 56:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"subroutine");break;case 57:this.$=n[a-7],u.addVertex(n[a-7],n[a-1],"rect",void 0,void 0,void 0,Object.fromEntries([[n[a-5],n[a-3]]]));break;case 58:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"cylinder");break;case 59:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"round");break;case 60:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"diamond");break;case 61:this.$=n[a-5],u.addVertex(n[a-5],n[a-2],"hexagon");break;case 62:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"odd");break;case 63:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"trapezoid");break;case 64:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"inv_trapezoid");break;case 65:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"lean_right");break;case 66:this.$=n[a-3],u.addVertex(n[a-3],n[a-1],"lean_left");break;case 67:this.$=n[a],u.addVertex(n[a]);break;case 68:n[a-1].text=n[a],this.$=n[a-1];break;case 69:case 70:n[a-2].text=n[a-1],this.$=n[a-2];break;case 72:var c=u.destructLink(n[a],n[a-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:n[a-1]};break;case 73:case 79:case 94:case 96:this.$={text:n[a],type:"text"};break;case 74:case 80:case 95:this.$={text:n[a-1].text+""+n[a],type:n[a-1].type};break;case 75:case 81:this.$={text:n[a],type:"string"};break;case 76:case 82:case 97:this.$={text:n[a],type:"markdown"};break;case 77:c=u.destructLink(n[a]);this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 78:this.$=n[a-1];break;case 98:this.$=n[a-4],u.addClass(n[a-2],n[a]);break;case 99:this.$=n[a-4],u.setClass(n[a-2],n[a]);break;case 100:case 108:this.$=n[a-1],u.setClickEvent(n[a-1],n[a]);break;case 101:case 109:this.$=n[a-3],u.setClickEvent(n[a-3],n[a-2]),u.setTooltip(n[a-3],n[a]);break;case 102:this.$=n[a-2],u.setClickEvent(n[a-2],n[a-1],n[a]);break;case 103:this.$=n[a-4],u.setClickEvent(n[a-4],n[a-3],n[a-2]),u.setTooltip(n[a-4],n[a]);break;case 104:this.$=n[a-2],u.setLink(n[a-2],n[a]);break;case 105:this.$=n[a-4],u.setLink(n[a-4],n[a-2]),u.setTooltip(n[a-4],n[a]);break;case 106:this.$=n[a-4],u.setLink(n[a-4],n[a-2],n[a]);break;case 107:this.$=n[a-6],u.setLink(n[a-6],n[a-4],n[a]),u.setTooltip(n[a-6],n[a-2]);break;case 110:this.$=n[a-1],u.setLink(n[a-1],n[a]);break;case 111:this.$=n[a-3],u.setLink(n[a-3],n[a-2]),u.setTooltip(n[a-3],n[a]);break;case 112:this.$=n[a-3],u.setLink(n[a-3],n[a-2],n[a]);break;case 113:this.$=n[a-5],u.setLink(n[a-5],n[a-4],n[a]),u.setTooltip(n[a-5],n[a-2]);break;case 114:this.$=n[a-4],u.addVertex(n[a-2],void 0,void 0,n[a]);break;case 115:this.$=n[a-4],u.updateLink([n[a-2]],n[a]);break;case 116:this.$=n[a-4],u.updateLink(n[a-2],n[a]);break;case 117:this.$=n[a-8],u.updateLinkInterpolate([n[a-6]],n[a-2]),u.updateLink([n[a-6]],n[a]);break;case 118:this.$=n[a-8],u.updateLinkInterpolate(n[a-6],n[a-2]),u.updateLink(n[a-6],n[a]);break;case 119:this.$=n[a-6],u.updateLinkInterpolate([n[a-4]],n[a]);break;case 120:this.$=n[a-6],u.updateLinkInterpolate(n[a-4],n[a]);break;case 122:case 124:n[a-2].push(n[a]),this.$=n[a-2];break;case 126:this.$=n[a-1]+n[a];break;case 175:case 177:this.$=n[a-1]+""+n[a];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,9:e,10:s,12:u},{1:[3]},t(i,n,{5:6}),{4:7,9:e,10:s,12:u},{4:8,9:e,10:s,12:u},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:N,15:53,18:56},t($,[2,3]),t($,[2,4]),t($,[2,5]),t($,[2,6]),t($,[2,7]),t($,[2,8]),{8:O,9:P,11:w,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:O,9:P,11:w,21:66},{8:O,9:P,11:w,21:67},{8:O,9:P,11:w,21:68},{8:O,9:P,11:w,21:69},{8:O,9:P,11:w,21:70},{8:O,9:P,10:[1,71],11:w,21:72},t($,[2,36]),{35:[1,73]},{37:[1,74]},t($,[2,39]),t(U,[2,46],{18:75,10:N}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:V,42:G,58:M,77:[1,83],86:Y,92:[1,80],94:[1,81],98:82,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},t($,[2,178]),t($,[2,179]),t($,[2,180]),t($,[2,181]),t(q,[2,47]),t(q,[2,49],{44:[1,96]}),t(Z,[2,67],{110:109,29:[1,97],42:p,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:y,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),t(J,[2,174]),t(J,[2,135]),t(J,[2,136]),t(J,[2,137]),t(J,[2,138]),t(J,[2,139]),t(J,[2,140]),t(J,[2,141]),t(J,[2,142]),t(J,[2,143]),t(J,[2,144]),t(J,[2,145]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,110]},t(tt,[2,26],{18:111,10:N}),t($,[2,27]),{40:112,41:38,42:p,43:39,45:40,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t($,[2,40]),t($,[2,41]),t($,[2,42]),t(et,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:st,116:ut},t([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),t($,[2,28]),t($,[2,29]),t($,[2,30]),t($,[2,31]),t($,[2,32]),{10:it,12:nt,14:rt,27:at,28:122,32:ct,42:ot,58:lt,73:ht,77:[1,124],78:[1,125],80:135,81:At,82:dt,83:pt,84:yt,85:Et,86:ft,87:kt,88:123,102:Dt,106:gt,108:bt,111:Ft,112:Tt,113:Ct},t(_t,n,{5:148}),t($,[2,37]),t($,[2,38]),t(U,[2,45],{42:Bt}),{42:p,45:150,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{99:[1,151],100:152,102:[1,153]},{42:p,45:154,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{42:p,45:155,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t(St,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},t(St,[2,108],{117:160,10:[1,159],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,110],{10:[1,161]}),t(mt,[2,176]),t(mt,[2,163]),t(mt,[2,164]),t(mt,[2,165]),t(mt,[2,166]),t(mt,[2,167]),t(mt,[2,168]),t(mt,[2,169]),t(mt,[2,170]),t(mt,[2,171]),t(mt,[2,172]),t(mt,[2,173]),{42:p,45:162,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{30:163,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:171,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:173,48:[1,172],65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:174,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:175,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:176,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{106:[1,177]},{30:178,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:179,63:[1,180],65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:181,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:182,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{30:183,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(J,[2,175]),t(i,[2,20]),t(tt,[2,25]),t(U,[2,43],{18:184,10:N}),t(et,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{75:[1,188],76:189,113:st,116:ut},t($t,[2,73]),t($t,[2,75]),t($t,[2,76]),t($t,[2,161]),t($t,[2,162]),{8:O,9:P,10:it,11:w,12:nt,14:rt,21:191,27:at,29:[1,190],32:ct,42:ot,58:lt,73:ht,80:135,81:At,82:dt,83:pt,84:yt,85:Et,86:ft,87:kt,88:192,102:Dt,106:gt,108:bt,111:Ft,112:Tt,113:Ct},t(Ot,[2,94]),t(Ot,[2,96]),t(Ot,[2,97]),t(Ot,[2,150]),t(Ot,[2,151]),t(Ot,[2,152]),t(Ot,[2,153]),t(Ot,[2,154]),t(Ot,[2,155]),t(Ot,[2,156]),t(Ot,[2,157]),t(Ot,[2,158]),t(Ot,[2,159]),t(Ot,[2,160]),t(Ot,[2,83]),t(Ot,[2,84]),t(Ot,[2,85]),t(Ot,[2,86]),t(Ot,[2,87]),t(Ot,[2,88]),t(Ot,[2,89]),t(Ot,[2,90]),t(Ot,[2,91]),t(Ot,[2,92]),t(Ot,[2,93]),{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,193],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},{10:N,18:194},{10:[1,195],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{10:[1,196]},{10:[1,197],103:[1,198]},t(Pt,[2,121]),{10:[1,199],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{10:[1,200],42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:109,111:S,112:m,113:x},{77:[1,201]},t(St,[2,102],{10:[1,202]}),t(St,[2,104],{10:[1,203]}),{77:[1,204]},t(mt,[2,177]),{77:[1,205],95:[1,206]},t(q,[2,50],{110:109,42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),{31:[1,207],65:xt,79:208,113:It,114:Rt,115:Nt},t(wt,[2,79]),t(wt,[2,81]),t(wt,[2,82]),t(wt,[2,146]),t(wt,[2,147]),t(wt,[2,148]),t(wt,[2,149]),{47:[1,209],65:xt,79:208,113:It,114:Rt,115:Nt},{30:210,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{49:[1,211],65:xt,79:208,113:It,114:Rt,115:Nt},{51:[1,212],65:xt,79:208,113:It,114:Rt,115:Nt},{53:[1,213],65:xt,79:208,113:It,114:Rt,115:Nt},{55:[1,214],65:xt,79:208,113:It,114:Rt,115:Nt},{58:[1,215]},{62:[1,216],65:xt,79:208,113:It,114:Rt,115:Nt},{64:[1,217],65:xt,79:208,113:It,114:Rt,115:Nt},{30:218,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},{31:[1,219],65:xt,79:208,113:It,114:Rt,115:Nt},{65:xt,67:[1,220],69:[1,221],79:208,113:It,114:Rt,115:Nt},{65:xt,67:[1,223],69:[1,222],79:208,113:It,114:Rt,115:Nt},t(U,[2,44],{42:Bt}),t(et,[2,70]),t(et,[2,69]),{60:[1,224],65:xt,79:208,113:It,114:Rt,115:Nt},t(et,[2,72]),t($t,[2,74]),{30:225,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(_t,n,{5:226}),t(Ot,[2,95]),t($,[2,35]),{41:227,42:p,43:39,45:40,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},{10:Ut,58:Vt,81:Gt,89:228,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:239,101:[1,240],102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:241,101:[1,242],102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{102:[1,243]},{10:Ut,58:Vt,81:Gt,89:244,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{42:p,45:245,58:y,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x},t(St,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},t(St,[2,109]),t(St,[2,111],{10:[1,249]}),t(St,[2,112]),t(Z,[2,51]),t(wt,[2,80]),t(Z,[2,52]),{49:[1,250],65:xt,79:208,113:It,114:Rt,115:Nt},t(Z,[2,59]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),{106:[1,251]},t(Z,[2,58]),t(Z,[2,60]),{64:[1,252],65:xt,79:208,113:It,114:Rt,115:Nt},t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,65]),t(Z,[2,64]),t(Z,[2,66]),t([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:xt,79:208,113:It,114:Rt,115:Nt},{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,254],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},t(q,[2,48]),t(St,[2,114],{103:zt}),t(Ht,[2,123],{105:256,10:Ut,58:Vt,81:Gt,102:Mt,106:Yt,107:Kt,108:jt,109:Xt}),t(Wt,[2,125]),t(Wt,[2,127]),t(Wt,[2,128]),t(Wt,[2,129]),t(Wt,[2,130]),t(Wt,[2,131]),t(Wt,[2,132]),t(Wt,[2,133]),t(Wt,[2,134]),t(St,[2,115],{103:zt}),{10:[1,257]},t(St,[2,116],{103:zt}),{10:[1,258]},t(Pt,[2,122]),t(St,[2,98],{103:zt}),t(St,[2,99],{110:109,42:p,58:y,86:b,99:F,102:T,103:C,106:_,108:B,111:S,112:m,113:x}),t(St,[2,103]),t(St,[2,105],{10:[1,259]}),t(St,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:O,9:P,11:w,21:264},t($,[2,34]),{10:Ut,58:Vt,81:Gt,102:Mt,104:265,105:230,106:Yt,107:Kt,108:jt,109:Xt},t(Wt,[2,126]),{14:V,42:G,58:M,86:Y,98:266,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},{14:V,42:G,58:M,86:Y,98:267,102:K,103:j,106:X,108:z,111:H,112:W,113:Q,117:84},{95:[1,268]},t(St,[2,113]),t(Z,[2,53]),{30:269,65:xt,77:vt,78:Lt,79:164,113:It,114:Rt,115:Nt},t(Z,[2,61]),t(_t,n,{5:270}),t(Ht,[2,124],{105:256,10:Ut,58:Vt,81:Gt,102:Mt,106:Yt,107:Kt,108:jt,109:Xt}),t(St,[2,119],{117:160,10:[1,271],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,120],{117:160,10:[1,272],14:V,42:G,58:M,86:Y,102:K,103:j,106:X,108:z,111:H,112:W,113:Q}),t(St,[2,107]),{31:[1,273],65:xt,79:208,113:It,114:Rt,115:Nt},{6:11,7:12,8:r,9:a,10:c,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:l,32:[1,274],33:24,34:h,36:A,38:d,40:28,41:38,42:p,43:39,45:40,58:y,81:E,82:f,83:k,84:D,85:g,86:b,99:F,102:T,103:C,106:_,108:B,110:41,111:S,112:m,113:x,118:v,119:L,120:I,121:R},{10:Ut,58:Vt,81:Gt,89:275,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},{10:Ut,58:Vt,81:Gt,89:276,102:Mt,104:229,105:230,106:Yt,107:Kt,108:jt,109:Xt},t(Z,[2,57]),t($,[2,33]),t(St,[2,117],{103:zt}),t(St,[2,118],{103:zt})],defaultActions:{},parseError:function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)},parse:function(t){var e=this,s=[0],u=[],i=[null],n=[],r=this.table,a="",c=0,o=0,l=n.slice.call(arguments,1),h=Object.create(this.lexer),A={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(A.yy[d]=this.yy[d]);h.setInput(t,A.yy),A.yy.lexer=h,A.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var p=h.yylloc;n.push(p);var y=h.options&&h.options.ranges;"function"==typeof A.yy.parseError?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,f,k,D,g,b,F,T,C,_={};;){if(f=s[s.length-1],this.defaultActions[f]?k=this.defaultActions[f]:(null==E&&(C=void 0,"number"!=typeof(C=u.pop()||h.lex()||1)&&(C instanceof Array&&(C=(u=C).pop()),C=e.symbols_[C]||C),E=C),k=r[f]&&r[f][E]),void 0===k||!k.length||!k[0]){var B="";for(g in T=[],r[f])this.terminals_[g]&&g>2&&T.push("'"+this.terminals_[g]+"'");B=h.showPosition?"Parse error on line "+(c+1)+":\n"+h.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(B,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:p,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+E);switch(k[0]){case 1:s.push(E),i.push(h.yytext),n.push(h.yylloc),s.push(k[1]),E=null,o=h.yyleng,a=h.yytext,c=h.yylineno,p=h.yylloc;break;case 2:if(b=this.productions_[k[1]][1],_.$=i[i.length-b],_._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},y&&(_._$.range=[n[n.length-(b||1)].range[0],n[n.length-1].range[1]]),void 0!==(D=this.performAction.apply(_,[a,o,c,A.yy,k[1],i,n].concat(l))))return D;b&&(s=s.slice(0,-1*b*2),i=i.slice(0,-1*b),n=n.slice(0,-1*b)),s.push(this.productions_[k[1]][0]),i.push(_.$),n.push(_._$),F=r[s[s.length-2]][s[s.length-1]],s.push(F);break;case 3:return!0}}return!0}},qt={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,s=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 u=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),s.length-1&&(this.yylineno-=s.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:s?(s.length===u.length?this.yylloc.first_column:0)+u[u.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[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 s,u,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))),(u=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.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],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var n in i)this[n]=i[n];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,s,u;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),n=0;n<i.length;n++)if((s=this._input.match(this.rules[i[n]]))&&(!e||s[0].length>e[0].length)){if(e=s,u=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,i[n])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[u]))&&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,s,u){switch(s){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 8:case 11:case 14:case 17:case 27:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 12:return 93;case 13:return"MD_STR";case 15:this.begin("md_string");break;case 16:return"STR";case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 28:return 85;case 29:case 30:case 31:return t.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:case 35:case 36:case 37:return 95;case 38:return this.popState(),13;case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:case 95:return 108;case 55:return 44;case 56:return 58;case 57:case 96:return 42;case 58:return 8;case 59:return 103;case 60:case 94:return 112;case 61:case 64:case 67:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:case 66:case 69:return 116;case 65:return this.pushState("thickEdgeText"),73;case 68:return this.pushState("dottedEdgeText"),73;case 70:return 75;case 71:return this.popState(),51;case 72:case 108:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\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<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-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])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};function Zt(){this.yy={}}return Qt.lexer=qt,Zt.prototype=Qt,Qt.Parser=Zt,new Zt}();n.parser=n;const r=n;let a,c,o=0,l=(0,i.c)(),h={},A=[],d={},p=[],y={},E={},f=0,k=!0,D=[];const g=t=>i.e.sanitizeText(t,l),b=function(t){const e=Object.keys(h);for(const s of e)if(h[s].id===t)return h[s].domId;return t},F=function(t,e,s,u,n,r,a={}){let c,A=t;void 0!==A&&0!==A.trim().length&&(void 0===h[A]&&(h[A]={id:A,labelType:"text",domId:"flowchart-"+A+"-"+o,styles:[],classes:[]}),o++,void 0!==e?(l=(0,i.c)(),c=g(e.text.trim()),h[A].labelType=e.type,'"'===c[0]&&'"'===c[c.length-1]&&(c=c.substring(1,c.length-1)),h[A].text=c):void 0===h[A].text&&(h[A].text=t),void 0!==s&&(h[A].type=s),null!=u&&u.forEach((function(t){h[A].styles.push(t)})),null!=n&&n.forEach((function(t){h[A].classes.push(t)})),void 0!==r&&(h[A].dir=r),void 0===h[A].props?h[A].props=a:void 0!==a&&Object.assign(h[A].props,a))},T=function(t,e,s){const u={start:t,end:e,type:void 0,text:"",labelType:"text"};i.l.info("abc78 Got edge...",u);const n=s.text;if(void 0!==n&&(u.text=g(n.text.trim()),'"'===u.text[0]&&'"'===u.text[u.text.length-1]&&(u.text=u.text.substring(1,u.text.length-1)),u.labelType=n.type),void 0!==s&&(u.type=s.type,u.stroke=s.stroke,u.length=s.length),(null==u?void 0:u.length)>10&&(u.length=10),!(A.length<280))throw new Error("Too many edges");i.l.info("abc78 pushing edge..."),A.push(u)},C=function(t,e,s){let u,n;for(i.l.info("addLink (abc78)",t,e,s),u=0;u<t.length;u++)for(n=0;n<e.length;n++)T(t[u],e[n],s)},_=function(t,e){t.forEach((function(t){"default"===t?A.defaultInterpolate=e:A[t].interpolate=e}))},B=function(t,e){t.forEach((function(t){"default"===t?A.defaultStyle=e:(-1===i.u.isSubstringInArray("fill",e)&&e.push("fill:none"),A[t].style=e)}))},S=function(t,e){t.split(",").forEach((function(t){void 0===d[t]&&(d[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const s=e.replace("fill","bgFill").replace("color","fill");d[t].textStyles.push(s)}d[t].styles.push(e)}))}))},m=function(t){a=t,a.match(/.*</)&&(a="RL"),a.match(/.*\^/)&&(a="BT"),a.match(/.*>/)&&(a="LR"),a.match(/.*v/)&&(a="TB"),"TD"===a&&(a="TB")},x=function(t,e){t.split(",").forEach((function(t){let s=t;void 0!==h[s]&&h[s].classes.push(e),void 0!==y[s]&&y[s].classes.push(e)}))},v=function(t,e,s){t.split(",").forEach((function(t){void 0!==h[t]&&(h[t].link=i.u.formatUrl(e,l),h[t].linkTarget=s)})),x(t,"clickable")},L=function(t){if(E.hasOwnProperty(t))return E[t]},I=function(t,e,s){t.split(",").forEach((function(t){!function(t,e,s){let u=b(t);if("loose"!==(0,i.c)().securityLevel)return;if(void 0===e)return;let n=[];if("string"==typeof s){n=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<n.length;t++){let e=n[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),n[t]=e}}0===n.length&&n.push(t),void 0!==h[t]&&(h[t].haveCallback=!0,D.push((function(){const t=document.querySelector(`[id="${u}"]`);null!==t&&t.addEventListener("click",(function(){i.u.runFunc(e,...n)}),!1)})))}(t,e,s)})),x(t,"clickable")},R=function(t){D.forEach((function(e){e(t)}))},N=function(){return a.trim()},$=function(){return h},O=function(){return A},P=function(){return d},w=function(t){let e=(0,u.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,u.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,u.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,u.Ys)(this);if(null===t.attr("title"))return;const s=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+s.left+(s.right-s.left)/2+"px").style("top",window.scrollY+s.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,u.Ys)(this).classed("hover",!1)}))};D.push(w);const U=function(t="gen-1"){h={},d={},A=[],D=[w],p=[],y={},f=0,E={},k=!0,c=t,(0,i.t)()},V=t=>{c=t||"gen-2"},G=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},M=function(t,e,s){let u=t.text.trim(),n=s.text;t===s&&s.text.match(/\s/)&&(u=void 0);let r=[];const{nodeList:a,dir:o}=function(t){const e={boolean:{},number:{},string:{}},s=[];let u;return{nodeList:t.filter((function(t){const i=typeof t;return t.stmt&&"dir"===t.stmt?(u=t.value,!1):""!==t.trim()&&(i in e?!e[i].hasOwnProperty(t)&&(e[i][t]=!0):!s.includes(t)&&s.push(t))})),dir:u}}(r.concat.apply(r,e));if(r=a,"gen-1"===c)for(let i=0;i<r.length;i++)r[i]=b(r[i]);u=u||"subGraph"+f,n=n||"",n=g(n),f+=1;const l={id:u,nodes:r,title:n.trim(),classes:[],dir:o,labelType:s.type};return i.l.info("Adding",l.id,l.nodes,l.dir),l.nodes=J(l,p).nodes,p.push(l),y[u]=l,u},Y=function(t){for(const[e,s]of p.entries())if(s.id===t)return e;return-1};let K=-1;const j=[],X=function(t,e){const s=p[e].nodes;if(K+=1,K>2e3)return;if(j[K]=e,p[e].id===t)return{result:!0,count:0};let u=0,i=1;for(;u<s.length;){const e=Y(s[u]);if(e>=0){const s=X(t,e);if(s.result)return{result:!0,count:i+s.count};i+=s.count}u+=1}return{result:!1,count:i}},z=function(t){return j[t]},H=function(){K=-1,p.length>0&&X("none",p.length-1)},W=function(){return p},Q=()=>!!k&&(k=!1,!0),q=(t,e)=>{const s=(t=>{const e=t.trim();let s=e.slice(0,-1),u="arrow_open";switch(e.slice(-1)){case"x":u="arrow_cross","x"===e[0]&&(u="double_"+u,s=s.slice(1));break;case">":u="arrow_point","<"===e[0]&&(u="double_"+u,s=s.slice(1));break;case"o":u="arrow_circle","o"===e[0]&&(u="double_"+u,s=s.slice(1))}let i="normal",n=s.length-1;"="===s[0]&&(i="thick"),"~"===s[0]&&(i="invisible");let r=((t,e)=>{const s=e.length;let u=0;for(let i=0;i<s;++i)e[i]===t&&++u;return u})(".",s);return r&&(i="dotted",n=r),{type:u,stroke:i,length:n}})(t);let u;if(e){if(u=(t=>{let e=t.trim(),s="arrow_open";switch(e[0]){case"<":s="arrow_point",e=e.slice(1);break;case"x":s="arrow_cross",e=e.slice(1);break;case"o":s="arrow_circle",e=e.slice(1)}let u="normal";return e.includes("=")&&(u="thick"),e.includes(".")&&(u="dotted"),{type:s,stroke:u}})(e),u.stroke!==s.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===u.type)u.type=s.type;else{if(u.type!==s.type)return{type:"INVALID",stroke:"INVALID"};u.type="double_"+u.type}return"double_arrow"===u.type&&(u.type="double_arrow_point"),u.length=s.length,u}return s},Z=(t,e)=>{let s=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(s=!0)})),s},J=(t,e)=>{const s=[];return t.nodes.forEach(((u,i)=>{Z(e,u)||s.push(t.nodes[i])})),{nodes:s}},tt={firstGraph:Q},et={defaultConfig:()=>i.I.flowchart,setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,addVertex:F,lookUpDomId:b,addLink:C,updateLinkInterpolate:_,updateLink:B,addClass:S,setDirection:m,setClass:x,setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(E["gen-1"===c?b(t):t]=g(e))}))},getTooltip:L,setClickEvent:I,setLink:v,bindFunctions:R,getDirection:N,getVertices:$,getEdges:O,getClasses:P,clear:U,setGen:V,defaultStyle:G,addSubGraph:M,getDepthFirstPos:z,indexNodes:H,getSubGraphs:W,destructLink:q,lex:tt,exists:Z,makeUniq:J,setDiagramTitle:i.q,getDiagramTitle:i.r},st=Object.freeze(Object.defineProperty({__proto__:null,addClass:S,addLink:C,addSingleLink:T,addSubGraph:M,addVertex:F,bindFunctions:R,clear:U,default:et,defaultStyle:G,destructLink:q,firstGraph:Q,getClasses:P,getDepthFirstPos:z,getDirection:N,getEdges:O,getSubGraphs:W,getTooltip:L,getVertices:$,indexNodes:H,lex:tt,lookUpDomId:b,setClass:x,setClickEvent:I,setDirection:m,setGen:V,setLink:v,updateLink:B,updateLinkInterpolate:_},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/assets/js/8b1802c5.408315a3.js b/assets/js/8b1802c5.408315a3.js new file mode 100644 index 0000000..24e81c0 --- /dev/null +++ b/assets/js/8b1802c5.408315a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8480],{60832:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/advent-of-code","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/8b1802c5.6f267f4c.js b/assets/js/8b1802c5.6f267f4c.js deleted file mode 100644 index 45b3d2b..0000000 --- a/assets/js/8b1802c5.6f267f4c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8480],{832:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/advent-of-code","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/8c0e532b.8df94607.js b/assets/js/8c0e532b.8df94607.js new file mode 100644 index 0000000..f5eb5ff --- /dev/null +++ b/assets/js/8c0e532b.8df94607.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[822],{73968:s=>{s.exports=JSON.parse('{"label":"vps","permalink":"/blog/tags/vps","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/8c0e532b.99e85b13.js b/assets/js/8c0e532b.99e85b13.js deleted file mode 100644 index 96ce22d..0000000 --- a/assets/js/8c0e532b.99e85b13.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[822],{3968:s=>{s.exports=JSON.parse('{"label":"vps","permalink":"/blog/tags/vps","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/8d31a880.21eb37fd.js b/assets/js/8d31a880.21eb37fd.js deleted file mode 100644 index c50d845..0000000 --- a/assets/js/8d31a880.21eb37fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9066],{2232:i=>{i.exports=JSON.parse('{"label":"python","permalink":"/algorithms/tags/python","allTagsPath":"/algorithms/tags","count":3,"items":[{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"},{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/8d31a880.d72d8191.js b/assets/js/8d31a880.d72d8191.js new file mode 100644 index 0000000..bf38860 --- /dev/null +++ b/assets/js/8d31a880.d72d8191.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9066],{72232:t=>{t.exports=JSON.parse('{"label":"python","permalink":"/algorithms/tags/python","allTagsPath":"/algorithms/tags","count":6,"items":[{"id":"hash-tables/2023-11-28-breaking/breaking","title":"Breaking Hash Table","description":"How to get the linear time complexity in a hash table.\\n","permalink":"/algorithms/hash-tables/breaking"},{"id":"hash-tables/2023-11-28-breaking/python","title":"Breaking Python","description":"Actually getting the worst-case time complexity in Python.\\n","permalink":"/algorithms/hash-tables/breaking/python"},{"id":"hash-tables/2023-11-28-breaking/mitigations","title":"Possible Mitigations","description":"Talking about the ways how to prevent the attacks on the hash table.\\n","permalink":"/algorithms/hash-tables/breaking/mitigations"},{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"},{"id":"algorithms-correctness/postcondition-ambiguity","title":"Vague postconditions and proving correctness of algorithms","description":"Debugging and testing with precise postconditions.\\n","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/8e6bb954.6a68f58c.js b/assets/js/8e6bb954.6a68f58c.js deleted file mode 100644 index 67c7cec..0000000 --- a/assets/js/8e6bb954.6a68f58c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5775],{6206:i=>{i.exports=JSON.parse('{"label":"exponential","permalink":"/algorithms/tags/exponential","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/bc2d22bc.ebe82db6.js b/assets/js/8e6bb954.967c2127.js similarity index 71% rename from assets/js/bc2d22bc.ebe82db6.js rename to assets/js/8e6bb954.967c2127.js index a240925..a85bff0 100644 --- a/assets/js/bc2d22bc.ebe82db6.js +++ b/assets/js/8e6bb954.967c2127.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6519],{428:i=>{i.exports=JSON.parse('{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5775],{76206:i=>{i.exports=JSON.parse('{"label":"exponential","permalink":"/algorithms/tags/exponential","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/9138.6232b886.js b/assets/js/9138.6232b886.js new file mode 100644 index 0000000..161f770 --- /dev/null +++ b/assets/js/9138.6232b886.js @@ -0,0 +1,2 @@ +/*! For license information please see 9138.6232b886.js.LICENSE.txt */ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9138],{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(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}},ii=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}},ai=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},oi=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,ri(t,o,n,i,s),ii(n,r,t,o,s),Jr(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:ai(o,n,s,a),degreeOfMembership:n}},si={kMeans: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},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:oi,fcm:oi},li=Mt({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),ui={single:"min",complete:"max"},ci=function(e){var t=li(e),n=ui[t.linkage];return null!=n&&(t.linkage=n),t},hi=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},di=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},pi=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},gi=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&di(t.left,i),t.right&&di(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&di(t.left,i),t.right&&di(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))},fi=function(e){for(var t=this.cy(),n=this.nodes(),r=ci(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=hi(o,u,s,l,r);v;)v=hi(o,u,s,l,r);return"dendrogram"===r.mode?(f=gi(o[0],r.dendrogramDepth,t),r.addDendrogram&&pi(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},vi={hierarchicalClustering:fi,hca:fi},yi=Mt({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),mi=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)),yi(e)},bi=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)},xi=function(e,t){return"median"===t?yn(e):"mean"===t?vn(e):"min"===t?gn(e):"max"===t?fn(e):t},wi=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},Ei=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},Ti=function(e,t,n){for(var r=Ei(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=Ei(e,t,n)},_i=function(e){for(var t,n,r,i,a,o,s=this.cy(),l=this.nodes(),u=mi(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]=bi(u.distance,l[p],l[g],u.attributes));i=xi(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=wi(t,a,o),V=Ti(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},Di={affinityPropagation:_i,ap:_i},Ci=Mt({root:void 0,directed:!1}),Ni={hierholzer:function(e){if(!E(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=Ci(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}},Ai=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}},Li=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}},Si={};[qt,Zt,Qt,en,nn,an,un,vr,mr,xr,Er,Rr,si,vi,Di,Ni,{hopcroftTarjanBiconnected:Ai,htbc:Ai,htb:Ai,hopcroftTarjanBiconnectedComponents:Ai},{tarjanStronglyConnected:Li,tsc:Li,tscc:Li,tarjanStronglyConnectedComponents:Li}].forEach((function(e){Q(Si,e)}));var Oi=0,Ii=1,ki=2,Mi=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=Oi,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))};Mi.prototype={fulfill:function(e){return Pi(this,Ii,"fulfillValue",e)},reject:function(e){return Pi(this,ki,"rejectReason",e)},then:function(e,t){var n=this,r=new Mi;return n.onFulfilled.push(Fi(e,r,"fulfill")),n.onRejected.push(Fi(t,r,"reject")),Ri(n),r.proxy}};var Pi=function(e,t,n,r){return e.state===Oi&&(e.state=t,e[n]=r,Ri(e)),e},Ri=function(e){e.state===Ii?Bi(e,"onFulfilled",e.fulfillValue):e.state===ki&&Bi(e,"onRejected",e.rejectReason)},Bi=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)}},Fi=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)}zi(t,i)}}},zi=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"))};Mi.all=function(e){return new Mi((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)}))},Mi.resolve=function(e){return new Mi((function(t,n){t(e)}))},Mi.reject=function(e){return new Mi((function(t,n){n(e)}))};var Gi="undefined"!=typeof Promise?Promise:Mi,Yi=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},Xi=Yi.prototype;Q(Xi,{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 Gi((function(e,n){t.push((function(){e()}))}))}}),Xi.complete=Xi.completed,Xi.run=Xi.play,Xi.running=Xi.playing;var Vi={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 Yi(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 Yi(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}}},Ui=Array.isArray,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hi=/^\w*$/;function qi(e,t){if(Ui(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ge(e))||Hi.test(e)||!ji.test(e)||null!=t&&e in Object(t)}var Wi=qi,$i="[object AsyncFunction]",Ki="[object Function]",Zi="[object GeneratorFunction]",Qi="[object Proxy]";function Ji(e){if(!le(e))return!1;var t=Pe(e);return t==Ki||t==Zi||t==$i||t==Qi}var ea,ta=Ji,na=pe["__core-js_shared__"],ra=(ea=/[^.]+$/.exec(na&&na.keys&&na.keys.IE_PROTO||""))?"Symbol(src)_1."+ea:"";function ia(e){return!!ra&&ra in e}var aa=ia,oa=Function.prototype.toString;function sa(e){if(null!=e){try{return oa.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var la=sa,ua=/[\\^$.*+?()[\]{}|]/g,ca=/^\[object .+?Constructor\]$/,ha=Function.prototype,da=Object.prototype,pa=ha.toString,ga=da.hasOwnProperty,fa=RegExp("^"+pa.call(ga).replace(ua,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function va(e){return!(!le(e)||aa(e))&&(ta(e)?fa:ca).test(la(e))}var ya=va;function ma(e,t){return null==e?void 0:e[t]}var ba=ma;function xa(e,t){var n=ba(e,t);return ya(n)?n:void 0}var wa=xa,Ea=wa(Object,"create");function Ta(){this.__data__=Ea?Ea(null):{},this.size=0}var _a=Ta;function Da(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ca=Da,Na="__lodash_hash_undefined__",Aa=Object.prototype.hasOwnProperty;function La(e){var t=this.__data__;if(Ea){var n=t[e];return n===Na?void 0:n}return Aa.call(t,e)?t[e]:void 0}var Sa=La,Oa=Object.prototype.hasOwnProperty;function Ia(e){var t=this.__data__;return Ea?void 0!==t[e]:Oa.call(t,e)}var ka=Ia,Ma="__lodash_hash_undefined__";function Pa(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ea&&void 0===t?Ma:t,this}var Ra=Pa;function Ba(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])}}Ba.prototype.clear=_a,Ba.prototype.delete=Ca,Ba.prototype.get=Sa,Ba.prototype.has=ka,Ba.prototype.set=Ra;var Fa=Ba;function za(){this.__data__=[],this.size=0}var Ga=za;function Ya(e,t){return e===t||e!=e&&t!=t}var Xa=Ya;function Va(e,t){for(var n=e.length;n--;)if(Xa(e[n][0],t))return n;return-1}var Ua=Va,ja=Array.prototype.splice;function Ha(e){var t=this.__data__,n=Ua(t,e);return!(n<0||(n==t.length-1?t.pop():ja.call(t,n,1),--this.size,0))}var qa=Ha;function Wa(e){var t=this.__data__,n=Ua(t,e);return n<0?void 0:t[n][1]}var $a=Wa;function Ka(e){return Ua(this.__data__,e)>-1}var Za=Ka;function Qa(e,t){var n=this.__data__,r=Ua(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Ja=Qa;function eo(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])}}eo.prototype.clear=Ga,eo.prototype.delete=qa,eo.prototype.get=$a,eo.prototype.has=Za,eo.prototype.set=Ja;var to=eo,no=wa(pe,"Map");function ro(){this.size=0,this.__data__={hash:new Fa,map:new(no||to),string:new Fa}}var io=ro;function ao(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var oo=ao;function so(e,t){var n=e.__data__;return oo(t)?n["string"==typeof t?"string":"hash"]:n.map}var lo=so;function uo(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var co=uo;function ho(e){return lo(this,e).get(e)}var po=ho;function go(e){return lo(this,e).has(e)}var fo=go;function vo(e,t){var n=lo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var yo=vo;function mo(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])}}mo.prototype.clear=io,mo.prototype.delete=co,mo.prototype.get=po,mo.prototype.has=fo,mo.prototype.set=yo;var bo=mo,xo="Expected a function";function wo(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(xo);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(wo.Cache||bo),n}wo.Cache=bo;var Eo=wo,To=500;function _o(e){var t=Eo(e,(function(e){return n.size===To&&n.clear(),e})),n=t.cache;return t}var Do=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Co=/\\(\\)?/g,No=_o((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Do,(function(e,n,r,i){t.push(r?i.replace(Co,"$1"):n||e)})),t}));function Ao(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 Lo=Ao,So=1/0,Oo=we?we.prototype:void 0,Io=Oo?Oo.toString:void 0;function ko(e){if("string"==typeof e)return e;if(Ui(e))return Lo(e,ko)+"";if(Ge(e))return Io?Io.call(e):"";var t=e+"";return"0"==t&&1/e==-So?"-0":t}var Mo=ko;function Po(e){return null==e?"":Mo(e)}var Ro=Po;function Bo(e,t){return Ui(e)?e:Wi(e,t)?[e]:No(Ro(e))}var Fo=Bo,zo=1/0;function Go(e){if("string"==typeof e||Ge(e))return e;var t=e+"";return"0"==t&&1/e==-zo?"-0":t}var Yo=Go;function Xo(e,t){for(var n=0,r=(t=Fo(t,e)).length;null!=e&&n<r;)e=e[Yo(t[n++])];return n&&n==r?e:void 0}var Vo=Xo;function Uo(e,t,n){var r=null==e?void 0:Vo(e,t);return void 0===r?n:r}var jo=Uo,Ho=function(){try{var e=wa(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();function qo(e,t,n){"__proto__"==t&&Ho?Ho(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Wo=qo,$o=Object.prototype.hasOwnProperty;function Ko(e,t,n){var r=e[t];$o.call(e,t)&&Xa(r,n)&&(void 0!==n||t in e)||Wo(e,t,n)}var Zo=Ko,Qo=9007199254740991,Jo=/^(?:0|[1-9]\d*)$/;function es(e,t){var n=typeof e;return!!(t=null==t?Qo:t)&&("number"==n||"symbol"!=n&&Jo.test(e))&&e>-1&&e%1==0&&e<t}var ts=es;function ns(e,t,n,r){if(!le(e))return e;for(var i=-1,a=(t=Fo(t,e)).length,o=a-1,s=e;null!=s&&++i<a;){var l=Yo(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:ts(t[i+1])?[]:{})}Zo(s,l,u),s=s[l]}return e}var rs=ns;function is(e,t,n){return null==e?e:rs(e,t,n)}var as=is;function os(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var ss=os;function ls(e){return Ui(e)?Lo(e,Yo):Ge(e)?[e]:ss(No(Ro(e)))}var us=ls,cs={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 Gi((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)}))}}},hs={};[Vi,{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(".")&&us(t);if(r.allowGetting&&void 0===n)return l&&(r.beforeGet(l),u=c&&void 0===l._private[r.field][t]?jo(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]?as(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}}},cs].forEach((function(e){Q(hs,e)}));var ds={animate:hs.animate(),animation:hs.animation(),animated:hs.animated(),clearQueue:hs.clearQueue(),delay:hs.delay(),delayAnimation:hs.delayAnimation(),stop:hs.stop()},ps={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}};ps.className=ps.classNames=ps.classes;var gs={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+"};gs.variable="(?:[\\w-.]|(?:\\\\"+gs.metaChar+"))+",gs.className="(?:[\\w-]|(?:\\\\"+gs.metaChar+"))+",gs.value=gs.string+"|"+gs.number,gs.id=gs.variable,function(){var e,t,n;for(e=gs.comparatorOp.split("|"),n=0;n<e.length;n++)t=e[n],gs.comparatorOp+="|@"+t;for(e=gs.comparatorOp.split("|"),n=0;n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="!==t&&(gs.comparatorOp+="|\\!"+t)}();var fs=function(){return{checks:[]}},vs={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},ys=[{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)})),ms=function(){for(var e,t={},n=0;n<ys.length;n++)t[(e=ys[n]).selector]=e.matches;return t}(),bs=function(e,t){return ms[e](t)},xs="("+ys.map((function(e){return e.selector})).join("|")+")",ws=function(e){return e.replace(new RegExp("\\\\("+gs.metaChar+")","g"),(function(e,t){return t}))},Es=function(e,t,n){e[e.length-1]=n},Ts=[{name:"group",query:!0,regex:"("+gs.group+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:xs,populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+gs.id+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.ID,value:ws(r)})}},{name:"className",query:!0,regex:"\\.("+gs.className+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.CLASS,value:ws(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+gs.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.DATA_EXIST,field:ws(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+gs.variable+")\\s*("+gs.comparatorOp+")\\s*("+gs.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("^"+gs.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),t.checks.push({type:vs.DATA_COMPARE,field:ws(i),operator:a,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+gs.boolOp+")\\s*("+gs.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,2),i=r[0],a=r[1];t.checks.push({type:vs.DATA_BOOL,field:ws(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+gs.meta+")\\s*("+gs.comparatorOp+")\\s*("+gs.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:vs.META_COMPARE,field:ws(i),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:gs.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++]=fs()}},{name:"directedEdge",separator:!0,regex:gs.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=t,i=fs();return n.checks.push({type:vs.DIRECTED_EDGE,source:r,target:i}),Es(e,t,n),e.edgeCount++,i}var a=fs(),o=t,s=fs();return a.checks.push({type:vs.NODE_SOURCE,source:o,target:s}),Es(e,t,a),e.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:gs.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=t,i=fs();return n.checks.push({type:vs.UNDIRECTED_EDGE,nodes:[r,i]}),Es(e,t,n),e.edgeCount++,i}var a=fs(),o=t,s=fs();return a.checks.push({type:vs.NODE_NEIGHBOR,node:o,neighbor:s}),Es(e,t,a),s}},{name:"child",separator:!0,regex:gs.child,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=fs(),i=e[e.length-1];return n.checks.push({type:vs.CHILD,parent:i,child:r}),Es(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=fs(),o=e[e.length-1],s=fs(),l=fs(),u=fs(),c=fs();return a.checks.push({type:vs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:vs.TRUE}],c.checks.push({type:vs.TRUE}),s.checks.push({type:vs.PARENT,parent:c,child:u}),Es(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=fs(),d=fs(),p=[{type:vs.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:gs.descendant,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=fs(),i=e[e.length-1];return n.checks.push({type:vs.DESCENDANT,ancestor:i,descendant:r}),Es(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=fs(),o=e[e.length-1],s=fs(),l=fs(),u=fs(),c=fs();return a.checks.push({type:vs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:vs.TRUE}],c.checks.push({type:vs.TRUE}),s.checks.push({type:vs.ANCESTOR,ancestor:c,descendant:u}),Es(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=fs(),d=fs(),p=[{type:vs.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:gs.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===vs.DIRECTED_EDGE?n.type=vs.NODE_TARGET:r===vs.UNDIRECTED_EDGE&&(n.type=vs.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Ts.forEach((function(e){return e.regexObj=new RegExp("^"+e.regex)}));var _s=function(e){for(var t,n,r,i=0;i<Ts.length;i++){var a=Ts[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}},Ds=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},Cs={parse:function(e){var t=this,n=t.inputText=e,r=t[0]=fs();for(t.length=1,n=Ds(n);;){var i=_s(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},toString: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 vs.GROUP:var l=e(s);return l.substring(0,l.length-1);case vs.DATA_COMPARE:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case vs.DATA_BOOL:var h=r.operator,d=r.field;return"["+e(h)+d+"]";case vs.DATA_EXIST:return"["+r.field+"]";case vs.META_COMPARE:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case vs.STATE:return s;case vs.ID:return"#"+s;case vs.CLASS:return"."+s;case vs.PARENT:case vs.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case vs.ANCESTOR:case vs.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case vs.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 vs.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}},Ns=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},As=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},Ls=function(e){return void 0!==e},Ss=function(e,t){return e.data(t)},Os=function(e,t){return e[t]()},Is=[],ks=function(e,t){return e.checks.every((function(e){return Is[e.type](e,t)}))};Is[vs.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},Is[vs.STATE]=function(e,t){var n=e.value;return bs(n,t)},Is[vs.ID]=function(e,t){var n=e.value;return t.id()===n},Is[vs.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},Is[vs.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Ns(Os(t,n),r,i)},Is[vs.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Ns(Ss(t,n),r,i)},Is[vs.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return As(Ss(t,n),r)},Is[vs.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,Ls(Ss(t,n))},Is[vs.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return ks(n,i)&&ks(r,a)||ks(r,i)&&ks(n,a)},Is[vs.NODE_NEIGHBOR]=function(e,t){return ks(e.node,t)&&t.neighborhood().some((function(t){return t.isNode()&&ks(e.neighbor,t)}))},Is[vs.DIRECTED_EDGE]=function(e,t){return ks(e.source,t.source())&&ks(e.target,t.target())},Is[vs.NODE_SOURCE]=function(e,t){return ks(e.source,t)&&t.outgoers().some((function(t){return t.isNode()&&ks(e.target,t)}))},Is[vs.NODE_TARGET]=function(e,t){return ks(e.target,t)&&t.incomers().some((function(t){return t.isNode()&&ks(e.source,t)}))},Is[vs.CHILD]=function(e,t){return ks(e.child,t)&&ks(e.parent,t.parent())},Is[vs.PARENT]=function(e,t){return ks(e.parent,t)&&t.children().some((function(t){return ks(e.child,t)}))},Is[vs.DESCENDANT]=function(e,t){return ks(e.descendant,t)&&t.ancestors().some((function(t){return ks(e.ancestor,t)}))},Is[vs.ANCESTOR]=function(e,t){return ks(e.ancestor,t)&&t.descendants().some((function(t){return ks(e.descendant,t)}))},Is[vs.COMPOUND_SPLIT]=function(e,t){return ks(e.subject,t)&&ks(e.left,t)&&ks(e.right,t)},Is[vs.TRUE]=function(){return!0},Is[vs.COLLECTION]=function(e,t){return e.value.has(t)},Is[vs.FILTER]=function(e,t){return(0,e.value)(t)};var Ms={matches:function(e){for(var t=this,n=0;n<t.length;n++){var r=t[n];if(ks(r,e))return!0}return!1},filter:function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===vs.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(ks(r,e))return!0}return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)}},Ps=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:vs.COLLECTION,value:e.collection()}]}):x(e)?this.addQuery({checks:[{type:vs.FILTER,value:e}]}):b(e)?this.parse(e)||(this.invalid=!0):Dt("A selector must be created from a string; found "))},Rs=Ps.prototype;[Cs,Ms].forEach((function(e){return Q(Rs,e)})),Rs.text=function(){return this.inputText},Rs.size=function(){return this.length},Rs.eq=function(e){return this[e]},Rs.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},Rs.addQuery=function(e){this[this.length++]=e},Rs.selector=Rs.toString;var Bs={allAre:function(e){var t=new Ps(e);return this.every((function(e){return t.matches(e)}))},is:function(e){var t=new Ps(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())}))}};Bs.allAreNeighbours=Bs.allAreNeighbors,Bs.has=Bs.contains,Bs.equal=Bs.equals=Bs.same;var Fs,zs,Gs=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)}},Ys={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:Gs((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 Xs(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 Vs(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 Us(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function js(e,t,n){Us(e,t,n),Vs(e,t,n)}Ys.forEachDown=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Vs)},Ys.forEachUp=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Us)},Ys.forEachUpAndDown=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],js)},Ys.ancestors=Ys.parents,(Fs=zs={data:hs.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:hs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:hs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:hs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:hs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Fs.data,Fs.removeAttr=Fs.removeData;var Hs,qs,Ws=zs,$s={};function Ks(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 Zs(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($s,{degree:Ks((function(e,t){return t.source().same(t.target())?2:1})),indegree:Ks((function(e,t){return t.target().same(e)?1:0})),outdegree:Ks((function(e,t){return t.source().same(e)?1:0}))}),Q($s,{minDegree:Zs("degree",(function(e,t){return e<t})),maxDegree:Zs("degree",(function(e,t){return e>t})),minIndegree:Zs("indegree",(function(e,t){return e<t})),maxIndegree:Zs("indegree",(function(e,t){return e>t})),minOutdegree:Zs("outdegree",(function(e,t){return e<t})),maxOutdegree:Zs("outdegree",(function(e,t){return e>t}))}),Q($s,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var Qs=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()}}},Js={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){Qs(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};(Hs=qs={position:hs.data(Js),silentPosition:hs.data(Q({},Js,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){Qs(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}}).modelPosition=Hs.point=Hs.position,Hs.modelPositions=Hs.points=Hs.positions,Hs.renderedPoint=Hs.renderedPosition,Hs.relativePoint=Hs.relativePosition;var el,tl,nl=qs;el=tl={},tl.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}},tl.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},tl.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 rl=function(e){return e===1/0||e===-1/0?0:e},il=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)},al=function(e,t){return null==t?e:il(e,t.x1,t.y1,t.x2,t.y2)},ol=function(e,t,n){return Ft(e,t,n)},sl=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),il(e,u.x1,u.y1,u.x2,u.y2)}}},ll=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=ol(a,"labelWidth",n),p=ol(a,"labelHeight",n),g=ol(a,"labelX",n),f=ol(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?ol(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,il(e,o,l,s,u),il(i.labelBounds.all,o,l,s,u)}return e}},ul=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;il(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),il(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}il(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,il(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}il(h,n-=E,i-=E,r+=E,a+=E)}if(u&&t.includeEdges&&g&&(sl(h,e,"mid-source"),sl(h,e,"mid-target"),sl(h,e,"source"),sl(h,e,"target")),u&&"yes"===e.pstyle("ghost").value){var B=e.pstyle("ghost-offset-x").pfValue,F=e.pstyle("ghost-offset-y").pfValue;il(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,il(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&&ll(h,e,null),g&&(t.includeSourceLabels&&ll(h,e,"source"),t.includeTargetLabels&&ll(h,e,"target")))}return h.x1=rl(h.x1),h.y1=rl(h.y1),h.x2=rl(h.x2),h.y2=rl(h.y2),h.w=rl(h.x2-h.x1),h.h=rl(h.y2-h.y1),h.w>0&&h.h>0&&m&&(Pn(h,v),Mn(h,1)),h},cl=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)},hl=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},dl=function(e,t){var n,r=e._private,i=e.isEdge(),a=(null==t?gl:cl(t))===gl,o=hl(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=ul(e,pl),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,!a){var c=e.isNode();n=Ln(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?al(n,r.overlayBounds):al(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?al(n,r.labelBounds.all):(t.includeMainLabels&&al(n,r.labelBounds.mainRot),t.includeSourceLabels&&al(n,r.labelBounds.sourceRot),t.includeTargetLabels&&al(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},pl={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},gl=cl(pl),fl=Mt(pl);tl.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=fl(e=e||pl),r=this;if(r.cy().styleEnabled())for(var i=0;i<r.length;i++){var a=r[i],o=a._private,s=hl(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];al(t,dl(h,n))}}else e=void 0===e?pl:fl(e),t=dl(this[0],e);return t.x1=rl(t.x1),t.y1=rl(t.y1),t.x2=rl(t.x2),t.y2=rl(t.y2),t.w=rl(t.x2-t.x1),t.h=rl(t.y2-t.y1),t},tl.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},tl.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},el.boundingbox=el.bb=el.boundingBox,el.renderedBoundingbox=el.renderedBoundingBox;var vl,yl,ml=tl;vl=yl={};var bl=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),vl[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}},vl["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},vl["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},vl["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};bl({name:"width"}),bl({name:"height"}),yl.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},yl.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},yl.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var xl=yl,wl=function(e,t){if(e.isEdge())return t(e)},El=function(e,t){if(e.isEdge()){var n=e.cy();return hn(t(e),n.zoom(),n.pan())}},Tl=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)}))}},_l={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)}}},Dl=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},Cl=Object.keys(_l).reduce((function(e,t){var n=_l[t],r=Dl(t);return e[t]=function(){return wl(this,n.get)},n.mult?e[r]=function(){return Tl(this,n.get)}:e[r]=function(){return El(this,n.get)},e}),{}),Nl=Q({},nl,ml,xl,Cl),Al=function(e,t){this.recycle(e,t)};function Ll(){return!1}function Sl(){return!0}Al.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Ll,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?Sl:Ll):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=Sl;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Sl;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Sl,this.stopPropagation()},isDefaultPrevented:Ll,isPropagationStopped:Ll,isImmediatePropagationStopped:Ll};var Ol=/^([^.]+)(\.(?:[^.]+))?$/,Il=".*",kl={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},Ml=Object.keys(kl),Pl={};function Rl(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pl,t=arguments.length>1?arguments[1]:void 0,n=0;n<Ml.length;n++){var r=Ml[n];this[r]=e[r]||kl[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var Bl=Rl.prototype,Fl=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(Ol);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},zl=function(e,t){return e.addEventFields(e.context,t),new Al(t.type,t)},Gl=function(e,t,n){if(I(n))t(e,n);else if(E(n))t(e,zl(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(Ol);if(o){var s=o[1],l=o[2]?o[2]:null;t(e,zl(e,{type:s,namespace:l,target:e.context}))}}}};Bl.on=Bl.addListener=function(e,t,n,r,i){return Fl(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},Bl.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},Bl.removeListener=Bl.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];Fl(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},Bl.removeAllListeners=function(){return this.removeListener("*")},Bl.emit=Bl.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,w(t)||(t=[t]),Gl(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===Il)&&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 Yl={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()}},Xl=function(e){return b(e)?new Ps(e):e},Vl={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new Rl(Yl,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=Xl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=Xl(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=Xl(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=Xl(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}};hs.eventAliasesOn(Vl);var Ul={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 Ps(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}}},jl=Ul;jl.u=jl["|"]=jl["+"]=jl.union=jl.or=jl.add,jl["\\"]=jl["!"]=jl["-"]=jl.difference=jl.relativeComplement=jl.subtract=jl.not,jl.n=jl["&"]=jl["."]=jl.and=jl.intersection=jl.intersect,jl["^"]=jl["(+)"]=jl["(-)"]=jl.symmetricDifference=jl.symdiff=jl.xor,jl.fnFilter=jl.filterFn=jl.stdFilter=jl.filter,jl.complement=jl.abscomp=jl.absoluteComplement;var Hl,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}},Wl=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()},$l={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(Wl)},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)}}};$l.each=$l.forEach,Hl="undefined",("undefined"==typeof Symbol?"undefined":e(Symbol))!=Hl&&e(Symbol.iterator)!=Hl&&($l[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}))});var Kl=Mt({nodeDimensionsIncludeLabels:!1}),Zl={layoutDimensions:function(e){var t;if(e=Kl(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}),Gi.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 Ql(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 Jl(e,t){return e=gt(e),function(n){return Ql(e,t,n)}}function eu(e,t){e=gt(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return Ql(e,n,t)}}Zl.createLayout=Zl.makeLayout=Zl.layout;var tu={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 nu(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 ru(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||nu(i,r);var s=o.source,l=o.target;return n(s)&&(!a||nu(s,n))&&(s===l||n(l)&&(!a||nu(l,n)))}}}var iu=Jl("eleTakesUpSpace",(function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())}));tu.takesUpSpace=eu("takesUpSpace",ru({ok:iu}));var au=Jl("eleInteractive",(function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&iu(e)})),ou=Jl("parentInteractive",(function(e){return"visible"===e.pstyle("visibility").value&&iu(e)}));tu.interactive=eu("interactive",ru({ok:au,parentOk:ou,edgeOkViaNode:iu})),tu.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var su=Jl("eleVisible",(function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&iu(e)})),lu=iu;tu.visible=eu("visible",ru({ok:su,edgeOkViaNode:lu})),tu.hidden=function(){var e=this[0];if(e)return!e.visible()},tu.isBundledBezier=eu("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),tu.bypass=tu.css=tu.style,tu.renderedCss=tu.renderedStyle,tu.removeBypass=tu.removeCss=tu.removeStyle,tu.pstyle=tu.parsedStyle;var uu={};function cu(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 hu(e){uu[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]}},uu[e.on]=cu({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),uu[e.off]=cu({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}hu({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),hu({field:"grabbable",overrideField:function(e){return!e.cy().autoungrabify()&&!e.pannable()&&void 0},on:"grabify",off:"ungrabify"}),hu({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),hu({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),uu.deselect=uu.unselect,uu.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},hu({field:"active",on:"activate",off:"unactivate"}),hu({field:"pannable",on:"panify",off:"unpanify"}),uu.inactive=function(){var e=this[0];if(e)return!e._private.active};var du={},pu=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)}},gu=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)}},fu=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 vu(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 yu(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 mu(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)}}du.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Q(du,{roots:pu({noIncomingEdges:!0}),leaves:pu({noOutgoingEdges:!0}),outgoers:Gs(gu({outgoing:!0}),"outgoers"),successors:fu({outgoing:!0}),incomers:Gs(gu({incoming:!0}),"incomers"),predecessors:fu({incoming:!0})}),Q(du,{neighborhood:Gs((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)}}),du.neighbourhood=du.neighborhood,du.closedNeighbourhood=du.closedNeighborhood,du.openNeighbourhood=du.openNeighborhood,Q(du,{source:Gs((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Gs((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:vu({attr:"source"}),targets:vu({attr:"target"})}),Q(du,{edgesWith:Gs(yu(),"edgesWith"),edgesTo:Gs(yu({thisIsSrc:!0}),"edgesTo")}),Q(du,{connectedEdges:Gs((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:Gs((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:Gs(mu(),"parallelEdges"),codirectedEdges:Gs(mu({codirected:!0}),"codirectedEdges")}),Q(du,{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]}}),du.componentsOf=du.components;var bu=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")},xu=jt.prototype=bu.prototype=Object.create(Array.prototype);xu.instanceString=function(){return"collection"},xu.spawn=function(e,t){return new bu(this.cy(),e,t)},xu.spawnSelf=function(){return this.spawn(this)},xu.cy=function(){return this._private.cy},xu.renderer=function(){return this._private.cy.renderer()},xu.element=function(){return this[0]},xu.collection=function(){return L(this)?this:new bu(this._private.cy,[this])},xu.unique=function(){return new bu(this._private.cy,this,!0)},xu.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},xu.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new bu(t)},xu.$id=xu.getElementById,xu.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},xu.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},xu.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},xu.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}}},xu.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},xu.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 bu(e,t)},xu.copy=xu.clone,xu.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 bu(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},xu.removed=function(){var e=this[0];return e&&e._private.removed},xu.inside=function(){var e=this[0];return e&&!e._private.removed},xu.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 bu(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},xu.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},[Si,ds,ps,Bs,Ys,Ws,$s,Nl,Vl,Ul,ql,$l,Zl,tu,uu,du].forEach((function(e){Q(xu,e)}));var wu={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 bu(n,i)}}else if(w(e))t=new bu(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 bu(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 Eu(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 Tu=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}}(),_u=function(e,t,n,r){var i=Eu(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},Du={linear:function(e,t,n){return e+(t-e)*n},ease:_u(.25,.1,.25,1),"ease-in":_u(.42,0,1,1),"ease-out":_u(0,0,.58,1),"ease-in-out":_u(.42,0,.58,1),"ease-in-sine":_u(.47,0,.745,.715),"ease-out-sine":_u(.39,.575,.565,1),"ease-in-out-sine":_u(.445,.05,.55,.95),"ease-in-quad":_u(.55,.085,.68,.53),"ease-out-quad":_u(.25,.46,.45,.94),"ease-in-out-quad":_u(.455,.03,.515,.955),"ease-in-cubic":_u(.55,.055,.675,.19),"ease-out-cubic":_u(.215,.61,.355,1),"ease-in-out-cubic":_u(.645,.045,.355,1),"ease-in-quart":_u(.895,.03,.685,.22),"ease-out-quart":_u(.165,.84,.44,1),"ease-in-out-quart":_u(.77,0,.175,1),"ease-in-quint":_u(.755,.05,.855,.06),"ease-out-quint":_u(.23,1,.32,1),"ease-in-out-quint":_u(.86,0,.07,1),"ease-in-expo":_u(.95,.05,.795,.035),"ease-out-expo":_u(.19,1,.22,1),"ease-in-out-expo":_u(1,0,0,1),"ease-in-circ":_u(.6,.04,.98,.335),"ease-out-circ":_u(.075,.82,.165,1),"ease-in-out-circ":_u(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return Du.linear;var r=Tu(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":_u};function Cu(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 Nu(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function Au(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=Nu(e,i),s=Nu(t,i);if(_(o)&&_(s))return Cu(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=Cu(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function Lu(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=Du.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=Du[h].apply(null,d)):o.easingImpl=Du[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={};Su(f.x,v.x)&&(y.x=Au(f.x,v.x,p,g)),Su(f.y,v.y)&&(y.y=Au(f.y,v.y,p,g)),e.position(y)}var m=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(Su(m.x,x.x)&&(w.x=Au(m.x,x.x,p,g)),Su(m.y,x.y)&&(w.y=Au(m.y,x.y,p,g)),e.emit("pan"));var T=o.startZoom,_=o.zoom,D=null!=_&&r;D&&(Su(T,_)&&(a.zoom=An(a.minZoom,Au(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=Au(O,S,p,g,u.properties[O.name]);u.overrideBypass(e,L,I)}e.emit("style")}}return o.progress=p,p}function Su(e,t){return!!(null!=e&&null!=t&&(_(e)&&_(t)||e&&t))}function Ou(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}function Iu(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||Ou(t,h,e),Lu(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 ku={animate:hs.animate(),animation:hs.animation(),animated:hs.animated(),clearQueue:hs.clearQueue(),delay:hs.delay(),delayAnimation:hs.delayAnimation(),stop:hs.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){Iu(n,e)}),t.beforeRenderPriorities.animations):n()}function n(){e._private.animationsRunning&&nt((function(t){Iu(t,e),n()}))}}},Mu={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}},Pu=function(e){return b(e)?new Ps(e):e},Ru={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Rl(Mu,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,Pu(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,Pu(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,Pu(t),n),this},once:function(e,t,n){return this.emitter().one(e,Pu(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}};hs.eventAliasesOn(Ru);var Bu={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)}};Bu.jpeg=Bu.jpg;var Fu={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")}};Fu.createLayout=Fu.makeLayout=Fu.layout;var zu={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)}}))}},Gu=Mt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),Yu={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=Gu(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)}};Yu.invalidateDimensions=Yu.resize;var Xu={collection:function(e,t){return b(e)?this.$(e):N(e)?e.collection():w(e)?(t||(t={}),new bu(this,e,t.unique,t.removed)):new bu(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}};Xu.elements=Xu.filter=Xu.$;var Vu={},Uu="t",ju="f";Vu.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},Vu.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]===Uu,h=t[l]===Uu,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]===Uu&&(m=null!=x.properties[v.name]))break}s[y]||m||(s[y]=!0,o.push(y))}}}return r[i]=o,o},Vu.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)?Uu:ju}return t=n.getPropertiesDiff(i,r),e._private.styleCxtKey=r,{key:r,diffPropNames:t,empty:0===t.length}},Vu.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]===Uu)for(var s=0;s<o.properties.length;s++){var l=o.properties[s];i[l.name]=l}}return r[t]=i,i},Vu.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}},Vu.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},Vu.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},Vu.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},Vu.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={}}},Vu.update=function(){this._private.cy.mutableElements().updateStyle()},Vu.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 Gi((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)},Vu.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Vu.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)}))},Vu.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()}))}))},Vu.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Hu={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)}}},qu={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)}},Wu={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}};Wu.getPropertiesHash=Wu.getNonDefaultPropertiesHash;var $u={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}},Ku={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 Ps(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}},Zu={};(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)$","^(.+)$"];Zu.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},nonNegativeNumber:{number:!0,min: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","endpoints"]},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=Zu.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,triggersZOrder:l.any},{name:"text-events",type:u.bool,triggersZOrder:l.any}],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.number,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=[];Zu.pieBackgroundN=16,L.push({name:"pie-size",type:u.sizeMaybePercent});for(var S=1;S<=Zu.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=Zu.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=Zu.properties=[].concat(f,x,v,y,m,N,g,p,c,h,d,E,T,_,L,D,C,O,A),P=Zu.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=Zu.propertyGroupNames={};(Zu.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=Zu.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"}];Zu.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}})(),Zu.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},Zu.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<=Zu.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 Zu.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},Zu.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 Qu={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}},Ju=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")},ec=Ju.prototype;ec.instanceString=function(){return"style"},ec.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},ec.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},ec.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},ec.selector=function(e){var t="core"===e?null:new Ps(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},ec.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},ec.style=ec.css,ec.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},ec.append=function(e){return O(e)?e.appendToStyle(this):w(e)?this.appendFromJson(e):b(e)&&this.appendFromString(e),this},Ju.fromJson=function(e,t){var n=new Ju(e);return n.fromJson(t),n},Ju.fromString=function(e,t){return new Ju(e).fromString(t)},[Vu,Hu,qu,Wu,$u,Ku,Zu,Qu].forEach((function(e){Q(ec,e)})),Ju.types=ec.types,Ju.properties=ec.properties,Ju.propertyGroups=ec.propertyGroups,Ju.propertyGroupNames=ec.propertyGroupNames,Ju.propertyGroupKeys=ec.propertyGroupKeys;var tc={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=Ju.fromJson(this,e):b(e)?t.style=Ju.fromString(this,e):t.style=Ju(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},nc="single",rc={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=nc),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}};rc.centre=rc.center,rc.autolockNodes=rc.autolock,rc.autoungrabifyNodes=rc.autoungrabify;var ic={data:hs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:hs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:hs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ic.attr=ic.data,ic.removeAttr=ic.removeData;var ac=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 bu(this),listeners:[],aniEles:new bu(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 Gi.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)}))},oc=ac.prototype;Q(oc,{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}}),oc.$id=oc.getElementById,[wu,ku,Ru,Bu,Fu,zu,Yu,Xu,tc,rc,ic].forEach((function(e){Q(oc,e)}));var sc={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}},lc={maximal:!1,acyclic:!1},uc=function(e){return e.scratch("breadthfirst")},cc=function(e,t){return e.scratch("breadthfirst",t)};function hc(e){this.options=Q({},sc,lc,e)}hc.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),cc(e,{index:n,depth:t})},E=function(e,t){var n=uc(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?cc(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=uc(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=uc(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=uc(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=uc(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=uc(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 dc={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 pc(e){this.options=Q({},dc,e)}pc.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 gc,fc={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 vc(e){this.options=Q({},fc,e)}vc.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 yc={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 mc(e){this.options=Q({},yc,e),this.options.layout=this;var t=this.options.eles.nodes(),n=this.options.eles.edges().filter((function(e){var n=e.source().data("id"),r=e.target().data("id"),i=t.some((function(e){return e.data("id")===n})),a=t.some((function(e){return e.data("id")===r}));return!i||!a}));this.options.eles=this.options.eles.not(n)}mc.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}),gc=!0===e.debug;var r=xc(t,n,e);gc&&bc(r),e.randomize&&Tc(r);var i=rt(),a=function(){Dc(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!(n.stopped||t>=e.numIter||(Cc(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=_c(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)):(Fc(r,e),s())}();else{for(;u;)u=o(l),l++;Fc(r,e),s()}return this},mc.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},mc.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var bc,xc=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=wc(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},wc=function(e,t,n){var r=Ec(e,t,0,n);return 2>r.count?0:r.graph},Ec=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}},Tc=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)}},_c=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}}},Dc=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=_c(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},Cc=function(e,t,n){Nc(e,t),Ic(e),kc(e,t),Mc(e),Pc(e)},Nc=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]]];Lc(o,l,e,t)}},Ac=function(e){return-e+2*e*Math.random()},Lc=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=Ac(o),a=Ac(o));var s=Sc(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=Oc(e,i,a),d=Oc(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)}},Sc=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},Oc=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},Ic=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=Oc(a,l,u),h=Oc(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)}}},kc=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}}}}},Mc=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}}},Pc=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=Rc(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,Bc(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)}},Rc=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},Bc=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}},Fc=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)}}},zc={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 Gc(e){this.options=Q({},zc,e)}Gc.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 Yc={ready:function(){},stop:function(){}};function Xc(e){this.options=Q({},Yc,e)}Xc.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},Xc.prototype.stop=function(){return this};var Vc={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor: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 Uc(e){this.options=Q({},Vc,e)}Uc.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 jc={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 Hc(e){this.options=Q({},jc,e)}Hc.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 qc=[{name:"breadthfirst",impl:hc},{name:"circle",impl:pc},{name:"concentric",impl:vc},{name:"cose",impl:mc},{name:"grid",impl:Gc},{name:"null",impl:Xc},{name:"preset",impl:Uc},{name:"random",impl:Hc}];function Wc(e){this.options=e,this.notifications=0}var $c=function(){},Kc=function(){throw new Error("A headless instance can not render images")};Wc.prototype={recalculateRenderedStyle:$c,notify:function(){this.notifications++},init:$c,isHeadless:function(){return!0},png:Kc,jpg:Kc};var Zc={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}})}},Qc={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}},Jc={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)}};Jc.getArrowWidth=Jc.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 eh={};function th(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}}eh.findMidptPtsEtc=function(e,t){var n,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,s=e.pstyle("source-endpoint"),l=e.pstyle("target-endpoint"),u=null!=s.units&&null!=l.units,c=function(e,t,n,r){var i=r-t,a=n-e,o=Math.sqrt(a*a+i*i);return{x:-i/o,y:a/o}};switch(e.pstyle("edge-distances").value){case"node-position":n=r;break;case"intersection":n=i;break;case"endpoints":if(u){var h=o(this.manualEndptToPx(e.source()[0],s),2),d=h[0],p=h[1],g=o(this.manualEndptToPx(e.target()[0],l),2),f=g[0],v=g[1],y={x1:d,y1:p,x2:f,y2:v};a=c(d,p,f,v),n=y}else Nt("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),n=i}return{midptPts:n,vectorNormInverse:a}},eh.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)}},eh.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=e.pstyle("segment-weights"),i=e.pstyle("segment-distances"),a=Math.min(r.pfValue.length,i.pfValue.length);n.edgeType="segments",n.segpts=[];for(var o=0;o<a;o++){var s=r.pfValue[o],l=i.pfValue[o],u=1-s,c=s,h=this.findMidptPtsEtc(e,t),d=h.midptPts,p=h.vectorNormInverse,g={x:d.x1*u+d.x2*c,y:d.y1*u+d.y2*c};n.segpts.push(g.x+p.x*l,g.y+p.y*l)}},eh.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)]},eh.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]},eh.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},eh.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=e.pstyle("control-point-step-size").pfValue,s=e.pstyle("control-point-distances"),l=e.pstyle("control-point-weights"),u=s&&l?Math.min(s.value.length,l.value.length):1,c=s?s.pfValue[0]:void 0,h=l.value[0],d=r;a.edgeType=d?"multibezier":"bezier",a.ctrlpts=[];for(var p=0;p<u;p++){var g=(.5-t.eles.length/2+n)*o*(i?-1:1),f=void 0,v=wn(g);d&&(c=s?s.pfValue[p]:o,h=l.value[p]);var y=void 0!==(f=r?c:void 0!==c?v*c:void 0)?f:g,m=1-h,b=h,x=this.findMidptPtsEtc(e,t),w=x.midptPts,E=x.vectorNormInverse,T={x:w.x1*m+w.x2*b,y:w.y1*m+w.y2*b};a.ctrlpts.push(T.x+E.x*y,T.y+E.y*y)}},eh.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]}},eh.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)}},eh.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]}},eh.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."))},eh.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)}},eh.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),th(t.segpts)},eh.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),th(t.ctrlpts)},eh.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var nh={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}}},rh={};function ih(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)})}}rh.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)ih(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},rh.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var ah={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)}}},oh=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},sh=function(e,t){var n=t.x-e.x,r=t.y-e.y;return oh(n,r)},lh=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 sh(o,s)};ah.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=oh(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=lh(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=sh(C,N)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,i)}};u("source"),u("target"),this.applyLabelDimensions(e)}},ah.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},ah.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)},ah.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},ah.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"}},ah.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}},ah.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},ah.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 uh={},ch=28,hh=!1;uh.getNodeShape=function(e){var t=this,n=e.pstyle("shape").value;if("cutrectangle"===n&&(e.width()<ch||e.height()<ch))return hh||(Nt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),hh=!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 dh={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}}}},ph={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(Wl),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}},gh={};[Qc,Jc,eh,nh,rh,ah,uh,dh,ph].forEach((function(e){Q(gh,e)}));var fh={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}},vh={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))}))}}},yh={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)}}},mh={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}))}}},bh=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};mh.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){bh(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 bh(e,!1,r);e.skipFrame=!1,nt(n)}};nt(n)}};var xh=function(e){this.init(e)},wh=xh.prototype;wh.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],wh.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()},wh.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())},wh.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){}},wh.isHeadless=function(){return!1},[Zc,gh,fh,vh,yh,mh].forEach((function(e){Q(wh,e)}));var Eh=1e3/60,Th={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<Eh){var f=Eh-(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*Eh)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))}}}},_h=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}(),Dh=25,Ch=50,Nh=-4,Ah=3,Lh=7.99,Sh=8,Oh=1024,Ih=1024,kh=1024,Mh=.2,Ph=.8,Rh=10,Bh=.15,Fh=.1,zh=.9,Gh=.9,Yh=100,Xh=1,Vh={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Uh=Mt({getKey:null,doesEleInvalidateKey:Et,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:wt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),jh=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=Uh(t);Q(n,r),n.lookup=new _h(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Hh=jh.prototype;Hh.reasons=Vh,Hh.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Hh.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{};return n[e]=n[e]||[]},Hh.getElementQueue=function(){var e=this;return e.eleCacheQueue=e.eleCacheQueue||new $t((function(e,t){return t.reqs-e.reqs}))},Hh.getElementKeyToQueue=function(){var e=this;return e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{}},Hh.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<Nh)r=Nh;else if(s>=Lh||r>Ah)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<=Dh?Dh:c<=Ch?Ch:Math.ceil(c/Ch)*Ch,c>kh||h>Ih)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===Vh.dequeue,w=i&&i===Vh.highQuality,E=i&&i===Vh.downscale,T=r+1;T<=Ah;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,Vh.downscale);C()}else{var A;if(!x&&!w&&!E)for(var L=r-1;L>=Nh;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+Sh),v.eleCaches.push(g),l.set(e,r,g),a.checkTextureFullness(v),g},Hh.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},Hh.invalidateElement=function(e){var t=this,n=t.lookup,r=[];if(n.isInvalid(e)){for(var i=Nh;i<=Ah;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)}},Hh.checkTextureUtility=function(e){e.invalidatedWidth>=Mh*e.width&&this.retireTexture(e)},Hh.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>Ph&&e.fullnessChecks>=Rh?Pt(t,e):e.fullnessChecks++},Hh.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)},Hh.addTexture=function(e,t){var n=this,r={};return n.getTextureQueue(e).push(r),r.eleCaches=[],r.height=e,r.width=Math.max(Oh,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},Hh.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}},Hh.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}},Hh.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=[],a=t.lookup,o=0;o<Xh&&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,Vh.dequeue)}}return i},Hh.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))},Hh.onDequeue=function(e){this.onDequeues.push(e)},Hh.offDequeue=function(e){Pt(this.onDequeues,e)},Hh.setupDequeueing=Th.setupDequeueing({deqRedrawThreshold:Yh,deqCost:Bh,deqAvgCost:Fh,deqNoDrawCost:zh,deqFastCost:Gh,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 qh=1,Wh=-4,$h=2,Kh=3.99,Zh=50,Qh=50,Jh=.15,ed=.1,td=.9,nd=.9,rd=1,id=250,ad=16e6,od=!0,sd=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=rt()-2*id,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=Qe((function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)}),Qh),n.beforeRender((function(e,n){n-t.lastInvalidationTime<=id?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()},ld=sd.prototype,ud=0,cd=Math.pow(2,53)-1;ld.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:ud=++ud%cd,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},ld.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)))<Wh)n=Wh;else if(i>=Kh||n>$h)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;Wh<=r&&r<=$h&&!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)>ad)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/qh,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)},ld.getEleLevelForLayerLevel=function(e,t){return e},ld.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,od),a.setImgSmoothing(o,!0))},ld.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},ld.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}}}},ld.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=Wh;u<=$h;u++){var c=l[u];c&&(a&&n.getEleLevelForLayerLevel(c.level)!==a.level||t(c,o,a))}},ld.haveLayers=function(){for(var e=this,t=!1,n=Wh;n<=$h;n++){var r=e.layersByLevel[n];if(r&&r.length>0){t=!0;break}}return t},ld.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)})))},ld.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)}}},ld.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])}))},ld.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},ld.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))}},ld.dequeue=function(e){for(var t=this,n=t.layersQueue,r=[],i=0;i<rd&&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},ld.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()}},ld.requestRedraw=Qe((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),ld.setupDequeueing=Th.setupDequeueing({deqRedrawThreshold:Zh,deqCost:Jh,deqAvgCost:ed,deqNoDrawCost:td,deqFastCost:nd,deq:function(e,t){return e.dequeue(t)},onDeqd:_t,shouldRedraw:wt,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var hd,dd={};function pd(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function gd(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 fd(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 vd(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 yd(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}dd.arrowShapeImpl=function(e){return(hd||(hd={polygon:pd,"triangle-backcurve":gd,"triangle-tee":fd,"circle-triangle":vd,"triangle-cross":fd,circle:yd}))[e]};var md={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)}}},bd=function(){return 0},xd=function(e,t){return e.getTextAngle(t,null)},wd=function(e,t){return e.getTextAngle(t,"source")},Ed=function(e,t){return e.getTextAngle(t,"target")},Td=function(e,t){return t.effectiveOpacity()},_d=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};md.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,bd,Td),g&&f||o.drawCachedElementPortion(e,t,u,n,i,p,xd,_d),g&&!f&&(o.drawCachedElementPortion(e,t,c,n,i,p,wd,_d),o.drawCachedElementPortion(e,t,h,n,i,p,Ed,_d)),o.drawElementOverlay(e,t)}},md.drawElements=function(e,t){for(var n=this,r=0;r<t.length;r++){var i=t[r];n.drawElement(e,i)}},md.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)}},md.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)}},md.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 Dd={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)}}},Cd=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")}}}};Dd.drawEdgeOverlay=Cd("overlay"),Dd.drawEdgeUnderlay=Cd("underlay"),Dd.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([])},Dd.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()}},Dd.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)},Dd.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)}}},Dd.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 Nd={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)}}},Ad={};function Ld(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()}Ad.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)},Ad.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)},Ad.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},Ad.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)},Ad.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},Ad.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")?Ld(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 Sd={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)}}},Od=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()}}}};Sd.drawNodeOverlay=Od("overlay"),Sd.drawNodeUnderlay=Od("underlay"),Sd.hasPie=function(e){return(e=e[0])._private.hasPie},Sd.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 Id={},kd=100;Id.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},Id.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},Id.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},Id.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},Id.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},Id.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)}},Id.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},Id.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},Id.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)}},Id.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}},Id.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Id.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()}),kd)),t||l.emit("render")};for(var Md={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()}},Pd=Math.sin(0),Rd=Math.cos(0),Bd={},Fd={},zd=Math.PI/40,Gd=0*Math.PI;Gd<2*Math.PI;Gd+=zd)Bd[Gd]=Math.sin(Gd),Fd[Gd]=Math.cos(Gd);Md.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+=zd)a=t-s*Bd[u]*Pd+s*Fd[u]*Rd,o=n+l*Fd[u]*Pd+l*Bd[u]*Rd,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var Yd={};function Xd(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 Vd(e){var t=e.indexOf(",");return e.substr(t+1)}function Ud(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new Gi((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 Xd(Vd(r()),n);case"base64":return Vd(r());default:return r()}}Yd.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},Yd.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},Yd.png=function(e){return Ud(e,this.bufferCanvasImage(e),"image/png")},Yd.jpg=function(e){return Ud(e,this.bufferCanvasImage(e),"image/jpeg")};var jd={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)}}},Hd=Wd,qd=Wd.prototype;function Wd(e){var t=this;t.data={canvases:new Array(qd.CANVAS_LAYERS),contexts:new Array(qd.CANVAS_LAYERS),canvasNeedsRedraw:new Array(qd.CANVAS_LAYERS),bufferCanvases:new Array(qd.BUFFER_COUNT),bufferContexts:new Array(qd.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<qd.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(qd.CANVAS_LAYERS-s),t.data.canvasContainer.appendChild(l),t.data.canvasNeedsRedraw[s]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[qd.NODE].setAttribute("data-id","layer"+qd.NODE+"-node"),t.data.canvases[qd.SELECT_BOX].setAttribute("data-id","layer"+qd.SELECT_BOX+"-selectbox"),t.data.canvases[qd.DRAG].setAttribute("data-id","layer"+qd.DRAG+"-drag"),s=0;s<qd.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 jh(t,{getKey:p,doesEleInvalidateKey:d,drawElement:y,getBoundingBox:w,getRotationPoint:C,getRotationOffset:I,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=t.data.lblTxrCache=new jh(t,{getKey:g,drawElement:m,getBoundingBox:E,getRotationPoint:L,getRotationOffset:P,isVisible:D}),z=t.data.slbTxrCache=new jh(t,{getKey:f,drawElement:b,getBoundingBox:T,getRotationPoint:S,getRotationOffset:k,isVisible:D}),G=t.data.tlbTxrCache=new jh(t,{getKey:v,drawElement:x,getBoundingBox:_,getRotationPoint:O,getRotationOffset:M,isVisible:D}),Y=t.data.lyrTxrCache=new sd(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)}qd.CANVAS_LAYERS=3,qd.SELECT_BOX=0,qd.DRAG=1,qd.NODE=2,qd.BUFFER_COUNT=3,qd.TEXTURE_BUFFER=0,qd.MOTIONBLUR_BUFFER_NODE=1,qd.MOTIONBLUR_BUFFER_DRAG=2,qd.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[qd.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[qd.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[qd.SELECT_BOX]=t}};var $d="undefined"!=typeof Path2D;qd.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},qd.usePaths=function(){return $d&&this.pathsEnabled},qd.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},qd.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},qd.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},[dd,md,Dd,Nd,Ad,Sd,Id,Md,Yd,jd].forEach((function(e){Q(qd,e)}));var Kd=[{type:"layout",extensions:qc},{type:"renderer",extensions:[{name:"null",impl:Wc},{name:"base",impl:xh},{name:"canvas",impl:Hd}]}],Zd={},Qd={};function Jd(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(ac.prototype[t])return i(t);ac.prototype[t]=n}else if("collection"===e){if(bu.prototype[t])return i(t);bu.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 Rl(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}}),hs.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=ep("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:Zd,keys:[e,t],value:r})}function ep(e,t){return oe({map:Zd,keys:[e,t]})}function tp(e,t,n,r,i){return ae({map:Qd,keys:[e,t,n,r],value:i})}function np(e,t,n,r){return oe({map:Qd,keys:[e,t,n,r]})}var rp=function(){return 2===arguments.length?ep.apply(null,arguments):3===arguments.length?Jd.apply(null,arguments):4===arguments.length?np.apply(null,arguments):5===arguments.length?tp.apply(null,arguments):void Dt("Invalid extension access syntax")};ac.prototype.extension=rp,Kd.forEach((function(e){e.extensions.forEach((function(t){Jd(e.type,t.name,t.impl)}))}));var ip=function e(){if(!(this instanceof e))return new e;this.length=0},ap=ip.prototype;ap.instanceString=function(){return"stylesheet"},ap.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},ap.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=Ju.properties[o]||Ju.properties[G(o)];if(null!=l){var u=l.name,c=s;this[n].properties.push({name:u,value:c})}}}return this},ap.style=ap.css,ap.generateStyle=function(e){var t=new Ju(e);return this.appendToStyle(t)},ap.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 op="3.27.0",sp=function(e){return void 0===e&&(e={}),E(e)?new ac(e):b(e)?rp.apply(rp,arguments):void 0};return sp.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(sp),e.apply(null,t),this},sp.warnings=function(e){return Ct(e)},sp.version=op,sp.stylesheet=sp.Stylesheet=ip,sp}()},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}}(),i=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=i,this.gap_penalty=a,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var o=0;o<this.iMax;o++){this.grid[o]=new Array(this.jMax);for(var s=0;s<this.jMax;s++)this.grid[o][s]=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 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=i},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()},69138:(e,t,n)=>{"use strict";n.d(t,{diagram:()=>A});var r=n(85322),i=n(64218),a=n(13076),o=n(71377),s=n(14607),l=n(91619),u=n(12281),c=n(7201),h=(n(27484),n(17967),n(27856),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=a.slice.call(arguments,1),h=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);h.setInput(e,d.yy),d.yy.lexer=h,d.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var g=h.yylloc;a.push(g);var f=h.options&&h.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,y,m,b,x,w,E,T,_,D={};;){if(y=n[n.length-1],this.defaultActions[y]?m=this.defaultActions[y]:(null==v&&(_=void 0,"number"!=typeof(_=r.pop()||h.lex()||1)&&(_ instanceof Array&&(_=(r=_).pop()),_=t.symbols_[_]||_),v=_),m=o[y]&&o[y][v]),void 0===m||!m.length||!m[0]){var C="";for(x in T=[],o[y])this.terminals_[x]&&x>2&&T.push("'"+this.terminals_[x]+"'");C=h.showPosition?"Parse error on line "+(l+1)+":\n"+h.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==v?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(C,{text:h.match,token:this.terminals_[v]||v,line:h.yylineno,loc:g,expected:T})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+v);switch(m[0]){case 1:n.push(v),i.push(h.yytext),a.push(h.yylloc),n.push(m[1]),v=null,u=h.yyleng,s=h.yytext,l=h.yylineno,g=h.yylloc;break;case 2:if(w=this.productions_[m[1]][1],D.$=i[i.length-w],D._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},f&&(D._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(D,[s,u,l,d.yy,m[1],i,a].concat(c))))return b;w&&(n=n.slice(0,-1*w*2),i=i.slice(0,-1*w),a=a.slice(0,-1*w)),n.push(this.productions_[m[1]][0]),i.push(D.$),a.push(D._$),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(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:return e.getLogger().trace("Found comment",t.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:case 26: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:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 24:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 27:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 30:case 33:case 34:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 31:case 32:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 35:case 36: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,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],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}());h.parser=h;const d=h,p=e=>(0,r.d)(e,(0,r.c)());let g=[],f=0,v={};const y={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},m=(e,t)=>{v[e]=t},b=e=>{switch(e){case y.DEFAULT:return"no-border";case y.RECT:return"rect";case y.ROUNDED_RECT:return"rounded-rect";case y.CIRCLE:return"circle";case y.CLOUD:return"cloud";case y.BANG:return"bang";case y.HEXAGON:return"hexgon";default:return"no-border"}};let x;const w=e=>v[e],E=Object.freeze(Object.defineProperty({__proto__:null,addNode:(e,t,n,i)=>{r.l.info("addNode",e,t,n,i);const a=(0,r.c)(),o={id:f++,nodeId:p(t),level:e,descr:p(n),type:i,children:[],width:(0,r.c)().mindmap.maxNodeWidth};switch(o.type){case y.ROUNDED_RECT:case y.RECT:case y.HEXAGON:o.padding=2*a.mindmap.padding;break;default:o.padding=a.mindmap.padding}const s=function(e){for(let t=g.length-1;t>=0;t--)if(g[t].level<e)return g[t];return null}(e);if(s)s.children.push(o),g.push(o);else{if(0!==g.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}g.push(o)}},clear:()=>{g=[],f=0,v={}},decorateNode:e=>{const t=g[g.length-1];e&&e.icon&&(t.icon=p(e.icon)),e&&e.class&&(t.class=p(e.class))},getElementById:w,getLogger:()=>r.l,getMindmap:()=>g.length>0?g[0]:null,getNodeById:e=>g[e],getType:(e,t)=>{switch(r.l.debug("In get type",e,t),e){case"[":return y.RECT;case"(":return")"===t?y.ROUNDED_RECT:y.CLOUD;case"((":return y.CIRCLE;case")":return y.CLOUD;case"))":return y.BANG;case"{{":return y.HEXAGON;default:return y.DEFAULT}},nodeType:y,get parseError(){return x},sanitizeText:p,setElementForId:m,setErrorHandler:e=>{x=e},type2Str:b},Symbol.toStringTag,{value:"Module"}));const T=function(e,t,n,r){const i=r.htmlLabels,o=n%11,s=e.append("g");t.section=o;let l="section-"+o;o<0&&(l+=" section-root"),s.attr("class",(t.class?t.class+" ":"")+"mindmap-node "+l);const u=s.append("g"),c=s.append("g"),h=t.descr.replace(/(<br\/*>)/g,"\n");(0,a.a)(c,h,{useHtmlLabels:i,width:t.width,classes:"mindmap-node-label"}),i||c.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const d=c.node().getBBox(),p=r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;if(t.height=d.height+1.1*p*.5+t.padding,t.width=d.width+2*t.padding,t.icon)if(t.type===y.CIRCLE){t.height+=50,t.width+=50;s.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-"+o+" "+t.icon),c.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);s.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-"+o+" "+t.icon),c.attr("transform","translate("+(25+t.width/2)+", "+(n/2+t.padding/2)+")")}else if(i){const e=(t.width-d.width)/2,n=(t.height-d.height)/2;c.attr("transform","translate("+e+", "+n+")")}else{const e=t.width/2,n=t.padding/2;c.attr("transform","translate("+e+", "+n+")")}switch(t.type){case y.DEFAULT:!function(e,t,n){e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(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)}(u,t,o);break;case y.ROUNDED_RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(t.type)).attr("height",t.height).attr("rx",t.padding).attr("ry",t.padding).attr("width",t.width)}(u,t);break;case y.RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(t.type)).attr("height",t.height).attr("width",t.width)}(u,t);break;case y.CIRCLE:u.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-"+b(t.type)).attr("r",t.width/2)}(u,t);break;case y.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-"+b(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`)}(u,t);break;case y.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-"+b(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`)}(u,t);break;case y.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)}(u,t)}return m(t.id,s),t.height},_=function(e){const t=w(e.id),n=e.x||0,r=e.y||0;t.attr("transform","translate("+n+","+r+")")};function D(e,t,n,r){T(e,t,n,r),t.children&&t.children.forEach(((t,i)=>{D(e,t,n<0?i:n,r)}))}function C(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=>{C(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 N(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(),C(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(s);const A={db:E,renderer:{draw:async(e,t,n,a)=>{const o=(0,r.c)();o.htmlLabels=!1,r.l.debug("Rendering mindmap diagram\n"+e,a.parser);const s=(0,r.c)().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"),D(d,c,-1,o);const p=await N(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,_(n);const i=w(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.o)(void 0,u,o.mindmap.padding,o.mindmap.useMaxWidth)}},parser:d,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,l.Z)(e["lineColor"+n])?e["lineColor"+n]=(0,u.Z)(e["lineColor"+n],20):e["lineColor"+n]=(0,c.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 .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`}}}]); \ No newline at end of file diff --git a/assets/js/9138.fc0b63fe.js.LICENSE.txt b/assets/js/9138.6232b886.js.LICENSE.txt similarity index 100% rename from assets/js/9138.fc0b63fe.js.LICENSE.txt rename to assets/js/9138.6232b886.js.LICENSE.txt diff --git a/assets/js/9138.fc0b63fe.js b/assets/js/9138.fc0b63fe.js deleted file mode 100644 index 13f2ad3..0000000 --- a/assets/js/9138.fc0b63fe.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 9138.fc0b63fe.js.LICENSE.txt */ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9138],{4182: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(2241))},4607: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(4182))},1377: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(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}},ii=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}},ai=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},oi=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,ri(t,o,n,i,s),ii(n,r,t,o,s),Jr(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:ai(o,n,s,a),degreeOfMembership:n}},si={kMeans: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},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:oi,fcm:oi},li=Mt({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),ui={single:"min",complete:"max"},ci=function(e){var t=li(e),n=ui[t.linkage];return null!=n&&(t.linkage=n),t},hi=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},di=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},pi=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},gi=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&di(t.left,i),t.right&&di(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&di(t.left,i),t.right&&di(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))},fi=function(e){for(var t=this.cy(),n=this.nodes(),r=ci(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=hi(o,u,s,l,r);v;)v=hi(o,u,s,l,r);return"dendrogram"===r.mode?(f=gi(o[0],r.dendrogramDepth,t),r.addDendrogram&&pi(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},vi={hierarchicalClustering:fi,hca:fi},yi=Mt({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),mi=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)),yi(e)},bi=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)},xi=function(e,t){return"median"===t?yn(e):"mean"===t?vn(e):"min"===t?gn(e):"max"===t?fn(e):t},wi=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},Ei=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},Ti=function(e,t,n){for(var r=Ei(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=Ei(e,t,n)},_i=function(e){for(var t,n,r,i,a,o,s=this.cy(),l=this.nodes(),u=mi(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]=bi(u.distance,l[p],l[g],u.attributes));i=xi(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=wi(t,a,o),V=Ti(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},Di={affinityPropagation:_i,ap:_i},Ci=Mt({root:void 0,directed:!1}),Ni={hierholzer:function(e){if(!E(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=Ci(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}},Ai=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}},Li=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}},Si={};[qt,Zt,Qt,en,nn,an,un,vr,mr,xr,Er,Rr,si,vi,Di,Ni,{hopcroftTarjanBiconnected:Ai,htbc:Ai,htb:Ai,hopcroftTarjanBiconnectedComponents:Ai},{tarjanStronglyConnected:Li,tsc:Li,tscc:Li,tarjanStronglyConnectedComponents:Li}].forEach((function(e){Q(Si,e)}));var Oi=0,Ii=1,ki=2,Mi=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=Oi,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))};Mi.prototype={fulfill:function(e){return Pi(this,Ii,"fulfillValue",e)},reject:function(e){return Pi(this,ki,"rejectReason",e)},then:function(e,t){var n=this,r=new Mi;return n.onFulfilled.push(Fi(e,r,"fulfill")),n.onRejected.push(Fi(t,r,"reject")),Ri(n),r.proxy}};var Pi=function(e,t,n,r){return e.state===Oi&&(e.state=t,e[n]=r,Ri(e)),e},Ri=function(e){e.state===Ii?Bi(e,"onFulfilled",e.fulfillValue):e.state===ki&&Bi(e,"onRejected",e.rejectReason)},Bi=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)}},Fi=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)}zi(t,i)}}},zi=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"))};Mi.all=function(e){return new Mi((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)}))},Mi.resolve=function(e){return new Mi((function(t,n){t(e)}))},Mi.reject=function(e){return new Mi((function(t,n){n(e)}))};var Gi="undefined"!=typeof Promise?Promise:Mi,Yi=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},Xi=Yi.prototype;Q(Xi,{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 Gi((function(e,n){t.push((function(){e()}))}))}}),Xi.complete=Xi.completed,Xi.run=Xi.play,Xi.running=Xi.playing;var Vi={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 Yi(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 Yi(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}}},Ui=Array.isArray,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hi=/^\w*$/;function qi(e,t){if(Ui(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ge(e))||Hi.test(e)||!ji.test(e)||null!=t&&e in Object(t)}var Wi=qi,$i="[object AsyncFunction]",Ki="[object Function]",Zi="[object GeneratorFunction]",Qi="[object Proxy]";function Ji(e){if(!le(e))return!1;var t=Pe(e);return t==Ki||t==Zi||t==$i||t==Qi}var ea,ta=Ji,na=pe["__core-js_shared__"],ra=(ea=/[^.]+$/.exec(na&&na.keys&&na.keys.IE_PROTO||""))?"Symbol(src)_1."+ea:"";function ia(e){return!!ra&&ra in e}var aa=ia,oa=Function.prototype.toString;function sa(e){if(null!=e){try{return oa.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var la=sa,ua=/[\\^$.*+?()[\]{}|]/g,ca=/^\[object .+?Constructor\]$/,ha=Function.prototype,da=Object.prototype,pa=ha.toString,ga=da.hasOwnProperty,fa=RegExp("^"+pa.call(ga).replace(ua,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function va(e){return!(!le(e)||aa(e))&&(ta(e)?fa:ca).test(la(e))}var ya=va;function ma(e,t){return null==e?void 0:e[t]}var ba=ma;function xa(e,t){var n=ba(e,t);return ya(n)?n:void 0}var wa=xa,Ea=wa(Object,"create");function Ta(){this.__data__=Ea?Ea(null):{},this.size=0}var _a=Ta;function Da(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ca=Da,Na="__lodash_hash_undefined__",Aa=Object.prototype.hasOwnProperty;function La(e){var t=this.__data__;if(Ea){var n=t[e];return n===Na?void 0:n}return Aa.call(t,e)?t[e]:void 0}var Sa=La,Oa=Object.prototype.hasOwnProperty;function Ia(e){var t=this.__data__;return Ea?void 0!==t[e]:Oa.call(t,e)}var ka=Ia,Ma="__lodash_hash_undefined__";function Pa(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ea&&void 0===t?Ma:t,this}var Ra=Pa;function Ba(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])}}Ba.prototype.clear=_a,Ba.prototype.delete=Ca,Ba.prototype.get=Sa,Ba.prototype.has=ka,Ba.prototype.set=Ra;var Fa=Ba;function za(){this.__data__=[],this.size=0}var Ga=za;function Ya(e,t){return e===t||e!=e&&t!=t}var Xa=Ya;function Va(e,t){for(var n=e.length;n--;)if(Xa(e[n][0],t))return n;return-1}var Ua=Va,ja=Array.prototype.splice;function Ha(e){var t=this.__data__,n=Ua(t,e);return!(n<0||(n==t.length-1?t.pop():ja.call(t,n,1),--this.size,0))}var qa=Ha;function Wa(e){var t=this.__data__,n=Ua(t,e);return n<0?void 0:t[n][1]}var $a=Wa;function Ka(e){return Ua(this.__data__,e)>-1}var Za=Ka;function Qa(e,t){var n=this.__data__,r=Ua(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Ja=Qa;function eo(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])}}eo.prototype.clear=Ga,eo.prototype.delete=qa,eo.prototype.get=$a,eo.prototype.has=Za,eo.prototype.set=Ja;var to=eo,no=wa(pe,"Map");function ro(){this.size=0,this.__data__={hash:new Fa,map:new(no||to),string:new Fa}}var io=ro;function ao(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var oo=ao;function so(e,t){var n=e.__data__;return oo(t)?n["string"==typeof t?"string":"hash"]:n.map}var lo=so;function uo(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var co=uo;function ho(e){return lo(this,e).get(e)}var po=ho;function go(e){return lo(this,e).has(e)}var fo=go;function vo(e,t){var n=lo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var yo=vo;function mo(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])}}mo.prototype.clear=io,mo.prototype.delete=co,mo.prototype.get=po,mo.prototype.has=fo,mo.prototype.set=yo;var bo=mo,xo="Expected a function";function wo(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(xo);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(wo.Cache||bo),n}wo.Cache=bo;var Eo=wo,To=500;function _o(e){var t=Eo(e,(function(e){return n.size===To&&n.clear(),e})),n=t.cache;return t}var Do=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Co=/\\(\\)?/g,No=_o((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Do,(function(e,n,r,i){t.push(r?i.replace(Co,"$1"):n||e)})),t}));function Ao(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 Lo=Ao,So=1/0,Oo=we?we.prototype:void 0,Io=Oo?Oo.toString:void 0;function ko(e){if("string"==typeof e)return e;if(Ui(e))return Lo(e,ko)+"";if(Ge(e))return Io?Io.call(e):"";var t=e+"";return"0"==t&&1/e==-So?"-0":t}var Mo=ko;function Po(e){return null==e?"":Mo(e)}var Ro=Po;function Bo(e,t){return Ui(e)?e:Wi(e,t)?[e]:No(Ro(e))}var Fo=Bo,zo=1/0;function Go(e){if("string"==typeof e||Ge(e))return e;var t=e+"";return"0"==t&&1/e==-zo?"-0":t}var Yo=Go;function Xo(e,t){for(var n=0,r=(t=Fo(t,e)).length;null!=e&&n<r;)e=e[Yo(t[n++])];return n&&n==r?e:void 0}var Vo=Xo;function Uo(e,t,n){var r=null==e?void 0:Vo(e,t);return void 0===r?n:r}var jo=Uo,Ho=function(){try{var e=wa(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();function qo(e,t,n){"__proto__"==t&&Ho?Ho(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Wo=qo,$o=Object.prototype.hasOwnProperty;function Ko(e,t,n){var r=e[t];$o.call(e,t)&&Xa(r,n)&&(void 0!==n||t in e)||Wo(e,t,n)}var Zo=Ko,Qo=9007199254740991,Jo=/^(?:0|[1-9]\d*)$/;function es(e,t){var n=typeof e;return!!(t=null==t?Qo:t)&&("number"==n||"symbol"!=n&&Jo.test(e))&&e>-1&&e%1==0&&e<t}var ts=es;function ns(e,t,n,r){if(!le(e))return e;for(var i=-1,a=(t=Fo(t,e)).length,o=a-1,s=e;null!=s&&++i<a;){var l=Yo(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:ts(t[i+1])?[]:{})}Zo(s,l,u),s=s[l]}return e}var rs=ns;function is(e,t,n){return null==e?e:rs(e,t,n)}var as=is;function os(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var ss=os;function ls(e){return Ui(e)?Lo(e,Yo):Ge(e)?[e]:ss(No(Ro(e)))}var us=ls,cs={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 Gi((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)}))}}},hs={};[Vi,{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(".")&&us(t);if(r.allowGetting&&void 0===n)return l&&(r.beforeGet(l),u=c&&void 0===l._private[r.field][t]?jo(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]?as(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}}},cs].forEach((function(e){Q(hs,e)}));var ds={animate:hs.animate(),animation:hs.animation(),animated:hs.animated(),clearQueue:hs.clearQueue(),delay:hs.delay(),delayAnimation:hs.delayAnimation(),stop:hs.stop()},ps={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}};ps.className=ps.classNames=ps.classes;var gs={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+"};gs.variable="(?:[\\w-.]|(?:\\\\"+gs.metaChar+"))+",gs.className="(?:[\\w-]|(?:\\\\"+gs.metaChar+"))+",gs.value=gs.string+"|"+gs.number,gs.id=gs.variable,function(){var e,t,n;for(e=gs.comparatorOp.split("|"),n=0;n<e.length;n++)t=e[n],gs.comparatorOp+="|@"+t;for(e=gs.comparatorOp.split("|"),n=0;n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="!==t&&(gs.comparatorOp+="|\\!"+t)}();var fs=function(){return{checks:[]}},vs={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},ys=[{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)})),ms=function(){for(var e,t={},n=0;n<ys.length;n++)t[(e=ys[n]).selector]=e.matches;return t}(),bs=function(e,t){return ms[e](t)},xs="("+ys.map((function(e){return e.selector})).join("|")+")",ws=function(e){return e.replace(new RegExp("\\\\("+gs.metaChar+")","g"),(function(e,t){return t}))},Es=function(e,t,n){e[e.length-1]=n},Ts=[{name:"group",query:!0,regex:"("+gs.group+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:xs,populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+gs.id+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.ID,value:ws(r)})}},{name:"className",query:!0,regex:"\\.("+gs.className+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.CLASS,value:ws(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+gs.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:vs.DATA_EXIST,field:ws(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+gs.variable+")\\s*("+gs.comparatorOp+")\\s*("+gs.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("^"+gs.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),t.checks.push({type:vs.DATA_COMPARE,field:ws(i),operator:a,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+gs.boolOp+")\\s*("+gs.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,2),i=r[0],a=r[1];t.checks.push({type:vs.DATA_BOOL,field:ws(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+gs.meta+")\\s*("+gs.comparatorOp+")\\s*("+gs.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:vs.META_COMPARE,field:ws(i),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:gs.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++]=fs()}},{name:"directedEdge",separator:!0,regex:gs.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=t,i=fs();return n.checks.push({type:vs.DIRECTED_EDGE,source:r,target:i}),Es(e,t,n),e.edgeCount++,i}var a=fs(),o=t,s=fs();return a.checks.push({type:vs.NODE_SOURCE,source:o,target:s}),Es(e,t,a),e.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:gs.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=t,i=fs();return n.checks.push({type:vs.UNDIRECTED_EDGE,nodes:[r,i]}),Es(e,t,n),e.edgeCount++,i}var a=fs(),o=t,s=fs();return a.checks.push({type:vs.NODE_NEIGHBOR,node:o,neighbor:s}),Es(e,t,a),s}},{name:"child",separator:!0,regex:gs.child,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=fs(),i=e[e.length-1];return n.checks.push({type:vs.CHILD,parent:i,child:r}),Es(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=fs(),o=e[e.length-1],s=fs(),l=fs(),u=fs(),c=fs();return a.checks.push({type:vs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:vs.TRUE}],c.checks.push({type:vs.TRUE}),s.checks.push({type:vs.PARENT,parent:c,child:u}),Es(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=fs(),d=fs(),p=[{type:vs.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:gs.descendant,populate:function(e,t){if(null==e.currentSubject){var n=fs(),r=fs(),i=e[e.length-1];return n.checks.push({type:vs.DESCENDANT,ancestor:i,descendant:r}),Es(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=fs(),o=e[e.length-1],s=fs(),l=fs(),u=fs(),c=fs();return a.checks.push({type:vs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:vs.TRUE}],c.checks.push({type:vs.TRUE}),s.checks.push({type:vs.ANCESTOR,ancestor:c,descendant:u}),Es(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=fs(),d=fs(),p=[{type:vs.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:gs.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===vs.DIRECTED_EDGE?n.type=vs.NODE_TARGET:r===vs.UNDIRECTED_EDGE&&(n.type=vs.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Ts.forEach((function(e){return e.regexObj=new RegExp("^"+e.regex)}));var _s=function(e){for(var t,n,r,i=0;i<Ts.length;i++){var a=Ts[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}},Ds=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},Cs={parse:function(e){var t=this,n=t.inputText=e,r=t[0]=fs();for(t.length=1,n=Ds(n);;){var i=_s(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},toString: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 vs.GROUP:var l=e(s);return l.substring(0,l.length-1);case vs.DATA_COMPARE:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case vs.DATA_BOOL:var h=r.operator,d=r.field;return"["+e(h)+d+"]";case vs.DATA_EXIST:return"["+r.field+"]";case vs.META_COMPARE:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case vs.STATE:return s;case vs.ID:return"#"+s;case vs.CLASS:return"."+s;case vs.PARENT:case vs.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case vs.ANCESTOR:case vs.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case vs.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 vs.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}},Ns=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},As=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},Ls=function(e){return void 0!==e},Ss=function(e,t){return e.data(t)},Os=function(e,t){return e[t]()},Is=[],ks=function(e,t){return e.checks.every((function(e){return Is[e.type](e,t)}))};Is[vs.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},Is[vs.STATE]=function(e,t){var n=e.value;return bs(n,t)},Is[vs.ID]=function(e,t){var n=e.value;return t.id()===n},Is[vs.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},Is[vs.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Ns(Os(t,n),r,i)},Is[vs.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Ns(Ss(t,n),r,i)},Is[vs.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return As(Ss(t,n),r)},Is[vs.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,Ls(Ss(t,n))},Is[vs.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return ks(n,i)&&ks(r,a)||ks(r,i)&&ks(n,a)},Is[vs.NODE_NEIGHBOR]=function(e,t){return ks(e.node,t)&&t.neighborhood().some((function(t){return t.isNode()&&ks(e.neighbor,t)}))},Is[vs.DIRECTED_EDGE]=function(e,t){return ks(e.source,t.source())&&ks(e.target,t.target())},Is[vs.NODE_SOURCE]=function(e,t){return ks(e.source,t)&&t.outgoers().some((function(t){return t.isNode()&&ks(e.target,t)}))},Is[vs.NODE_TARGET]=function(e,t){return ks(e.target,t)&&t.incomers().some((function(t){return t.isNode()&&ks(e.source,t)}))},Is[vs.CHILD]=function(e,t){return ks(e.child,t)&&ks(e.parent,t.parent())},Is[vs.PARENT]=function(e,t){return ks(e.parent,t)&&t.children().some((function(t){return ks(e.child,t)}))},Is[vs.DESCENDANT]=function(e,t){return ks(e.descendant,t)&&t.ancestors().some((function(t){return ks(e.ancestor,t)}))},Is[vs.ANCESTOR]=function(e,t){return ks(e.ancestor,t)&&t.descendants().some((function(t){return ks(e.descendant,t)}))},Is[vs.COMPOUND_SPLIT]=function(e,t){return ks(e.subject,t)&&ks(e.left,t)&&ks(e.right,t)},Is[vs.TRUE]=function(){return!0},Is[vs.COLLECTION]=function(e,t){return e.value.has(t)},Is[vs.FILTER]=function(e,t){return(0,e.value)(t)};var Ms={matches:function(e){for(var t=this,n=0;n<t.length;n++){var r=t[n];if(ks(r,e))return!0}return!1},filter:function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===vs.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(ks(r,e))return!0}return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)}},Ps=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:vs.COLLECTION,value:e.collection()}]}):x(e)?this.addQuery({checks:[{type:vs.FILTER,value:e}]}):b(e)?this.parse(e)||(this.invalid=!0):Dt("A selector must be created from a string; found "))},Rs=Ps.prototype;[Cs,Ms].forEach((function(e){return Q(Rs,e)})),Rs.text=function(){return this.inputText},Rs.size=function(){return this.length},Rs.eq=function(e){return this[e]},Rs.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},Rs.addQuery=function(e){this[this.length++]=e},Rs.selector=Rs.toString;var Bs={allAre:function(e){var t=new Ps(e);return this.every((function(e){return t.matches(e)}))},is:function(e){var t=new Ps(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())}))}};Bs.allAreNeighbours=Bs.allAreNeighbors,Bs.has=Bs.contains,Bs.equal=Bs.equals=Bs.same;var Fs,zs,Gs=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)}},Ys={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:Gs((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 Xs(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 Vs(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 Us(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function js(e,t,n){Us(e,t,n),Vs(e,t,n)}Ys.forEachDown=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Vs)},Ys.forEachUp=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Us)},Ys.forEachUpAndDown=function(e){return Xs(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],js)},Ys.ancestors=Ys.parents,(Fs=zs={data:hs.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:hs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:hs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:hs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:hs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Fs.data,Fs.removeAttr=Fs.removeData;var Hs,qs,Ws=zs,$s={};function Ks(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 Zs(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($s,{degree:Ks((function(e,t){return t.source().same(t.target())?2:1})),indegree:Ks((function(e,t){return t.target().same(e)?1:0})),outdegree:Ks((function(e,t){return t.source().same(e)?1:0}))}),Q($s,{minDegree:Zs("degree",(function(e,t){return e<t})),maxDegree:Zs("degree",(function(e,t){return e>t})),minIndegree:Zs("indegree",(function(e,t){return e<t})),maxIndegree:Zs("indegree",(function(e,t){return e>t})),minOutdegree:Zs("outdegree",(function(e,t){return e<t})),maxOutdegree:Zs("outdegree",(function(e,t){return e>t}))}),Q($s,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var Qs=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()}}},Js={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){Qs(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};(Hs=qs={position:hs.data(Js),silentPosition:hs.data(Q({},Js,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){Qs(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}}).modelPosition=Hs.point=Hs.position,Hs.modelPositions=Hs.points=Hs.positions,Hs.renderedPoint=Hs.renderedPosition,Hs.relativePoint=Hs.relativePosition;var el,tl,nl=qs;el=tl={},tl.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}},tl.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},tl.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 rl=function(e){return e===1/0||e===-1/0?0:e},il=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)},al=function(e,t){return null==t?e:il(e,t.x1,t.y1,t.x2,t.y2)},ol=function(e,t,n){return Ft(e,t,n)},sl=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),il(e,u.x1,u.y1,u.x2,u.y2)}}},ll=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=ol(a,"labelWidth",n),p=ol(a,"labelHeight",n),g=ol(a,"labelX",n),f=ol(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?ol(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,il(e,o,l,s,u),il(i.labelBounds.all,o,l,s,u)}return e}},ul=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;il(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),il(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}il(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,il(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}il(h,n-=E,i-=E,r+=E,a+=E)}if(u&&t.includeEdges&&g&&(sl(h,e,"mid-source"),sl(h,e,"mid-target"),sl(h,e,"source"),sl(h,e,"target")),u&&"yes"===e.pstyle("ghost").value){var B=e.pstyle("ghost-offset-x").pfValue,F=e.pstyle("ghost-offset-y").pfValue;il(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,il(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&&ll(h,e,null),g&&(t.includeSourceLabels&&ll(h,e,"source"),t.includeTargetLabels&&ll(h,e,"target")))}return h.x1=rl(h.x1),h.y1=rl(h.y1),h.x2=rl(h.x2),h.y2=rl(h.y2),h.w=rl(h.x2-h.x1),h.h=rl(h.y2-h.y1),h.w>0&&h.h>0&&m&&(Pn(h,v),Mn(h,1)),h},cl=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)},hl=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},dl=function(e,t){var n,r=e._private,i=e.isEdge(),a=(null==t?gl:cl(t))===gl,o=hl(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=ul(e,pl),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,!a){var c=e.isNode();n=Ln(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?al(n,r.overlayBounds):al(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?al(n,r.labelBounds.all):(t.includeMainLabels&&al(n,r.labelBounds.mainRot),t.includeSourceLabels&&al(n,r.labelBounds.sourceRot),t.includeTargetLabels&&al(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},pl={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},gl=cl(pl),fl=Mt(pl);tl.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=fl(e=e||pl),r=this;if(r.cy().styleEnabled())for(var i=0;i<r.length;i++){var a=r[i],o=a._private,s=hl(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];al(t,dl(h,n))}}else e=void 0===e?pl:fl(e),t=dl(this[0],e);return t.x1=rl(t.x1),t.y1=rl(t.y1),t.x2=rl(t.x2),t.y2=rl(t.y2),t.w=rl(t.x2-t.x1),t.h=rl(t.y2-t.y1),t},tl.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},tl.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},el.boundingbox=el.bb=el.boundingBox,el.renderedBoundingbox=el.renderedBoundingBox;var vl,yl,ml=tl;vl=yl={};var bl=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),vl[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}},vl["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},vl["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},vl["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};bl({name:"width"}),bl({name:"height"}),yl.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},yl.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},yl.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var xl=yl,wl=function(e,t){if(e.isEdge())return t(e)},El=function(e,t){if(e.isEdge()){var n=e.cy();return hn(t(e),n.zoom(),n.pan())}},Tl=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)}))}},_l={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)}}},Dl=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},Cl=Object.keys(_l).reduce((function(e,t){var n=_l[t],r=Dl(t);return e[t]=function(){return wl(this,n.get)},n.mult?e[r]=function(){return Tl(this,n.get)}:e[r]=function(){return El(this,n.get)},e}),{}),Nl=Q({},nl,ml,xl,Cl),Al=function(e,t){this.recycle(e,t)};function Ll(){return!1}function Sl(){return!0}Al.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Ll,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?Sl:Ll):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=Sl;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Sl;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Sl,this.stopPropagation()},isDefaultPrevented:Ll,isPropagationStopped:Ll,isImmediatePropagationStopped:Ll};var Ol=/^([^.]+)(\.(?:[^.]+))?$/,Il=".*",kl={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},Ml=Object.keys(kl),Pl={};function Rl(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pl,t=arguments.length>1?arguments[1]:void 0,n=0;n<Ml.length;n++){var r=Ml[n];this[r]=e[r]||kl[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var Bl=Rl.prototype,Fl=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(Ol);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},zl=function(e,t){return e.addEventFields(e.context,t),new Al(t.type,t)},Gl=function(e,t,n){if(I(n))t(e,n);else if(E(n))t(e,zl(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(Ol);if(o){var s=o[1],l=o[2]?o[2]:null;t(e,zl(e,{type:s,namespace:l,target:e.context}))}}}};Bl.on=Bl.addListener=function(e,t,n,r,i){return Fl(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},Bl.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},Bl.removeListener=Bl.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];Fl(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},Bl.removeAllListeners=function(){return this.removeListener("*")},Bl.emit=Bl.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,w(t)||(t=[t]),Gl(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===Il)&&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 Yl={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()}},Xl=function(e){return b(e)?new Ps(e):e},Vl={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new Rl(Yl,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=Xl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=Xl(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=Xl(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=Xl(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}};hs.eventAliasesOn(Vl);var Ul={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 Ps(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}}},jl=Ul;jl.u=jl["|"]=jl["+"]=jl.union=jl.or=jl.add,jl["\\"]=jl["!"]=jl["-"]=jl.difference=jl.relativeComplement=jl.subtract=jl.not,jl.n=jl["&"]=jl["."]=jl.and=jl.intersection=jl.intersect,jl["^"]=jl["(+)"]=jl["(-)"]=jl.symmetricDifference=jl.symdiff=jl.xor,jl.fnFilter=jl.filterFn=jl.stdFilter=jl.filter,jl.complement=jl.abscomp=jl.absoluteComplement;var Hl,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}},Wl=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()},$l={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(Wl)},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)}}};$l.each=$l.forEach,Hl="undefined",("undefined"==typeof Symbol?"undefined":e(Symbol))!=Hl&&e(Symbol.iterator)!=Hl&&($l[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}))});var Kl=Mt({nodeDimensionsIncludeLabels:!1}),Zl={layoutDimensions:function(e){var t;if(e=Kl(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}),Gi.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 Ql(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 Jl(e,t){return e=gt(e),function(n){return Ql(e,t,n)}}function eu(e,t){e=gt(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return Ql(e,n,t)}}Zl.createLayout=Zl.makeLayout=Zl.layout;var tu={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 nu(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 ru(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||nu(i,r);var s=o.source,l=o.target;return n(s)&&(!a||nu(s,n))&&(s===l||n(l)&&(!a||nu(l,n)))}}}var iu=Jl("eleTakesUpSpace",(function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())}));tu.takesUpSpace=eu("takesUpSpace",ru({ok:iu}));var au=Jl("eleInteractive",(function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&iu(e)})),ou=Jl("parentInteractive",(function(e){return"visible"===e.pstyle("visibility").value&&iu(e)}));tu.interactive=eu("interactive",ru({ok:au,parentOk:ou,edgeOkViaNode:iu})),tu.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var su=Jl("eleVisible",(function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&iu(e)})),lu=iu;tu.visible=eu("visible",ru({ok:su,edgeOkViaNode:lu})),tu.hidden=function(){var e=this[0];if(e)return!e.visible()},tu.isBundledBezier=eu("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),tu.bypass=tu.css=tu.style,tu.renderedCss=tu.renderedStyle,tu.removeBypass=tu.removeCss=tu.removeStyle,tu.pstyle=tu.parsedStyle;var uu={};function cu(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 hu(e){uu[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]}},uu[e.on]=cu({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),uu[e.off]=cu({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}hu({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),hu({field:"grabbable",overrideField:function(e){return!e.cy().autoungrabify()&&!e.pannable()&&void 0},on:"grabify",off:"ungrabify"}),hu({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),hu({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),uu.deselect=uu.unselect,uu.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},hu({field:"active",on:"activate",off:"unactivate"}),hu({field:"pannable",on:"panify",off:"unpanify"}),uu.inactive=function(){var e=this[0];if(e)return!e._private.active};var du={},pu=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)}},gu=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)}},fu=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 vu(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 yu(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 mu(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)}}du.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Q(du,{roots:pu({noIncomingEdges:!0}),leaves:pu({noOutgoingEdges:!0}),outgoers:Gs(gu({outgoing:!0}),"outgoers"),successors:fu({outgoing:!0}),incomers:Gs(gu({incoming:!0}),"incomers"),predecessors:fu({incoming:!0})}),Q(du,{neighborhood:Gs((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)}}),du.neighbourhood=du.neighborhood,du.closedNeighbourhood=du.closedNeighborhood,du.openNeighbourhood=du.openNeighborhood,Q(du,{source:Gs((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Gs((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:vu({attr:"source"}),targets:vu({attr:"target"})}),Q(du,{edgesWith:Gs(yu(),"edgesWith"),edgesTo:Gs(yu({thisIsSrc:!0}),"edgesTo")}),Q(du,{connectedEdges:Gs((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:Gs((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:Gs(mu(),"parallelEdges"),codirectedEdges:Gs(mu({codirected:!0}),"codirectedEdges")}),Q(du,{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]}}),du.componentsOf=du.components;var bu=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")},xu=jt.prototype=bu.prototype=Object.create(Array.prototype);xu.instanceString=function(){return"collection"},xu.spawn=function(e,t){return new bu(this.cy(),e,t)},xu.spawnSelf=function(){return this.spawn(this)},xu.cy=function(){return this._private.cy},xu.renderer=function(){return this._private.cy.renderer()},xu.element=function(){return this[0]},xu.collection=function(){return L(this)?this:new bu(this._private.cy,[this])},xu.unique=function(){return new bu(this._private.cy,this,!0)},xu.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},xu.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new bu(t)},xu.$id=xu.getElementById,xu.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},xu.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},xu.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},xu.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}}},xu.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},xu.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 bu(e,t)},xu.copy=xu.clone,xu.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 bu(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},xu.removed=function(){var e=this[0];return e&&e._private.removed},xu.inside=function(){var e=this[0];return e&&!e._private.removed},xu.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 bu(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},xu.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},[Si,ds,ps,Bs,Ys,Ws,$s,Nl,Vl,Ul,ql,$l,Zl,tu,uu,du].forEach((function(e){Q(xu,e)}));var wu={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 bu(n,i)}}else if(w(e))t=new bu(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 bu(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 Eu(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 Tu=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}}(),_u=function(e,t,n,r){var i=Eu(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},Du={linear:function(e,t,n){return e+(t-e)*n},ease:_u(.25,.1,.25,1),"ease-in":_u(.42,0,1,1),"ease-out":_u(0,0,.58,1),"ease-in-out":_u(.42,0,.58,1),"ease-in-sine":_u(.47,0,.745,.715),"ease-out-sine":_u(.39,.575,.565,1),"ease-in-out-sine":_u(.445,.05,.55,.95),"ease-in-quad":_u(.55,.085,.68,.53),"ease-out-quad":_u(.25,.46,.45,.94),"ease-in-out-quad":_u(.455,.03,.515,.955),"ease-in-cubic":_u(.55,.055,.675,.19),"ease-out-cubic":_u(.215,.61,.355,1),"ease-in-out-cubic":_u(.645,.045,.355,1),"ease-in-quart":_u(.895,.03,.685,.22),"ease-out-quart":_u(.165,.84,.44,1),"ease-in-out-quart":_u(.77,0,.175,1),"ease-in-quint":_u(.755,.05,.855,.06),"ease-out-quint":_u(.23,1,.32,1),"ease-in-out-quint":_u(.86,0,.07,1),"ease-in-expo":_u(.95,.05,.795,.035),"ease-out-expo":_u(.19,1,.22,1),"ease-in-out-expo":_u(1,0,0,1),"ease-in-circ":_u(.6,.04,.98,.335),"ease-out-circ":_u(.075,.82,.165,1),"ease-in-out-circ":_u(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return Du.linear;var r=Tu(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":_u};function Cu(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 Nu(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function Au(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=Nu(e,i),s=Nu(t,i);if(_(o)&&_(s))return Cu(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=Cu(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function Lu(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=Du.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=Du[h].apply(null,d)):o.easingImpl=Du[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={};Su(f.x,v.x)&&(y.x=Au(f.x,v.x,p,g)),Su(f.y,v.y)&&(y.y=Au(f.y,v.y,p,g)),e.position(y)}var m=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(Su(m.x,x.x)&&(w.x=Au(m.x,x.x,p,g)),Su(m.y,x.y)&&(w.y=Au(m.y,x.y,p,g)),e.emit("pan"));var T=o.startZoom,_=o.zoom,D=null!=_&&r;D&&(Su(T,_)&&(a.zoom=An(a.minZoom,Au(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=Au(O,S,p,g,u.properties[O.name]);u.overrideBypass(e,L,I)}e.emit("style")}}return o.progress=p,p}function Su(e,t){return!!(null!=e&&null!=t&&(_(e)&&_(t)||e&&t))}function Ou(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}function Iu(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||Ou(t,h,e),Lu(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 ku={animate:hs.animate(),animation:hs.animation(),animated:hs.animated(),clearQueue:hs.clearQueue(),delay:hs.delay(),delayAnimation:hs.delayAnimation(),stop:hs.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){Iu(n,e)}),t.beforeRenderPriorities.animations):n()}function n(){e._private.animationsRunning&&nt((function(t){Iu(t,e),n()}))}}},Mu={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}},Pu=function(e){return b(e)?new Ps(e):e},Ru={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Rl(Mu,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,Pu(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,Pu(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,Pu(t),n),this},once:function(e,t,n){return this.emitter().one(e,Pu(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}};hs.eventAliasesOn(Ru);var Bu={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)}};Bu.jpeg=Bu.jpg;var Fu={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")}};Fu.createLayout=Fu.makeLayout=Fu.layout;var zu={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)}}))}},Gu=Mt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),Yu={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=Gu(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)}};Yu.invalidateDimensions=Yu.resize;var Xu={collection:function(e,t){return b(e)?this.$(e):N(e)?e.collection():w(e)?(t||(t={}),new bu(this,e,t.unique,t.removed)):new bu(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}};Xu.elements=Xu.filter=Xu.$;var Vu={},Uu="t",ju="f";Vu.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},Vu.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]===Uu,h=t[l]===Uu,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]===Uu&&(m=null!=x.properties[v.name]))break}s[y]||m||(s[y]=!0,o.push(y))}}}return r[i]=o,o},Vu.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)?Uu:ju}return t=n.getPropertiesDiff(i,r),e._private.styleCxtKey=r,{key:r,diffPropNames:t,empty:0===t.length}},Vu.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]===Uu)for(var s=0;s<o.properties.length;s++){var l=o.properties[s];i[l.name]=l}}return r[t]=i,i},Vu.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}},Vu.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},Vu.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},Vu.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},Vu.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={}}},Vu.update=function(){this._private.cy.mutableElements().updateStyle()},Vu.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 Gi((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)},Vu.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Vu.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)}))},Vu.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()}))}))},Vu.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Hu={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)}}},qu={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)}},Wu={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}};Wu.getPropertiesHash=Wu.getNonDefaultPropertiesHash;var $u={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}},Ku={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 Ps(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}},Zu={};(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)$","^(.+)$"];Zu.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},nonNegativeNumber:{number:!0,min: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","endpoints"]},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=Zu.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,triggersZOrder:l.any},{name:"text-events",type:u.bool,triggersZOrder:l.any}],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.number,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=[];Zu.pieBackgroundN=16,L.push({name:"pie-size",type:u.sizeMaybePercent});for(var S=1;S<=Zu.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=Zu.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=Zu.properties=[].concat(f,x,v,y,m,N,g,p,c,h,d,E,T,_,L,D,C,O,A),P=Zu.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=Zu.propertyGroupNames={};(Zu.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=Zu.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"}];Zu.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}})(),Zu.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},Zu.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<=Zu.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 Zu.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},Zu.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 Qu={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}},Ju=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")},ec=Ju.prototype;ec.instanceString=function(){return"style"},ec.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},ec.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},ec.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},ec.selector=function(e){var t="core"===e?null:new Ps(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},ec.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},ec.style=ec.css,ec.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},ec.append=function(e){return O(e)?e.appendToStyle(this):w(e)?this.appendFromJson(e):b(e)&&this.appendFromString(e),this},Ju.fromJson=function(e,t){var n=new Ju(e);return n.fromJson(t),n},Ju.fromString=function(e,t){return new Ju(e).fromString(t)},[Vu,Hu,qu,Wu,$u,Ku,Zu,Qu].forEach((function(e){Q(ec,e)})),Ju.types=ec.types,Ju.properties=ec.properties,Ju.propertyGroups=ec.propertyGroups,Ju.propertyGroupNames=ec.propertyGroupNames,Ju.propertyGroupKeys=ec.propertyGroupKeys;var tc={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=Ju.fromJson(this,e):b(e)?t.style=Ju.fromString(this,e):t.style=Ju(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},nc="single",rc={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=nc),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}};rc.centre=rc.center,rc.autolockNodes=rc.autolock,rc.autoungrabifyNodes=rc.autoungrabify;var ic={data:hs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:hs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:hs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ic.attr=ic.data,ic.removeAttr=ic.removeData;var ac=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 bu(this),listeners:[],aniEles:new bu(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 Gi.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)}))},oc=ac.prototype;Q(oc,{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}}),oc.$id=oc.getElementById,[wu,ku,Ru,Bu,Fu,zu,Yu,Xu,tc,rc,ic].forEach((function(e){Q(oc,e)}));var sc={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}},lc={maximal:!1,acyclic:!1},uc=function(e){return e.scratch("breadthfirst")},cc=function(e,t){return e.scratch("breadthfirst",t)};function hc(e){this.options=Q({},sc,lc,e)}hc.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),cc(e,{index:n,depth:t})},E=function(e,t){var n=uc(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?cc(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=uc(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=uc(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=uc(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=uc(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=uc(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 dc={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 pc(e){this.options=Q({},dc,e)}pc.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 gc,fc={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 vc(e){this.options=Q({},fc,e)}vc.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 yc={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 mc(e){this.options=Q({},yc,e),this.options.layout=this;var t=this.options.eles.nodes(),n=this.options.eles.edges().filter((function(e){var n=e.source().data("id"),r=e.target().data("id"),i=t.some((function(e){return e.data("id")===n})),a=t.some((function(e){return e.data("id")===r}));return!i||!a}));this.options.eles=this.options.eles.not(n)}mc.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}),gc=!0===e.debug;var r=xc(t,n,e);gc&&bc(r),e.randomize&&Tc(r);var i=rt(),a=function(){Dc(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!(n.stopped||t>=e.numIter||(Cc(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=_c(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)):(Fc(r,e),s())}();else{for(;u;)u=o(l),l++;Fc(r,e),s()}return this},mc.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},mc.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var bc,xc=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=wc(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},wc=function(e,t,n){var r=Ec(e,t,0,n);return 2>r.count?0:r.graph},Ec=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}},Tc=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)}},_c=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}}},Dc=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=_c(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},Cc=function(e,t,n){Nc(e,t),Ic(e),kc(e,t),Mc(e),Pc(e)},Nc=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]]];Lc(o,l,e,t)}},Ac=function(e){return-e+2*e*Math.random()},Lc=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=Ac(o),a=Ac(o));var s=Sc(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=Oc(e,i,a),d=Oc(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)}},Sc=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},Oc=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},Ic=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=Oc(a,l,u),h=Oc(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)}}},kc=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}}}}},Mc=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}}},Pc=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=Rc(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,Bc(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)}},Rc=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},Bc=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}},Fc=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)}}},zc={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 Gc(e){this.options=Q({},zc,e)}Gc.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 Yc={ready:function(){},stop:function(){}};function Xc(e){this.options=Q({},Yc,e)}Xc.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},Xc.prototype.stop=function(){return this};var Vc={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor: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 Uc(e){this.options=Q({},Vc,e)}Uc.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 jc={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 Hc(e){this.options=Q({},jc,e)}Hc.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 qc=[{name:"breadthfirst",impl:hc},{name:"circle",impl:pc},{name:"concentric",impl:vc},{name:"cose",impl:mc},{name:"grid",impl:Gc},{name:"null",impl:Xc},{name:"preset",impl:Uc},{name:"random",impl:Hc}];function Wc(e){this.options=e,this.notifications=0}var $c=function(){},Kc=function(){throw new Error("A headless instance can not render images")};Wc.prototype={recalculateRenderedStyle:$c,notify:function(){this.notifications++},init:$c,isHeadless:function(){return!0},png:Kc,jpg:Kc};var Zc={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}})}},Qc={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}},Jc={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)}};Jc.getArrowWidth=Jc.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 eh={};function th(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}}eh.findMidptPtsEtc=function(e,t){var n,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,s=e.pstyle("source-endpoint"),l=e.pstyle("target-endpoint"),u=null!=s.units&&null!=l.units,c=function(e,t,n,r){var i=r-t,a=n-e,o=Math.sqrt(a*a+i*i);return{x:-i/o,y:a/o}};switch(e.pstyle("edge-distances").value){case"node-position":n=r;break;case"intersection":n=i;break;case"endpoints":if(u){var h=o(this.manualEndptToPx(e.source()[0],s),2),d=h[0],p=h[1],g=o(this.manualEndptToPx(e.target()[0],l),2),f=g[0],v=g[1],y={x1:d,y1:p,x2:f,y2:v};a=c(d,p,f,v),n=y}else Nt("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),n=i}return{midptPts:n,vectorNormInverse:a}},eh.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)}},eh.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=e.pstyle("segment-weights"),i=e.pstyle("segment-distances"),a=Math.min(r.pfValue.length,i.pfValue.length);n.edgeType="segments",n.segpts=[];for(var o=0;o<a;o++){var s=r.pfValue[o],l=i.pfValue[o],u=1-s,c=s,h=this.findMidptPtsEtc(e,t),d=h.midptPts,p=h.vectorNormInverse,g={x:d.x1*u+d.x2*c,y:d.y1*u+d.y2*c};n.segpts.push(g.x+p.x*l,g.y+p.y*l)}},eh.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)]},eh.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]},eh.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},eh.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=e.pstyle("control-point-step-size").pfValue,s=e.pstyle("control-point-distances"),l=e.pstyle("control-point-weights"),u=s&&l?Math.min(s.value.length,l.value.length):1,c=s?s.pfValue[0]:void 0,h=l.value[0],d=r;a.edgeType=d?"multibezier":"bezier",a.ctrlpts=[];for(var p=0;p<u;p++){var g=(.5-t.eles.length/2+n)*o*(i?-1:1),f=void 0,v=wn(g);d&&(c=s?s.pfValue[p]:o,h=l.value[p]);var y=void 0!==(f=r?c:void 0!==c?v*c:void 0)?f:g,m=1-h,b=h,x=this.findMidptPtsEtc(e,t),w=x.midptPts,E=x.vectorNormInverse,T={x:w.x1*m+w.x2*b,y:w.y1*m+w.y2*b};a.ctrlpts.push(T.x+E.x*y,T.y+E.y*y)}},eh.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]}},eh.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)}},eh.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]}},eh.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."))},eh.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)}},eh.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),th(t.segpts)},eh.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),th(t.ctrlpts)},eh.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var nh={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}}},rh={};function ih(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)})}}rh.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)ih(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},rh.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var ah={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)}}},oh=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},sh=function(e,t){var n=t.x-e.x,r=t.y-e.y;return oh(n,r)},lh=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 sh(o,s)};ah.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=oh(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=lh(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=sh(C,N)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,i)}};u("source"),u("target"),this.applyLabelDimensions(e)}},ah.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},ah.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)},ah.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},ah.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"}},ah.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}},ah.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},ah.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 uh={},ch=28,hh=!1;uh.getNodeShape=function(e){var t=this,n=e.pstyle("shape").value;if("cutrectangle"===n&&(e.width()<ch||e.height()<ch))return hh||(Nt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),hh=!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 dh={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}}}},ph={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(Wl),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}},gh={};[Qc,Jc,eh,nh,rh,ah,uh,dh,ph].forEach((function(e){Q(gh,e)}));var fh={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}},vh={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))}))}}},yh={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)}}},mh={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}))}}},bh=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};mh.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){bh(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 bh(e,!1,r);e.skipFrame=!1,nt(n)}};nt(n)}};var xh=function(e){this.init(e)},wh=xh.prototype;wh.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],wh.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()},wh.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())},wh.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){}},wh.isHeadless=function(){return!1},[Zc,gh,fh,vh,yh,mh].forEach((function(e){Q(wh,e)}));var Eh=1e3/60,Th={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<Eh){var f=Eh-(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*Eh)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))}}}},_h=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}(),Dh=25,Ch=50,Nh=-4,Ah=3,Lh=7.99,Sh=8,Oh=1024,Ih=1024,kh=1024,Mh=.2,Ph=.8,Rh=10,Bh=.15,Fh=.1,zh=.9,Gh=.9,Yh=100,Xh=1,Vh={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Uh=Mt({getKey:null,doesEleInvalidateKey:Et,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:wt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),jh=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=Uh(t);Q(n,r),n.lookup=new _h(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Hh=jh.prototype;Hh.reasons=Vh,Hh.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Hh.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{};return n[e]=n[e]||[]},Hh.getElementQueue=function(){var e=this;return e.eleCacheQueue=e.eleCacheQueue||new $t((function(e,t){return t.reqs-e.reqs}))},Hh.getElementKeyToQueue=function(){var e=this;return e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{}},Hh.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<Nh)r=Nh;else if(s>=Lh||r>Ah)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<=Dh?Dh:c<=Ch?Ch:Math.ceil(c/Ch)*Ch,c>kh||h>Ih)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===Vh.dequeue,w=i&&i===Vh.highQuality,E=i&&i===Vh.downscale,T=r+1;T<=Ah;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,Vh.downscale);C()}else{var A;if(!x&&!w&&!E)for(var L=r-1;L>=Nh;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+Sh),v.eleCaches.push(g),l.set(e,r,g),a.checkTextureFullness(v),g},Hh.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},Hh.invalidateElement=function(e){var t=this,n=t.lookup,r=[];if(n.isInvalid(e)){for(var i=Nh;i<=Ah;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)}},Hh.checkTextureUtility=function(e){e.invalidatedWidth>=Mh*e.width&&this.retireTexture(e)},Hh.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>Ph&&e.fullnessChecks>=Rh?Pt(t,e):e.fullnessChecks++},Hh.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)},Hh.addTexture=function(e,t){var n=this,r={};return n.getTextureQueue(e).push(r),r.eleCaches=[],r.height=e,r.width=Math.max(Oh,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},Hh.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}},Hh.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}},Hh.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=[],a=t.lookup,o=0;o<Xh&&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,Vh.dequeue)}}return i},Hh.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))},Hh.onDequeue=function(e){this.onDequeues.push(e)},Hh.offDequeue=function(e){Pt(this.onDequeues,e)},Hh.setupDequeueing=Th.setupDequeueing({deqRedrawThreshold:Yh,deqCost:Bh,deqAvgCost:Fh,deqNoDrawCost:zh,deqFastCost:Gh,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 qh=1,Wh=-4,$h=2,Kh=3.99,Zh=50,Qh=50,Jh=.15,ed=.1,td=.9,nd=.9,rd=1,id=250,ad=16e6,od=!0,sd=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=rt()-2*id,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=Qe((function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)}),Qh),n.beforeRender((function(e,n){n-t.lastInvalidationTime<=id?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()},ld=sd.prototype,ud=0,cd=Math.pow(2,53)-1;ld.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:ud=++ud%cd,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},ld.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)))<Wh)n=Wh;else if(i>=Kh||n>$h)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;Wh<=r&&r<=$h&&!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)>ad)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/qh,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)},ld.getEleLevelForLayerLevel=function(e,t){return e},ld.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,od),a.setImgSmoothing(o,!0))},ld.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},ld.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}}}},ld.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=Wh;u<=$h;u++){var c=l[u];c&&(a&&n.getEleLevelForLayerLevel(c.level)!==a.level||t(c,o,a))}},ld.haveLayers=function(){for(var e=this,t=!1,n=Wh;n<=$h;n++){var r=e.layersByLevel[n];if(r&&r.length>0){t=!0;break}}return t},ld.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)})))},ld.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)}}},ld.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])}))},ld.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},ld.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))}},ld.dequeue=function(e){for(var t=this,n=t.layersQueue,r=[],i=0;i<rd&&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},ld.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()}},ld.requestRedraw=Qe((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),ld.setupDequeueing=Th.setupDequeueing({deqRedrawThreshold:Zh,deqCost:Jh,deqAvgCost:ed,deqNoDrawCost:td,deqFastCost:nd,deq:function(e,t){return e.dequeue(t)},onDeqd:_t,shouldRedraw:wt,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var hd,dd={};function pd(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function gd(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 fd(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 vd(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 yd(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}dd.arrowShapeImpl=function(e){return(hd||(hd={polygon:pd,"triangle-backcurve":gd,"triangle-tee":fd,"circle-triangle":vd,"triangle-cross":fd,circle:yd}))[e]};var md={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)}}},bd=function(){return 0},xd=function(e,t){return e.getTextAngle(t,null)},wd=function(e,t){return e.getTextAngle(t,"source")},Ed=function(e,t){return e.getTextAngle(t,"target")},Td=function(e,t){return t.effectiveOpacity()},_d=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};md.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,bd,Td),g&&f||o.drawCachedElementPortion(e,t,u,n,i,p,xd,_d),g&&!f&&(o.drawCachedElementPortion(e,t,c,n,i,p,wd,_d),o.drawCachedElementPortion(e,t,h,n,i,p,Ed,_d)),o.drawElementOverlay(e,t)}},md.drawElements=function(e,t){for(var n=this,r=0;r<t.length;r++){var i=t[r];n.drawElement(e,i)}},md.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)}},md.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)}},md.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 Dd={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)}}},Cd=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")}}}};Dd.drawEdgeOverlay=Cd("overlay"),Dd.drawEdgeUnderlay=Cd("underlay"),Dd.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([])},Dd.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()}},Dd.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)},Dd.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)}}},Dd.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 Nd={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)}}},Ad={};function Ld(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()}Ad.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)},Ad.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)},Ad.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},Ad.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)},Ad.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},Ad.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")?Ld(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 Sd={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)}}},Od=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()}}}};Sd.drawNodeOverlay=Od("overlay"),Sd.drawNodeUnderlay=Od("underlay"),Sd.hasPie=function(e){return(e=e[0])._private.hasPie},Sd.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 Id={},kd=100;Id.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},Id.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},Id.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},Id.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},Id.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},Id.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)}},Id.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},Id.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},Id.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)}},Id.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}},Id.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Id.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()}),kd)),t||l.emit("render")};for(var Md={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()}},Pd=Math.sin(0),Rd=Math.cos(0),Bd={},Fd={},zd=Math.PI/40,Gd=0*Math.PI;Gd<2*Math.PI;Gd+=zd)Bd[Gd]=Math.sin(Gd),Fd[Gd]=Math.cos(Gd);Md.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+=zd)a=t-s*Bd[u]*Pd+s*Fd[u]*Rd,o=n+l*Fd[u]*Pd+l*Bd[u]*Rd,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var Yd={};function Xd(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 Vd(e){var t=e.indexOf(",");return e.substr(t+1)}function Ud(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new Gi((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 Xd(Vd(r()),n);case"base64":return Vd(r());default:return r()}}Yd.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},Yd.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},Yd.png=function(e){return Ud(e,this.bufferCanvasImage(e),"image/png")},Yd.jpg=function(e){return Ud(e,this.bufferCanvasImage(e),"image/jpeg")};var jd={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)}}},Hd=Wd,qd=Wd.prototype;function Wd(e){var t=this;t.data={canvases:new Array(qd.CANVAS_LAYERS),contexts:new Array(qd.CANVAS_LAYERS),canvasNeedsRedraw:new Array(qd.CANVAS_LAYERS),bufferCanvases:new Array(qd.BUFFER_COUNT),bufferContexts:new Array(qd.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<qd.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(qd.CANVAS_LAYERS-s),t.data.canvasContainer.appendChild(l),t.data.canvasNeedsRedraw[s]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[qd.NODE].setAttribute("data-id","layer"+qd.NODE+"-node"),t.data.canvases[qd.SELECT_BOX].setAttribute("data-id","layer"+qd.SELECT_BOX+"-selectbox"),t.data.canvases[qd.DRAG].setAttribute("data-id","layer"+qd.DRAG+"-drag"),s=0;s<qd.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 jh(t,{getKey:p,doesEleInvalidateKey:d,drawElement:y,getBoundingBox:w,getRotationPoint:C,getRotationOffset:I,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=t.data.lblTxrCache=new jh(t,{getKey:g,drawElement:m,getBoundingBox:E,getRotationPoint:L,getRotationOffset:P,isVisible:D}),z=t.data.slbTxrCache=new jh(t,{getKey:f,drawElement:b,getBoundingBox:T,getRotationPoint:S,getRotationOffset:k,isVisible:D}),G=t.data.tlbTxrCache=new jh(t,{getKey:v,drawElement:x,getBoundingBox:_,getRotationPoint:O,getRotationOffset:M,isVisible:D}),Y=t.data.lyrTxrCache=new sd(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)}qd.CANVAS_LAYERS=3,qd.SELECT_BOX=0,qd.DRAG=1,qd.NODE=2,qd.BUFFER_COUNT=3,qd.TEXTURE_BUFFER=0,qd.MOTIONBLUR_BUFFER_NODE=1,qd.MOTIONBLUR_BUFFER_DRAG=2,qd.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[qd.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[qd.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[qd.SELECT_BOX]=t}};var $d="undefined"!=typeof Path2D;qd.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},qd.usePaths=function(){return $d&&this.pathsEnabled},qd.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},qd.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},qd.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},[dd,md,Dd,Nd,Ad,Sd,Id,Md,Yd,jd].forEach((function(e){Q(qd,e)}));var Kd=[{type:"layout",extensions:qc},{type:"renderer",extensions:[{name:"null",impl:Wc},{name:"base",impl:xh},{name:"canvas",impl:Hd}]}],Zd={},Qd={};function Jd(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(ac.prototype[t])return i(t);ac.prototype[t]=n}else if("collection"===e){if(bu.prototype[t])return i(t);bu.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 Rl(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}}),hs.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=ep("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:Zd,keys:[e,t],value:r})}function ep(e,t){return oe({map:Zd,keys:[e,t]})}function tp(e,t,n,r,i){return ae({map:Qd,keys:[e,t,n,r],value:i})}function np(e,t,n,r){return oe({map:Qd,keys:[e,t,n,r]})}var rp=function(){return 2===arguments.length?ep.apply(null,arguments):3===arguments.length?Jd.apply(null,arguments):4===arguments.length?np.apply(null,arguments):5===arguments.length?tp.apply(null,arguments):void Dt("Invalid extension access syntax")};ac.prototype.extension=rp,Kd.forEach((function(e){e.extensions.forEach((function(t){Jd(e.type,t.name,t.impl)}))}));var ip=function e(){if(!(this instanceof e))return new e;this.length=0},ap=ip.prototype;ap.instanceString=function(){return"stylesheet"},ap.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},ap.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=Ju.properties[o]||Ju.properties[G(o)];if(null!=l){var u=l.name,c=s;this[n].properties.push({name:u,value:c})}}}return this},ap.style=ap.css,ap.generateStyle=function(e){var t=new Ju(e);return this.appendToStyle(t)},ap.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 op="3.27.0",sp=function(e){return void 0===e&&(e={}),E(e)?new ac(e):b(e)?rp.apply(rp,arguments):void 0};return sp.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(sp),e.apply(null,t),this},sp.warnings=function(e){return Ct(e)},sp.version=op,sp.stylesheet=sp.Stylesheet=ip,sp}()},2241: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}}(),i=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=i,this.gap_penalty=a,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var o=0;o<this.iMax;o++){this.grid[o]=new Array(this.jMax);for(var s=0;s<this.jMax;s++)this.grid[o][s]=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 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=i},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()},9138:(e,t,n)=>{"use strict";n.d(t,{diagram:()=>A});var r=n(5322),i=n(4218),a=n(6042),o=n(1377),s=n(4607),l=n(1619),u=n(2281),c=n(7201),h=(n(7484),n(7967),n(7856),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=a.slice.call(arguments,1),h=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);h.setInput(e,d.yy),d.yy.lexer=h,d.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var g=h.yylloc;a.push(g);var f=h.options&&h.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,y,m,b,x,w,E,T,_,D={};;){if(y=n[n.length-1],this.defaultActions[y]?m=this.defaultActions[y]:(null==v&&(_=void 0,"number"!=typeof(_=r.pop()||h.lex()||1)&&(_ instanceof Array&&(_=(r=_).pop()),_=t.symbols_[_]||_),v=_),m=o[y]&&o[y][v]),void 0===m||!m.length||!m[0]){var C="";for(x in T=[],o[y])this.terminals_[x]&&x>2&&T.push("'"+this.terminals_[x]+"'");C=h.showPosition?"Parse error on line "+(l+1)+":\n"+h.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==v?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(C,{text:h.match,token:this.terminals_[v]||v,line:h.yylineno,loc:g,expected:T})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+v);switch(m[0]){case 1:n.push(v),i.push(h.yytext),a.push(h.yylloc),n.push(m[1]),v=null,u=h.yyleng,s=h.yytext,l=h.yylineno,g=h.yylloc;break;case 2:if(w=this.productions_[m[1]][1],D.$=i[i.length-w],D._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},f&&(D._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(D,[s,u,l,d.yy,m[1],i,a].concat(c))))return b;w&&(n=n.slice(0,-1*w*2),i=i.slice(0,-1*w),a=a.slice(0,-1*w)),n.push(this.productions_[m[1]][0]),i.push(D.$),a.push(D._$),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(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:return e.getLogger().trace("Found comment",t.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:case 26: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:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 24:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 27:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 30:case 33:case 34:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 31:case 32:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 35:case 36: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,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],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}());h.parser=h;const d=h,p=e=>(0,r.d)(e,(0,r.c)());let g=[],f=0,v={};const y={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},m=(e,t)=>{v[e]=t},b=e=>{switch(e){case y.DEFAULT:return"no-border";case y.RECT:return"rect";case y.ROUNDED_RECT:return"rounded-rect";case y.CIRCLE:return"circle";case y.CLOUD:return"cloud";case y.BANG:return"bang";case y.HEXAGON:return"hexgon";default:return"no-border"}};let x;const w=e=>v[e],E=Object.freeze(Object.defineProperty({__proto__:null,addNode:(e,t,n,i)=>{r.l.info("addNode",e,t,n,i);const a=(0,r.c)(),o={id:f++,nodeId:p(t),level:e,descr:p(n),type:i,children:[],width:(0,r.c)().mindmap.maxNodeWidth};switch(o.type){case y.ROUNDED_RECT:case y.RECT:case y.HEXAGON:o.padding=2*a.mindmap.padding;break;default:o.padding=a.mindmap.padding}const s=function(e){for(let t=g.length-1;t>=0;t--)if(g[t].level<e)return g[t];return null}(e);if(s)s.children.push(o),g.push(o);else{if(0!==g.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}g.push(o)}},clear:()=>{g=[],f=0,v={}},decorateNode:e=>{const t=g[g.length-1];e&&e.icon&&(t.icon=p(e.icon)),e&&e.class&&(t.class=p(e.class))},getElementById:w,getLogger:()=>r.l,getMindmap:()=>g.length>0?g[0]:null,getNodeById:e=>g[e],getType:(e,t)=>{switch(r.l.debug("In get type",e,t),e){case"[":return y.RECT;case"(":return")"===t?y.ROUNDED_RECT:y.CLOUD;case"((":return y.CIRCLE;case")":return y.CLOUD;case"))":return y.BANG;case"{{":return y.HEXAGON;default:return y.DEFAULT}},nodeType:y,get parseError(){return x},sanitizeText:p,setElementForId:m,setErrorHandler:e=>{x=e},type2Str:b},Symbol.toStringTag,{value:"Module"}));const T=function(e,t,n,r){const i=r.htmlLabels,o=n%11,s=e.append("g");t.section=o;let l="section-"+o;o<0&&(l+=" section-root"),s.attr("class",(t.class?t.class+" ":"")+"mindmap-node "+l);const u=s.append("g"),c=s.append("g"),h=t.descr.replace(/(<br\/*>)/g,"\n");(0,a.a)(c,h,{useHtmlLabels:i,width:t.width,classes:"mindmap-node-label"}),i||c.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const d=c.node().getBBox(),p=r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;if(t.height=d.height+1.1*p*.5+t.padding,t.width=d.width+2*t.padding,t.icon)if(t.type===y.CIRCLE){t.height+=50,t.width+=50;s.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-"+o+" "+t.icon),c.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);s.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-"+o+" "+t.icon),c.attr("transform","translate("+(25+t.width/2)+", "+(n/2+t.padding/2)+")")}else if(i){const e=(t.width-d.width)/2,n=(t.height-d.height)/2;c.attr("transform","translate("+e+", "+n+")")}else{const e=t.width/2,n=t.padding/2;c.attr("transform","translate("+e+", "+n+")")}switch(t.type){case y.DEFAULT:!function(e,t,n){e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(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)}(u,t,o);break;case y.ROUNDED_RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(t.type)).attr("height",t.height).attr("rx",t.padding).attr("ry",t.padding).attr("width",t.width)}(u,t);break;case y.RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+b(t.type)).attr("height",t.height).attr("width",t.width)}(u,t);break;case y.CIRCLE:u.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-"+b(t.type)).attr("r",t.width/2)}(u,t);break;case y.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-"+b(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`)}(u,t);break;case y.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-"+b(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`)}(u,t);break;case y.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)}(u,t)}return m(t.id,s),t.height},_=function(e){const t=w(e.id),n=e.x||0,r=e.y||0;t.attr("transform","translate("+n+","+r+")")};function D(e,t,n,r){T(e,t,n,r),t.children&&t.children.forEach(((t,i)=>{D(e,t,n<0?i:n,r)}))}function C(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=>{C(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 N(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(),C(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(s);const A={db:E,renderer:{draw:async(e,t,n,a)=>{const o=(0,r.c)();o.htmlLabels=!1,r.l.debug("Rendering mindmap diagram\n"+e,a.parser);const s=(0,r.c)().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"),D(d,c,-1,o);const p=await N(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,_(n);const i=w(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.o)(void 0,u,o.mindmap.padding,o.mindmap.useMaxWidth)}},parser:d,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,l.Z)(e["lineColor"+n])?e["lineColor"+n]=(0,u.Z)(e["lineColor"+n],20):e["lineColor"+n]=(0,c.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 .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`}}}]); \ No newline at end of file diff --git a/assets/js/9287eafd.7613dea7.js b/assets/js/9287eafd.7613dea7.js new file mode 100644 index 0000000..91f1c98 --- /dev/null +++ b/assets/js/9287eafd.7613dea7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5521],{90716:s=>{s.exports=JSON.parse('{"label":"rust","permalink":"/blog/tags/rust","allTagsPath":"/blog/tags","count":5,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/9287eafd.8cb8e3b6.js b/assets/js/9287eafd.8cb8e3b6.js deleted file mode 100644 index fb1713d..0000000 --- a/assets/js/9287eafd.8cb8e3b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5521],{716:s=>{s.exports=JSON.parse('{"label":"rust","permalink":"/blog/tags/rust","allTagsPath":"/blog/tags","count":5,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/95b96bb9.d5b5ac42.js b/assets/js/95b96bb9.d5b5ac42.js deleted file mode 100644 index 345da2d..0000000 --- a/assets/js/95b96bb9.d5b5ac42.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3561],{4577:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"How can Copr help with broken dependencies","permalink":"/blog/2023/08/02/copr","unlisted":false},{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week","unlisted":false},{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week","unlisted":false},{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally","unlisted":false},{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/assets/js/95b96bb9.f1e9070e.js b/assets/js/95b96bb9.f1e9070e.js new file mode 100644 index 0000000..6fc5b70 --- /dev/null +++ b/assets/js/95b96bb9.f1e9070e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3561],{24577:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"How can Copr help with broken dependencies","permalink":"/blog/2023/08/02/copr","unlisted":false},{"title":"4th week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/4th-week","unlisted":false},{"title":"3rd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/3rd-week","unlisted":false},{"title":"Sort the matrix diagonally","permalink":"/blog/leetcode/sort-diagonally","unlisted":false},{"title":"2nd week of Advent of Code \'22 in Rust","permalink":"/blog/aoc-2022/2nd-week","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/assets/js/95f41f0b.92e0d371.js b/assets/js/95f41f0b.92e0d371.js deleted file mode 100644 index 6a2844d..0000000 --- a/assets/js/95f41f0b.92e0d371.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9385],{3195:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var n=o(5893),s=o(1151);const a={title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,r={permalink:"/blog/aoc-2022/1st-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md",source:"@site/blog/aoc-2022/01-week-1.md",title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:12.4,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"},nextItem:{title:"Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/intro"}},c={authorsImageUrls:[void 0]},d=[];function f(e){const t={em:"em",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the first week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>r,a:()=>i});var n=o(7294);const s={},a=n.createContext(s);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/95f41f0b.b012cd5f.js b/assets/js/95f41f0b.b012cd5f.js new file mode 100644 index 0000000..9849ab1 --- /dev/null +++ b/assets/js/95f41f0b.b012cd5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9385],{93195:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var n=o(85893),s=o(11151);const a={title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,r={permalink:"/blog/aoc-2022/1st-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md",source:"@site/blog/aoc-2022/01-week-1.md",title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:12.4,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"},nextItem:{title:"Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/intro"}},c={authorsImageUrls:[void 0]},d=[];function f(e){const t={em:"em",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the first week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>r,a:()=>i});var n=o(67294);const s={},a=n.createContext(s);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/976c4f3b.763787ff.js b/assets/js/976c4f3b.763787ff.js deleted file mode 100644 index 4a876c0..0000000 --- a/assets/js/976c4f3b.763787ff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4562],{9019:i=>{i.exports=JSON.parse('{"label":"java","permalink":"/algorithms/tags/java","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/976c4f3b.8c7c9f5c.js b/assets/js/976c4f3b.8c7c9f5c.js new file mode 100644 index 0000000..84bbef9 --- /dev/null +++ b/assets/js/976c4f3b.8c7c9f5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4562],{69019:i=>{i.exports=JSON.parse('{"label":"java","permalink":"/algorithms/tags/java","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/97a42631.2b5ef8cd.js b/assets/js/97a42631.2b5ef8cd.js deleted file mode 100644 index f727faa..0000000 --- a/assets/js/97a42631.2b5ef8cd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1464],{7343:a=>{a.exports=JSON.parse('[{"label":"python","permalink":"/algorithms/tags/python","count":3},{"label":"testing","permalink":"/algorithms/tags/testing","count":1},{"label":"postconditions","permalink":"/algorithms/tags/postconditions","count":1},{"label":"sorting","permalink":"/algorithms/tags/sorting","count":1},{"label":"graphs","permalink":"/algorithms/tags/graphs","count":2},{"label":"bfs","permalink":"/algorithms/tags/bfs","count":1},{"label":"csharp","permalink":"/algorithms/tags/csharp","count":1},{"label":"iterators","permalink":"/algorithms/tags/iterators","count":1},{"label":"iterative","permalink":"/algorithms/tags/iterative","count":1},{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","count":2},{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","count":2},{"label":"applications","permalink":"/algorithms/tags/applications","count":1},{"label":"karel","permalink":"/algorithms/tags/karel","count":1},{"label":"recursion","permalink":"/algorithms/tags/recursion","count":3},{"label":"backtracking","permalink":"/algorithms/tags/backtracking","count":1},{"label":"java","permalink":"/algorithms/tags/java","count":1},{"label":"exponential","permalink":"/algorithms/tags/exponential","count":1},{"label":"greedy","permalink":"/algorithms/tags/greedy","count":1},{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","count":1},{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","count":1},{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","count":1},{"label":"c","permalink":"/algorithms/tags/c","count":1},{"label":"dynamic array","permalink":"/algorithms/tags/dynamic-array","count":1},{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/97a42631.f6ad4dc0.js b/assets/js/97a42631.f6ad4dc0.js new file mode 100644 index 0000000..987b220 --- /dev/null +++ b/assets/js/97a42631.f6ad4dc0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1464],{77343:a=>{a.exports=JSON.parse('[{"label":"python","permalink":"/algorithms/tags/python","count":6},{"label":"testing","permalink":"/algorithms/tags/testing","count":1},{"label":"postconditions","permalink":"/algorithms/tags/postconditions","count":1},{"label":"sorting","permalink":"/algorithms/tags/sorting","count":1},{"label":"graphs","permalink":"/algorithms/tags/graphs","count":2},{"label":"bfs","permalink":"/algorithms/tags/bfs","count":1},{"label":"csharp","permalink":"/algorithms/tags/csharp","count":1},{"label":"iterators","permalink":"/algorithms/tags/iterators","count":1},{"label":"iterative","permalink":"/algorithms/tags/iterative","count":1},{"label":"cpp","permalink":"/algorithms/tags/cpp","count":3},{"label":"hash-tables","permalink":"/algorithms/tags/hash-tables","count":3},{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","count":2},{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","count":2},{"label":"applications","permalink":"/algorithms/tags/applications","count":1},{"label":"karel","permalink":"/algorithms/tags/karel","count":1},{"label":"recursion","permalink":"/algorithms/tags/recursion","count":3},{"label":"backtracking","permalink":"/algorithms/tags/backtracking","count":1},{"label":"java","permalink":"/algorithms/tags/java","count":1},{"label":"exponential","permalink":"/algorithms/tags/exponential","count":1},{"label":"greedy","permalink":"/algorithms/tags/greedy","count":1},{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","count":1},{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","count":1},{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","count":1},{"label":"c","permalink":"/algorithms/tags/c","count":1},{"label":"dynamic array","permalink":"/algorithms/tags/dynamic-array","count":1},{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/9893.04fdeb2a.js b/assets/js/9893.04fdeb2a.js new file mode 100644 index 0000000..f442c5a --- /dev/null +++ b/assets/js/9893.04fdeb2a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9893],{43349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(96225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},96225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(37514),l=n(73234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},19893:(e,t,n)=>{n.d(t,{diagram:()=>a});var r=n(88955),l=n(21358),o=n(85322);n(64218),n(45625),n(41644),n(39354),n(27484),n(17967),n(27856);const a={parser:r.p,db:r.f,renderer:l.f,styles:l.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,(0,o.p)({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}}),l.f.setConf(e.flowchart),r.f.clear(),r.f.setGen("gen-2")}}},21358:(e,t,n)=>{n.d(t,{a:()=>h,f:()=>u});var r=n(45625),l=n(64218),o=n(85322),a=n(87936),s=n(43349),i=n(61691),c=n(71610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(51117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.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=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",h="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(h=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,h=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=h,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const h="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),g="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e<k.nodes.length;e++)o.l.info("Setting up subgraphs",k.nodes[e],k.id),y.setParent(k.nodes[e],k.id)}f(v,y,t,h,g,s),w(m,y);const T=h.select(`[id="${t}"]`),_=h.select("#"+t+" g");if(await(0,a.r)(_,y,["point","circle","cross"],"flowchart",t),o.u.insertTitle(T,"flowchartTitleText",d.titleTopMargin,s.db.getDiagramTitle()),(0,o.o)(y,T,d.diagramPadding,d.useMaxWidth),s.db.indexNodes("subGraph"+S),!d.htmlLabels){const e=g.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of e){const e=t.getBBox(),n=g.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",e.width),n.setAttribute("height",e.height),t.insertBefore(n,t.firstChild)}}Object.keys(v).forEach((function(e){const n=v[e];if(n.link){const r=(0,l.Ys)("#"+t+' [id="'+e+'"]');if(r){const e=g.createElementNS("http://www.w3.org/2000/svg","a");e.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),e.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),e.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===c?e.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&e.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const t=r.insert((function(){return e}),":first-child"),l=r.select(".label-container");l&&t.append((function(){return l.node()}));const o=r.select(".label");o&&t.append((function(){return o.node()}))}}}))}},h=e=>`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.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: ${e.textColor};\n }\n`}}]); \ No newline at end of file diff --git a/assets/js/9893.cacfe6a8.js b/assets/js/9893.cacfe6a8.js deleted file mode 100644 index 405c8be..0000000 --- a/assets/js/9893.cacfe6a8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9893],{3349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(6225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},6225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(7514),l=n(3234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},9893:(e,t,n)=>{n.d(t,{diagram:()=>a});var r=n(8955),l=n(1358),o=n(5322);n(4218),n(5625),n(1644),n(9354),n(7484),n(7967),n(7856);const a={parser:r.p,db:r.f,renderer:l.f,styles:l.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,(0,o.p)({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}}),l.f.setConf(e.flowchart),r.f.clear(),r.f.setGen("gen-2")}}},1358:(e,t,n)=>{n.d(t,{a:()=>h,f:()=>u});var r=n(5625),l=n(4218),o=n(5322),a=n(7936),s=n(3349),i=n(1691),c=n(1610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(1117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>`<i class='${e.replace(":"," ")}'></i>`))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.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=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",h="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(h=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,h=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=h,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const h="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),g="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e<k.nodes.length;e++)o.l.info("Setting up subgraphs",k.nodes[e],k.id),y.setParent(k.nodes[e],k.id)}f(v,y,t,h,g,s),w(m,y);const T=h.select(`[id="${t}"]`),_=h.select("#"+t+" g");if(await(0,a.r)(_,y,["point","circle","cross"],"flowchart",t),o.u.insertTitle(T,"flowchartTitleText",d.titleTopMargin,s.db.getDiagramTitle()),(0,o.o)(y,T,d.diagramPadding,d.useMaxWidth),s.db.indexNodes("subGraph"+S),!d.htmlLabels){const e=g.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const t of e){const e=t.getBBox(),n=g.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",e.width),n.setAttribute("height",e.height),t.insertBefore(n,t.firstChild)}}Object.keys(v).forEach((function(e){const n=v[e];if(n.link){const r=(0,l.Ys)("#"+t+' [id="'+e+'"]');if(r){const e=g.createElementNS("http://www.w3.org/2000/svg","a");e.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),e.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),e.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===c?e.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&e.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const t=r.insert((function(){return e}),":first-child"),l=r.select(".label-container");l&&t.append((function(){return l.node()}));const o=r.select(".label");o&&t.append((function(){return o.node()}))}}}))}},h=e=>`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.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: ${e.textColor};\n }\n`}}]); \ No newline at end of file diff --git a/assets/js/9df0e937.2c53d1aa.js b/assets/js/9df0e937.2c53d1aa.js new file mode 100644 index 0000000..c0e534b --- /dev/null +++ b/assets/js/9df0e937.2c53d1aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2210],{55256:e=>{e.exports=JSON.parse('{"title":"Graphs","description":"Materials related to basic graph algorithms and graph problems.\\n","slug":"/category/graphs","permalink":"/algorithms/category/graphs","navigation":{"previous":{"title":"On the rules of the red-black tree","permalink":"/algorithms/rb-trees/rules"},"next":{"title":"Iterative algorithms via iterators","permalink":"/algorithms/graphs/iterative-and-iterators"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9df0e937.88a0133a.js b/assets/js/9df0e937.88a0133a.js deleted file mode 100644 index 72d45cc..0000000 --- a/assets/js/9df0e937.88a0133a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2210],{5256:e=>{e.exports=JSON.parse('{"title":"Graphs","description":"Materials related to basic graph algorithms and graph problems.\\n","slug":"/category/graphs","permalink":"/algorithms/category/graphs","navigation":{"previous":{"title":"On the rules of the red-black tree","permalink":"/algorithms/rb-trees/rules"},"next":{"title":"Iterative algorithms via iterators","permalink":"/algorithms/graphs/iterative-and-iterators"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.8d46b922.js b/assets/js/9e4087bc.8d46b922.js deleted file mode 100644 index 3a987a9..0000000 --- a/assets/js/9e4087bc.8d46b922.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3608],{3169:(e,r,s)=>{s.r(r),s.d(r,{default:()=>o});s(7294);var t=s(9960),a=s(5999),i=s(833),n=s(8207),c=s(7955),l=s(5893);function h(e){let{year:r,posts:s}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Z,{as:"h3",id:r,children:r}),(0,l.jsx)("ul",{children:s.map((e=>(0,l.jsx)("li",{children:(0,l.jsxs)(t.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.title]})},e.metadata.date)))})]})}function d(e){let{years:r}=e;return(0,l.jsx)("section",{className:"margin-vert--lg",children:(0,l.jsx)("div",{className:"container",children:(0,l.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,l.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,l.jsx)(h,{...e})},r)))})})})}function o(e){let{archive:r}=e;const s=(0,a.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),t=(0,a.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),h=function(e){const r=e.reduce(((e,r)=>{const s=r.metadata.date.split("-")[0],t=e.get(s)??[];return e.set(s,[r,...t])}),new Map);return Array.from(r,(e=>{let[r,s]=e;return{year:r,posts:s}}))}(r.blogPosts);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.d,{title:s,description:t}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)(c.Z,{as:"h1",className:"hero__title",children:s}),(0,l.jsx)("p",{className:"hero__subtitle",children:t})]})}),(0,l.jsx)("main",{children:h.length>0&&(0,l.jsx)(d,{years:h})})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.b07604ed.js b/assets/js/9e4087bc.b07604ed.js new file mode 100644 index 0000000..69c46df --- /dev/null +++ b/assets/js/9e4087bc.b07604ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3608],{63169:(e,r,s)=>{s.r(r),s.d(r,{default:()=>o});s(67294);var t=s(39960),a=s(95999),i=s(10833),n=s(58207),c=s(92503),l=s(85893);function h(e){let{year:r,posts:s}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Z,{as:"h3",id:r,children:r}),(0,l.jsx)("ul",{children:s.map((e=>(0,l.jsx)("li",{children:(0,l.jsxs)(t.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.title]})},e.metadata.date)))})]})}function d(e){let{years:r}=e;return(0,l.jsx)("section",{className:"margin-vert--lg",children:(0,l.jsx)("div",{className:"container",children:(0,l.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,l.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,l.jsx)(h,{...e})},r)))})})})}function o(e){let{archive:r}=e;const s=(0,a.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),t=(0,a.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),h=function(e){const r=e.reduce(((e,r)=>{const s=r.metadata.date.split("-")[0],t=e.get(s)??[];return e.set(s,[r,...t])}),new Map);return Array.from(r,(e=>{let[r,s]=e;return{year:r,posts:s}}))}(r.blogPosts);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.d,{title:s,description:t}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)(c.Z,{as:"h1",className:"hero__title",children:s}),(0,l.jsx)("p",{className:"hero__subtitle",children:t})]})}),(0,l.jsx)("main",{children:h.length>0&&(0,l.jsx)(d,{years:h})})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/a082abd3.6458a62f.js b/assets/js/a082abd3.6458a62f.js new file mode 100644 index 0000000..877a932 --- /dev/null +++ b/assets/js/a082abd3.6458a62f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8786],{73276:a=>{a.exports=JSON.parse('{"label":"admin","permalink":"/blog/tags/admin","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/a082abd3.929adb6b.js b/assets/js/a082abd3.929adb6b.js deleted file mode 100644 index c6c0fc7..0000000 --- a/assets/js/a082abd3.929adb6b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8786],{3276:a=>{a.exports=JSON.parse('{"label":"admin","permalink":"/blog/tags/admin","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/a4c10cf4.38f4010f.js b/assets/js/a4c10cf4.38f4010f.js deleted file mode 100644 index 2202a09..0000000 --- a/assets/js/a4c10cf4.38f4010f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4382],{685:e=>{e.exports=JSON.parse('{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/a4c10cf4.e91bee7a.js b/assets/js/a4c10cf4.e91bee7a.js new file mode 100644 index 0000000..00e45e2 --- /dev/null +++ b/assets/js/a4c10cf4.e91bee7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4382],{30685:e=>{e.exports=JSON.parse('{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/a6a48ea2.7749d78c.js b/assets/js/a6a48ea2.7749d78c.js new file mode 100644 index 0000000..277262e --- /dev/null +++ b/assets/js/a6a48ea2.7749d78c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3618],{1176:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var n=o(85893),a=o(11151);const s={title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,d={permalink:"/blog/aoc-2022/2nd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md",source:"@site/blog/aoc-2022/02-week-2.md",title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15:00.000Z",formattedDate:"December 25, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:20.875,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"},nextItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},r={authorsImageUrls:[void 0]},c=[];function l(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the second week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>d,a:()=>i});var n=o(67294);const a={},s=n.createContext(a);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6a48ea2.b092defb.js b/assets/js/a6a48ea2.b092defb.js deleted file mode 100644 index 4f3e85f..0000000 --- a/assets/js/a6a48ea2.b092defb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3618],{1176:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var n=o(5893),a=o(1151);const s={title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,d={permalink:"/blog/aoc-2022/2nd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/02-week-2.md",source:"@site/blog/aoc-2022/02-week-2.md",title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15:00.000Z",formattedDate:"December 25, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:20.875,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"2nd week of Advent of Code '22 in Rust",description:"Surviving second week in Rust.",date:"2022-12-25T23:15",slug:"aoc-2022/2nd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"},nextItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},r={authorsImageUrls:[void 0]},c=[];function l(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the second week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>d,a:()=>i});var n=o(7294);const a={},s=n.createContext(a);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.75141289.js b/assets/js/a6aa9e1f.75141289.js new file mode 100644 index 0000000..fb672ac --- /dev/null +++ b/assets/js/a6aa9e1f.75141289.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3089],{80046:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(67294);var n=a(86010),i=a(52263),s=a(10833),r=a(35281),l=a(61460),o=a(99703),g=a(90197),d=a(79985),p=a(85893);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s.d,{title:o,description:n}),(0,p.jsx)(g.Z,{tag:"blog_posts_list"})]})}function m(e){const{metadata:t,items:a,sidebar:n}=e;return(0,p.jsxs)(l.Z,{sidebar:n,children:[(0,p.jsx)(d.Z,{items:a}),(0,p.jsx)(o.Z,{metadata:t})]})}function h(e){return(0,p.jsxs)(s.FG,{className:(0,n.Z)(r.k.wrapper.blogPages,r.k.page.blogListPage),children:[(0,p.jsx)(c,{...e}),(0,p.jsx)(m,{...e})]})}},99703:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(95999),i=a(32244),s=a(85893);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,s.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,s.jsx)(i.Z,{permalink:a,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,s.jsx)(i.Z,{permalink:r,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(9460),i=a(30390),s=a(85893);function r(e){let{items:t,component:a=i.Z}=e;return(0,s.jsx)(s.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,s.jsx)(n.n,{content:t,children:(0,s.jsx)(a,{children:(0,s.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.b6f92241.js b/assets/js/a6aa9e1f.b6f92241.js deleted file mode 100644 index c3309e7..0000000 --- a/assets/js/a6aa9e1f.b6f92241.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3089],{46:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(7294);var n=a(6010),i=a(2263),s=a(833),r=a(5281),l=a(1460),o=a(9703),g=a(197),d=a(9985),p=a(5893);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s.d,{title:o,description:n}),(0,p.jsx)(g.Z,{tag:"blog_posts_list"})]})}function m(e){const{metadata:t,items:a,sidebar:n}=e;return(0,p.jsxs)(l.Z,{sidebar:n,children:[(0,p.jsx)(d.Z,{items:a}),(0,p.jsx)(o.Z,{metadata:t})]})}function h(e){return(0,p.jsxs)(s.FG,{className:(0,n.Z)(r.k.wrapper.blogPages,r.k.page.blogListPage),children:[(0,p.jsx)(c,{...e}),(0,p.jsx)(m,{...e})]})}},9703:(e,t,a)=>{a.d(t,{Z:()=>r});a(7294);var n=a(5999),i=a(2244),s=a(5893);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,s.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,s.jsx)(i.Z,{permalink:a,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,s.jsx)(i.Z,{permalink:r,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},9985:(e,t,a)=>{a.d(t,{Z:()=>r});a(7294);var n=a(9460),i=a(390),s=a(5893);function r(e){let{items:t,component:a=i.Z}=e;return(0,s.jsx)(s.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,s.jsx)(n.n,{content:t,children:(0,s.jsx)(a,{children:(0,s.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); \ No newline at end of file diff --git a/assets/js/a7098721.33f429e4.js b/assets/js/a7098721.33f429e4.js new file mode 100644 index 0000000..3637de6 --- /dev/null +++ b/assets/js/a7098721.33f429e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1050],{26615:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":7,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/a7098721.ef506174.js b/assets/js/a7098721.ef506174.js deleted file mode 100644 index 1f7c58b..0000000 --- a/assets/js/a7098721.ef506174.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1050],{6615:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":7,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.69e4c2b5.js b/assets/js/a7bd4aaa.69e4c2b5.js new file mode 100644 index 0000000..8b86d9f --- /dev/null +++ b/assets/js/a7bd4aaa.69e4c2b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8518],{8564:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(67294);var r=s(10833),o=s(43320),t=s(74477),i=s(18790),c=s(90197),u=s(85893);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.Z,{version:e.version,tag:(0,o.os)(e.pluginId,e.version)}),(0,u.jsx)(r.d,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(r.FG,{className:e.className,children:(0,u.jsx)(t.q,{version:e,children:(0,i.H)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.9a546fe4.js b/assets/js/a7bd4aaa.9a546fe4.js deleted file mode 100644 index cce86a7..0000000 --- a/assets/js/a7bd4aaa.9a546fe4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8518],{8564:(n,e,s)=>{s.r(e),s.d(e,{default:()=>d});s(7294);var r=s(833),o=s(3320),t=s(4477),i=s(8790),c=s(197),u=s(5893);function a(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.Z,{version:e.version,tag:(0,o.os)(e.pluginId,e.version)}),(0,u.jsx)(r.d,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:e,route:s}=n;return(0,u.jsx)(r.FG,{className:e.className,children:(0,u.jsx)(t.q,{version:e,children:(0,i.H)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.5939a7a6.js b/assets/js/a94703ab.5939a7a6.js new file mode 100644 index 0000000..1122a36 --- /dev/null +++ b/assets/js/a94703ab.5939a7a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4368],{12674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(67294),o=n(86010),i=n(10833),s=n(35281),l=n(53438),r=n(1116),c=n(95999),d=n(12466),u=n(85936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(85893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(91442),x=n(16550),f=n(87524),j=n(86668),k=n(21327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("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"}),(0,b.jsx)("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 v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(59689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(86043),Z=n(48596),A=n(39960),L=n(72389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(13919),H=n(39471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(13102),X=n(93163);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({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,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var a=n(86010),o=n(95999),i=n(92503),s=n(85893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"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/a94703ab.c0114cbe.js b/assets/js/a94703ab.c0114cbe.js deleted file mode 100644 index cf66ef2..0000000 --- a/assets/js/a94703ab.c0114cbe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(6010),i=n(833),s=n(5281),l=n(3438),r=n(1116),c=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("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"}),(0,b.jsx)("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 v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),A=n(9960),L=n(2389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(3163);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({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,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(6010),o=n(5999),i=n(7955),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"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/aa24fd5d.a1be9355.js b/assets/js/aa24fd5d.a1be9355.js new file mode 100644 index 0000000..2cc7a2e --- /dev/null +++ b/assets/js/aa24fd5d.a1be9355.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7257],{90251:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>h,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=n(85893),i=n(11151);const r={id:"python",slug:"/hash-tables/breaking/python",title:"Breaking Python",description:"Actually getting the worst-case time complexity in Python.\n",tags:["cpp","python","hash-tables"],last_update:{date:new Date("2023-11-28T00:00:00.000Z")}},h=void 0,l={id:"hash-tables/2023-11-28-breaking/python",title:"Breaking Python",description:"Actually getting the worst-case time complexity in Python.\n",source:"@site/algorithms/12-hash-tables/2023-11-28-breaking/01-python.md",sourceDirName:"12-hash-tables/2023-11-28-breaking",slug:"/hash-tables/breaking/python",permalink:"/algorithms/hash-tables/breaking/python",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/12-hash-tables/2023-11-28-breaking/01-python.md",tags:[{label:"cpp",permalink:"/algorithms/tags/cpp"},{label:"python",permalink:"/algorithms/tags/python"},{label:"hash-tables",permalink:"/algorithms/tags/hash-tables"}],version:"current",lastUpdatedAt:1701129600,formattedLastUpdatedAt:"Nov 28, 2023",sidebarPosition:1,frontMatter:{id:"python",slug:"/hash-tables/breaking/python",title:"Breaking Python",description:"Actually getting the worst-case time complexity in Python.\n",tags:["cpp","python","hash-tables"],last_update:{date:"2023-11-28T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Breaking Hash Table",permalink:"/algorithms/hash-tables/breaking"},next:{title:"Possible Mitigations",permalink:"/algorithms/hash-tables/breaking/mitigations"}},a={},o=[{value:"Breaking the Hash Table in Python",id:"breaking-the-hash-table-in-python",level:2},{value:"Preparing the attack",id:"preparing-the-attack",level:2},{value:"Sequences",id:"sequences",level:3},{value:"Results",id:"results",level:2},{value:"Comparing with the tree",id:"comparing-with-the-tree",level:2},{value:"References",id:"references",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"breaking-the-hash-table-in-python",children:"Breaking the Hash Table in Python"}),"\n",(0,s.jsxs)(t.p,{children:["Our language of choice for bringing the worst out of the hash table is ",(0,s.jsx)(t.em,{children:"Python"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Let's start by talking about the hash function and why we've chosen Python for\nthis. Hash function for integers in Python is simply ",(0,s.jsx)(t.em,{children:"identity"}),", as you might've\nguessed, there's no avalanche effect. Another thing that helps us is the fact\nthat integers in Python are technically ",(0,s.jsx)(t.code,{children:"BigInt"}),"s",(0,s.jsx)(t.sup,{children:(0,s.jsx)(t.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),". This allows us to put bit\nmore pressure on the hashing function."]}),"\n",(0,s.jsxs)(t.p,{children:["From the perspective of the implementation, it is a hash table that uses probing\nto resolve conflicts. This also means that it's a contiguous space in memory.\nIndexing works like in the provided example above. When the hash table reaches\na ",(0,s.jsx)(t.em,{children:"breaking point"})," (defined somewhere in the C code), it reallocates the table\nand rehashes everything."]}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsx)(t.p,{children:"Resizing and rehashing can reduce the conflicts. That is coming from the fact\nthat the position in the table is determined by the hash and the size of the\ntable itself."})}),"\n",(0,s.jsx)(t.h2,{id:"preparing-the-attack",children:"Preparing the attack"}),"\n",(0,s.jsx)(t.p,{children:"Knowing the things above, it is not that hard to construct a method how to cause\nas many conflicts as possible. Let's go over it:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"We know that integers are hashed to themselves."}),"\n",(0,s.jsx)(t.li,{children:"We also know that from that hash we use only lower bits that are used as\nindices."}),"\n",(0,s.jsx)(t.li,{children:"We also know that there's a rehashing on resize that could possibly fix the\nconflicts."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"We will test with different sequences:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"ordered one, numbers through 1 to N"}),"\n",(0,s.jsx)(t.li,{children:"ordered one in a reversed order, numbers through N back to 1"}),"\n",(0,s.jsx)(t.li,{children:"numbers that are shifted to the left, so they create conflicts until resize"}),"\n",(0,s.jsx)(t.li,{children:"numbers that are shifted to the left, but resizing helps only in the end"}),"\n",(0,s.jsx)(t.li,{children:"numbers that are shifted to the left, but they won't be taken in account even\nafter final resize"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"For each of these sequences, we will insert 10\u2077 elements and look each of them\nup for 10 times in a row."}),"\n",(0,s.jsxs)(t.p,{children:["As a base of our benchmark, we will use a ",(0,s.jsx)(t.code,{children:"Strategy"})," class and then for each\nstrategy we will just implement the sequence of numbers that it uses:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:'class Strategy:\n def __init__(self, data_structure=set):\n self._table = data_structure()\n\n @cached_property\n def elements(self):\n raise NotImplementedError("Implement for each strategy")\n\n @property\n def name(self):\n raise NotImplementedError("Implement for each strategy")\n\n def run(self):\n print(f"\\nBenchmarking:\\t\\t{self.name}")\n\n # Extract the elements here, so that the evaluation of them does not\n # slow down the relevant part of benchmark\n elements = self.elements\n\n # Insertion phase\n start = monotonic_ns()\n for x in elements:\n self._table.add(x)\n after_insertion = monotonic_ns()\n\n print(f"Insertion phase:\\t{(after_insertion - start) / 1000000:.2f}ms")\n\n # Lookup phase\n start = monotonic_ns()\n for _ in range(LOOPS):\n for x in elements:\n assert x in self._table\n after_lookups = monotonic_ns()\n\n print(f"Lookup phase:\\t\\t{(after_lookups - start) / 1000000:.2f}ms")\n'})}),"\n",(0,s.jsx)(t.h3,{id:"sequences",children:"Sequences"}),"\n",(0,s.jsx)(t.p,{children:"Let's have a look at how we generate the numbers to be inserted:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["ordered sequence (ascending)","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:"x for x in range(N_ELEMENTS)\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["ordered sequence (descending)","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:"x for x in reversed(range(N_ELEMENTS))\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["progressive sequence that \u201cheals\u201d on resize","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:"(x << max(5, x.bit_length())) for x in range(N_ELEMENTS)\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["progressive sequence that \u201cheals\u201d in the end","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:"(x << max(5, x.bit_length())) for x in reversed(range(N_ELEMENTS))\n"})}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["conflicts everywhere","\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-py",children:"x << 32 for x in range(N_ELEMENTS)\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"results",children:"Results"}),"\n",(0,s.jsx)(t.p,{children:"Let's have a look at the obtained results after running the code:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Technique"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Insertion phase"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Lookup phase"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"ordered sequence (ascending)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"558.60ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"3304.26ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"ordered sequence (descending)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"554.08ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"3365.84ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"progressive sequence that \u201cheals\u201d on resize"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"3781.30ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"28565.71ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"progressive sequence that \u201cheals\u201d in the end"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"3280.38ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"26494.61ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"conflicts everywhere"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"4027.54ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"29132.92ms"})})]})]})]}),"\n",(0,s.jsx)(t.p,{children:"You can see a noticable \u201cjump\u201d in the time after switching to the \u201cprogressive\u201d\nsequence. The last sequence that has conflicts all the time has the worst time,\neven though it's rather comparable with the first progressive sequence with\nregards to the insertion phase."}),"\n",(0,s.jsxs)(t.p,{children:["If we were to compare the ",(0,s.jsx)(t.em,{children:"always conflicting"})," one with the first one, we can\nsee that insertion took over 7\xd7 longer and lookups almost 9\xd7 longer."]}),"\n",(0,s.jsxs)(t.p,{children:["You can have a look at the code ",(0,s.jsx)(t.a,{href:"path:///files/algorithms/hash-tables/breaking/benchmark.py",children:"here"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"comparing-with-the-tree",children:"Comparing with the tree"}),"\n",(0,s.jsxs)(t.admonition,{type:"danger",children:[(0,s.jsxs)(t.p,{children:["Source code can be found ",(0,s.jsx)(t.a,{href:"path:///files/algorithms/hash-tables/breaking/benchmark.cpp",children:"here"}),"."]}),(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"Viewer discretion advised."})})]}),"\n",(0,s.jsx)(t.p,{children:"Python doesn't have a tree structure for sets/maps implemented, therefore for\na comparison we will run a similar benchmark in C++. By running the same\nsequences on both hash table and tree (RB-tree) we will obtain the following\nresults:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Technique"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Insertion (hash)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Lookup (hash)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Insertion (tree)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Lookup (tree)"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"ordered (ascending)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"316ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"298ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"2098ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"5914ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"ordered (descending)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"259ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"315ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"1958ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"14747ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"progressive a)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"1152ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"6021ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"2581ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"16074ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"progressive b)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"1041ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"6096ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"2770ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"15986ms"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"conflicts"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"964ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"1633ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"2559ms"})}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:(0,s.jsx)(t.code,{children:"13285ms"})})]})]})]}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsx)(t.p,{children:"We can't forget that implementation details be involved. Hash function is still\nthe identity, to my knowledge."})}),"\n",(0,s.jsx)(t.p,{children:"One interesting thing to notice is the fact that the progressive sequences took\nthe most time in lookups (which is not same as in the Python)."}),"\n",(0,s.jsx)(t.p,{children:"Now, if we have a look at the tree implementation, we can notice two very\ndistinctive things:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Tree implementations are not affected by the input, therefore (except for the\nfirst sequence) we can see ",(0,s.jsx)(t.strong,{children:"very consistent"})," times."]}),"\n",(0,s.jsx)(t.li,{children:"Compared to the hash table the times are much higher and not very ideal."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"The reason for the 2nd point may not be very obvious. From the technical\nperspective it makes some sense. Let's dive into it!"}),"\n",(0,s.jsxs)(t.p,{children:["If we take a hash table, it is an array in a memory, therefore it is contiguous\npiece of memory. (For more information I'd suggest looking into the 1st blog\npost below in references section by ",(0,s.jsx)(t.em,{children:"Bjarne Stroustrup"}),")"]}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand, if we take a look at the tree, each node holds some\nattributes and pointers to the left and right descendants of itself. Even if we\nmaintain a reasonable height of the tree (keep the tree balanced), we still need\nto follow the pointers which point to the nodes ",(0,s.jsx)(t.em,{children:"somewhere"})," on the heap. When\ntraversing the tree, we get a consistent time complexity, but at the expense of\njumping between the nodes on the heap which takes some time."]}),"\n",(0,s.jsxs)(t.admonition,{type:"danger",children:[(0,s.jsx)(t.p,{children:"This is not supposed to leverage the hash table and try to persuade people not\nto use the tree representations. There are benefits coming from the respective\ndata structures, even if the time is not the best."}),(0,s.jsx)(t.p,{children:"Overall if we compare the worst-case time complexities of the tree and hash\ntable, tree representation comes off better."})]}),"\n",(0,s.jsx)(t.admonition,{title:"Challenge",type:"tip",children:(0,s.jsx)(t.p,{children:"Try to benchmark with the similar approach in the Rust. Since Rust uses\ndifferent hash function, it would be the best to just override the hash, this\nway you can also avoid the hard part of this attack (making up the numbers that\nwill collide)."})}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"references",children:"References"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Bjarne Stroustrup.\n",(0,s.jsx)(t.a,{href:"https://www.stroustrup.com/bs_faq.html#list",children:"Are lists evil?"})]}),"\n"]}),"\n",(0,s.jsxs)(t.section,{"data-footnotes":!0,className:"footnotes",children:[(0,s.jsx)(t.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{id:"user-content-fn-1",children:["\n",(0,s.jsxs)(t.p,{children:["Arbitrary-sized integers, they can get as big as your memory allows. ",(0,s.jsx)(t.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>h});var s=n(67294);const i={},r=s.createContext(i);function h(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab2721d4.6fad72ba.js b/assets/js/ab2721d4.6fad72ba.js new file mode 100644 index 0000000..a2e9eca --- /dev/null +++ b/assets/js/ab2721d4.6fad72ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7755],{53037:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=o(85893),a=o(11151);const r={title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,s={permalink:"/blog/aoc-2022/4th-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md",source:"@site/blog/aoc-2022/04-week-4.md",title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:15.175,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"How can Copr help with broken dependencies",permalink:"/blog/2023/08/02/copr"},nextItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"}},c={authorsImageUrls:[void 0]},d=[];function u(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the fourth week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(67294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab2721d4.f9b0a580.js b/assets/js/ab2721d4.f9b0a580.js deleted file mode 100644 index a463735..0000000 --- a/assets/js/ab2721d4.f9b0a580.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7755],{3037:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=o(5893),a=o(1151);const r={title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,s={permalink:"/blog/aoc-2022/4th-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/04-week-4.md",source:"@site/blog/aoc-2022/04-week-4.md",title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14:00.000Z",formattedDate:"July 7, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:15.175,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"4th week of Advent of Code '22 in Rust",description:"Surviving fourth week in Rust.",date:"2023-07-07T15:14",slug:"aoc-2022/4th-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"How can Copr help with broken dependencies",permalink:"/blog/2023/08/02/copr"},nextItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"}},c={authorsImageUrls:[void 0]},d=[];function u(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the fourth week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(7294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/af8b72a7.37a3aa6c.js b/assets/js/af8b72a7.37a3aa6c.js new file mode 100644 index 0000000..6b382d2 --- /dev/null +++ b/assets/js/af8b72a7.37a3aa6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5658],{10507:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(85893),a=o(11151);const r={title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:new Date("2023-08-02T00:00:00.000Z"),authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},i=void 0,s={permalink:"/blog/2023/08/02/copr",editUrl:"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md",source:"@site/blog/2023-08-02-copr.md",title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",formattedDate:"August 2, 2023",tags:[{label:"\ud83c\udfed",permalink:"/blog/tags/\ud83c\udfed"},{label:"red-hat",permalink:"/blog/tags/red-hat"},{label:"copr",permalink:"/blog/tags/copr"},{label:"admin",permalink:"/blog/tags/admin"},{label:"vps",permalink:"/blog/tags/vps"}],readingTime:3.44,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. your opinionated admin",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},unlisted:!1,nextItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"}},c={authorsImageUrls:[void 0]},p=[];function l(e){const t={p:"p",...(0,a.a)(),...e.components};return(0,n.jsx)(t.p,{children:"When you decide to run Fedora on your VPS, you might get screwed over by using\nrandom repositories\u2026"})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(67294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/af8b72a7.d04e29e3.js b/assets/js/af8b72a7.d04e29e3.js deleted file mode 100644 index 0a6c8cc..0000000 --- a/assets/js/af8b72a7.d04e29e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5658],{507:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(5893),a=o(1151);const r={title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:new Date("2023-08-02T00:00:00.000Z"),authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},i=void 0,s={permalink:"/blog/2023/08/02/copr",editUrl:"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md",source:"@site/blog/2023-08-02-copr.md",title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",formattedDate:"August 2, 2023",tags:[{label:"\ud83c\udfed",permalink:"/blog/tags/\ud83c\udfed"},{label:"red-hat",permalink:"/blog/tags/red-hat"},{label:"copr",permalink:"/blog/tags/copr"},{label:"admin",permalink:"/blog/tags/admin"},{label:"vps",permalink:"/blog/tags/vps"}],readingTime:3.44,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. your opinionated admin",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},unlisted:!1,nextItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"}},c={authorsImageUrls:[void 0]},p=[];function l(e){const t={p:"p",...(0,a.a)(),...e.components};return(0,n.jsx)(t.p,{children:"When you decide to run Fedora on your VPS, you might get screwed over by using\nrandom repositories\u2026"})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(7294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b1288602.9d3ae1e4.js b/assets/js/b1288602.9d3ae1e4.js new file mode 100644 index 0000000..7111fc5 --- /dev/null +++ b/assets/js/b1288602.9d3ae1e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[59],{51456:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var r=t(85893),s=t(11151);const o={title:"Submitting merge requests"},i="Submitting merge requests for review",a={id:"mr",title:"Submitting merge requests",description:"This tutorial aims to show you how to follow basic git workflow and submit changes",source:"@site/c/mr.md",sourceDirName:".",slug:"/mr",permalink:"/c/mr",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/mr.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{title:"Submitting merge requests"},sidebar:"autogeneratedBar",previous:{title:"Practice exam C",permalink:"/c/pexam/cams"}},c={},h=[{value:"Tutorial",id:"tutorial",level:2},{value:"Step #1 - Starting from the clean repository",id:"step-1---starting-from-the-clean-repository",level:3},{value:"Step #2 - Create new branch",id:"step-2---create-new-branch",level:3},{value:"Step #3 - Do the assignment",id:"step-3---do-the-assignment",level:3},{value:"Step #4 - Commit and upload the changes to GitLab",id:"step-4---commit-and-upload-the-changes-to-gitlab",level:3},{value:"Step #5 - Creating a merge request manually",id:"step-5---creating-a-merge-request-manually",level:3},{value:"Step #6 - Set assignees",id:"step-6---set-assignees",level:3},{value:"Step #7 - Return to default branch",id:"step-7---return-to-default-branch",level:3}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"submitting-merge-requests-for-review",children:"Submitting merge requests for review"}),"\n",(0,r.jsxs)(n.p,{children:["This tutorial aims to show you how to follow basic git workflow and submit changes\nthrough ",(0,r.jsx)(n.em,{children:"Merge Requests"})," for review."]}),"\n",(0,r.jsxs)(n.p,{children:["The rudimentary idea behind aims for changes to be present on a separate branch\nthat is supposedly ",(0,r.jsx)(n.em,{children:"merged"})," into the default branch. Till then changes can be reviewed\non ",(0,r.jsx)(n.em,{children:"Merge Request"})," and additional changes may be made based on the reviews. Once\nthe changes satisfy requirements, the merge request is merged."]}),"\n",(0,r.jsx)(n.h2,{id:"tutorial",children:"Tutorial"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Use this tutorial only for bonus assignments ",(0,r.jsx)(n.strong,{children:"made by your tutors"})," or in case\nyou need to make up for the absence."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-1---starting-from-the-clean-repository",children:"Step #1 - Starting from the clean repository"}),"\n",(0,r.jsxs)(n.p,{children:["In your repository (either locally or on aisa) type ",(0,r.jsx)(n.code,{children:"git status"})," and check if your\nrepository is clean and you are present on the main branch (",(0,r.jsx)(n.code,{children:"master"}),", ",(0,r.jsx)(n.code,{children:"main"})," or\n",(0,r.jsx)(n.code,{children:"trunk"}),"). If you do not know what your default branch is, it is probably ",(0,r.jsx)(n.code,{children:"master"}),"\nand you should not be on any other branch."]}),"\n",(0,r.jsx)(n.p,{children:"Output of the command should look like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git status\nOn branch master # Or main or trunk.\nYour branch is up to date with 'origin/master'.\n\nnothing to commit, working tree clean\n"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["In case you are on different branch or there are uncommitted changes,\n",(0,r.jsx)(n.strong,{children:"do not continue!!!"})," Clean your repository (commit the changes or discard\nthem), before you continue."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-2---create-new-branch",children:"Step #2 - Create new branch"}),"\n",(0,r.jsx)(n.p,{children:"In your repository write command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git checkout -b BRANCH\nSwitched to a new branch 'BRANCH'\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Instead of ",(0,r.jsx)(n.code,{children:"BRANCH"})," use some reasonable name for the branch. For example if you\nare working on the seminar from 3rd week, name the branch ",(0,r.jsx)(n.code,{children:"seminar-03"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"step-3---do-the-assignment",children:"Step #3 - Do the assignment"}),"\n",(0,r.jsx)(n.p,{children:"Download the skeleton for the seminar assignment, extract and program. For example\nif you are working on 3rd seminar, you can do so by:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ wget https://www.fi.muni.cz/pb071/seminars/seminar-03/pb071-seminar-03.zip\naisa$ unzip pb071-seminar-03.zip\n# Now you should have directory 'seminar-03'.\naisa$ rm pb071-seminar-03.zip\naisa$ cd seminar-03\n# You can work on the assignment.\n"})}),"\n",(0,r.jsx)(n.h3,{id:"step-4---commit-and-upload-the-changes-to-gitlab",children:"Step #4 - Commit and upload the changes to GitLab"}),"\n",(0,r.jsxs)(n.p,{children:["The same way you ",(0,r.jsx)(n.em,{children:"add"})," and ",(0,r.jsx)(n.em,{children:"commit"})," files for the homework assignments, you do for\nthe seminar."]}),"\n",(0,r.jsxs)(n.p,{children:["Now you can upload the changes to GitLab. ",(0,r.jsx)(n.code,{children:"git push"})," is not enough, since repository\non GitLab does not know your new branch. You can solve this by adding arguments:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git push origin BRANCH\n...\nremote: To create a merge request for BRANCH, visit:\nremote: https://gitlab.fi.muni.cz/login/pb071/merge_requests/new?merge_request%5Bsource_branch%5D=BRANCH\n...\n"})}),"\n",(0,r.jsx)(n.p,{children:"In the output you should have a link for creating a merge request. If you see this\nlink, open it and skip next step."}),"\n",(0,r.jsx)(n.h3,{id:"step-5---creating-a-merge-request-manually",children:"Step #5 - Creating a merge request manually"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Open your repository on GitLab."}),"\n",(0,r.jsxs)(n.li,{children:["On the left panel click on ",(0,r.jsx)(n.em,{children:"Merge Requests"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click on ",(0,r.jsx)(n.em,{children:"New Merge Request"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In ",(0,r.jsx)(n.em,{children:"Source branch"})," select ",(0,r.jsx)(n.code,{children:"login/pb071"})," and ",(0,r.jsx)(n.code,{children:"BRANCH"}),", which you created."]}),"\n",(0,r.jsxs)(n.li,{children:["In ",(0,r.jsx)(n.em,{children:"Target branch"})," select ",(0,r.jsx)(n.code,{children:"login/pb071"})," and your default branch you have seen\nin the output of the first command. (most likely ",(0,r.jsx)(n.code,{children:"master"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["Click on ",(0,r.jsx)(n.em,{children:"Compare branches and continue"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-6---set-assignees",children:"Step #6 - Set assignees"}),"\n",(0,r.jsxs)(n.p,{children:["On the page that is opened, please check at the top that you are creating merge\nrequest ",(0,r.jsx)(n.strong,{children:"from"})," your new branch ",(0,r.jsx)(n.strong,{children:"to"})," your default branch (one of ",(0,r.jsx)(n.code,{children:"master"}),", ",(0,r.jsx)(n.code,{children:"main"}),"\nor ",(0,r.jsx)(n.code,{children:"trunk"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:["Then in the field ",(0,r.jsx)(n.em,{children:"Assignees"})," set your tutors based on the seminar group. You can\nuse login for a quick look up."]}),"\n",(0,r.jsxs)(n.p,{children:["In the end click on ",(0,r.jsx)(n.em,{children:"Submit merge request"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"step-7---return-to-default-branch",children:"Step #7 - Return to default branch"}),"\n",(0,r.jsx)(n.p,{children:"Homework assignments can be submitted only from branches specified in the rules\nfor the course. Because of that, before you do anything else, you should switch\nback to your default branch."}),"\n",(0,r.jsxs)(n.p,{children:["First of all, same as in step #1, check that your repository is clean with ",(0,r.jsx)(n.code,{children:"git status"}),".\nFor the sake of safety, do not continue without clean repository. Then with command\n",(0,r.jsx)(n.code,{children:"git checkout BRANCH"})," switch to your default branch ",(0,r.jsx)(n.code,{children:"BRANCH"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["If you do not know which branch is your default, try ",(0,r.jsx)(n.code,{children:"git branch"})," that outputs all branches in your repository. Default branch is typically ",(0,r.jsx)(n.code,{children:"master"}),", but can\nbe ",(0,r.jsx)(n.code,{children:"main"})," or ",(0,r.jsx)(n.code,{children:"trunk"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git status\n# Check if repository is clean\n\n# If you know, what is your default branch, you can skip next command.\naisa$ git branch\n# Find the default branch in the list; should be one of the `master`, `main` or\n# `trunk` and you should not have more than one of those.\n# In case the list clears the terminal and you cannot see shell prompt, you can\n# press `q` to quit the pager.\n\naisa$ git checkout master\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:["Adapted from: ",(0,r.jsx)(n.a,{href:"https://www.fi.muni.cz/~xlacko1/pb071/mr.html",children:"https://www.fi.muni.cz/~xlacko1/pb071/mr.html"})]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>i});var r=t(67294);const s={},o=r.createContext(s);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b1288602.d1f59757.js b/assets/js/b1288602.d1f59757.js deleted file mode 100644 index bfe6374..0000000 --- a/assets/js/b1288602.d1f59757.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[59],{1456:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var r=t(5893),s=t(1151);const o={title:"Submitting merge requests"},i="Submitting merge requests for review",a={id:"mr",title:"Submitting merge requests",description:"This tutorial aims to show you how to follow basic git workflow and submit changes",source:"@site/c/mr.md",sourceDirName:".",slug:"/mr",permalink:"/c/mr",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/mr.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",frontMatter:{title:"Submitting merge requests"},sidebar:"autogeneratedBar",previous:{title:"Practice exam C",permalink:"/c/pexam/cams"}},c={},h=[{value:"Tutorial",id:"tutorial",level:2},{value:"Step #1 - Starting from the clean repository",id:"step-1---starting-from-the-clean-repository",level:3},{value:"Step #2 - Create new branch",id:"step-2---create-new-branch",level:3},{value:"Step #3 - Do the assignment",id:"step-3---do-the-assignment",level:3},{value:"Step #4 - Commit and upload the changes to GitLab",id:"step-4---commit-and-upload-the-changes-to-gitlab",level:3},{value:"Step #5 - Creating a merge request manually",id:"step-5---creating-a-merge-request-manually",level:3},{value:"Step #6 - Set assignees",id:"step-6---set-assignees",level:3},{value:"Step #7 - Return to default branch",id:"step-7---return-to-default-branch",level:3}];function l(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"submitting-merge-requests-for-review",children:"Submitting merge requests for review"}),"\n",(0,r.jsxs)(n.p,{children:["This tutorial aims to show you how to follow basic git workflow and submit changes\nthrough ",(0,r.jsx)(n.em,{children:"Merge Requests"})," for review."]}),"\n",(0,r.jsxs)(n.p,{children:["The rudimentary idea behind aims for changes to be present on a separate branch\nthat is supposedly ",(0,r.jsx)(n.em,{children:"merged"})," into the default branch. Till then changes can be reviewed\non ",(0,r.jsx)(n.em,{children:"Merge Request"})," and additional changes may be made based on the reviews. Once\nthe changes satisfy requirements, the merge request is merged."]}),"\n",(0,r.jsx)(n.h2,{id:"tutorial",children:"Tutorial"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Use this tutorial only for bonus assignments ",(0,r.jsx)(n.strong,{children:"made by your tutors"})," or in case\nyou need to make up for the absence."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-1---starting-from-the-clean-repository",children:"Step #1 - Starting from the clean repository"}),"\n",(0,r.jsxs)(n.p,{children:["In your repository (either locally or on aisa) type ",(0,r.jsx)(n.code,{children:"git status"})," and check if your\nrepository is clean and you are present on the main branch (",(0,r.jsx)(n.code,{children:"master"}),", ",(0,r.jsx)(n.code,{children:"main"})," or\n",(0,r.jsx)(n.code,{children:"trunk"}),"). If you do not know what your default branch is, it is probably ",(0,r.jsx)(n.code,{children:"master"}),"\nand you should not be on any other branch."]}),"\n",(0,r.jsx)(n.p,{children:"Output of the command should look like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git status\nOn branch master # Or main or trunk.\nYour branch is up to date with 'origin/master'.\n\nnothing to commit, working tree clean\n"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["In case you are on different branch or there are uncommitted changes,\n",(0,r.jsx)(n.strong,{children:"do not continue!!!"})," Clean your repository (commit the changes or discard\nthem), before you continue."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-2---create-new-branch",children:"Step #2 - Create new branch"}),"\n",(0,r.jsx)(n.p,{children:"In your repository write command:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git checkout -b BRANCH\nSwitched to a new branch 'BRANCH'\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Instead of ",(0,r.jsx)(n.code,{children:"BRANCH"})," use some reasonable name for the branch. For example if you\nare working on the seminar from 3rd week, name the branch ",(0,r.jsx)(n.code,{children:"seminar-03"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"step-3---do-the-assignment",children:"Step #3 - Do the assignment"}),"\n",(0,r.jsx)(n.p,{children:"Download the skeleton for the seminar assignment, extract and program. For example\nif you are working on 3rd seminar, you can do so by:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ wget https://www.fi.muni.cz/pb071/seminars/seminar-03/pb071-seminar-03.zip\naisa$ unzip pb071-seminar-03.zip\n# Now you should have directory 'seminar-03'.\naisa$ rm pb071-seminar-03.zip\naisa$ cd seminar-03\n# You can work on the assignment.\n"})}),"\n",(0,r.jsx)(n.h3,{id:"step-4---commit-and-upload-the-changes-to-gitlab",children:"Step #4 - Commit and upload the changes to GitLab"}),"\n",(0,r.jsxs)(n.p,{children:["The same way you ",(0,r.jsx)(n.em,{children:"add"})," and ",(0,r.jsx)(n.em,{children:"commit"})," files for the homework assignments, you do for\nthe seminar."]}),"\n",(0,r.jsxs)(n.p,{children:["Now you can upload the changes to GitLab. ",(0,r.jsx)(n.code,{children:"git push"})," is not enough, since repository\non GitLab does not know your new branch. You can solve this by adding arguments:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git push origin BRANCH\n...\nremote: To create a merge request for BRANCH, visit:\nremote: https://gitlab.fi.muni.cz/login/pb071/merge_requests/new?merge_request%5Bsource_branch%5D=BRANCH\n...\n"})}),"\n",(0,r.jsx)(n.p,{children:"In the output you should have a link for creating a merge request. If you see this\nlink, open it and skip next step."}),"\n",(0,r.jsx)(n.h3,{id:"step-5---creating-a-merge-request-manually",children:"Step #5 - Creating a merge request manually"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Open your repository on GitLab."}),"\n",(0,r.jsxs)(n.li,{children:["On the left panel click on ",(0,r.jsx)(n.em,{children:"Merge Requests"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click on ",(0,r.jsx)(n.em,{children:"New Merge Request"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In ",(0,r.jsx)(n.em,{children:"Source branch"})," select ",(0,r.jsx)(n.code,{children:"login/pb071"})," and ",(0,r.jsx)(n.code,{children:"BRANCH"}),", which you created."]}),"\n",(0,r.jsxs)(n.li,{children:["In ",(0,r.jsx)(n.em,{children:"Target branch"})," select ",(0,r.jsx)(n.code,{children:"login/pb071"})," and your default branch you have seen\nin the output of the first command. (most likely ",(0,r.jsx)(n.code,{children:"master"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["Click on ",(0,r.jsx)(n.em,{children:"Compare branches and continue"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"step-6---set-assignees",children:"Step #6 - Set assignees"}),"\n",(0,r.jsxs)(n.p,{children:["On the page that is opened, please check at the top that you are creating merge\nrequest ",(0,r.jsx)(n.strong,{children:"from"})," your new branch ",(0,r.jsx)(n.strong,{children:"to"})," your default branch (one of ",(0,r.jsx)(n.code,{children:"master"}),", ",(0,r.jsx)(n.code,{children:"main"}),"\nor ",(0,r.jsx)(n.code,{children:"trunk"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:["Then in the field ",(0,r.jsx)(n.em,{children:"Assignees"})," set your tutors based on the seminar group. You can\nuse login for a quick look up."]}),"\n",(0,r.jsxs)(n.p,{children:["In the end click on ",(0,r.jsx)(n.em,{children:"Submit merge request"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"step-7---return-to-default-branch",children:"Step #7 - Return to default branch"}),"\n",(0,r.jsx)(n.p,{children:"Homework assignments can be submitted only from branches specified in the rules\nfor the course. Because of that, before you do anything else, you should switch\nback to your default branch."}),"\n",(0,r.jsxs)(n.p,{children:["First of all, same as in step #1, check that your repository is clean with ",(0,r.jsx)(n.code,{children:"git status"}),".\nFor the sake of safety, do not continue without clean repository. Then with command\n",(0,r.jsx)(n.code,{children:"git checkout BRANCH"})," switch to your default branch ",(0,r.jsx)(n.code,{children:"BRANCH"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["If you do not know which branch is your default, try ",(0,r.jsx)(n.code,{children:"git branch"})," that outputs all branches in your repository. Default branch is typically ",(0,r.jsx)(n.code,{children:"master"}),", but can\nbe ",(0,r.jsx)(n.code,{children:"main"})," or ",(0,r.jsx)(n.code,{children:"trunk"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"aisa$ git status\n# Check if repository is clean\n\n# If you know, what is your default branch, you can skip next command.\naisa$ git branch\n# Find the default branch in the list; should be one of the `master`, `main` or\n# `trunk` and you should not have more than one of those.\n# In case the list clears the terminal and you cannot see shell prompt, you can\n# press `q` to quit the pager.\n\naisa$ git checkout master\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:["Adapted from: ",(0,r.jsx)(n.a,{href:"https://www.fi.muni.cz/~xlacko1/pb071/mr.html",children:"https://www.fi.muni.cz/~xlacko1/pb071/mr.html"})]})]})}function d(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>i});var r=t(7294);const s={},o=r.createContext(s);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b25fbc58.90e65bfc.js b/assets/js/b25fbc58.90e65bfc.js new file mode 100644 index 0000000..9c63b96 --- /dev/null +++ b/assets/js/b25fbc58.90e65bfc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9197],{75617:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/\ud83c\udfed","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b25fbc58.c6b468d1.js b/assets/js/b25fbc58.c6b468d1.js deleted file mode 100644 index 3c20c03..0000000 --- a/assets/js/b25fbc58.c6b468d1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9197],{5617:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/\ud83c\udfed","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b45dccf0.64c75733.js b/assets/js/b45dccf0.64c75733.js deleted file mode 100644 index 0e6d780..0000000 --- a/assets/js/b45dccf0.64c75733.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9679],{8296:s=>{s.exports=JSON.parse('{"label":"copr","permalink":"/blog/tags/copr","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/b45dccf0.7ab0cc2a.js b/assets/js/b45dccf0.7ab0cc2a.js new file mode 100644 index 0000000..698b2d4 --- /dev/null +++ b/assets/js/b45dccf0.7ab0cc2a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9679],{58296:s=>{s.exports=JSON.parse('{"label":"copr","permalink":"/blog/tags/copr","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/b5a32f14.68cedca8.js b/assets/js/b5a32f14.68cedca8.js new file mode 100644 index 0000000..6ff6609 --- /dev/null +++ b/assets/js/b5a32f14.68cedca8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2433],{31976:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var t=o(85893),r=o(11151);const s={title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:new Date("2023-08-02T00:00:00.000Z"),authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},a=void 0,i={permalink:"/blog/2023/08/02/copr",editUrl:"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md",source:"@site/blog/2023-08-02-copr.md",title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",formattedDate:"August 2, 2023",tags:[{label:"\ud83c\udfed",permalink:"/blog/tags/\ud83c\udfed"},{label:"red-hat",permalink:"/blog/tags/red-hat"},{label:"copr",permalink:"/blog/tags/copr"},{label:"admin",permalink:"/blog/tags/admin"},{label:"vps",permalink:"/blog/tags/vps"}],readingTime:3.44,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. your opinionated admin",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},unlisted:!1,nextItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"}},d={authorsImageUrls:[void 0]},l=[{value:"How does Copr repositories work?",id:"how-does-copr-repositories-work",level:2},{value:"My issue",id:"my-issue",level:2},{value:"How can Copr help?",id:"how-can-copr-help",level:2},{value:"Conclusion",id:"conclusion",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"When you decide to run Fedora on your VPS, you might get screwed over by using\nrandom repositories\u2026"}),"\n",(0,t.jsxs)(n.p,{children:["When I \u201creserved\u201d my VPS",(0,t.jsx)(n.sup,{children:(0,t.jsx)(n.a,{href:"#user-content-fn-1-d4045e",id:"user-content-fnref-1-d4045e","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," back in June '20, I slapped Fedora on it without\nthinking. I bet 99% of people would say that I'm crazy for doing such thing",(0,t.jsx)(n.sup,{children:(0,t.jsx)(n.a,{href:"#user-content-fn-2-d4045e",id:"user-content-fnref-2-d4045e","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),",\n",(0,t.jsx)(n.strong,{children:"BUT"})," I've been using Fedora on my PCs for some time already and it felt very\nstable and natural to just use, even for VPS."]}),"\n",(0,t.jsxs)(n.p,{children:["One of the first things I've done was setting up a mail server. You may guess\nwhat's the fun part about having a mail server\u2026 Yes, it's all the spam you\nreceive and only then you realize how much \u201ccrap\u201d gets filtered on free mail\nservices. To battle this problem I chose to use\n",(0,t.jsx)(n.a,{href:"https://github.com/rspamd/rspamd",children:"rspamd"})," that had CentOS support, but someone\nhad a ",(0,t.jsx)(n.a,{href:"https://copr.fedorainfracloud.org/",children:"Copr"})," repository that I used to\ninstall it."]}),"\n",(0,t.jsx)(n.h2,{id:"how-does-copr-repositories-work",children:"How does Copr repositories work?"}),"\n",(0,t.jsxs)(n.p,{children:["If you have ever used Ubuntu, you might be familiar with the concept since it is\nvery close to ",(0,t.jsx)(n.a,{href:"https://help.ubuntu.com/community/PPA",children:"PPAs"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"tl;dr of the whole process consists of"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"enabling the Copr repository, and"}),"\n",(0,t.jsx)(n.li,{children:"installing the desired package."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"So in shell you would do"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"# dnf copr enable \u2039copr-repository\u203a\n# dnf install \u2039package-from-the-repository\u203a\n"})}),"\n",(0,t.jsx)(n.p,{children:"And\u2026 that's it! Nothing else needed! Simple, right? And literally same process\nas you would do for the PPA."}),"\n",(0,t.jsx)(n.admonition,{title:"AUR",type:"tip",children:(0,t.jsx)(n.p,{children:"On the other hand, if you are familiar with the archLinux, you definitely know\nAUR and what it can do for you. Copr repository is pretty similar, but the\npackages are prebuilt in Copr and Copr repositories can carry the required\ndependencies for said packages, which simplifies the distribution, and can even\nhelp with installing singular packages (when you just need the dependency, not\neverything)."})}),"\n",(0,t.jsx)(n.h2,{id:"my-issue",children:"My issue"}),"\n",(0,t.jsx)(n.p,{children:"Now you might wonder how would I use it on my VPS. It's rather simple, once in\n6 months a new Fedora release comes out. And you need to upgrade to newer\nrelease\u2026 You don't need to do it right away and for such setup it probably isn't\neven recommended."}),"\n",(0,t.jsxs)(n.admonition,{type:"tip",children:[(0,t.jsx)(n.p,{children:"Fedora releases are supported for a year, i.e. they live 6 months till the next\nrelease and then another 6 months till another release."}),(0,t.jsxs)(n.p,{children:["Some people prefer to run one version \u201cbehind\u201d. If you ever decide to run it on\nyour home server or in a similar setup, it might be a pretty good idea to\nfollow. I'm using the \u201clatest greatest\u201d, cause why not ","\ud83d\ude04"]}),(0,t.jsx)(n.p,{children:"One way or another, you still need to bump the release every six months, unless\nyou'd bump 2 releases at once every year, which would be a decision, since, at\nleast I, cannot see any benefits in it\u2026 You don't go for \u201cstability\u201d, cause once\na year you switch to the latest release and then, before you bump, you use one\nyear old software, so you're not even using the latest."})]}),"\n",(0,t.jsx)(n.p,{children:"Fast-forward 2 years in the future, new Fedora release came out (October '22)\nand I was doing an upgrade. Dependencies of the rspamd have been updated and\nrspamd builds in Copr have failed and no one fixed it. Cool, so now I can\nupgrade, but can either ignore the dependencies or uninstall the rspamd\u2026"}),"\n",(0,t.jsx)(n.h2,{id:"how-can-copr-help",children:"How can Copr help?"}),"\n",(0,t.jsxs)(n.p,{children:["I have managed to find\n",(0,t.jsx)(n.a,{href:"https://github.com/rspamd/rspamd/blob/master/rpm/rspamd.spec",children:"specfile"})," for the\nrspamd package that they use for CentOS. There were some files apart from the\nspecfile, so I had to make an SRPM locally and then\u2026 I just uploaded the SRPM\nto the Copr to\n",(0,t.jsx)(n.a,{href:"https://copr.fedorainfracloud.org/coprs/mfocko/rspamd/build/5046567/",children:"build"}),"\nan RPM."]}),"\n",(0,t.jsx)(n.p,{children:"I have switched the previous Copr repository for rspamd with my own and happily\nproceeded with the upgrade."}),"\n",(0,t.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(n.p,{children:["Copr is heavily used for testing builds on the upstream with\n",(0,t.jsx)(n.a,{href:"https://packit.dev",children:"Packit"}),". However, as you can see, it is possible to use it\n",(0,t.jsx)(n.strong,{children:"very well"})," for packaging your own stuff and avoiding issues (such as the one\nI have described above), if need be."]}),"\n",(0,t.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,t.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{id:"user-content-fn-1-d4045e",children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://vpsfree.cz",children:"vpsFree.cz"})," ",(0,t.jsx)(n.a,{href:"#user-content-fnref-1-d4045e","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{id:"user-content-fn-2-d4045e",children:["\n",(0,t.jsxs)(n.p,{children:["Even though I've been running archLinux on some Raspberry Pi's and also\non one of my \u201chome servers\u201d, before getting the VPS. You could say I like\nto live on the edge\u2026 ",(0,t.jsx)(n.a,{href:"#user-content-fnref-2-d4045e","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},11151:(e,n,o)=>{o.d(n,{Z:()=>i,a:()=>a});var t=o(67294);const r={},s=t.createContext(r);function a(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b5a32f14.b3a3f1ca.js b/assets/js/b5a32f14.b3a3f1ca.js deleted file mode 100644 index fda5186..0000000 --- a/assets/js/b5a32f14.b3a3f1ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2433],{1976:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var t=o(5893),r=o(1151);const s={title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:new Date("2023-08-02T00:00:00.000Z"),authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},a=void 0,i={permalink:"/blog/2023/08/02/copr",editUrl:"https://github.com/mfocko/blog/tree/main/blog/2023-08-02-copr.md",source:"@site/blog/2023-08-02-copr.md",title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",formattedDate:"August 2, 2023",tags:[{label:"\ud83c\udfed",permalink:"/blog/tags/\ud83c\udfed"},{label:"red-hat",permalink:"/blog/tags/red-hat"},{label:"copr",permalink:"/blog/tags/copr"},{label:"admin",permalink:"/blog/tags/admin"},{label:"vps",permalink:"/blog/tags/vps"}],readingTime:3.44,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. your opinionated admin",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"How can Copr help with broken dependencies",description:"Copr comes to save you when maintainer doesn't care.",date:"2023-08-02T00:00:00.000Z",authors:[{key:"mf",title:"a.k.a. your opinionated admin"}],tags:["\ud83c\udfed","red-hat","copr","admin","vps"]},unlisted:!1,nextItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"}},d={authorsImageUrls:[void 0]},l=[{value:"How does Copr repositories work?",id:"how-does-copr-repositories-work",level:2},{value:"My issue",id:"my-issue",level:2},{value:"How can Copr help?",id:"how-can-copr-help",level:2},{value:"Conclusion",id:"conclusion",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"When you decide to run Fedora on your VPS, you might get screwed over by using\nrandom repositories\u2026"}),"\n",(0,t.jsxs)(n.p,{children:["When I \u201creserved\u201d my VPS",(0,t.jsx)(n.sup,{children:(0,t.jsx)(n.a,{href:"#user-content-fn-1-d4045e",id:"user-content-fnref-1-d4045e","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," back in June '20, I slapped Fedora on it without\nthinking. I bet 99% of people would say that I'm crazy for doing such thing",(0,t.jsx)(n.sup,{children:(0,t.jsx)(n.a,{href:"#user-content-fn-2-d4045e",id:"user-content-fnref-2-d4045e","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),",\n",(0,t.jsx)(n.strong,{children:"BUT"})," I've been using Fedora on my PCs for some time already and it felt very\nstable and natural to just use, even for VPS."]}),"\n",(0,t.jsxs)(n.p,{children:["One of the first things I've done was setting up a mail server. You may guess\nwhat's the fun part about having a mail server\u2026 Yes, it's all the spam you\nreceive and only then you realize how much \u201ccrap\u201d gets filtered on free mail\nservices. To battle this problem I chose to use\n",(0,t.jsx)(n.a,{href:"https://github.com/rspamd/rspamd",children:"rspamd"})," that had CentOS support, but someone\nhad a ",(0,t.jsx)(n.a,{href:"https://copr.fedorainfracloud.org/",children:"Copr"})," repository that I used to\ninstall it."]}),"\n",(0,t.jsx)(n.h2,{id:"how-does-copr-repositories-work",children:"How does Copr repositories work?"}),"\n",(0,t.jsxs)(n.p,{children:["If you have ever used Ubuntu, you might be familiar with the concept since it is\nvery close to ",(0,t.jsx)(n.a,{href:"https://help.ubuntu.com/community/PPA",children:"PPAs"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"tl;dr of the whole process consists of"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"enabling the Copr repository, and"}),"\n",(0,t.jsx)(n.li,{children:"installing the desired package."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"So in shell you would do"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"# dnf copr enable \u2039copr-repository\u203a\n# dnf install \u2039package-from-the-repository\u203a\n"})}),"\n",(0,t.jsx)(n.p,{children:"And\u2026 that's it! Nothing else needed! Simple, right? And literally same process\nas you would do for the PPA."}),"\n",(0,t.jsx)(n.admonition,{title:"AUR",type:"tip",children:(0,t.jsx)(n.p,{children:"On the other hand, if you are familiar with the archLinux, you definitely know\nAUR and what it can do for you. Copr repository is pretty similar, but the\npackages are prebuilt in Copr and Copr repositories can carry the required\ndependencies for said packages, which simplifies the distribution, and can even\nhelp with installing singular packages (when you just need the dependency, not\neverything)."})}),"\n",(0,t.jsx)(n.h2,{id:"my-issue",children:"My issue"}),"\n",(0,t.jsx)(n.p,{children:"Now you might wonder how would I use it on my VPS. It's rather simple, once in\n6 months a new Fedora release comes out. And you need to upgrade to newer\nrelease\u2026 You don't need to do it right away and for such setup it probably isn't\neven recommended."}),"\n",(0,t.jsxs)(n.admonition,{type:"tip",children:[(0,t.jsx)(n.p,{children:"Fedora releases are supported for a year, i.e. they live 6 months till the next\nrelease and then another 6 months till another release."}),(0,t.jsxs)(n.p,{children:["Some people prefer to run one version \u201cbehind\u201d. If you ever decide to run it on\nyour home server or in a similar setup, it might be a pretty good idea to\nfollow. I'm using the \u201clatest greatest\u201d, cause why not ","\ud83d\ude04"]}),(0,t.jsx)(n.p,{children:"One way or another, you still need to bump the release every six months, unless\nyou'd bump 2 releases at once every year, which would be a decision, since, at\nleast I, cannot see any benefits in it\u2026 You don't go for \u201cstability\u201d, cause once\na year you switch to the latest release and then, before you bump, you use one\nyear old software, so you're not even using the latest."})]}),"\n",(0,t.jsx)(n.p,{children:"Fast-forward 2 years in the future, new Fedora release came out (October '22)\nand I was doing an upgrade. Dependencies of the rspamd have been updated and\nrspamd builds in Copr have failed and no one fixed it. Cool, so now I can\nupgrade, but can either ignore the dependencies or uninstall the rspamd\u2026"}),"\n",(0,t.jsx)(n.h2,{id:"how-can-copr-help",children:"How can Copr help?"}),"\n",(0,t.jsxs)(n.p,{children:["I have managed to find\n",(0,t.jsx)(n.a,{href:"https://github.com/rspamd/rspamd/blob/master/rpm/rspamd.spec",children:"specfile"})," for the\nrspamd package that they use for CentOS. There were some files apart from the\nspecfile, so I had to make an SRPM locally and then\u2026 I just uploaded the SRPM\nto the Copr to\n",(0,t.jsx)(n.a,{href:"https://copr.fedorainfracloud.org/coprs/mfocko/rspamd/build/5046567/",children:"build"}),"\nan RPM."]}),"\n",(0,t.jsx)(n.p,{children:"I have switched the previous Copr repository for rspamd with my own and happily\nproceeded with the upgrade."}),"\n",(0,t.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,t.jsxs)(n.p,{children:["Copr is heavily used for testing builds on the upstream with\n",(0,t.jsx)(n.a,{href:"https://packit.dev",children:"Packit"}),". However, as you can see, it is possible to use it\n",(0,t.jsx)(n.strong,{children:"very well"})," for packaging your own stuff and avoiding issues (such as the one\nI have described above), if need be."]}),"\n",(0,t.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,t.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{id:"user-content-fn-1-d4045e",children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://vpsfree.cz",children:"vpsFree.cz"})," ",(0,t.jsx)(n.a,{href:"#user-content-fnref-1-d4045e","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{id:"user-content-fn-2-d4045e",children:["\n",(0,t.jsxs)(n.p,{children:["Even though I've been running archLinux on some Raspberry Pi's and also\non one of my \u201chome servers\u201d, before getting the VPS. You could say I like\nto live on the edge\u2026 ",(0,t.jsx)(n.a,{href:"#user-content-fnref-2-d4045e","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>i,a:()=>a});var t=o(7294);const r={},s=t.createContext(r);function a(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b8cbf382.9da8e17c.js b/assets/js/b8cbf382.9da8e17c.js deleted file mode 100644 index 68fb68d..0000000 --- a/assets/js/b8cbf382.9da8e17c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7438],{4632:e=>{e.exports=JSON.parse('{"label":"greedy","permalink":"/algorithms/tags/greedy","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/b8cbf382.b92ec171.js b/assets/js/b8cbf382.b92ec171.js new file mode 100644 index 0000000..0c69ef8 --- /dev/null +++ b/assets/js/b8cbf382.b92ec171.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7438],{74632:e=>{e.exports=JSON.parse('{"label":"greedy","permalink":"/algorithms/tags/greedy","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/b9f7f5c4.8dd00486.js b/assets/js/b9f7f5c4.8dd00486.js new file mode 100644 index 0000000..6991e68 --- /dev/null +++ b/assets/js/b9f7f5c4.8dd00486.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9179],{76699:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var o=i(85893),t=i(11151);const s={title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:new Date("2023-02-18T00:00:00.000Z")}},r=void 0,l={id:"environment",title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",source:"@site/cpp/environment.md",sourceDirName:".",slug:"/environment",permalink:"/cpp/environment",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/environment.md",tags:[],version:"current",lastUpdatedAt:1676678400,formattedLastUpdatedAt:"Feb 18, 2023",frontMatter:{title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:"2023-02-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Placeholders",permalink:"/cpp/exceptions-and-raii/placeholders"}},a={},c=[{value:"Required tools per OS",id:"required-tools-per-os",level:2},{value:"Windows",id:"windows",level:3},{value:"Linux",id:"linux",level:3},{value:"macOS",id:"macos",level:3},{value:"nix(OS)",id:"nixos",level:3},{value:"IDEs",id:"ides",level:2},{value:"git",id:"git",level:2},{value:"pre-commit (link)",id:"pre-commit-link",level:3},{value:"Testing",id:"testing",level:2},{value:"catch2",id:"catch2",level:3},{value:"Google Test",id:"google-test",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"required-tools-per-os",children:"Required tools per OS"}),"\n",(0,o.jsx)(n.h3,{id:"windows",children:"Windows"}),"\n",(0,o.jsxs)(n.p,{children:["Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then\nVSCode + SSH to ",(0,o.jsx)(n.em,{children:"aisa"})," might be the best option for you."]}),"\n",(0,o.jsxs)(n.admonition,{title:"VSCode @ aisa",type:"caution",children:[(0,o.jsx)(n.p,{children:"Be careful when using VSCode on aisa, most notably:"}),(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"VSCode can leave lingering processes running in the background that can \u201eeat\nup\u201c your quota for running processes.\nAFAIK UNIX team has implemented some periodic clean up of those."}),"\n",(0,o.jsx)(n.li,{children:"Disk quota can be also affected, because of the C/C++ extension toolkit that\nhas a cache for IntelliSense."}),"\n"]})]}),"\n",(0,o.jsxs)(n.p,{children:["Either of those will be linux distros, so jump to ",(0,o.jsx)(n.a,{href:"#linux",children:"next section"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"linux",children:"Linux"}),"\n",(0,o.jsx)(n.p,{children:"Majority (if not all) of the provided materials include makefile (contains absolute\npath, so in case of linting and compiling, you need to adjust to your needs). You\nbasically need following list of tools:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"gcc"})," - for compiling"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"clang-tidy"})," - for linting (depends on distribution, might be provided with\nclang itself or in separate package, e.g. ",(0,o.jsx)(n.code,{children:"clang-tools-extra"}),")"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"clang-format"})," - for your own sanity of keeping consistent formatting"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"make"})," - since you are provided makefiles and it might be quickest to set up"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"valgrind"})," - in case you manage to create memory errors in your code"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"In case of Fedora it is following set of packages:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-sh",children:"sudo dnf install -y clang clang-tools-extra valgrind gcc make\n# If you decide to use google test: add `gtest` or `llvm-googletest` for clang\n"})}),"\n",(0,o.jsx)(n.h3,{id:"macos",children:"macOS"}),"\n",(0,o.jsxs)(n.p,{children:["In case of macOS you should be able to find all of the packages in brew.sh, except\n",(0,o.jsx)(n.code,{children:"valgrind"}),", not sure if you can solve with podman/docker."]}),"\n",(0,o.jsx)(n.p,{children:"There is also an alterantive to homebrew, that is nixpkgs."}),"\n",(0,o.jsx)(n.h3,{id:"nixos",children:"nix(OS)"}),"\n",(0,o.jsx)(n.p,{children:"In case you run nixOS or linux distribution with nixpkgs or you use nixpkgs as a\nreplacement for homebrew on macOS. You should be fine with the following config:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-nix",children:'with import <nixpkgs> {};\nstdenv.mkDerivation {\n name = "cppenv";\n buildInputs = [\n clang-tools\n\n gnumake\n\n gmock # used for google test\n valgrind # not sure about macOS though\n ];\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"ides",children:"IDEs"}),"\n",(0,o.jsx)(n.p,{children:"Choice of the IDE is mostly up to you, you do not need to use IDE at all ;)"}),"\n",(0,o.jsx)(n.p,{children:"I would probably recommend VSCode + appropriate extension or CLion if you are used\nto the JetBrains IDEs."}),"\n",(0,o.jsx)(n.h2,{id:"git",children:"git"}),"\n",(0,o.jsxs)(n.p,{children:["I recommend you using some basic versioning for your code, even though you submit\nonly the sources on ",(0,o.jsx)(n.em,{children:"aisa"}),". There are specific reasons why I suggest it:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["if you build a ",(0,o.jsx)(n.em,{children:"commit, tag and submit"})," habit, you might be able to address\nsome of the smaller problems in your sources even before submission; more info\nin the ",(0,o.jsx)(n.a,{href:"#pre-commit",children:"pre-commit section"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["In case you are planning to use git branches for separating different\nassignments and/or merge requests I suggest you to keep specifications and\nskeletons on your default branch, since ",(0,o.jsx)(n.em,{children:"frag"})," on ",(0,o.jsx)(n.em,{children:"aisa"})," automatically downloads\neverything that is not present and by that can create conflicts when switching\nbranches."]}),"\n",(0,o.jsx)(n.admonition,{title:"Commit conventions",type:"tip",children:(0,o.jsx)(n.p,{children:"When creating smaller and well defined commits, you can more easily argue about\ncorrectness of your implementation and also identify bugs, since they are better\ncontained."})}),"\n",(0,o.jsxs)(n.p,{children:["Since frag creates a lot of support files (majority of them are dotfiles, i.e.\nhidden files), I recommend you to use following\n",(0,o.jsx)(n.a,{href:"pathname:///files/cpp/environment/gitignore",children:"gitignore"})," configuration that\nshould cover most of the scenarios."]}),"\n",(0,o.jsxs)(n.h3,{id:"pre-commit-link",children:["pre-commit (",(0,o.jsx)(n.a,{href:"https://pre-commit.com/",children:"link"}),")"]}),"\n",(0,o.jsx)(n.p,{children:'Pre-commit basically allows you to "check" your code before committing. It functions\nas a git hook, i.e. you want to make a commit, pre-commit checks it before-hand.'}),"\n",(0,o.jsx)(n.p,{children:"In case of C++ there are few use-cases:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"formatting"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"linting"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"building and/or running tests, in case you feel like masochist"}),"\n",(0,o.jsx)(n.p,{children:"However this might be a challenging task to implement, since most of the tasks\nare published from the beginning."}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"In case of formatting and linting, there are already existing hooks (there is a\nlist of supported ones on the page), but there is also an option for you setting\nit up yourself (it is just a matter of specifying command and files it should run\non)."}),"\n",(0,o.jsxs)(n.admonition,{title:"Formatting",type:"tip",children:[(0,o.jsxs)(n.p,{children:["For formatting you can the following ",(0,o.jsx)(n.a,{href:"https://github.com/pre-commit/mirrors-clang-format#using-clang-format-with-pre-commit",children:"git hook"}),"."]}),(0,o.jsxs)(n.p,{children:["This hook follows the formatting conventions defined by the ",(0,o.jsx)(n.code,{children:".clang-format"})," file\nthat is looked up recursively all the way to the root of the filesystem, therefore\nit is ideal to keep it in the root of the git repository."]}),(0,o.jsxs)(n.p,{children:["You can look up the different codestyles ",(0,o.jsx)(n.a,{href:"https://gitlab.fi.muni.cz/pb071/codestyles",children:"here"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,o.jsx)(n.p,{children:"I have tried 2 frameworks for testing, one of them will be probably showcased in\nlectures. If you have not picked one yet, you can take an inspiration from the\nfollowing."}),"\n",(0,o.jsx)(n.h3,{id:"catch2",children:"catch2"}),"\n",(0,o.jsx)(n.p,{children:"It is quite popular, only one header-file, also might be easier to set up."}),"\n",(0,o.jsxs)(n.p,{children:["Might feel slow to compile, this can be addressed by having one object file with\nprecompiled ",(0,o.jsx)(n.code,{children:"main"})," for tests, e.g."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-cpp",children:'/* File: catch_main.cpp\n * Compile it with: g++ $(CXXFLAGS) -c catch_main.cpp\n *\n * Once you have source file with tests, e.g. test_something.cpp, compile it in\n * a similar fashion: g++ $(CXXFLAGS) -c test_something.cpp $(LDLIBS)\n *\n * And link them together:\n * g++ catch_main.o test_something.o -o test_something\n *\n * Now you can run ./test_something and if you change it, you do not need to compile\n * the main again.\n */\n#define CATCH_CONFIG_MAIN\n#include "catch.hpp"\n'})}),"\n",(0,o.jsx)(n.h3,{id:"google-test",children:"Google Test"}),"\n",(0,o.jsxs)(n.p,{children:["It is faster compared to catch2, even if you do not precompile the ",(0,o.jsx)(n.code,{children:"main"}),". Might\nbe more complicated to set up, since there are multiple files (it is not one header\nfile). Not very user friendly on ",(0,o.jsx)(n.em,{children:"aisa"}),". However can be installed through package\nmanager."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},11151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var o=i(67294);const t={},s=o.createContext(t);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b9f7f5c4.f4a2a82e.js b/assets/js/b9f7f5c4.f4a2a82e.js deleted file mode 100644 index a7e2147..0000000 --- a/assets/js/b9f7f5c4.f4a2a82e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9179],{6699:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var o=i(5893),t=i(1151);const s={title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:new Date("2023-02-18T00:00:00.000Z")}},r=void 0,l={id:"environment",title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",source:"@site/cpp/environment.md",sourceDirName:".",slug:"/environment",permalink:"/cpp/environment",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/environment.md",tags:[],version:"current",lastUpdatedAt:1676678400,formattedLastUpdatedAt:"Feb 18, 2023",frontMatter:{title:"Environment",description:"Suggestions for setting up a local environment for C++ course.\n",last_update:{date:"2023-02-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Placeholders",permalink:"/cpp/exceptions-and-raii/placeholders"}},a={},c=[{value:"Required tools per OS",id:"required-tools-per-os",level:2},{value:"Windows",id:"windows",level:3},{value:"Linux",id:"linux",level:3},{value:"macOS",id:"macos",level:3},{value:"nix(OS)",id:"nixos",level:3},{value:"IDEs",id:"ides",level:2},{value:"git",id:"git",level:2},{value:"pre-commit (link)",id:"pre-commit-link",level:3},{value:"Testing",id:"testing",level:2},{value:"catch2",id:"catch2",level:3},{value:"Google Test",id:"google-test",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"required-tools-per-os",children:"Required tools per OS"}),"\n",(0,o.jsx)(n.h3,{id:"windows",children:"Windows"}),"\n",(0,o.jsxs)(n.p,{children:["Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then\nVSCode + SSH to ",(0,o.jsx)(n.em,{children:"aisa"})," might be the best option for you."]}),"\n",(0,o.jsxs)(n.admonition,{title:"VSCode @ aisa",type:"caution",children:[(0,o.jsx)(n.p,{children:"Be careful when using VSCode on aisa, most notably:"}),(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"VSCode can leave lingering processes running in the background that can \u201eeat\nup\u201c your quota for running processes.\nAFAIK UNIX team has implemented some periodic clean up of those."}),"\n",(0,o.jsx)(n.li,{children:"Disk quota can be also affected, because of the C/C++ extension toolkit that\nhas a cache for IntelliSense."}),"\n"]})]}),"\n",(0,o.jsxs)(n.p,{children:["Either of those will be linux distros, so jump to ",(0,o.jsx)(n.a,{href:"#linux",children:"next section"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"linux",children:"Linux"}),"\n",(0,o.jsx)(n.p,{children:"Majority (if not all) of the provided materials include makefile (contains absolute\npath, so in case of linting and compiling, you need to adjust to your needs). You\nbasically need following list of tools:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"gcc"})," - for compiling"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"clang-tidy"})," - for linting (depends on distribution, might be provided with\nclang itself or in separate package, e.g. ",(0,o.jsx)(n.code,{children:"clang-tools-extra"}),")"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"clang-format"})," - for your own sanity of keeping consistent formatting"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"make"})," - since you are provided makefiles and it might be quickest to set up"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"valgrind"})," - in case you manage to create memory errors in your code"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"In case of Fedora it is following set of packages:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-sh",children:"sudo dnf install -y clang clang-tools-extra valgrind gcc make\n# If you decide to use google test: add `gtest` or `llvm-googletest` for clang\n"})}),"\n",(0,o.jsx)(n.h3,{id:"macos",children:"macOS"}),"\n",(0,o.jsxs)(n.p,{children:["In case of macOS you should be able to find all of the packages in brew.sh, except\n",(0,o.jsx)(n.code,{children:"valgrind"}),", not sure if you can solve with podman/docker."]}),"\n",(0,o.jsx)(n.p,{children:"There is also an alterantive to homebrew, that is nixpkgs."}),"\n",(0,o.jsx)(n.h3,{id:"nixos",children:"nix(OS)"}),"\n",(0,o.jsx)(n.p,{children:"In case you run nixOS or linux distribution with nixpkgs or you use nixpkgs as a\nreplacement for homebrew on macOS. You should be fine with the following config:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-nix",children:'with import <nixpkgs> {};\nstdenv.mkDerivation {\n name = "cppenv";\n buildInputs = [\n clang-tools\n\n gnumake\n\n gmock # used for google test\n valgrind # not sure about macOS though\n ];\n}\n'})}),"\n",(0,o.jsx)(n.h2,{id:"ides",children:"IDEs"}),"\n",(0,o.jsx)(n.p,{children:"Choice of the IDE is mostly up to you, you do not need to use IDE at all ;)"}),"\n",(0,o.jsx)(n.p,{children:"I would probably recommend VSCode + appropriate extension or CLion if you are used\nto the JetBrains IDEs."}),"\n",(0,o.jsx)(n.h2,{id:"git",children:"git"}),"\n",(0,o.jsxs)(n.p,{children:["I recommend you using some basic versioning for your code, even though you submit\nonly the sources on ",(0,o.jsx)(n.em,{children:"aisa"}),". There are specific reasons why I suggest it:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["if you build a ",(0,o.jsx)(n.em,{children:"commit, tag and submit"})," habit, you might be able to address\nsome of the smaller problems in your sources even before submission; more info\nin the ",(0,o.jsx)(n.a,{href:"#pre-commit",children:"pre-commit section"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["In case you are planning to use git branches for separating different\nassignments and/or merge requests I suggest you to keep specifications and\nskeletons on your default branch, since ",(0,o.jsx)(n.em,{children:"frag"})," on ",(0,o.jsx)(n.em,{children:"aisa"})," automatically downloads\neverything that is not present and by that can create conflicts when switching\nbranches."]}),"\n",(0,o.jsx)(n.admonition,{title:"Commit conventions",type:"tip",children:(0,o.jsx)(n.p,{children:"When creating smaller and well defined commits, you can more easily argue about\ncorrectness of your implementation and also identify bugs, since they are better\ncontained."})}),"\n",(0,o.jsxs)(n.p,{children:["Since frag creates a lot of support files (majority of them are dotfiles, i.e.\nhidden files), I recommend you to use following\n",(0,o.jsx)(n.a,{href:"pathname:///files/cpp/environment/gitignore",children:"gitignore"})," configuration that\nshould cover most of the scenarios."]}),"\n",(0,o.jsxs)(n.h3,{id:"pre-commit-link",children:["pre-commit (",(0,o.jsx)(n.a,{href:"https://pre-commit.com/",children:"link"}),")"]}),"\n",(0,o.jsx)(n.p,{children:'Pre-commit basically allows you to "check" your code before committing. It functions\nas a git hook, i.e. you want to make a commit, pre-commit checks it before-hand.'}),"\n",(0,o.jsx)(n.p,{children:"In case of C++ there are few use-cases:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"formatting"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"linting"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"building and/or running tests, in case you feel like masochist"}),"\n",(0,o.jsx)(n.p,{children:"However this might be a challenging task to implement, since most of the tasks\nare published from the beginning."}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"In case of formatting and linting, there are already existing hooks (there is a\nlist of supported ones on the page), but there is also an option for you setting\nit up yourself (it is just a matter of specifying command and files it should run\non)."}),"\n",(0,o.jsxs)(n.admonition,{title:"Formatting",type:"tip",children:[(0,o.jsxs)(n.p,{children:["For formatting you can the following ",(0,o.jsx)(n.a,{href:"https://github.com/pre-commit/mirrors-clang-format#using-clang-format-with-pre-commit",children:"git hook"}),"."]}),(0,o.jsxs)(n.p,{children:["This hook follows the formatting conventions defined by the ",(0,o.jsx)(n.code,{children:".clang-format"})," file\nthat is looked up recursively all the way to the root of the filesystem, therefore\nit is ideal to keep it in the root of the git repository."]}),(0,o.jsxs)(n.p,{children:["You can look up the different codestyles ",(0,o.jsx)(n.a,{href:"https://gitlab.fi.muni.cz/pb071/codestyles",children:"here"}),"."]})]}),"\n",(0,o.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,o.jsx)(n.p,{children:"I have tried 2 frameworks for testing, one of them will be probably showcased in\nlectures. If you have not picked one yet, you can take an inspiration from the\nfollowing."}),"\n",(0,o.jsx)(n.h3,{id:"catch2",children:"catch2"}),"\n",(0,o.jsx)(n.p,{children:"It is quite popular, only one header-file, also might be easier to set up."}),"\n",(0,o.jsxs)(n.p,{children:["Might feel slow to compile, this can be addressed by having one object file with\nprecompiled ",(0,o.jsx)(n.code,{children:"main"})," for tests, e.g."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-cpp",children:'/* File: catch_main.cpp\n * Compile it with: g++ $(CXXFLAGS) -c catch_main.cpp\n *\n * Once you have source file with tests, e.g. test_something.cpp, compile it in\n * a similar fashion: g++ $(CXXFLAGS) -c test_something.cpp $(LDLIBS)\n *\n * And link them together:\n * g++ catch_main.o test_something.o -o test_something\n *\n * Now you can run ./test_something and if you change it, you do not need to compile\n * the main again.\n */\n#define CATCH_CONFIG_MAIN\n#include "catch.hpp"\n'})}),"\n",(0,o.jsx)(n.h3,{id:"google-test",children:"Google Test"}),"\n",(0,o.jsxs)(n.p,{children:["It is faster compared to catch2, even if you do not precompile the ",(0,o.jsx)(n.code,{children:"main"}),". Might\nbe more complicated to set up, since there are multiple files (it is not one header\nfile). Not very user friendly on ",(0,o.jsx)(n.em,{children:"aisa"}),". However can be installed through package\nmanager."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var o=i(7294);const t={},s=o.createContext(t);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb882650.6eee4002.js b/assets/js/bb882650.6eee4002.js new file mode 100644 index 0000000..20c9c36 --- /dev/null +++ b/assets/js/bb882650.6eee4002.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8091],{66765:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var n=o(85893),a=o(11151);const r={title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,s={permalink:"/blog/aoc-2022/3rd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md",source:"@site/blog/aoc-2022/03-week-3.md",title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:11.565,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"},nextItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"}},d={authorsImageUrls:[void 0]},c=[];function l(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the third week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(67294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb882650.7074971b.js b/assets/js/bb882650.7074971b.js deleted file mode 100644 index ecdc365..0000000 --- a/assets/js/bb882650.7074971b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8091],{6765:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var n=o(5893),a=o(1151);const r={title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},i=void 0,s={permalink:"/blog/aoc-2022/3rd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md",source:"@site/blog/aoc-2022/03-week-3.md",title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:11.565,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"},nextItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"}},d={authorsImageUrls:[void 0]},c=[];function l(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's go through the third week of [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"] in Rust."]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var n=o(7294);const a={},r=n.createContext(a);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb984793.0560af7f.js b/assets/js/bb984793.0560af7f.js new file mode 100644 index 0000000..bbff3b6 --- /dev/null +++ b/assets/js/bb984793.0560af7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6864],{82505:e=>{e.exports=JSON.parse('{"label":"karel","permalink":"/algorithms/tags/karel","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/bb984793.47b9211c.js b/assets/js/bb984793.47b9211c.js deleted file mode 100644 index 3a5a00a..0000000 --- a/assets/js/bb984793.47b9211c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6864],{2505:e=>{e.exports=JSON.parse('{"label":"karel","permalink":"/algorithms/tags/karel","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/bc0c9d90.22532279.js b/assets/js/bc0c9d90.22532279.js new file mode 100644 index 0000000..b9dbf1f --- /dev/null +++ b/assets/js/bc0c9d90.22532279.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[354],{50476:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>x,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var i=n(85893),s=n(11151);const r={id:"seminar-04",title:"4th seminar",description:"Robot in a maze.\n",last_update:{date:new Date("2023-03-13T00:00:00.000Z")}},l=void 0,d={id:"bonuses/seminar-04",title:"4th seminar",description:"Robot in a maze.\n",source:"@site/c/bonuses/04.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-04",permalink:"/c/bonuses/seminar-04",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/04.md",tags:[],version:"current",lastUpdatedAt:1678665600,formattedLastUpdatedAt:"Mar 13, 2023",frontMatter:{id:"seminar-04",title:"4th seminar",description:"Robot in a maze.\n",last_update:{date:"2023-03-13T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"3rd seminar",permalink:"/c/bonuses/seminar-03"},next:{title:"5th and 6th seminar",permalink:"/c/bonuses/seminar-05-06"}},h={},c=[{value:"Introduction",id:"introduction",level:2},{value:"Hard requirement",id:"hard-requirement",level:2},{value:"Example of run",id:"example-of-run",level:2},{value:"Bonus part",id:"bonus-part",level:2},{value:"Easter eggs",id:"easter-eggs",level:2},{value:"Submitting",id:"submitting",level:2}];function o(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsxs)(t.p,{children:["Deadline for the submission of the bonus is ",(0,i.jsx)(t.strong,{children:"March 23th 24:00"}),"."]})}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["In case you have any questions, feel free to reach out either by email, Discord\nor just by submitting an issue ",(0,i.jsx)(t.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/-/issues/new",children:"here"}),"."]})}),"\n",(0,i.jsx)(t.p,{children:"For this bonus you can get 3 K\u20a1 and another 0.5 K\u20a1 for the bonus part of it."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"pathname:///files/c/bonuses/04.tar.gz",children:"Source"})}),"\n",(0,i.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(t.p,{children:"In this task you are given a 2D map for a robot. The map contains multiple markers:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"^v<>"})," - which denote the directions the robot will be facing when he steps into\nthe cell or starts on it."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"K"})," - denotes the key."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"T"})," - denotes the treasure."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["In case robot lands at the beginning on unknown field, e.g. ",(0,i.jsx)(t.code,{children:"."})," in the tests, he\nfaces the direction that is given through the parameter."]}),"\n",(0,i.jsxs)(t.p,{children:["Your task is to write the ",(0,i.jsx)(t.code,{children:"walk"})," function that returns end result of the walk.\nWalk can end in multiple ways:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"FOUND_TREASURE"})," - when you find the treasure"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"FOUND_KEY"})," - when you find the key"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"OUT_OF_BOUNDS"})," - when the robot falls off the map"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"INFINITE_LOOP"})," - in case you will implement the bonus"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"NONE"})," - which is used right now as a default return in the skeleton, has no meaning\nlater on"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"hard-requirement",children:"Hard requirement"}),"\n",(0,i.jsx)(t.p,{children:"There is only one hard requirement that tests cannot check."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"You are not allowed to use any indexing related to map or your current position"}),"\n",(0,i.jsx)(t.strong,{children:"in your implementation."})]}),"\n",(0,i.jsx)(t.p,{children:"Reason for this requirement is for you to get used to working with pointers. And\nfor the implementation of this task it is much easier to use just the pointers."}),"\n",(0,i.jsx)(t.h2,{id:"example-of-run",children:"Example of run"}),"\n",(0,i.jsx)(t.p,{children:"For a better understanding of your task, I will describe a simple walk with corresponding\nfunction call."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-c",children:'const char *map = (\n ">.v"\n ".K<"\n "..."\n);\n\nwalk(map, &map[6], \'^\', 3, 3);\n'})}),"\n",(0,i.jsxs)(t.p,{children:["For this call, you should return ",(0,i.jsx)(t.code,{children:"FOUND_KEY"}),". Let us walk through the walk ;)"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Robot is placed at the bottom left corner, there is no direction specified, so\nhe follows the direction given by parameter (upwards, denoted as ",(0,i.jsx)(t.code,{children:"N"}),"(orth),\nso that we can differentiate markers on the map with the robot when using printing\nfunction)."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.K<\nN..\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves up:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\nNK<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Moves up (now covers ",(0,i.jsx)(t.code,{children:">"}),"), changes direction to right:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"E.v\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves to right:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">Ev\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves to right, faces south:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.S\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves down, faces west:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.KW\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Moves left, founds key, returns ",(0,i.jsx)(t.code,{children:"FOUND_KEY"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.W<\n...\n"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"bonus-part",children:"Bonus part"}),"\n",(0,i.jsxs)(t.p,{children:["For the bonus part you are supposed to return ",(0,i.jsx)(t.code,{children:"INFINITE_LOOP"})," in case the robot\nis stuck in the infinite loop. There are three tests for it. If you pass only the\neasy and medium one, you can get 0.25 K\u20a1 for doing your best and trying it out. :)"]}),"\n",(0,i.jsx)(t.h2,{id:"easter-eggs",children:"Easter eggs"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Statistics"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Language"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Files"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Lines"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Blanks"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Comments"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Code"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Complexity"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"C"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"458"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"34"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"58"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"366"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"test_maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"225"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"9"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"216"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"sol.maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"141"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"28"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"98"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"24"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"84"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"30"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"46"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"5"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"main.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"C Header"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"3"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"19"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"11"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"maze.h"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"3"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"19"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"11"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"CMake"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"25"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"CMakeLists.txt"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"25"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Total"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"516"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"41"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"83"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"392"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"35"})]})]})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Majority of the line count in solution is caused by the formatting :)"}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Included headers can be interpreted as hints, same goes for the unimplemented\n",(0,i.jsx)(t.code,{children:"static"})," functions which you can use, but ",(0,i.jsx)(t.strong,{children:"are not required"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Given ",(0,i.jsx)(t.code,{children:"CMakeLists.txt"})," will generate 2 binaries, ",(0,i.jsx)(t.code,{children:"test_maze"})," and ",(0,i.jsx)(t.code,{children:"maze"}),"."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"test_maze"})," runs the tests you are given."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"maze"})," runs the ",(0,i.jsx)(t.code,{children:"main.c"}),", where you can debug, print mazes and whatever else\nyou want."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["I keep only one copy of ",(0,i.jsx)(t.code,{children:"cut.h"})," in my repository, so you need to download it from\n",(0,i.jsx)(t.a,{href:"https://gitlab.fi.muni.cz/pb071/cut/-/jobs/159010/artifacts/file/1header/cut.h",children:"here"})," and place it into the directory where you have your source code."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Or you can use the one you have from the latest homework, git will keep it\nonly once, so it doesn't take up more space."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["I would recommend cloning this repository and copying the ",(0,i.jsx)(t.code,{children:"maze"})," directory to\nyour own repository, since there are multiple files and it may be easier for you."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,i.jsx)(t.h2,{id:"submitting",children:"Submitting"}),"\n",(0,i.jsx)(t.p,{children:"For submitting the bonus assignment you can follow the same procedure as for\nsubmitting the homeworks, that is:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["On branch ",(0,i.jsx)(t.code,{children:"main"})," add the provided skeleton."]}),"\n",(0,i.jsxs)(t.li,{children:["Checkout new branch ",(0,i.jsx)(t.code,{children:"seminar-bonus-04"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Add your solution to the newly created branch."}),"\n",(0,i.jsxs)(t.li,{children:["Create a MR to the ",(0,i.jsx)(t.code,{children:"main"})," branch with me (",(0,i.jsx)(t.code,{children:"@xfocko"}),") as the reviewer."]}),"\n"]})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>l});var i=n(67294);const s={},r=i.createContext(s);function l(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bc0c9d90.c62d230e.js b/assets/js/bc0c9d90.c62d230e.js deleted file mode 100644 index da4a2e0..0000000 --- a/assets/js/bc0c9d90.c62d230e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[354],{476:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>x,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var i=n(5893),s=n(1151);const r={id:"seminar-04",title:"4th seminar",description:"Robot in a maze.\n",last_update:{date:new Date("2023-03-13T00:00:00.000Z")}},l=void 0,d={id:"bonuses/seminar-04",title:"4th seminar",description:"Robot in a maze.\n",source:"@site/c/bonuses/04.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-04",permalink:"/c/bonuses/seminar-04",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/04.md",tags:[],version:"current",lastUpdatedAt:1678665600,formattedLastUpdatedAt:"Mar 13, 2023",frontMatter:{id:"seminar-04",title:"4th seminar",description:"Robot in a maze.\n",last_update:{date:"2023-03-13T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"3rd seminar",permalink:"/c/bonuses/seminar-03"},next:{title:"5th and 6th seminar",permalink:"/c/bonuses/seminar-05-06"}},h={},c=[{value:"Introduction",id:"introduction",level:2},{value:"Hard requirement",id:"hard-requirement",level:2},{value:"Example of run",id:"example-of-run",level:2},{value:"Bonus part",id:"bonus-part",level:2},{value:"Easter eggs",id:"easter-eggs",level:2},{value:"Submitting",id:"submitting",level:2}];function o(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsxs)(t.p,{children:["Deadline for the submission of the bonus is ",(0,i.jsx)(t.strong,{children:"March 23th 24:00"}),"."]})}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["In case you have any questions, feel free to reach out either by email, Discord\nor just by submitting an issue ",(0,i.jsx)(t.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/-/issues/new",children:"here"}),"."]})}),"\n",(0,i.jsx)(t.p,{children:"For this bonus you can get 3 K\u20a1 and another 0.5 K\u20a1 for the bonus part of it."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"pathname:///files/c/bonuses/04.tar.gz",children:"Source"})}),"\n",(0,i.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(t.p,{children:"In this task you are given a 2D map for a robot. The map contains multiple markers:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"^v<>"})," - which denote the directions the robot will be facing when he steps into\nthe cell or starts on it."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"K"})," - denotes the key."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"T"})," - denotes the treasure."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["In case robot lands at the beginning on unknown field, e.g. ",(0,i.jsx)(t.code,{children:"."})," in the tests, he\nfaces the direction that is given through the parameter."]}),"\n",(0,i.jsxs)(t.p,{children:["Your task is to write the ",(0,i.jsx)(t.code,{children:"walk"})," function that returns end result of the walk.\nWalk can end in multiple ways:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"FOUND_TREASURE"})," - when you find the treasure"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"FOUND_KEY"})," - when you find the key"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"OUT_OF_BOUNDS"})," - when the robot falls off the map"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"INFINITE_LOOP"})," - in case you will implement the bonus"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"NONE"})," - which is used right now as a default return in the skeleton, has no meaning\nlater on"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"hard-requirement",children:"Hard requirement"}),"\n",(0,i.jsx)(t.p,{children:"There is only one hard requirement that tests cannot check."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"You are not allowed to use any indexing related to map or your current position"}),"\n",(0,i.jsx)(t.strong,{children:"in your implementation."})]}),"\n",(0,i.jsx)(t.p,{children:"Reason for this requirement is for you to get used to working with pointers. And\nfor the implementation of this task it is much easier to use just the pointers."}),"\n",(0,i.jsx)(t.h2,{id:"example-of-run",children:"Example of run"}),"\n",(0,i.jsx)(t.p,{children:"For a better understanding of your task, I will describe a simple walk with corresponding\nfunction call."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-c",children:'const char *map = (\n ">.v"\n ".K<"\n "..."\n);\n\nwalk(map, &map[6], \'^\', 3, 3);\n'})}),"\n",(0,i.jsxs)(t.p,{children:["For this call, you should return ",(0,i.jsx)(t.code,{children:"FOUND_KEY"}),". Let us walk through the walk ;)"]}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Robot is placed at the bottom left corner, there is no direction specified, so\nhe follows the direction given by parameter (upwards, denoted as ",(0,i.jsx)(t.code,{children:"N"}),"(orth),\nso that we can differentiate markers on the map with the robot when using printing\nfunction)."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.K<\nN..\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves up:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\nNK<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Moves up (now covers ",(0,i.jsx)(t.code,{children:">"}),"), changes direction to right:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"E.v\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves to right:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">Ev\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves to right, faces south:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.S\n.K<\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Moves down, faces west:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.KW\n...\n"})}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Moves left, founds key, returns ",(0,i.jsx)(t.code,{children:"FOUND_KEY"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:">.v\n.W<\n...\n"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"bonus-part",children:"Bonus part"}),"\n",(0,i.jsxs)(t.p,{children:["For the bonus part you are supposed to return ",(0,i.jsx)(t.code,{children:"INFINITE_LOOP"})," in case the robot\nis stuck in the infinite loop. There are three tests for it. If you pass only the\neasy and medium one, you can get 0.25 K\u20a1 for doing your best and trying it out. :)"]}),"\n",(0,i.jsx)(t.h2,{id:"easter-eggs",children:"Easter eggs"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Statistics"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Language"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Files"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Lines"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Blanks"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Comments"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Code"}),(0,i.jsx)(t.th,{style:{textAlign:"right"},children:"Complexity"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"C"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"458"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"34"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"58"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"366"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"test_maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"225"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"9"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"216"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"sol.maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"141"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"28"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"98"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"24"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"maze.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"84"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"30"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"46"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"5"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"main.c"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"C Header"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"3"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"19"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"11"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"maze.h"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"33"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"3"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"19"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"11"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"0"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.em,{children:"CMake"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"25"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"CMakeLists.txt"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"}}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"25"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"15"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"2"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Total"})}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"6"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"516"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"41"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"83"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"392"}),(0,i.jsx)(t.td,{style:{textAlign:"right"},children:"35"})]})]})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Majority of the line count in solution is caused by the formatting :)"}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Included headers can be interpreted as hints, same goes for the unimplemented\n",(0,i.jsx)(t.code,{children:"static"})," functions which you can use, but ",(0,i.jsx)(t.strong,{children:"are not required"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Given ",(0,i.jsx)(t.code,{children:"CMakeLists.txt"})," will generate 2 binaries, ",(0,i.jsx)(t.code,{children:"test_maze"})," and ",(0,i.jsx)(t.code,{children:"maze"}),"."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"test_maze"})," runs the tests you are given."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"maze"})," runs the ",(0,i.jsx)(t.code,{children:"main.c"}),", where you can debug, print mazes and whatever else\nyou want."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["I keep only one copy of ",(0,i.jsx)(t.code,{children:"cut.h"})," in my repository, so you need to download it from\n",(0,i.jsx)(t.a,{href:"https://gitlab.fi.muni.cz/pb071/cut/-/jobs/159010/artifacts/file/1header/cut.h",children:"here"})," and place it into the directory where you have your source code."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Or you can use the one you have from the latest homework, git will keep it\nonly once, so it doesn't take up more space."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["I would recommend cloning this repository and copying the ",(0,i.jsx)(t.code,{children:"maze"})," directory to\nyour own repository, since there are multiple files and it may be easier for you."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,i.jsx)(t.h2,{id:"submitting",children:"Submitting"}),"\n",(0,i.jsx)(t.p,{children:"For submitting the bonus assignment you can follow the same procedure as for\nsubmitting the homeworks, that is:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["On branch ",(0,i.jsx)(t.code,{children:"main"})," add the provided skeleton."]}),"\n",(0,i.jsxs)(t.li,{children:["Checkout new branch ",(0,i.jsx)(t.code,{children:"seminar-bonus-04"}),"."]}),"\n",(0,i.jsx)(t.li,{children:"Add your solution to the newly created branch."}),"\n",(0,i.jsxs)(t.li,{children:["Create a MR to the ",(0,i.jsx)(t.code,{children:"main"})," branch with me (",(0,i.jsx)(t.code,{children:"@xfocko"}),") as the reviewer."]}),"\n"]})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>l});var i=n(7294);const s={},r=i.createContext(s);function l(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bc2d22bc.36b6ca38.js b/assets/js/bc2d22bc.36b6ca38.js new file mode 100644 index 0000000..6afecf5 --- /dev/null +++ b/assets/js/bc2d22bc.36b6ca38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6519],{70428:i=>{i.exports=JSON.parse('{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.48a7e2ee.js b/assets/js/c4f5d8e4.48a7e2ee.js deleted file mode 100644 index 53b1927..0000000 --- a/assets/js/c4f5d8e4.48a7e2ee.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4195],{3261:(e,t,s)=>{s.r(t),s.d(t,{default:()=>f});s(7294);var n=s(6010),i=s(2263),r=s(8207);const o={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var a=s(5893);const c=[{title:"About Me",description:(0,a.jsxs)("p",{children:["I'm working in Red Hat in the"," ",(0,a.jsx)("a",{href:"https://github.com/packit",children:"Packit team"})," and studying at"," ",(0,a.jsx)("a",{href:"https://fi.muni.cz",children:"FI MUNI"})," while also tutoring some courses there."]})},{title:"Content",description:(0,a.jsx)(a.Fragment,{children:"On this page you can find my blog or unofficial materials I have written over the course of teaching multiple courses at the FI."})},{title:"Mastodon",description:(0,a.jsxs)(a.Fragment,{children:["Feel free to contact me on any of the following Mastodon accounts:"," ",(0,a.jsx)("a",{rel:"me",href:"https://fosstodon.org/@m4tt_314",children:"Fosstodon"})," ","or"," ",(0,a.jsx)("a",{rel:"me",href:"https://hachyderm.io/@m4tt_314",children:"Hachyderm.io"})]})}];function l(e){let{title:t,description:s}=e;return(0,a.jsx)("div",{className:(0,n.Z)("col col--4"),children:(0,a.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,a.jsx)("h3",{children:t}),(0,a.jsx)("p",{children:s})]})})}function h(){return(0,a.jsx)("section",{className:o.features,children:(0,a.jsx)("div",{className:"container",children:(0,a.jsx)("div",{className:"row",children:c.map(((e,t)=>(0,a.jsx)(l,{...e},t)))})})})}const d={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function u(){const{siteConfig:e}=(0,i.Z)();return(0,a.jsx)("header",{className:(0,n.Z)("hero hero--primary",d.heroBanner),children:(0,a.jsxs)("div",{className:"container",children:[(0,a.jsx)("h1",{className:"hero__title",children:e.title}),(0,a.jsx)("p",{className:"hero__subtitle",children:e.tagline})]})})}function f(){const{siteConfig:e}=(0,i.Z)();return(0,a.jsxs)(r.Z,{title:`${e.title}`,description:"mf's blog and additional materials for courses at \u03c6",children:[(0,a.jsx)(u,{}),(0,a.jsx)("main",{children:(0,a.jsx)(h,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.5d3c1d6d.js b/assets/js/c4f5d8e4.5d3c1d6d.js new file mode 100644 index 0000000..482fbb7 --- /dev/null +++ b/assets/js/c4f5d8e4.5d3c1d6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4195],{53261:(e,t,s)=>{s.r(t),s.d(t,{default:()=>f});s(67294);var n=s(86010),i=s(52263),r=s(58207);const o={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var a=s(85893);const c=[{title:"About Me",description:(0,a.jsxs)("p",{children:["I'm working in Red Hat in the"," ",(0,a.jsx)("a",{href:"https://github.com/packit",children:"Packit team"})," and studying at"," ",(0,a.jsx)("a",{href:"https://fi.muni.cz",children:"FI MUNI"})," while also tutoring some courses there."]})},{title:"Content",description:(0,a.jsx)(a.Fragment,{children:"On this page you can find my blog or unofficial materials I have written over the course of teaching multiple courses at the FI."})},{title:"Mastodon",description:(0,a.jsxs)(a.Fragment,{children:["Feel free to contact me on any of the following Mastodon accounts:"," ",(0,a.jsx)("a",{rel:"me",href:"https://fosstodon.org/@m4tt_314",children:"Fosstodon"})," ","or"," ",(0,a.jsx)("a",{rel:"me",href:"https://hachyderm.io/@m4tt_314",children:"Hachyderm.io"})]})}];function l(e){let{title:t,description:s}=e;return(0,a.jsx)("div",{className:(0,n.Z)("col col--4"),children:(0,a.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,a.jsx)("h3",{children:t}),(0,a.jsx)("p",{children:s})]})})}function h(){return(0,a.jsx)("section",{className:o.features,children:(0,a.jsx)("div",{className:"container",children:(0,a.jsx)("div",{className:"row",children:c.map(((e,t)=>(0,a.jsx)(l,{...e},t)))})})})}const d={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function u(){const{siteConfig:e}=(0,i.Z)();return(0,a.jsx)("header",{className:(0,n.Z)("hero hero--primary",d.heroBanner),children:(0,a.jsxs)("div",{className:"container",children:[(0,a.jsx)("h1",{className:"hero__title",children:e.title}),(0,a.jsx)("p",{className:"hero__subtitle",children:e.tagline})]})})}function f(){const{siteConfig:e}=(0,i.Z)();return(0,a.jsxs)(r.Z,{title:`${e.title}`,description:"mf's blog and additional materials for courses at \u03c6",children:[(0,a.jsx)(u,{}),(0,a.jsx)("main",{children:(0,a.jsx)(h,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c580b66a.3684c421.js b/assets/js/c580b66a.3684c421.js deleted file mode 100644 index 5547616..0000000 --- a/assets/js/c580b66a.3684c421.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6573],{5021:i=>{i.exports=JSON.parse('{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/c580b66a.53c3dc84.js b/assets/js/c580b66a.53c3dc84.js new file mode 100644 index 0000000..72aee78 --- /dev/null +++ b/assets/js/c580b66a.53c3dc84.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6573],{45021:i=>{i.exports=JSON.parse('{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.5d9478a4.js b/assets/js/ccc49370.5d9478a4.js deleted file mode 100644 index 004a99f..0000000 --- a/assets/js/ccc49370.5d9478a4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6103],{5203:(e,n,t)=>{t.r(n),t.d(n,{default:()=>p});t(7294);var i=t(6010),a=t(833),s=t(5281),o=t(9460),l=t(1460),r=t(390),c=t(5999),d=t(2244),u=t(5893);function m(e){const{nextItem:n,prevItem:t}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[t&&(0,u.jsx)(d.Z,{...t,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),n&&(0,u.jsx)(d.Z,{...n,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:n}=(0,o.C)(),{title:t,description:i,date:s,tags:l,authors:r,frontMatter:c}=n,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.d,{title:t,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:s}),r.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:r.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var f=t(9407),h=t(2212);function v(e){let{sidebar:n,children:t}=e;const{metadata:i,toc:a}=(0,o.C)(),{nextItem:s,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:v,toc_min_heading_level:p,toc_max_heading_level:x}=d;return(0,u.jsxs)(l.Z,{sidebar:n,toc:!v&&a.length>0?(0,u.jsx)(f.Z,{toc:a,minHeadingLevel:p,maxHeadingLevel:x}):void 0,children:[g&&(0,u.jsx)(h.Z,{}),(0,u.jsx)(r.Z,{children:t}),(s||c)&&(0,u.jsx)(m,{nextItem:s,prevItem:c})]})}function p(e){const n=e.content;return(0,u.jsx)(o.n,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.FG,{className:(0,i.Z)(s.k.wrapper.blogPages,s.k.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(v,{sidebar:e.sidebar,children:(0,u.jsx)(n,{})})]})})}},9407:(e,n,t)=>{t.d(n,{Z:()=>c});t(7294);var i=t(6010),a=t(3743);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var o=t(5893);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,o.jsx)("div",{className:(0,i.Z)(s.tableOfContents,"thin-scrollbar",n),children:(0,o.jsx)(a.Z,{...t,linkClassName:l,linkActiveClassName:r})})}},3743:(e,n,t)=>{t.d(n,{Z:()=>h});var i=t(7294),a=t(6668);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const i=t.slice(2,e.level);e.parentIndex=Math.max(...i),t[e.level]=n}));const i=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):i.push(a)})),i}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:i});return function(e){return e.level>=t&&e.level<=i}(e)?[{...e,children:n}]:n}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const i=e.find((e=>l(e).top>=t));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.L)();return(0,i.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,i.useRef)(void 0),t=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:s,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),l=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const i=[];for(let a=n;a<=t;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:s,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var u=t(9960),m=t(5893);function g(e){let{toc:n,className:t,linkClassName:i,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:t,linkClassName:i})]},e.id)))}):null}const f=i.memo(g);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const h=(0,a.L)(),v=c??h.tableOfContents.minHeadingLevel,p=u??h.tableOfContents.maxHeadingLevel,x=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>o({toc:s(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:v,maxHeadingLevel:p});return d((0,i.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:v,maxHeadingLevel:p}}),[l,r,v,p])),(0,m.jsx)(f,{toc:x,className:t,linkClassName:l,...g})}},2212:(e,n,t)=>{t.d(n,{Z:()=>g});t(7294);var i=t(6010),a=t(5999),s=t(5742),o=t(5893);function l(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,o.jsx)(s.Z,{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),u=t(9047);function m(e){let{className:n}=e;return(0,o.jsx)(u.Z,{type:"caution",title:(0,o.jsx)(l,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,o.jsx)(r,{})})}function g(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c,{}),(0,o.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.92d892f3.js b/assets/js/ccc49370.92d892f3.js new file mode 100644 index 0000000..a12129e --- /dev/null +++ b/assets/js/ccc49370.92d892f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6103],{65203:(e,n,t)=>{t.r(n),t.d(n,{default:()=>p});t(67294);var i=t(86010),a=t(10833),s=t(35281),o=t(9460),l=t(61460),r=t(30390),c=t(95999),d=t(32244),u=t(85893);function m(e){const{nextItem:n,prevItem:t}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[t&&(0,u.jsx)(d.Z,{...t,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),n&&(0,u.jsx)(d.Z,{...n,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:n}=(0,o.C)(),{title:t,description:i,date:s,tags:l,authors:r,frontMatter:c}=n,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.d,{title:t,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:s}),r.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:r.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var f=t(39407),h=t(22212);function v(e){let{sidebar:n,children:t}=e;const{metadata:i,toc:a}=(0,o.C)(),{nextItem:s,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:v,toc_min_heading_level:p,toc_max_heading_level:x}=d;return(0,u.jsxs)(l.Z,{sidebar:n,toc:!v&&a.length>0?(0,u.jsx)(f.Z,{toc:a,minHeadingLevel:p,maxHeadingLevel:x}):void 0,children:[g&&(0,u.jsx)(h.Z,{}),(0,u.jsx)(r.Z,{children:t}),(s||c)&&(0,u.jsx)(m,{nextItem:s,prevItem:c})]})}function p(e){const n=e.content;return(0,u.jsx)(o.n,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.FG,{className:(0,i.Z)(s.k.wrapper.blogPages,s.k.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(v,{sidebar:e.sidebar,children:(0,u.jsx)(n,{})})]})})}},39407:(e,n,t)=>{t.d(n,{Z:()=>c});t(67294);var i=t(86010),a=t(93743);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var o=t(85893);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,o.jsx)("div",{className:(0,i.Z)(s.tableOfContents,"thin-scrollbar",n),children:(0,o.jsx)(a.Z,{...t,linkClassName:l,linkActiveClassName:r})})}},93743:(e,n,t)=>{t.d(n,{Z:()=>h});var i=t(67294),a=t(86668);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const i=t.slice(2,e.level);e.parentIndex=Math.max(...i),t[e.level]=n}));const i=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):i.push(a)})),i}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:i});return function(e){return e.level>=t&&e.level<=i}(e)?[{...e,children:n}]:n}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const i=e.find((e=>l(e).top>=t));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.L)();return(0,i.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,i.useRef)(void 0),t=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:s,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),l=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const i=[];for(let a=n;a<=t;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:s,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var u=t(39960),m=t(85893);function g(e){let{toc:n,className:t,linkClassName:i,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:t,linkClassName:i})]},e.id)))}):null}const f=i.memo(g);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const h=(0,a.L)(),v=c??h.tableOfContents.minHeadingLevel,p=u??h.tableOfContents.maxHeadingLevel,x=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>o({toc:s(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:v,maxHeadingLevel:p});return d((0,i.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:v,maxHeadingLevel:p}}),[l,r,v,p])),(0,m.jsx)(f,{toc:x,className:t,linkClassName:l,...g})}},22212:(e,n,t)=>{t.d(n,{Z:()=>g});t(67294);var i=t(86010),a=t(95999),s=t(35742),o=t(85893);function l(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,o.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,o.jsx)(s.Z,{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(35281),u=t(59047);function m(e){let{className:n}=e;return(0,o.jsx)(u.Z,{type:"caution",title:(0,o.jsx)(l,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,o.jsx)(r,{})})}function g(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c,{}),(0,o.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/cfa2b263.19f0e411.js b/assets/js/cfa2b263.19f0e411.js deleted file mode 100644 index 0819780..0000000 --- a/assets/js/cfa2b263.19f0e411.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3086],{4437:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var i=n(5893),a=n(1151);const o={title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},r=void 0,s={permalink:"/blog/leetcode/sort-diagonally",editUrl:"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md",source:"@site/blog/leetcode/sort-matrix-diagonally.md",title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15:00.000Z",formattedDate:"March 4, 2023",tags:[{label:"cpp",permalink:"/blog/tags/cpp"},{label:"leetcode",permalink:"/blog/tags/leetcode"},{label:"iterators",permalink:"/blog/tags/iterators"}],readingTime:16.99,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"},nextItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"}},l={authorsImageUrls:[void 0]},d=[{value:"Problem description",id:"problem-description",level:2},{value:"Example",id:"example",level:3},{value:"Skeleton and initial adjustments",id:"skeleton-and-initial-adjustments",level:2},{value:"Na\xefve solution",id:"na\xefve-solution",level:2},{value:"Implementing the <code>diagonals</code>",id:"implementing-the-diagonals",level:2},{value:"Iterating over diagonals",id:"iterating-over-diagonals",level:3},{value:"Implementing the iterator over diagonals",id:"implementing-the-iterator-over-diagonals",level:3},{value:"Implementing the <code>diagonal</code> itself",id:"implementing-the-diagonal-itself",level:2},{value:"Implementing <code>diagonal_iter</code>",id:"implementing-diagonal_iter",level:3}];function c(e){const t={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Let's try to solve one of the LeetCode challenges in easy and hard mode at the\nsame time."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Link to the problem: ",(0,i.jsx)(t.a,{href:"https://leetcode.com/problems/sort-the-matrix-diagonally/",children:"https://leetcode.com/problems/sort-the-matrix-diagonally/"})]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"problem-description",children:"Problem description"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.strong,{children:"matrix diagonal"})," is a diagonal line of cells starting from some cell in\neither the topmost row or leftmost column and going in the bottom-right direction\nuntil reaching the matrix's end. For example, the ",(0,i.jsx)(t.strong,{children:"matrix diagonal"})," starting\nfrom ",(0,i.jsx)(t.code,{children:"mat[2][0]"}),", where ",(0,i.jsx)(t.code,{children:"mat"})," is a ",(0,i.jsx)(t.code,{children:"6 x 3"})," matrix, includes cells ",(0,i.jsx)(t.code,{children:"mat[2][0]"}),",\n",(0,i.jsx)(t.code,{children:"mat[3][1]"}),", and ",(0,i.jsx)(t.code,{children:"mat[4][2]"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Given an ",(0,i.jsx)(t.code,{children:"m x n"})," matrix ",(0,i.jsx)(t.code,{children:"mat"})," of integers, sort each matrix diagonal in ascending\norder and return the resulting matrix."]}),"\n",(0,i.jsx)(t.h3,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:"https://assets.leetcode.com/uploads/2020/01/21/1482_example_1_2.png",alt:"Image describing the problem"})}),"\n",(0,i.jsx)(t.h2,{id:"skeleton-and-initial-adjustments",children:"Skeleton and initial adjustments"}),"\n",(0,i.jsx)(t.p,{children:"We are given the following skeleton for the C++ and the given challenge:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class Solution {\npublic:\n vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {\n \n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The task is to sort the passed matrix diagonally and then return it. First of all,\nI don't like to solve this in a web browser, so we'll need to adjust it accordingly\nfor running it locally. We'll start by including the ",(0,i.jsx)(t.code,{children:"vector"})," header and using\nfully-qualified namespaces",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-1-b611be",id:"user-content-fnref-1-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," and also adding few tests:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"#include <cassert>\n#include <vector>\n\nusing matrix = std::vector<std::vector<int>>;\n\nclass Solution {\npublic:\n matrix diagonalSort(matrix& mat)\n {\n }\n};\n\nstatic void test_case_1()\n{\n // Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]\n // Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]]\n\n Solution s;\n assert((s.diagonalSort(std::vector { std::vector { 3, 3, 1, 1 },\n std::vector { 2, 2, 1, 2 },\n std::vector { 1, 1, 1, 2 } })\n == std::vector { std::vector { 1, 1, 1, 1 },\n std::vector { 1, 2, 2, 2 },\n std::vector { 1, 2, 3, 3 } }));\n}\n\nstatic void test_case_2()\n{\n // Input: mat =\n // [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]\n // Output:\n // [[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]\n\n Solution s;\n assert((s.diagonalSort(std::vector { std::vector { 11, 25, 66, 1, 69, 7 },\n std::vector { 23, 55, 17, 45, 15, 52 },\n std::vector { 75, 31, 36, 44, 58, 8 },\n std::vector { 22, 27, 33, 25, 68, 4 },\n std::vector { 84, 28, 14, 11, 5, 50 } })\n == std::vector { std::vector { 5, 17, 4, 1, 52, 7 },\n std::vector { 11, 11, 25, 45, 8, 69 },\n std::vector { 14, 23, 25, 44, 58, 15 },\n std::vector { 22, 27, 31, 36, 50, 66 },\n std::vector { 84, 28, 75, 33, 55, 68 } }));\n}\n\nint main()\n{\n test_case_1();\n test_case_2();\n\n return 0;\n}\n"})}),"\n",(0,i.jsx)(t.p,{children:"We need to return the matrix, but we're given a reference to the input matrix. We\ncan easily abuse the C++ here and just switch the reference to value, this way\nthe matrix will be copied when passed to the function, we can sort the copy and\njust return it back. And we also get yelled by the compiler for the fact that the\nmethod doesn't return anything yet, so to make it \u201cshut up\u201d we will just return\nthe input for now:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"- matrix diagonalSort(matrix& mat)\n+ matrix diagonalSort(matrix mat)\n {\n+ return mat;\n }\n"})}),"\n",(0,i.jsx)(t.p,{children:"Now, we get the copy and we're good to go."}),"\n",(0,i.jsx)(t.h2,{id:"na\xefve-solution",children:"Na\xefve solution"}),"\n",(0,i.jsx)(t.p,{children:"As you may know, C++ offers a plethora of functions that can be used to your\nadvantage, given that you know how to \u201cbend\u201d the data structures accordingly."}),"\n",(0,i.jsxs)(t.p,{children:["What does that mean for us? Well, we have an ",(0,i.jsx)(t.code,{children:"std::sort"}),", we can use it, right?\nLet's have a look at it:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template< class RandomIt >\nvoid sort( RandomIt first, RandomIt last );\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This overload is more than we need. What does it do? It just sorts the elements\nin the range ",(0,i.jsx)(t.code,{children:"[first, last)"})," using ",(0,i.jsx)(t.code,{children:"operator<"})," on them. We can't sort the whole\nmatrix using this, but\u2026 we can sort just \xbbone\xab diagonal without doing much work\non our end."]}),"\n",(0,i.jsxs)(t.p,{children:["What is the ",(0,i.jsx)(t.code,{children:"RandomIt"})," type though? If we look more into the documentation, we\ncan easily find the requirements for it and also learn that it's a ",(0,i.jsx)(t.em,{children:"random access"}),"\n",(0,i.jsx)(t.em,{children:"iterator"})," and allows swapping its values at the same time."]}),"\n",(0,i.jsxs)(t.admonition,{title:"Random access iterator",type:"tip",children:[(0,i.jsxs)(t.p,{children:["What is the ",(0,i.jsx)(t.em,{children:"random access iterator"})," though? We can find it in a documentation\nand see the following description:"]}),(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.strong,{children:"LegacyRandomAccessIterator"})," is a ",(0,i.jsx)(t.a,{href:"https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator",children:"LegacyBidirectionalIterator"}),"\nthat can be moved to point to any element in constant time."]}),"\n"]}),(0,i.jsxs)(t.p,{children:["After that we can see all the requirements for it being listed. I don't feel like\nreading them right now, so we will just use it and see where the compilation blows\nup, i.e. \u201c",(0,i.jsx)(t.em,{children:"compiler-assisted development"}),"\u201d",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-2-b611be",id:"user-content-fnref-2-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," if you will ;)"]})]}),"\n",(0,i.jsxs)(t.p,{children:["Now we know that we can use ",(0,i.jsx)(t.code,{children:"std::sort"})," to sort the diagonal itself, but we also\nneed to get the diagonals somehow. I'm rather lazy, so I'll just delegate it to\nsomeone else",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-3-b611be",id:"user-content-fnref-3-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". And that way we get"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"matrix diagonalSort(matrix mat)\n{\n // we iterate over the diagonals\n for (auto d : diagonals(mat)) {\n // and we sort each diagonal\n std::sort(d.begin(), d.end());\n }\n\n // we take the matrix by copy, so we can sort in-situ and return the copy\n // that we sorted\n return mat;\n}\n"})}),"\n",(0,i.jsx)(t.p,{children:"This solution looks very simple, doesn't it? Well, cause it is.\nLet's try compiling it:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"matrix-sort.cpp:11:23: error: use of undeclared identifier 'diagonals' [clang-diagnostic-error]\n for (auto d : diagonals(mat)) {\n ^\nFound compiler error(s).\nmake: *** [makefile:14: tidy] Error 1\n"})}),"\n",(0,i.jsxs)(t.p,{children:["OK, seems about right. We haven't implemented the ",(0,i.jsx)(t.code,{children:"diagonals"})," yet. And based on\nwhat we've written so far, we need a function or a class ",(0,i.jsx)(t.code,{children:"diagonals"})," that will\ngive us the diagonals we need."]}),"\n",(0,i.jsxs)(t.h2,{id:"implementing-the-diagonals",children:["Implementing the ",(0,i.jsx)(t.code,{children:"diagonals"})]}),"\n",(0,i.jsxs)(t.p,{children:["Cool, so we need the function that will let us go through each and every diagonal\nin our matrix. We use the ",(0,i.jsx)(t.em,{children:"for-range"})," loop, so whatever we get back from the\n",(0,i.jsx)(t.code,{children:"diagonals"})," must support ",(0,i.jsx)(t.code,{children:".begin()"})," and ",(0,i.jsx)(t.code,{children:".end()"}),". Since I am a masochist, we will\ndo such functionality for a matrix of any type, not just the ",(0,i.jsx)(t.code,{children:"int"})," from the challenge."]}),"\n",(0,i.jsx)(t.p,{children:"As I said, we need to be able to"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"construct the object"}),"\n",(0,i.jsx)(t.li,{children:"get the beginning"}),"\n",(0,i.jsx)(t.li,{children:"get the end (the \u201csentinel\u201d)"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template <typename T>\nclass diagonals {\n using matrix_t = std::vector<std::vector<T>>;\n\n matrix_t& _matrix;\n\npublic:\n diagonals(matrix_t& m)\n : _matrix(m)\n {\n }\n diagonals_iter begin()\n {\n /* TODO */\n }\n diagonals_iter end()\n {\n /* TODO */\n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Now we have a ",(0,i.jsx)(t.code,{children:"diagonals"})," that we can use to go through the diagonals. We haven't\nimplemented the core of it yet. Let's go through what we have for now."]}),"\n",(0,i.jsxs)(t.p,{children:["We have a templated class with templated ",(0,i.jsx)(t.code,{children:"T"})," that is used as a placeholder for any\ntype we would store in the matrix. Because I'm lazy, I have defined the ",(0,i.jsx)(t.code,{children:"matrix_t"}),"\ntype that is a \u201cshortcut\u201d for ",(0,i.jsx)(t.code,{children:"std::vector<std::vector<T>>"}),", so I don't have to\ntype it out all the time. Of course, we need to store the matrix, we are given,\nas a private attribute. And then just have the constructor and the 2 methods we\nneed for the ",(0,i.jsx)(t.em,{children:"for-range"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"iterating-over-diagonals",children:"Iterating over diagonals"}),"\n",(0,i.jsxs)(t.p,{children:["Now that we have an object that will allow us to iterate through the diagonals,\nwe need to implement the iterating itself. We need to go through all of them, so\nwe have multiple options how to do so. I have decided to start from the \u201cmain\u201d\ndiagonal that starts at ",(0,i.jsx)(t.code,{children:"(0, 0)"})," index and then proceed with the diagonals starting\nin the first row, followed by the rest of the diagonals in the first column."]}),"\n",(0,i.jsx)(t.p,{children:"We need to be able to tell that we've iterated through all of them, and also we\nneed to know which diagonal is next. For that purpose we will pass the indices\nof the first cell on the diagonal. That way we can always tell how to move forward."}),"\n",(0,i.jsxs)(t.p,{children:["We will start by updating the ",(0,i.jsx)(t.code,{children:"begin"})," and ",(0,i.jsx)(t.code,{children:"end"})," to reflect our choice accordingly."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"diagonals_iter begin() { return diagonals_iter { _matrix, 0, 0 }; }\ndiagonals_iter end() { return diagonals_iter { _matrix, 0, _matrix.size() }; }\n"})}),"\n",(0,i.jsxs)(t.p,{children:["For the ",(0,i.jsx)(t.code,{children:"begin"})," we return the first diagonal that starts at ",(0,i.jsx)(t.code,{children:"(0, 0)"}),". And because\nwe have decided to do the diagonals in the first column at the end, the first\ndiagonal that is not a valid one is the one at ",(0,i.jsx)(t.code,{children:"(0, height)"}),". Apart from the\nindices, we also need to pass reference to the matrix itself."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["You may have noticed that we also include the diagonals that have length 1,\nspecifically the ones at ",(0,i.jsx)(t.code,{children:"(0, height - 1)"})," and ",(0,i.jsx)(t.code,{children:"(width - 1, 0)"}),". We are implementing\nan iterator that ",(0,i.jsx)(t.strong,{children:"should not"})," care about the way it's being used. Therefore, we\ndon't care about the fact they don't need to be sorted."]})}),"\n",(0,i.jsxs)(t.p,{children:["Cool, let's leave the iterator itself to someone else, right?",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-4-b611be",id:"user-content-fnref-4-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"4"})})]}),"\n",(0,i.jsx)(t.h3,{id:"implementing-the-iterator-over-diagonals",children:"Implementing the iterator over diagonals"}),"\n",(0,i.jsxs)(t.p,{children:["We can start with a simple skeleton based on the information that we pass from\nthe ",(0,i.jsx)(t.code,{children:"diagonals"}),". Also to utilize the ",(0,i.jsx)(t.code,{children:"matrix_t"})," and also contain implementation\ndetails hidden away, we will put this code into the ",(0,i.jsx)(t.code,{children:"diagonals"})," class."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonals_iter {\n matrix_t& m;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"In this case we will be implementing a \u201csimple\u201d forward iterator, so we don't\nneed to implement a lot. Notably it will be:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"inequality operator (we need to know when we reach the end and have nothing to\niterate over)"}),"\n",(0,i.jsx)(t.li,{children:"preincrementation operator (we need to be able to move around the iterable)"}),"\n",(0,i.jsx)(t.li,{children:"dereference operator (we need to be able to retrieve the objects we iterate\nover)"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonals_iter {\n matrix_t& m;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator!=(const diagonals_iter& rhs) const\n {\n // iterators are not equal if they reference different matrices, or\n // their positions differ\n return m != rhs.m || x != rhs.x || y != rhs.y;\n }\n\n diagonals_iter& operator++()\n {\n if (y != 0) {\n // iterating through diagonals down the first column\n y++;\n return *this;\n }\n\n // iterating the diagonals along the first row\n x++;\n if (x == m.front().size()) {\n // switching to diagonals in the first column\n x = 0;\n y++;\n }\n\n return *this;\n }\n\n diagonal<T> operator*() const { return diagonal { m, x, y }; }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Let's go one-by-one. Inequality operator is rather simple, just compare iterator's\nattributes field-by-field. If you think about it, checking inequality of two 2D\nvectors may be a bit inefficient, therefore, we can swap around and check it as\na last thing."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"- return m != rhs.m || x != rhs.x || y != rhs.y;\n+ return x != rhs.x || y != rhs.y || m != rhs.m;\n"})}),"\n",(0,i.jsx)(t.p,{children:"Preincrementation is where the magic happens. If you have a better look, you can\nsee two branches of this operation:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["When ",(0,i.jsx)(t.code,{children:"y != 0"})," (we're iterating over the diagonals in the first column)\nIn this case, we just bump the row and we're done."]}),"\n",(0,i.jsxs)(t.li,{children:["When ",(0,i.jsx)(t.code,{children:"y == 0"})," (we're iterating over the diagonals in the first row)\nIn this case, we bump the column and check if we haven't gotten out of bounds,\ni.e. the end of the first row. If we get out of the bounds, we're continuing\nwith the second diagonal in the first column."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Dereferencing the iterator must \u201cyield\u201d something. In our case it will be the\ndiagonal that we want to sort. For sorting we need just the iterators that can\nmove around said diagonal. The simplest thing, we can do, is to delegate it to\nsomething else. In our case it will be a class called ",(0,i.jsx)(t.code,{children:"diagonal"}),"."]}),"\n",(0,i.jsxs)(t.h2,{id:"implementing-the-diagonal-itself",children:["Implementing the ",(0,i.jsx)(t.code,{children:"diagonal"})," itself"]}),"\n",(0,i.jsxs)(t.p,{children:["After implementing the iterator over diagonals, we know that all we need to describe\na diagonal is the matrix itself and the \u201cstart\u201d of the diagonal (row and column).\nAnd we also know that the diagonal must provide some iterators for the ",(0,i.jsx)(t.code,{children:"std::sort"}),"\nfunction. We can start with the following skeleton:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template <typename T>\nclass diagonal {\n using matrix_t = std::vector<std::vector<T>>;\n\n matrix_t& matrix;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonal(matrix_t& matrix, std::size_t x, std::size_t y)\n : matrix(matrix)\n , x(x)\n , y(y)\n {\n }\n\n diagonal_iter begin() const { return diagonal_iter { matrix, x, y }; }\n\n diagonal_iter end() const\n {\n auto max_x = matrix[y].size();\n auto max_y = matrix.size();\n\n // we need to find the distance in which we get out of bounds (either in\n // column or row)\n auto steps = std::min(max_x - x, max_y - y);\n\n return diagonal_iter { matrix, x + steps, y + steps };\n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Initialization is rather simple, we just \u201ckeep\u201d the stuff we get, ",(0,i.jsx)(t.code,{children:"begin"})," is the\nsimplest, we just delegate."]}),"\n",(0,i.jsxs)(t.p,{children:["In case of the ",(0,i.jsx)(t.code,{children:"end"}),", it gets more complicated. We need to know where is the \u201cend\u201d\nof the diagonal. Since ",(0,i.jsx)(t.code,{children:"end"})," should point to the first element \u201cafter\u201d the iterable,\nwe know that it's the first position of the iterator where either ",(0,i.jsx)(t.code,{children:"y"})," becomes\n",(0,i.jsx)(t.code,{children:"matrix.size()"})," or ",(0,i.jsx)(t.code,{children:"x"})," becomes ",(0,i.jsx)(t.code,{children:"matrix[y].size()"}),". Also we are moving along diagonal,\nduh, therefore we can deduce the first \u201cposition\u201d afterwards by minimal amount of\nsteps to get out of the any column or row, hence ",(0,i.jsx)(t.code,{children:"std::min(max_x - x, max_y - y)"}),".\nFinal position is then computed simply by adding the steps to the beginning of\nthe diagonal."]}),"\n",(0,i.jsx)(t.p,{children:"Now we just need to finish the iterator for the diagonal itself and we're done."}),"\n",(0,i.jsxs)(t.h3,{id:"implementing-diagonal_iter",children:["Implementing ",(0,i.jsx)(t.code,{children:"diagonal_iter"})]}),"\n",(0,i.jsxs)(t.p,{children:["This part is the hardest from all we need to do. It's because of the requirements\nof the ",(0,i.jsx)(t.code,{children:"std::sort"})," that requires us to implement a ",(0,i.jsx)(t.em,{children:"random access iterator"}),". I have\nbriefly described it above, and \u201cin a nutshell\u201d it means that we need to implement\nan iterator that can move in constant time along the diagonal in any amount of\nsteps."]}),"\n",(0,i.jsxs)(t.p,{children:["Let's go through all of the functionality that our iterator needs to support to\nbe used in ",(0,i.jsx)(t.code,{children:"std::sort"}),". We need the usual operations like:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"equality/inequality"}),"\n",(0,i.jsx)(t.li,{children:"incrementation"}),"\n",(0,i.jsx)(t.li,{children:"dereferencing"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"We will also add all the types that our iterator uses with the category of the\niterator, i.e. what interface it supports:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonal_iter {\n // we need to keep reference to the matrix itself\n matrix_t& m;\n\n // we need to be able to tell our current position\n std::size_t x;\n std::size_t y;\n\npublic:\n using difference_type = std::ptrdiff_t;\n using value_type = T;\n using pointer = T*;\n using reference = T&;\n using iterator_category = std::random_access_iterator_tag;\n\n diagonal_iter(matrix_t& matrix,\n std::size_t x,\n std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator==(const diagonal_iter& rhs) const\n {\n return x == rhs.x && y == rhs.y && m == rhs.m;\n }\n\n diagonal_iter& operator++()\n {\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\n // the same time\n x++;\n y++;\n return *this;\n }\n\n reference operator*() const { return m[y][x]; }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This is pretty similar to the previous iterator, but now we need to implement the\nremaining requirements of the ",(0,i.jsx)(t.em,{children:"random access iterator"}),". Let's see what those are:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["decrementation - cause we need to be able to move backwards too, since _random _\n",(0,i.jsx)(t.em,{children:"access iterator"})," extends the interface of ",(0,i.jsx)(t.em,{children:"bidirectional iterator"})]}),"\n",(0,i.jsx)(t.li,{children:"moving the iterator in either direction by steps given as an integer"}),"\n",(0,i.jsx)(t.li,{children:"being able to tell the distance between two iterators"}),"\n",(0,i.jsx)(t.li,{children:"define an ordering on the iterators"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Let's fill them in:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonal_iter {\n // we need to keep reference to the matrix itself\n matrix_t& m;\n\n // we need to be able to tell our current position\n std::size_t x;\n std::size_t y;\n\npublic:\n using difference_type = std::ptrdiff_t;\n using value_type = T;\n using pointer = T*;\n using reference = T&;\n using iterator_category = std::random_access_iterator_tag;\n\n diagonal_iter(matrix_t& matrix,\n std::size_t x,\n std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator==(const diagonal_iter& rhs) const\n {\n return x == rhs.x && y == rhs.y && m == rhs.m;\n }\n\n diagonal_iter& operator++()\n {\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\n // the same time\n x++;\n y++;\n return *this;\n }\n\n reference operator*() const { return m[y][x]; }\n\n // exactly opposite to the incrementation\n diagonal_iter operator--()\n {\n x--;\n y--;\n return *this;\n }\n\n // moving \u2039n\u203a steps back is same as calling decrementation \u2039n\u203a-times, so we\n // can just return a new iterator and subtract \u2039n\u203a from both coordinates in\n // the matrix\n diagonal_iter operator-(difference_type n) const\n {\n return diagonal_iter { m, x - n, y - n };\n }\n\n // here we assume that we are given two iterators on the same diagonal\n difference_type operator-(const diagonal_iter& rhs) const\n {\n assert(m == rhs.m);\n return x - rhs.x;\n }\n\n // counterpart of moving \u2039n\u203a steps backwards\n diagonal_iter operator+(difference_type n) const\n {\n return diagonal_iter { m, x + n, y + n };\n }\n\n // we compare the coordinates, and also assume that those 2 iterators are\n // lying on the same diagonal\n bool operator<(const diagonal_iter& rhs) const\n {\n assert(m == rhs.m);\n return x < rhs.x && y < rhs.y;\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"At this point we could probably try and compile it, right? If we do so, we will\nget yelled at by a compiler for the following reasons:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n __last = __next;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1817:11: note: in instantiation of function template specialization 'std::__unguarded_linear_insert<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Val_less_iter>' requested here\n std::__unguarded_linear_insert(__i,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1849:9: note: in instantiation of function template specialization 'std::__insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__insertion_sort(__first, __first + int(_S_threshold), __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization 'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__final_insertion_sort(__first, __last, __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1830:2: error: no matching function for call to '__unguarded_linear_insert' [clang-diagnostic-error]\n std::__unguarded_linear_insert(__i,\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1850:9: note: in instantiation of function template specialization 'std::__unguarded_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization 'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__final_insertion_sort(__first, __last, __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1782:5: note: candidate template ignored: substitution failure [with _RandomAccessIterator = diagonal<int>::diagonal_iter, _Compare = __gnu_cxx::__ops::_Val_less_iter]\n __unguarded_linear_insert(_RandomAccessIterator __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1923:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n __last = __cut;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1937:9: note: in instantiation of function template specialization 'std::__introsort_loop<diagonal<int>::diagonal_iter, long, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__introsort_loop(__first, __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n"})}),"\n",(0,i.jsx)(t.p,{children:"That's a lot of noise, isn't it? Let's focus on the important parts:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n\u2026\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n"})}),"\n",(0,i.jsx)(t.p,{children:"Ah! We have a reference in our iterator, and this prevents us from having a copy\nassignment operator (that is used \u201csomewhere\u201d in the sorting algorithm). Well\u2026\nLet's just wrap it!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"# we need to keep a different type than reference\n- matrix_t& m;\n+ std::reference_wrapper<matrix_t> m;\n\n# in comparison we need to get the reference out of the wrapper first\n- return x == rhs.x && y == rhs.y && m == rhs.m;\n+ return x == rhs.x && y == rhs.y && m.get() == rhs.m.get();\n\n# same when we return a reference to the \u201ccell\u201d in the matrix\n- reference operator*() const { return m[y][x]; }\n+ reference operator*() const { return m.get()[y][x]; }\n\n# and finally in the assertions that we set for the \u201cdistance\u201d and \u201cless than\u201d\n- assert(m == rhs.m);\n+ assert(m.get() == rhs.m.get());\n"})}),"\n",(0,i.jsxs)(t.p,{children:["We're done now! We have written an iterator over diagonals for a 2D ",(0,i.jsx)(t.code,{children:"vector"}),". You can have a look at the final result ",(0,i.jsx)(t.a,{href:"pathname:///files/blog/leetcode/sort-matrix-diagonally/matrix-sort.cpp",children:"here"}),"."]}),"\n",(0,i.jsxs)(t.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(t.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{id:"user-content-fn-1-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["just because I'm used to it and don't care about your opinion ;) ",(0,i.jsx)(t.a,{href:"#user-content-fnref-1-b611be","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-2-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["exercise at your own risk ",(0,i.jsx)(t.a,{href:"#user-content-fnref-2-b611be","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-3-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["me in 5 minutes in fact, but don't make me scared ",(0,i.jsx)(t.a,{href:"#user-content-fnref-3-b611be","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-4-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["me in the next section\u2026 ",(0,i.jsx)(t.a,{href:"#user-content-fnref-4-b611be","data-footnote-backref":"","aria-label":"Back to reference 4",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>r});var i=n(7294);const a={},o=i.createContext(a);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cfa2b263.efd5103c.js b/assets/js/cfa2b263.efd5103c.js new file mode 100644 index 0000000..3395734 --- /dev/null +++ b/assets/js/cfa2b263.efd5103c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3086],{34437:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var i=n(85893),a=n(11151);const o={title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},r=void 0,s={permalink:"/blog/leetcode/sort-diagonally",editUrl:"https://github.com/mfocko/blog/tree/main/blog/leetcode/sort-matrix-diagonally.md",source:"@site/blog/leetcode/sort-matrix-diagonally.md",title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15:00.000Z",formattedDate:"March 4, 2023",tags:[{label:"cpp",permalink:"/blog/tags/cpp"},{label:"leetcode",permalink:"/blog/tags/leetcode"},{label:"iterators",permalink:"/blog/tags/iterators"}],readingTime:16.99,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Sort the matrix diagonally",description:"Compiler assisted development.",date:"2023-03-04T23:15",slug:"leetcode/sort-diagonally",authors:"mf",tags:["cpp","leetcode","iterators"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"3rd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/3rd-week"},nextItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"}},l={authorsImageUrls:[void 0]},d=[{value:"Problem description",id:"problem-description",level:2},{value:"Example",id:"example",level:3},{value:"Skeleton and initial adjustments",id:"skeleton-and-initial-adjustments",level:2},{value:"Na\xefve solution",id:"na\xefve-solution",level:2},{value:"Implementing the <code>diagonals</code>",id:"implementing-the-diagonals",level:2},{value:"Iterating over diagonals",id:"iterating-over-diagonals",level:3},{value:"Implementing the iterator over diagonals",id:"implementing-the-iterator-over-diagonals",level:3},{value:"Implementing the <code>diagonal</code> itself",id:"implementing-the-diagonal-itself",level:2},{value:"Implementing <code>diagonal_iter</code>",id:"implementing-diagonal_iter",level:3}];function c(e){const t={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Let's try to solve one of the LeetCode challenges in easy and hard mode at the\nsame time."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Link to the problem: ",(0,i.jsx)(t.a,{href:"https://leetcode.com/problems/sort-the-matrix-diagonally/",children:"https://leetcode.com/problems/sort-the-matrix-diagonally/"})]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"problem-description",children:"Problem description"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.strong,{children:"matrix diagonal"})," is a diagonal line of cells starting from some cell in\neither the topmost row or leftmost column and going in the bottom-right direction\nuntil reaching the matrix's end. For example, the ",(0,i.jsx)(t.strong,{children:"matrix diagonal"})," starting\nfrom ",(0,i.jsx)(t.code,{children:"mat[2][0]"}),", where ",(0,i.jsx)(t.code,{children:"mat"})," is a ",(0,i.jsx)(t.code,{children:"6 x 3"})," matrix, includes cells ",(0,i.jsx)(t.code,{children:"mat[2][0]"}),",\n",(0,i.jsx)(t.code,{children:"mat[3][1]"}),", and ",(0,i.jsx)(t.code,{children:"mat[4][2]"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Given an ",(0,i.jsx)(t.code,{children:"m x n"})," matrix ",(0,i.jsx)(t.code,{children:"mat"})," of integers, sort each matrix diagonal in ascending\norder and return the resulting matrix."]}),"\n",(0,i.jsx)(t.h3,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:"https://assets.leetcode.com/uploads/2020/01/21/1482_example_1_2.png",alt:"Image describing the problem"})}),"\n",(0,i.jsx)(t.h2,{id:"skeleton-and-initial-adjustments",children:"Skeleton and initial adjustments"}),"\n",(0,i.jsx)(t.p,{children:"We are given the following skeleton for the C++ and the given challenge:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class Solution {\npublic:\n vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {\n \n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The task is to sort the passed matrix diagonally and then return it. First of all,\nI don't like to solve this in a web browser, so we'll need to adjust it accordingly\nfor running it locally. We'll start by including the ",(0,i.jsx)(t.code,{children:"vector"})," header and using\nfully-qualified namespaces",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-1-b611be",id:"user-content-fnref-1-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," and also adding few tests:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"#include <cassert>\n#include <vector>\n\nusing matrix = std::vector<std::vector<int>>;\n\nclass Solution {\npublic:\n matrix diagonalSort(matrix& mat)\n {\n }\n};\n\nstatic void test_case_1()\n{\n // Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]\n // Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]]\n\n Solution s;\n assert((s.diagonalSort(std::vector { std::vector { 3, 3, 1, 1 },\n std::vector { 2, 2, 1, 2 },\n std::vector { 1, 1, 1, 2 } })\n == std::vector { std::vector { 1, 1, 1, 1 },\n std::vector { 1, 2, 2, 2 },\n std::vector { 1, 2, 3, 3 } }));\n}\n\nstatic void test_case_2()\n{\n // Input: mat =\n // [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]\n // Output:\n // [[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]\n\n Solution s;\n assert((s.diagonalSort(std::vector { std::vector { 11, 25, 66, 1, 69, 7 },\n std::vector { 23, 55, 17, 45, 15, 52 },\n std::vector { 75, 31, 36, 44, 58, 8 },\n std::vector { 22, 27, 33, 25, 68, 4 },\n std::vector { 84, 28, 14, 11, 5, 50 } })\n == std::vector { std::vector { 5, 17, 4, 1, 52, 7 },\n std::vector { 11, 11, 25, 45, 8, 69 },\n std::vector { 14, 23, 25, 44, 58, 15 },\n std::vector { 22, 27, 31, 36, 50, 66 },\n std::vector { 84, 28, 75, 33, 55, 68 } }));\n}\n\nint main()\n{\n test_case_1();\n test_case_2();\n\n return 0;\n}\n"})}),"\n",(0,i.jsx)(t.p,{children:"We need to return the matrix, but we're given a reference to the input matrix. We\ncan easily abuse the C++ here and just switch the reference to value, this way\nthe matrix will be copied when passed to the function, we can sort the copy and\njust return it back. And we also get yelled by the compiler for the fact that the\nmethod doesn't return anything yet, so to make it \u201cshut up\u201d we will just return\nthe input for now:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"- matrix diagonalSort(matrix& mat)\n+ matrix diagonalSort(matrix mat)\n {\n+ return mat;\n }\n"})}),"\n",(0,i.jsx)(t.p,{children:"Now, we get the copy and we're good to go."}),"\n",(0,i.jsx)(t.h2,{id:"na\xefve-solution",children:"Na\xefve solution"}),"\n",(0,i.jsx)(t.p,{children:"As you may know, C++ offers a plethora of functions that can be used to your\nadvantage, given that you know how to \u201cbend\u201d the data structures accordingly."}),"\n",(0,i.jsxs)(t.p,{children:["What does that mean for us? Well, we have an ",(0,i.jsx)(t.code,{children:"std::sort"}),", we can use it, right?\nLet's have a look at it:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template< class RandomIt >\nvoid sort( RandomIt first, RandomIt last );\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This overload is more than we need. What does it do? It just sorts the elements\nin the range ",(0,i.jsx)(t.code,{children:"[first, last)"})," using ",(0,i.jsx)(t.code,{children:"operator<"})," on them. We can't sort the whole\nmatrix using this, but\u2026 we can sort just \xbbone\xab diagonal without doing much work\non our end."]}),"\n",(0,i.jsxs)(t.p,{children:["What is the ",(0,i.jsx)(t.code,{children:"RandomIt"})," type though? If we look more into the documentation, we\ncan easily find the requirements for it and also learn that it's a ",(0,i.jsx)(t.em,{children:"random access"}),"\n",(0,i.jsx)(t.em,{children:"iterator"})," and allows swapping its values at the same time."]}),"\n",(0,i.jsxs)(t.admonition,{title:"Random access iterator",type:"tip",children:[(0,i.jsxs)(t.p,{children:["What is the ",(0,i.jsx)(t.em,{children:"random access iterator"})," though? We can find it in a documentation\nand see the following description:"]}),(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.strong,{children:"LegacyRandomAccessIterator"})," is a ",(0,i.jsx)(t.a,{href:"https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator",children:"LegacyBidirectionalIterator"}),"\nthat can be moved to point to any element in constant time."]}),"\n"]}),(0,i.jsxs)(t.p,{children:["After that we can see all the requirements for it being listed. I don't feel like\nreading them right now, so we will just use it and see where the compilation blows\nup, i.e. \u201c",(0,i.jsx)(t.em,{children:"compiler-assisted development"}),"\u201d",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-2-b611be",id:"user-content-fnref-2-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," if you will ;)"]})]}),"\n",(0,i.jsxs)(t.p,{children:["Now we know that we can use ",(0,i.jsx)(t.code,{children:"std::sort"})," to sort the diagonal itself, but we also\nneed to get the diagonals somehow. I'm rather lazy, so I'll just delegate it to\nsomeone else",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-3-b611be",id:"user-content-fnref-3-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". And that way we get"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"matrix diagonalSort(matrix mat)\n{\n // we iterate over the diagonals\n for (auto d : diagonals(mat)) {\n // and we sort each diagonal\n std::sort(d.begin(), d.end());\n }\n\n // we take the matrix by copy, so we can sort in-situ and return the copy\n // that we sorted\n return mat;\n}\n"})}),"\n",(0,i.jsx)(t.p,{children:"This solution looks very simple, doesn't it? Well, cause it is.\nLet's try compiling it:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"matrix-sort.cpp:11:23: error: use of undeclared identifier 'diagonals' [clang-diagnostic-error]\n for (auto d : diagonals(mat)) {\n ^\nFound compiler error(s).\nmake: *** [makefile:14: tidy] Error 1\n"})}),"\n",(0,i.jsxs)(t.p,{children:["OK, seems about right. We haven't implemented the ",(0,i.jsx)(t.code,{children:"diagonals"})," yet. And based on\nwhat we've written so far, we need a function or a class ",(0,i.jsx)(t.code,{children:"diagonals"})," that will\ngive us the diagonals we need."]}),"\n",(0,i.jsxs)(t.h2,{id:"implementing-the-diagonals",children:["Implementing the ",(0,i.jsx)(t.code,{children:"diagonals"})]}),"\n",(0,i.jsxs)(t.p,{children:["Cool, so we need the function that will let us go through each and every diagonal\nin our matrix. We use the ",(0,i.jsx)(t.em,{children:"for-range"})," loop, so whatever we get back from the\n",(0,i.jsx)(t.code,{children:"diagonals"})," must support ",(0,i.jsx)(t.code,{children:".begin()"})," and ",(0,i.jsx)(t.code,{children:".end()"}),". Since I am a masochist, we will\ndo such functionality for a matrix of any type, not just the ",(0,i.jsx)(t.code,{children:"int"})," from the challenge."]}),"\n",(0,i.jsx)(t.p,{children:"As I said, we need to be able to"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"construct the object"}),"\n",(0,i.jsx)(t.li,{children:"get the beginning"}),"\n",(0,i.jsx)(t.li,{children:"get the end (the \u201csentinel\u201d)"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template <typename T>\nclass diagonals {\n using matrix_t = std::vector<std::vector<T>>;\n\n matrix_t& _matrix;\n\npublic:\n diagonals(matrix_t& m)\n : _matrix(m)\n {\n }\n diagonals_iter begin()\n {\n /* TODO */\n }\n diagonals_iter end()\n {\n /* TODO */\n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Now we have a ",(0,i.jsx)(t.code,{children:"diagonals"})," that we can use to go through the diagonals. We haven't\nimplemented the core of it yet. Let's go through what we have for now."]}),"\n",(0,i.jsxs)(t.p,{children:["We have a templated class with templated ",(0,i.jsx)(t.code,{children:"T"})," that is used as a placeholder for any\ntype we would store in the matrix. Because I'm lazy, I have defined the ",(0,i.jsx)(t.code,{children:"matrix_t"}),"\ntype that is a \u201cshortcut\u201d for ",(0,i.jsx)(t.code,{children:"std::vector<std::vector<T>>"}),", so I don't have to\ntype it out all the time. Of course, we need to store the matrix, we are given,\nas a private attribute. And then just have the constructor and the 2 methods we\nneed for the ",(0,i.jsx)(t.em,{children:"for-range"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"iterating-over-diagonals",children:"Iterating over diagonals"}),"\n",(0,i.jsxs)(t.p,{children:["Now that we have an object that will allow us to iterate through the diagonals,\nwe need to implement the iterating itself. We need to go through all of them, so\nwe have multiple options how to do so. I have decided to start from the \u201cmain\u201d\ndiagonal that starts at ",(0,i.jsx)(t.code,{children:"(0, 0)"})," index and then proceed with the diagonals starting\nin the first row, followed by the rest of the diagonals in the first column."]}),"\n",(0,i.jsx)(t.p,{children:"We need to be able to tell that we've iterated through all of them, and also we\nneed to know which diagonal is next. For that purpose we will pass the indices\nof the first cell on the diagonal. That way we can always tell how to move forward."}),"\n",(0,i.jsxs)(t.p,{children:["We will start by updating the ",(0,i.jsx)(t.code,{children:"begin"})," and ",(0,i.jsx)(t.code,{children:"end"})," to reflect our choice accordingly."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"diagonals_iter begin() { return diagonals_iter { _matrix, 0, 0 }; }\ndiagonals_iter end() { return diagonals_iter { _matrix, 0, _matrix.size() }; }\n"})}),"\n",(0,i.jsxs)(t.p,{children:["For the ",(0,i.jsx)(t.code,{children:"begin"})," we return the first diagonal that starts at ",(0,i.jsx)(t.code,{children:"(0, 0)"}),". And because\nwe have decided to do the diagonals in the first column at the end, the first\ndiagonal that is not a valid one is the one at ",(0,i.jsx)(t.code,{children:"(0, height)"}),". Apart from the\nindices, we also need to pass reference to the matrix itself."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["You may have noticed that we also include the diagonals that have length 1,\nspecifically the ones at ",(0,i.jsx)(t.code,{children:"(0, height - 1)"})," and ",(0,i.jsx)(t.code,{children:"(width - 1, 0)"}),". We are implementing\nan iterator that ",(0,i.jsx)(t.strong,{children:"should not"})," care about the way it's being used. Therefore, we\ndon't care about the fact they don't need to be sorted."]})}),"\n",(0,i.jsxs)(t.p,{children:["Cool, let's leave the iterator itself to someone else, right?",(0,i.jsx)(t.sup,{children:(0,i.jsx)(t.a,{href:"#user-content-fn-4-b611be",id:"user-content-fnref-4-b611be","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"4"})})]}),"\n",(0,i.jsx)(t.h3,{id:"implementing-the-iterator-over-diagonals",children:"Implementing the iterator over diagonals"}),"\n",(0,i.jsxs)(t.p,{children:["We can start with a simple skeleton based on the information that we pass from\nthe ",(0,i.jsx)(t.code,{children:"diagonals"}),". Also to utilize the ",(0,i.jsx)(t.code,{children:"matrix_t"})," and also contain implementation\ndetails hidden away, we will put this code into the ",(0,i.jsx)(t.code,{children:"diagonals"})," class."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonals_iter {\n matrix_t& m;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"In this case we will be implementing a \u201csimple\u201d forward iterator, so we don't\nneed to implement a lot. Notably it will be:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"inequality operator (we need to know when we reach the end and have nothing to\niterate over)"}),"\n",(0,i.jsx)(t.li,{children:"preincrementation operator (we need to be able to move around the iterable)"}),"\n",(0,i.jsx)(t.li,{children:"dereference operator (we need to be able to retrieve the objects we iterate\nover)"}),"\n"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonals_iter {\n matrix_t& m;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonals_iter(matrix_t& matrix, std::size_t x, std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator!=(const diagonals_iter& rhs) const\n {\n // iterators are not equal if they reference different matrices, or\n // their positions differ\n return m != rhs.m || x != rhs.x || y != rhs.y;\n }\n\n diagonals_iter& operator++()\n {\n if (y != 0) {\n // iterating through diagonals down the first column\n y++;\n return *this;\n }\n\n // iterating the diagonals along the first row\n x++;\n if (x == m.front().size()) {\n // switching to diagonals in the first column\n x = 0;\n y++;\n }\n\n return *this;\n }\n\n diagonal<T> operator*() const { return diagonal { m, x, y }; }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Let's go one-by-one. Inequality operator is rather simple, just compare iterator's\nattributes field-by-field. If you think about it, checking inequality of two 2D\nvectors may be a bit inefficient, therefore, we can swap around and check it as\na last thing."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"- return m != rhs.m || x != rhs.x || y != rhs.y;\n+ return x != rhs.x || y != rhs.y || m != rhs.m;\n"})}),"\n",(0,i.jsx)(t.p,{children:"Preincrementation is where the magic happens. If you have a better look, you can\nsee two branches of this operation:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["When ",(0,i.jsx)(t.code,{children:"y != 0"})," (we're iterating over the diagonals in the first column)\nIn this case, we just bump the row and we're done."]}),"\n",(0,i.jsxs)(t.li,{children:["When ",(0,i.jsx)(t.code,{children:"y == 0"})," (we're iterating over the diagonals in the first row)\nIn this case, we bump the column and check if we haven't gotten out of bounds,\ni.e. the end of the first row. If we get out of the bounds, we're continuing\nwith the second diagonal in the first column."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Dereferencing the iterator must \u201cyield\u201d something. In our case it will be the\ndiagonal that we want to sort. For sorting we need just the iterators that can\nmove around said diagonal. The simplest thing, we can do, is to delegate it to\nsomething else. In our case it will be a class called ",(0,i.jsx)(t.code,{children:"diagonal"}),"."]}),"\n",(0,i.jsxs)(t.h2,{id:"implementing-the-diagonal-itself",children:["Implementing the ",(0,i.jsx)(t.code,{children:"diagonal"})," itself"]}),"\n",(0,i.jsxs)(t.p,{children:["After implementing the iterator over diagonals, we know that all we need to describe\na diagonal is the matrix itself and the \u201cstart\u201d of the diagonal (row and column).\nAnd we also know that the diagonal must provide some iterators for the ",(0,i.jsx)(t.code,{children:"std::sort"}),"\nfunction. We can start with the following skeleton:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"template <typename T>\nclass diagonal {\n using matrix_t = std::vector<std::vector<T>>;\n\n matrix_t& matrix;\n std::size_t x;\n std::size_t y;\n\npublic:\n diagonal(matrix_t& matrix, std::size_t x, std::size_t y)\n : matrix(matrix)\n , x(x)\n , y(y)\n {\n }\n\n diagonal_iter begin() const { return diagonal_iter { matrix, x, y }; }\n\n diagonal_iter end() const\n {\n auto max_x = matrix[y].size();\n auto max_y = matrix.size();\n\n // we need to find the distance in which we get out of bounds (either in\n // column or row)\n auto steps = std::min(max_x - x, max_y - y);\n\n return diagonal_iter { matrix, x + steps, y + steps };\n }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Initialization is rather simple, we just \u201ckeep\u201d the stuff we get, ",(0,i.jsx)(t.code,{children:"begin"})," is the\nsimplest, we just delegate."]}),"\n",(0,i.jsxs)(t.p,{children:["In case of the ",(0,i.jsx)(t.code,{children:"end"}),", it gets more complicated. We need to know where is the \u201cend\u201d\nof the diagonal. Since ",(0,i.jsx)(t.code,{children:"end"})," should point to the first element \u201cafter\u201d the iterable,\nwe know that it's the first position of the iterator where either ",(0,i.jsx)(t.code,{children:"y"})," becomes\n",(0,i.jsx)(t.code,{children:"matrix.size()"})," or ",(0,i.jsx)(t.code,{children:"x"})," becomes ",(0,i.jsx)(t.code,{children:"matrix[y].size()"}),". Also we are moving along diagonal,\nduh, therefore we can deduce the first \u201cposition\u201d afterwards by minimal amount of\nsteps to get out of the any column or row, hence ",(0,i.jsx)(t.code,{children:"std::min(max_x - x, max_y - y)"}),".\nFinal position is then computed simply by adding the steps to the beginning of\nthe diagonal."]}),"\n",(0,i.jsx)(t.p,{children:"Now we just need to finish the iterator for the diagonal itself and we're done."}),"\n",(0,i.jsxs)(t.h3,{id:"implementing-diagonal_iter",children:["Implementing ",(0,i.jsx)(t.code,{children:"diagonal_iter"})]}),"\n",(0,i.jsxs)(t.p,{children:["This part is the hardest from all we need to do. It's because of the requirements\nof the ",(0,i.jsx)(t.code,{children:"std::sort"})," that requires us to implement a ",(0,i.jsx)(t.em,{children:"random access iterator"}),". I have\nbriefly described it above, and \u201cin a nutshell\u201d it means that we need to implement\nan iterator that can move in constant time along the diagonal in any amount of\nsteps."]}),"\n",(0,i.jsxs)(t.p,{children:["Let's go through all of the functionality that our iterator needs to support to\nbe used in ",(0,i.jsx)(t.code,{children:"std::sort"}),". We need the usual operations like:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"equality/inequality"}),"\n",(0,i.jsx)(t.li,{children:"incrementation"}),"\n",(0,i.jsx)(t.li,{children:"dereferencing"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"We will also add all the types that our iterator uses with the category of the\niterator, i.e. what interface it supports:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonal_iter {\n // we need to keep reference to the matrix itself\n matrix_t& m;\n\n // we need to be able to tell our current position\n std::size_t x;\n std::size_t y;\n\npublic:\n using difference_type = std::ptrdiff_t;\n using value_type = T;\n using pointer = T*;\n using reference = T&;\n using iterator_category = std::random_access_iterator_tag;\n\n diagonal_iter(matrix_t& matrix,\n std::size_t x,\n std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator==(const diagonal_iter& rhs) const\n {\n return x == rhs.x && y == rhs.y && m == rhs.m;\n }\n\n diagonal_iter& operator++()\n {\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\n // the same time\n x++;\n y++;\n return *this;\n }\n\n reference operator*() const { return m[y][x]; }\n};\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This is pretty similar to the previous iterator, but now we need to implement the\nremaining requirements of the ",(0,i.jsx)(t.em,{children:"random access iterator"}),". Let's see what those are:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["decrementation - cause we need to be able to move backwards too, since _random _\n",(0,i.jsx)(t.em,{children:"access iterator"})," extends the interface of ",(0,i.jsx)(t.em,{children:"bidirectional iterator"})]}),"\n",(0,i.jsx)(t.li,{children:"moving the iterator in either direction by steps given as an integer"}),"\n",(0,i.jsx)(t.li,{children:"being able to tell the distance between two iterators"}),"\n",(0,i.jsx)(t.li,{children:"define an ordering on the iterators"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Let's fill them in:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cpp",children:"class diagonal_iter {\n // we need to keep reference to the matrix itself\n matrix_t& m;\n\n // we need to be able to tell our current position\n std::size_t x;\n std::size_t y;\n\npublic:\n using difference_type = std::ptrdiff_t;\n using value_type = T;\n using pointer = T*;\n using reference = T&;\n using iterator_category = std::random_access_iterator_tag;\n\n diagonal_iter(matrix_t& matrix,\n std::size_t x,\n std::size_t y)\n : m(matrix)\n , x(x)\n , y(y)\n {\n }\n\n bool operator==(const diagonal_iter& rhs) const\n {\n return x == rhs.x && y == rhs.y && m == rhs.m;\n }\n\n diagonal_iter& operator++()\n {\n // we are moving along the diagonal, so we increment both \u2039x\u203a and \u2039y\u203a at\n // the same time\n x++;\n y++;\n return *this;\n }\n\n reference operator*() const { return m[y][x]; }\n\n // exactly opposite to the incrementation\n diagonal_iter operator--()\n {\n x--;\n y--;\n return *this;\n }\n\n // moving \u2039n\u203a steps back is same as calling decrementation \u2039n\u203a-times, so we\n // can just return a new iterator and subtract \u2039n\u203a from both coordinates in\n // the matrix\n diagonal_iter operator-(difference_type n) const\n {\n return diagonal_iter { m, x - n, y - n };\n }\n\n // here we assume that we are given two iterators on the same diagonal\n difference_type operator-(const diagonal_iter& rhs) const\n {\n assert(m == rhs.m);\n return x - rhs.x;\n }\n\n // counterpart of moving \u2039n\u203a steps backwards\n diagonal_iter operator+(difference_type n) const\n {\n return diagonal_iter { m, x + n, y + n };\n }\n\n // we compare the coordinates, and also assume that those 2 iterators are\n // lying on the same diagonal\n bool operator<(const diagonal_iter& rhs) const\n {\n assert(m == rhs.m);\n return x < rhs.x && y < rhs.y;\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"At this point we could probably try and compile it, right? If we do so, we will\nget yelled at by a compiler for the following reasons:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n __last = __next;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1817:11: note: in instantiation of function template specialization 'std::__unguarded_linear_insert<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Val_less_iter>' requested here\n std::__unguarded_linear_insert(__i,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1849:9: note: in instantiation of function template specialization 'std::__insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__insertion_sort(__first, __first + int(_S_threshold), __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization 'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__final_insertion_sort(__first, __last, __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1830:2: error: no matching function for call to '__unguarded_linear_insert' [clang-diagnostic-error]\n std::__unguarded_linear_insert(__i,\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1850:9: note: in instantiation of function template specialization 'std::__unguarded_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1940:9: note: in instantiation of function template specialization 'std::__final_insertion_sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__final_insertion_sort(__first, __last, __comp);\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1782:5: note: candidate template ignored: substitution failure [with _RandomAccessIterator = diagonal<int>::diagonal_iter, _Compare = __gnu_cxx::__ops::_Val_less_iter]\n __unguarded_linear_insert(_RandomAccessIterator __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1923:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n __last = __cut;\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1937:9: note: in instantiation of function template specialization 'std::__introsort_loop<diagonal<int>::diagonal_iter, long, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__introsort_loop(__first, __last,\n ^\n/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:4820:12: note: in instantiation of function template specialization 'std::__sort<diagonal<int>::diagonal_iter, __gnu_cxx::__ops::_Iter_less_iter>' requested here\n std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter());\n ^\nmatrix-sort.cpp:161:18: note: in instantiation of function template specialization 'std::sort<diagonal<int>::diagonal_iter>' requested here\n std::sort(d.begin(), d.end());\n ^\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n"})}),"\n",(0,i.jsx)(t.p,{children:"That's a lot of noise, isn't it? Let's focus on the important parts:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"/usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:1792:11: error: object of type 'diagonal<int>::diagonal_iter' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]\n\u2026\nmatrix-sort.cpp:17:19: note: copy assignment operator of 'diagonal_iter' is implicitly deleted because field 'm' is of reference type 'diagonal<int>::matrix_t &' (aka 'vector<std::vector<int>> &')\n matrix_t& m;\n ^\n"})}),"\n",(0,i.jsx)(t.p,{children:"Ah! We have a reference in our iterator, and this prevents us from having a copy\nassignment operator (that is used \u201csomewhere\u201d in the sorting algorithm). Well\u2026\nLet's just wrap it!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-diff",children:"# we need to keep a different type than reference\n- matrix_t& m;\n+ std::reference_wrapper<matrix_t> m;\n\n# in comparison we need to get the reference out of the wrapper first\n- return x == rhs.x && y == rhs.y && m == rhs.m;\n+ return x == rhs.x && y == rhs.y && m.get() == rhs.m.get();\n\n# same when we return a reference to the \u201ccell\u201d in the matrix\n- reference operator*() const { return m[y][x]; }\n+ reference operator*() const { return m.get()[y][x]; }\n\n# and finally in the assertions that we set for the \u201cdistance\u201d and \u201cless than\u201d\n- assert(m == rhs.m);\n+ assert(m.get() == rhs.m.get());\n"})}),"\n",(0,i.jsxs)(t.p,{children:["We're done now! We have written an iterator over diagonals for a 2D ",(0,i.jsx)(t.code,{children:"vector"}),". You can have a look at the final result ",(0,i.jsx)(t.a,{href:"pathname:///files/blog/leetcode/sort-matrix-diagonally/matrix-sort.cpp",children:"here"}),"."]}),"\n",(0,i.jsxs)(t.section,{"data-footnotes":!0,className:"footnotes",children:[(0,i.jsx)(t.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{id:"user-content-fn-1-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["just because I'm used to it and don't care about your opinion ;) ",(0,i.jsx)(t.a,{href:"#user-content-fnref-1-b611be","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-2-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["exercise at your own risk ",(0,i.jsx)(t.a,{href:"#user-content-fnref-2-b611be","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-3-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["me in 5 minutes in fact, but don't make me scared ",(0,i.jsx)(t.a,{href:"#user-content-fnref-3-b611be","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{id:"user-content-fn-4-b611be",children:["\n",(0,i.jsxs)(t.p,{children:["me in the next section\u2026 ",(0,i.jsx)(t.a,{href:"#user-content-fnref-4-b611be","data-footnote-backref":"","aria-label":"Back to reference 4",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>r});var i=n(67294);const a={},o=i.createContext(a);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d05e838c.1b2f4a74.js b/assets/js/d05e838c.1b2f4a74.js new file mode 100644 index 0000000..3d32e27 --- /dev/null +++ b/assets/js/d05e838c.1b2f4a74.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6544],{63004:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var s=r(85893),t=r(11151);const i={id:"seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n"},c=void 0,o={id:"bonuses/seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n",source:"@site/c/bonuses/05-06.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-05-06",permalink:"/c/bonuses/seminar-05-06",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/05-06.md",tags:[],version:"current",lastUpdatedAt:1701196739,formattedLastUpdatedAt:"Nov 28, 2023",frontMatter:{id:"seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n"},sidebar:"autogeneratedBar",previous:{title:"4th seminar",permalink:"/c/bonuses/seminar-04"},next:{title:"8th seminar",permalink:"/c/bonuses/seminar-08"}},d={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Task no. 1: Reverse (0.5 K\u20a1)",id:"task-no-1-reverse-05-k",level:3},{value:"Task no. 2: Vigen\xe8re (0.5 K\u20a1)",id:"task-no-2-vigen\xe8re-05-k",level:3},{value:"Bonus part (0.5 K\u20a1)",id:"bonus-part-05-k",level:4},{value:"Task no. 3: Bit madness (0.5 K\u20a1)",id:"task-no-3-bit-madness-05-k",level:3},{value:"Task no. 4: All combined to BMP (0.5 K\u20a1)",id:"task-no-4-all-combined-to-bmp-05-k",level:3},{value:"Submitting",id:"submitting",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"For this bonus you can get at maximum 2.5 K\u20a1."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/05-06.tar.gz",children:"Source"})}),"\n",(0,s.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(n.p,{children:"In this bonus you will implement few functions that will be used together for\nimplementing a very special cipher."}),"\n",(0,s.jsx)(n.h3,{id:"task-no-1-reverse-05-k",children:"Task no. 1: Reverse (0.5 K\u20a1)"}),"\n",(0,s.jsxs)(n.p,{children:["Write a function ",(0,s.jsx)(n.code,{children:"char* reverse(const char* text)"})," that returns copy of the input\nstring in reversed order (also uppercase)."]}),"\n",(0,s.jsxs)(n.p,{children:["In case you are given ",(0,s.jsx)(n.code,{children:"NULL"}),", return ",(0,s.jsx)(n.code,{children:"NULL"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example (more in tests):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'char* reversed = reverse("Hello world!");\n\nprintf("%s\\n", reversed);\n// "!DLROW OLLEH"\n\nif (reversed != NULL) {\n free(reversed);\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"task-no-2-vigen\xe8re-05-k",children:"Task no. 2: Vigen\xe8re (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"Vigen\xe8re cipher is similar to the Caesar cipher, but you also have a key that is\nused for encrypting (or decrypting)."}),"\n",(0,s.jsx)(n.p,{children:"Your task is to write two functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"char* vigenere_encrypt(const char* key, const char* text)"})," for encrypting"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"char* vigenere_decrypt(const char* key, const char* text)"})," for decrypting"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"In both of those you should return uppercase characters."}),"\n",(0,s.jsx)(n.p,{children:"Meaning of the parameters you are given:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"key"})," - String that represents key that is used for *crypting. It consists of\none word and can have only characters of the alphabet. Does not matter if they\nare uppercase or lowercase."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"text"})," - String that is to be *crypted."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Function returns address of the encrypted (or decrypted) string. Or ",(0,s.jsx)(n.code,{children:"NULL"})," in case\nerror occurs."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'char *encrypted = vigenere_encrypt("CoMPuTeR", "Hello world!");\n\nprintf("%s\\n", encrypted);\n// "JSXAI PSINR!"\n\nif (encrypted != NULL) {\n free(encrypted)\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"bonus-part-05-k",children:"Bonus part (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"If you can utilize helper function that would do both encrypting and decrypting,\nyou can gain 0.5 K\u20a1."}),"\n",(0,s.jsxs)(n.p,{children:["Usage of ",(0,s.jsx)(n.code,{children:"true"}),"/",(0,s.jsx)(n.code,{children:"false"})," to decide path in code is prohibited. It leads to merging\nof both functions into one. Point of this part is to discover a way to do this\ngenerically in such way that there are no separate paths for one or the other. One\nfunction with no branching for both of them, parametrization is your friend :)"]}),"\n",(0,s.jsx)(n.h3,{id:"task-no-3-bit-madness-05-k",children:"Task no. 3: Bit madness (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"This is a state of the art crypto. Please do not share :)"}),"\n",(0,s.jsx)(n.p,{children:"For encrypting:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Split the character that is to be encrypted in halves (4 and 4 bits each)."}),"\n",(0,s.jsx)(n.li,{children:"Bits in 1st half are to be split into pairs. Swap bits in those pairs."}),"\n",(0,s.jsxs)(n.li,{children:["Then use the 4 bits that you created in the 2nd step for ",(0,s.jsx)(n.code,{children:"XOR"})," with the other\n4 bits."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["This simple and ingenious principle will be illustrated on the following example.\nString we want to encrypt is ",(0,s.jsx)(n.code,{children:"Hello world!"}),". We need to encrypt each letter separately,\nso we will demonstrate on letter ",(0,s.jsx)(n.code,{children:"H"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Letter ",(0,s.jsx)(n.code,{children:"H"})," is represented in ASCII as ",(0,s.jsx)(n.code,{children:"72"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"72"})," represented in binary is: ",(0,s.jsx)(n.code,{children:"01001000"}),". So first 4 bits are: ",(0,s.jsx)(n.code,{children:"0100"})," and last\n4 bits are ",(0,s.jsx)(n.code,{children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["First half of bits (",(0,s.jsx)(n.code,{children:"0100"}),") consists of 2 pairs (",(0,s.jsx)(n.code,{children:"01"})," and ",(0,s.jsx)(n.code,{children:"00"}),") which we swap\n(",(0,s.jsx)(n.code,{children:"01 ~> 10"})," and ",(0,s.jsx)(n.code,{children:"00 ~> 00"}),"). That way we get ",(0,s.jsx)(n.code,{children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"That half is used for xor with the other 4 bits:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" 1000 // second half\nXOR 1000 // first half after 2nd step\n--------\n 0000\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Now we combine both halves (first one is ",(0,s.jsx)(n.code,{children:"1000"}),", which we got from the 2nd step\nand second one is ",(0,s.jsx)(n.code,{children:"0000"}),", which we got from the 3rd step) and get ",(0,s.jsx)(n.code,{children:"10000000"}),",\nwhich is encrypted character ",(0,s.jsx)(n.code,{children:"H"})," using this method."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"In case of decryption, reverse those steps."}),"\n",(0,s.jsx)(n.p,{children:"Your task is to implement functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"unsigned char* bit_encrypt(const char* text)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"char* bit_decrypt(const unsigned char* text)"})}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'unsigned char* encrypted = bit_encrypt("Hello world!");\n\nfor (int i = 0; i < 12;i++) {\n printf("%x ", encrypted[i]);\n //80 9c 95 95 96 11 bc 96 b9 95 9d 10\n}\n\nif (encrypted != NULL) {\n free(encrypted);\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"task-no-4-all-combined-to-bmp-05-k",children:"Task no. 4: All combined to BMP (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"Authors of the BMP cipher are non-disclosed :)"}),"\n",(0,s.jsx)(n.p,{children:"Create pair of functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"unsigned char* bmp_encrypt(const char* key, const char* text)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"char* bmp_decrypt(const char* key, const unsigned char* text)"})}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"BMP cipher consists of following steps for encrypting:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Reverse the input string"}),"\n",(0,s.jsx)(n.li,{children:"Use Vigenere on the string you got from step #1"}),"\n",(0,s.jsx)(n.li,{children:"Use bit madness on the string you got from step #2"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For decrypting, reverse the steps."}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,s.jsx)(n.hr,{})]})}function a(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},11151:(e,n,r)=>{r.d(n,{Z:()=>o,a:()=>c});var s=r(67294);const t={},i=s.createContext(t);function c(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d05e838c.c9e7502d.js b/assets/js/d05e838c.c9e7502d.js deleted file mode 100644 index e3e3bf1..0000000 --- a/assets/js/d05e838c.c9e7502d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6544],{3004:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var s=r(5893),t=r(1151);const i={id:"seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n"},c=void 0,o={id:"bonuses/seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n",source:"@site/c/bonuses/05-06.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-05-06",permalink:"/c/bonuses/seminar-05-06",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/05-06.md",tags:[],version:"current",lastUpdatedAt:1700945386,formattedLastUpdatedAt:"Nov 25, 2023",frontMatter:{id:"seminar-05-06",title:"5th and 6th seminar",description:"200IQ encryption.\n"},sidebar:"autogeneratedBar",previous:{title:"4th seminar",permalink:"/c/bonuses/seminar-04"},next:{title:"8th seminar",permalink:"/c/bonuses/seminar-08"}},d={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Task no. 1: Reverse (0.5 K\u20a1)",id:"task-no-1-reverse-05-k",level:3},{value:"Task no. 2: Vigen\xe8re (0.5 K\u20a1)",id:"task-no-2-vigen\xe8re-05-k",level:3},{value:"Bonus part (0.5 K\u20a1)",id:"bonus-part-05-k",level:4},{value:"Task no. 3: Bit madness (0.5 K\u20a1)",id:"task-no-3-bit-madness-05-k",level:3},{value:"Task no. 4: All combined to BMP (0.5 K\u20a1)",id:"task-no-4-all-combined-to-bmp-05-k",level:3},{value:"Submitting",id:"submitting",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"For this bonus you can get at maximum 2.5 K\u20a1."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/05-06.tar.gz",children:"Source"})}),"\n",(0,s.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(n.p,{children:"In this bonus you will implement few functions that will be used together for\nimplementing a very special cipher."}),"\n",(0,s.jsx)(n.h3,{id:"task-no-1-reverse-05-k",children:"Task no. 1: Reverse (0.5 K\u20a1)"}),"\n",(0,s.jsxs)(n.p,{children:["Write a function ",(0,s.jsx)(n.code,{children:"char* reverse(const char* text)"})," that returns copy of the input\nstring in reversed order (also uppercase)."]}),"\n",(0,s.jsxs)(n.p,{children:["In case you are given ",(0,s.jsx)(n.code,{children:"NULL"}),", return ",(0,s.jsx)(n.code,{children:"NULL"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Example (more in tests):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'char* reversed = reverse("Hello world!");\n\nprintf("%s\\n", reversed);\n// "!DLROW OLLEH"\n\nif (reversed != NULL) {\n free(reversed);\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"task-no-2-vigen\xe8re-05-k",children:"Task no. 2: Vigen\xe8re (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"Vigen\xe8re cipher is similar to the Caesar cipher, but you also have a key that is\nused for encrypting (or decrypting)."}),"\n",(0,s.jsx)(n.p,{children:"Your task is to write two functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"char* vigenere_encrypt(const char* key, const char* text)"})," for encrypting"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"char* vigenere_decrypt(const char* key, const char* text)"})," for decrypting"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"In both of those you should return uppercase characters."}),"\n",(0,s.jsx)(n.p,{children:"Meaning of the parameters you are given:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"key"})," - String that represents key that is used for *crypting. It consists of\none word and can have only characters of the alphabet. Does not matter if they\nare uppercase or lowercase."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"text"})," - String that is to be *crypted."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Function returns address of the encrypted (or decrypted) string. Or ",(0,s.jsx)(n.code,{children:"NULL"})," in case\nerror occurs."]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'char *encrypted = vigenere_encrypt("CoMPuTeR", "Hello world!");\n\nprintf("%s\\n", encrypted);\n// "JSXAI PSINR!"\n\nif (encrypted != NULL) {\n free(encrypted)\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"bonus-part-05-k",children:"Bonus part (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"If you can utilize helper function that would do both encrypting and decrypting,\nyou can gain 0.5 K\u20a1."}),"\n",(0,s.jsxs)(n.p,{children:["Usage of ",(0,s.jsx)(n.code,{children:"true"}),"/",(0,s.jsx)(n.code,{children:"false"})," to decide path in code is prohibited. It leads to merging\nof both functions into one. Point of this part is to discover a way to do this\ngenerically in such way that there are no separate paths for one or the other. One\nfunction with no branching for both of them, parametrization is your friend :)"]}),"\n",(0,s.jsx)(n.h3,{id:"task-no-3-bit-madness-05-k",children:"Task no. 3: Bit madness (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"This is a state of the art crypto. Please do not share :)"}),"\n",(0,s.jsx)(n.p,{children:"For encrypting:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Split the character that is to be encrypted in halves (4 and 4 bits each)."}),"\n",(0,s.jsx)(n.li,{children:"Bits in 1st half are to be split into pairs. Swap bits in those pairs."}),"\n",(0,s.jsxs)(n.li,{children:["Then use the 4 bits that you created in the 2nd step for ",(0,s.jsx)(n.code,{children:"XOR"})," with the other\n4 bits."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["This simple and ingenious principle will be illustrated on the following example.\nString we want to encrypt is ",(0,s.jsx)(n.code,{children:"Hello world!"}),". We need to encrypt each letter separately,\nso we will demonstrate on letter ",(0,s.jsx)(n.code,{children:"H"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Letter ",(0,s.jsx)(n.code,{children:"H"})," is represented in ASCII as ",(0,s.jsx)(n.code,{children:"72"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"72"})," represented in binary is: ",(0,s.jsx)(n.code,{children:"01001000"}),". So first 4 bits are: ",(0,s.jsx)(n.code,{children:"0100"})," and last\n4 bits are ",(0,s.jsx)(n.code,{children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["First half of bits (",(0,s.jsx)(n.code,{children:"0100"}),") consists of 2 pairs (",(0,s.jsx)(n.code,{children:"01"})," and ",(0,s.jsx)(n.code,{children:"00"}),") which we swap\n(",(0,s.jsx)(n.code,{children:"01 ~> 10"})," and ",(0,s.jsx)(n.code,{children:"00 ~> 00"}),"). That way we get ",(0,s.jsx)(n.code,{children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"That half is used for xor with the other 4 bits:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" 1000 // second half\nXOR 1000 // first half after 2nd step\n--------\n 0000\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Now we combine both halves (first one is ",(0,s.jsx)(n.code,{children:"1000"}),", which we got from the 2nd step\nand second one is ",(0,s.jsx)(n.code,{children:"0000"}),", which we got from the 3rd step) and get ",(0,s.jsx)(n.code,{children:"10000000"}),",\nwhich is encrypted character ",(0,s.jsx)(n.code,{children:"H"})," using this method."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"In case of decryption, reverse those steps."}),"\n",(0,s.jsx)(n.p,{children:"Your task is to implement functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"unsigned char* bit_encrypt(const char* text)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"char* bit_decrypt(const unsigned char* text)"})}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:'unsigned char* encrypted = bit_encrypt("Hello world!");\n\nfor (int i = 0; i < 12;i++) {\n printf("%x ", encrypted[i]);\n //80 9c 95 95 96 11 bc 96 b9 95 9d 10\n}\n\nif (encrypted != NULL) {\n free(encrypted);\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"task-no-4-all-combined-to-bmp-05-k",children:"Task no. 4: All combined to BMP (0.5 K\u20a1)"}),"\n",(0,s.jsx)(n.p,{children:"Authors of the BMP cipher are non-disclosed :)"}),"\n",(0,s.jsx)(n.p,{children:"Create pair of functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"unsigned char* bmp_encrypt(const char* key, const char* text)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"char* bmp_decrypt(const char* key, const unsigned char* text)"})}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"BMP cipher consists of following steps for encrypting:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Reverse the input string"}),"\n",(0,s.jsx)(n.li,{children:"Use Vigenere on the string you got from step #1"}),"\n",(0,s.jsx)(n.li,{children:"Use bit madness on the string you got from step #2"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For decrypting, reverse the steps."}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"In case you have any questions, feel free to reach out to me."}),"\n",(0,s.jsx)(n.hr,{})]})}function a(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>o,a:()=>c});var s=r(7294);const t={},i=s.createContext(t);function c(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d1aceb2e.3f8e795e.js b/assets/js/d1aceb2e.3f8e795e.js new file mode 100644 index 0000000..2f97321 --- /dev/null +++ b/assets/js/d1aceb2e.3f8e795e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1353],{71466:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var o=t(85893),r=t(11151);const i={id:"karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",tags:["python","karel","recursion","backtracking"],last_update:{date:new Date("2022-11-29T00:00:00.000Z")}},s=void 0,l={id:"recursion/karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",source:"@site/algorithms/04-recursion/2022-11-29-karel-1.md",sourceDirName:"04-recursion",slug:"/recursion/karel-1",permalink:"/algorithms/recursion/karel-1",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/04-recursion/2022-11-29-karel-1.md",tags:[{label:"python",permalink:"/algorithms/tags/python"},{label:"karel",permalink:"/algorithms/tags/karel"},{label:"recursion",permalink:"/algorithms/tags/recursion"},{label:"backtracking",permalink:"/algorithms/tags/backtracking"}],version:"current",lastUpdatedAt:166968e4,formattedLastUpdatedAt:"Nov 29, 2022",frontMatter:{id:"karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",tags:["python","karel","recursion","backtracking"],last_update:{date:"2022-11-29T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Recursion",permalink:"/algorithms/category/recursion"},next:{title:"Introduction to dynamic programming",permalink:"/algorithms/recursion/pyramid-slide-down"}},a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Your environment and problem description",id:"your-environment-and-problem-description",level:2},{value:"Environment",id:"environment",level:3},{value:"Interface",id:"interface",level:3},{value:"Problem",id:"problem",level:3},{value:"Simple problem to get familiar with the robot",id:"simple-problem-to-get-familiar-with-the-robot",level:2},{value:"Brainstorm the idea",id:"brainstorm-the-idea",level:2},{value:"\xbbRough\xab pseudocode",id:"rough-pseudocode",level:2},{value:"\xbbProper\xab pseudocode",id:"proper-pseudocode",level:2},{value:"Library",id:"library",level:2},{value:"Solution",id:"solution",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"pathname:///files/algorithms/recursion/karel-1.tar.gz",children:"Sources"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,o.jsx)(n.p,{children:"In this exercise we will be working with a Robot Karel and with a \xbbvery\xab limited\nresources. The point of this exercise is to show how powerful recursion and\nbacktracking can be even without anything else at your hand."}),"\n",(0,o.jsx)(n.h2,{id:"your-environment-and-problem-description",children:"Your environment and problem description"}),"\n",(0,o.jsx)(n.h3,{id:"environment",children:"Environment"}),"\n",(0,o.jsx)(n.p,{children:"You are given a robot that is present in a maze and is looking for an exit. Maze\nconsists of different walls and exit is marked with a single so-called \u201cbeeper\u201d."}),"\n",(0,o.jsx)(n.p,{children:"Walking into a wall results in a permanent damage of the robot."}),"\n",(0,o.jsx)(n.h3,{id:"interface",children:"Interface"}),"\n",(0,o.jsx)(n.p,{children:"You can control the robot using the following interface:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["actions \u200b\xad\u2014 you can use them to change the current state of the robot and its\nsurroundings","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.step()"})," \u2014 moves robot one step further"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.turn_left()"})," \u2014 turns robot 90-degrees counter-clockwise","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["notice that you are not given ",(0,o.jsx)(n.code,{children:"turn_right"})," or ",(0,o.jsx)(n.code,{children:"turn_around"}),", but feel free\nto implement them yourself"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.pick_beeper()"})," and opposite operation ",(0,o.jsx)(n.code,{children:"robot.put_beeper()"})," \u2014 that\nallows you to either pick or put \u201cbeeper\u201d from or onto the current position"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["queries \u2014 you can use them to check the current state of the robot and its\nsurroundings","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.beepers_present()"})," \u2014 to check if there are any beepers at the robot's\ncurrent location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.left_is_clear()"})," \u2014 to check if you can step to the left","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["analogically for ",(0,o.jsx)(n.code,{children:"front"})," and ",(0,o.jsx)(n.code,{children:"right"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.admonition,{type:"caution",children:[(0,o.jsx)(n.p,{children:"Helper functions / procedures are allowed. Return values are allowed."}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Variables are prohibited!"})})]}),"\n",(0,o.jsx)(n.h3,{id:"problem",children:"Problem"}),"\n",(0,o.jsx)(n.p,{children:"Your task is to decide whether there is an exit from the maze or not. You can see\nan example of a maze here:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Image of the maze",src:t(19857).Z+"",width:"770",height:"839"})}),"\n",(0,o.jsx)(n.h2,{id:"simple-problem-to-get-familiar-with-the-robot",children:"Simple problem to get familiar with the robot"}),"\n",(0,o.jsx)(n.p,{children:"If you feel completely lost after the previous description, let me start you off\nwith a simpler problem."}),"\n",(0,o.jsx)(n.p,{children:"You are standing in front of the stairs, your task is to walk up the stairs."}),"\n",(0,o.jsx)(n.p,{children:"You can see an example of such map here:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Image of the stairs",src:t(68617).Z+"",width:"1058",height:"1161"})}),"\n",(0,o.jsx)(n.h2,{id:"brainstorm-the-idea",children:"Brainstorm the idea"}),"\n",(0,o.jsx)(n.p,{children:"As a first step write down any ideas and things that you have noticed or came to\nyour mind. Ideally:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Write down a nested list of the problems"}),"\n",(0,o.jsx)(n.li,{children:"Write down list of problems that can happen"}),"\n",(0,o.jsxs)(n.li,{children:["Write down ",(0,o.jsx)(n.strong,{children:"anything"})," you consider important to solving the problem"]}),"\n"]}),"\n",(0,o.jsxs)(n.admonition,{title:"Example",type:"tip",children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Problem"}),": I want to find out whether the display on smartphone should rotate."]}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["nested list of problems","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Check if display has been rotated","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Read data from some sensor","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"From what sensor"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.li,{children:"In what format are the data I have read?"}),"\n",(0,o.jsx)(n.li,{children:"How do I communicate with the sensor?"}),"\n",(0,o.jsx)(n.li,{children:"What is the meaning of the data that I got?"}),"\n",(0,o.jsx)(n.li,{children:"How can I process it?"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["any problems that can happen","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"What if the sensor doesn't work?"}),"\n",(0,o.jsx)(n.li,{children:"What if the data doesn't conform to the specification?"}),"\n",(0,o.jsx)(n.li,{children:"What if my formulas are wrong?"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["anything important","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"I could probably use gyroscope."}),"\n",(0,o.jsx)(n.li,{children:"I should probably look up the datasheet for that module."}),"\n",(0,o.jsx)(n.li,{children:"I could write some tests to verify that my computations are correct."}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,o.jsx)(n.h2,{id:"rough-pseudocode",children:"\xbbRough\xab pseudocode"}),"\n",(0,o.jsxs)(n.p,{children:["As a next step write a ",(0,o.jsx)(n.strong,{children:"mock up"})," of a pseudocode solving the problem, you are\nallowed to use comments as placeholders for bigger chunks of code."]}),"\n",(0,o.jsx)(n.p,{children:"Those comments are also a very good hints for decomposition and short, but\ndescriptive, commnets (if they are short enough and you decide not to factor them\nout to separate functions)."}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"The smaller the function is, the easier it is to test it and argue about its\ncorrectness."})}),"\n",(0,o.jsx)(n.h2,{id:"proper-pseudocode",children:"\xbbProper\xab pseudocode"}),"\n",(0,o.jsxs)(n.p,{children:["If you are satisfied with the ",(0,o.jsx)(n.em,{children:"\xbbrough\xab pseudocode"}),", it's time to convert it into\na proper one. Get rid of the uncertain pieces of functionality and replace them\nwith proper pseudocode, i.e. list of the things that should happen in its place."]}),"\n",(0,o.jsx)(n.h2,{id:"library",children:"Library"}),"\n",(0,o.jsxs)(n.p,{children:["If you got here, and you ",(0,o.jsx)(n.strong,{children:"actually"})," wrote down the pseudocode, you can try your\nsolution after downloading the sources linked at the beginning. If you download\nthe ZIP-file, you can there:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"generate_mazes.py"})," - that was used to generate the same maze with beepers in\ndifferent locations"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"karel_tk.py"})," - library which can run Karel given the his world"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["documentation can be found ",(0,o.jsx)(n.a,{href:"https://www.fi.muni.cz/~xfocko/ib111/10/docs/",children:"here"})]}),"\n",(0,o.jsx)(n.li,{children:"also requires Tk Python library to be installed (it should be included in\nmajority of Python installations)"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"*.kw"})," - which represent multiple worlds for Karel I have prepared"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"skeleton.py"})," - skeleton for your solution, needs to be put in the same directory\nas ",(0,o.jsx)(n.code,{children:"karel_tk.py"})," and takes path to the world as a first argument, example usage:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ python3 skeleton.py stairs.kw\n"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"of course, this file can be renamed ;)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"solution",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Solution to this problem will be released as a second part, so that you can try\nit out by yourself without any influence of \u201cexample solution\u201d."}),"\n",(0,o.jsx)(n.p,{children:"If you want to get any feedback, feel free to mail me your solution (including\nall the steps that lead to your final solution, if you wish to get feedback on\nthose too)."})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},19857:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/maze-a374d908bc9445061e15faeddc71641e.png"},68617:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/stairs-5ee5d03905645aeb13eeaa7774451a64.png"},11151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>s});var o=t(67294);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d1aceb2e.53194f68.js b/assets/js/d1aceb2e.53194f68.js deleted file mode 100644 index e9288d9..0000000 --- a/assets/js/d1aceb2e.53194f68.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1353],{1466:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var o=t(5893),r=t(1151);const i={id:"karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",tags:["python","karel","recursion","backtracking"],last_update:{date:new Date("2022-11-29T00:00:00.000Z")}},s=void 0,l={id:"recursion/karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",source:"@site/algorithms/04-recursion/2022-11-29-karel-1.md",sourceDirName:"04-recursion",slug:"/recursion/karel-1",permalink:"/algorithms/recursion/karel-1",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/04-recursion/2022-11-29-karel-1.md",tags:[{label:"python",permalink:"/algorithms/tags/python"},{label:"karel",permalink:"/algorithms/tags/karel"},{label:"recursion",permalink:"/algorithms/tags/recursion"},{label:"backtracking",permalink:"/algorithms/tags/backtracking"}],version:"current",lastUpdatedAt:166968e4,formattedLastUpdatedAt:"Nov 29, 2022",frontMatter:{id:"karel-1",title:"Recursion and backtracking with Robot Karel",description:"A problem with too many restrictions.\n",tags:["python","karel","recursion","backtracking"],last_update:{date:"2022-11-29T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Recursion",permalink:"/algorithms/category/recursion"},next:{title:"Introduction to dynamic programming",permalink:"/algorithms/recursion/pyramid-slide-down"}},a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Your environment and problem description",id:"your-environment-and-problem-description",level:2},{value:"Environment",id:"environment",level:3},{value:"Interface",id:"interface",level:3},{value:"Problem",id:"problem",level:3},{value:"Simple problem to get familiar with the robot",id:"simple-problem-to-get-familiar-with-the-robot",level:2},{value:"Brainstorm the idea",id:"brainstorm-the-idea",level:2},{value:"\xbbRough\xab pseudocode",id:"rough-pseudocode",level:2},{value:"\xbbProper\xab pseudocode",id:"proper-pseudocode",level:2},{value:"Library",id:"library",level:2},{value:"Solution",id:"solution",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"pathname:///files/algorithms/recursion/karel-1.tar.gz",children:"Sources"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,o.jsx)(n.p,{children:"In this exercise we will be working with a Robot Karel and with a \xbbvery\xab limited\nresources. The point of this exercise is to show how powerful recursion and\nbacktracking can be even without anything else at your hand."}),"\n",(0,o.jsx)(n.h2,{id:"your-environment-and-problem-description",children:"Your environment and problem description"}),"\n",(0,o.jsx)(n.h3,{id:"environment",children:"Environment"}),"\n",(0,o.jsx)(n.p,{children:"You are given a robot that is present in a maze and is looking for an exit. Maze\nconsists of different walls and exit is marked with a single so-called \u201cbeeper\u201d."}),"\n",(0,o.jsx)(n.p,{children:"Walking into a wall results in a permanent damage of the robot."}),"\n",(0,o.jsx)(n.h3,{id:"interface",children:"Interface"}),"\n",(0,o.jsx)(n.p,{children:"You can control the robot using the following interface:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["actions \u200b\xad\u2014 you can use them to change the current state of the robot and its\nsurroundings","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.step()"})," \u2014 moves robot one step further"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.turn_left()"})," \u2014 turns robot 90-degrees counter-clockwise","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["notice that you are not given ",(0,o.jsx)(n.code,{children:"turn_right"})," or ",(0,o.jsx)(n.code,{children:"turn_around"}),", but feel free\nto implement them yourself"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.pick_beeper()"})," and opposite operation ",(0,o.jsx)(n.code,{children:"robot.put_beeper()"})," \u2014 that\nallows you to either pick or put \u201cbeeper\u201d from or onto the current position"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["queries \u2014 you can use them to check the current state of the robot and its\nsurroundings","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.beepers_present()"})," \u2014 to check if there are any beepers at the robot's\ncurrent location"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"robot.left_is_clear()"})," \u2014 to check if you can step to the left","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["analogically for ",(0,o.jsx)(n.code,{children:"front"})," and ",(0,o.jsx)(n.code,{children:"right"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.admonition,{type:"caution",children:[(0,o.jsx)(n.p,{children:"Helper functions / procedures are allowed. Return values are allowed."}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Variables are prohibited!"})})]}),"\n",(0,o.jsx)(n.h3,{id:"problem",children:"Problem"}),"\n",(0,o.jsx)(n.p,{children:"Your task is to decide whether there is an exit from the maze or not. You can see\nan example of a maze here:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Image of the maze",src:t(9857).Z+"",width:"770",height:"839"})}),"\n",(0,o.jsx)(n.h2,{id:"simple-problem-to-get-familiar-with-the-robot",children:"Simple problem to get familiar with the robot"}),"\n",(0,o.jsx)(n.p,{children:"If you feel completely lost after the previous description, let me start you off\nwith a simpler problem."}),"\n",(0,o.jsx)(n.p,{children:"You are standing in front of the stairs, your task is to walk up the stairs."}),"\n",(0,o.jsx)(n.p,{children:"You can see an example of such map here:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Image of the stairs",src:t(8617).Z+"",width:"1058",height:"1161"})}),"\n",(0,o.jsx)(n.h2,{id:"brainstorm-the-idea",children:"Brainstorm the idea"}),"\n",(0,o.jsx)(n.p,{children:"As a first step write down any ideas and things that you have noticed or came to\nyour mind. Ideally:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Write down a nested list of the problems"}),"\n",(0,o.jsx)(n.li,{children:"Write down list of problems that can happen"}),"\n",(0,o.jsxs)(n.li,{children:["Write down ",(0,o.jsx)(n.strong,{children:"anything"})," you consider important to solving the problem"]}),"\n"]}),"\n",(0,o.jsxs)(n.admonition,{title:"Example",type:"tip",children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Problem"}),": I want to find out whether the display on smartphone should rotate."]}),(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["nested list of problems","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Check if display has been rotated","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Read data from some sensor","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"From what sensor"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.li,{children:"In what format are the data I have read?"}),"\n",(0,o.jsx)(n.li,{children:"How do I communicate with the sensor?"}),"\n",(0,o.jsx)(n.li,{children:"What is the meaning of the data that I got?"}),"\n",(0,o.jsx)(n.li,{children:"How can I process it?"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["any problems that can happen","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"What if the sensor doesn't work?"}),"\n",(0,o.jsx)(n.li,{children:"What if the data doesn't conform to the specification?"}),"\n",(0,o.jsx)(n.li,{children:"What if my formulas are wrong?"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["anything important","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"I could probably use gyroscope."}),"\n",(0,o.jsx)(n.li,{children:"I should probably look up the datasheet for that module."}),"\n",(0,o.jsx)(n.li,{children:"I could write some tests to verify that my computations are correct."}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,o.jsx)(n.h2,{id:"rough-pseudocode",children:"\xbbRough\xab pseudocode"}),"\n",(0,o.jsxs)(n.p,{children:["As a next step write a ",(0,o.jsx)(n.strong,{children:"mock up"})," of a pseudocode solving the problem, you are\nallowed to use comments as placeholders for bigger chunks of code."]}),"\n",(0,o.jsx)(n.p,{children:"Those comments are also a very good hints for decomposition and short, but\ndescriptive, commnets (if they are short enough and you decide not to factor them\nout to separate functions)."}),"\n",(0,o.jsx)(n.admonition,{type:"tip",children:(0,o.jsx)(n.p,{children:"The smaller the function is, the easier it is to test it and argue about its\ncorrectness."})}),"\n",(0,o.jsx)(n.h2,{id:"proper-pseudocode",children:"\xbbProper\xab pseudocode"}),"\n",(0,o.jsxs)(n.p,{children:["If you are satisfied with the ",(0,o.jsx)(n.em,{children:"\xbbrough\xab pseudocode"}),", it's time to convert it into\na proper one. Get rid of the uncertain pieces of functionality and replace them\nwith proper pseudocode, i.e. list of the things that should happen in its place."]}),"\n",(0,o.jsx)(n.h2,{id:"library",children:"Library"}),"\n",(0,o.jsxs)(n.p,{children:["If you got here, and you ",(0,o.jsx)(n.strong,{children:"actually"})," wrote down the pseudocode, you can try your\nsolution after downloading the sources linked at the beginning. If you download\nthe ZIP-file, you can there:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"generate_mazes.py"})," - that was used to generate the same maze with beepers in\ndifferent locations"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"karel_tk.py"})," - library which can run Karel given the his world"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["documentation can be found ",(0,o.jsx)(n.a,{href:"https://www.fi.muni.cz/~xfocko/ib111/10/docs/",children:"here"})]}),"\n",(0,o.jsx)(n.li,{children:"also requires Tk Python library to be installed (it should be included in\nmajority of Python installations)"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"*.kw"})," - which represent multiple worlds for Karel I have prepared"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"skeleton.py"})," - skeleton for your solution, needs to be put in the same directory\nas ",(0,o.jsx)(n.code,{children:"karel_tk.py"})," and takes path to the world as a first argument, example usage:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ python3 skeleton.py stairs.kw\n"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"of course, this file can be renamed ;)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"solution",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Solution to this problem will be released as a second part, so that you can try\nit out by yourself without any influence of \u201cexample solution\u201d."}),"\n",(0,o.jsx)(n.p,{children:"If you want to get any feedback, feel free to mail me your solution (including\nall the steps that lead to your final solution, if you wish to get feedback on\nthose too)."})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},9857:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/maze-a374d908bc9445061e15faeddc71641e.png"},8617:(e,n,t)=>{t.d(n,{Z:()=>o});const o=t.p+"assets/images/stairs-5ee5d03905645aeb13eeaa7774451a64.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>s});var o=t(7294);const r={},i=o.createContext(r);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d255bd7f.da5efa5d.js b/assets/js/d255bd7f.da5efa5d.js new file mode 100644 index 0000000..3ac395f --- /dev/null +++ b/assets/js/d255bd7f.da5efa5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6292],{60341:e=>{e.exports=JSON.parse('{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","permalink":"/algorithms/rb-trees/rules"},{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/d309b5b1.924b0302.js b/assets/js/d309b5b1.924b0302.js new file mode 100644 index 0000000..a1f0c4a --- /dev/null +++ b/assets/js/d309b5b1.924b0302.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8908],{26102:t=>{t.exports=JSON.parse('{"title":"Algorithms and Correctness","description":"Materials related to basic ideas behind algorithms and proofs of their\\ncorrectness.\\n","slug":"/category/algorithms-and-correctness","permalink":"/algorithms/category/algorithms-and-correctness","navigation":{"previous":{"title":"Introduction","permalink":"/algorithms/"},"next":{"title":"Vague postconditions and proving correctness of algorithms","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d309b5b1.b50fbce1.js b/assets/js/d309b5b1.b50fbce1.js deleted file mode 100644 index 9467395..0000000 --- a/assets/js/d309b5b1.b50fbce1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8908],{6102:t=>{t.exports=JSON.parse('{"title":"Algorithms and Correctness","description":"Materials related to basic ideas behind algorithms and proofs of their\\ncorrectness.\\n","slug":"/category/algorithms-and-correctness","permalink":"/algorithms/category/algorithms-and-correctness","navigation":{"previous":{"title":"Introduction","permalink":"/algorithms/"},"next":{"title":"Vague postconditions and proving correctness of algorithms","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d255bd7f.aa5f778c.js b/assets/js/d4b1e057.c26d5bb6.js similarity index 82% rename from assets/js/d255bd7f.aa5f778c.js rename to assets/js/d4b1e057.c26d5bb6.js index 39d32ff..bd421ee 100644 --- a/assets/js/d255bd7f.aa5f778c.js +++ b/assets/js/d4b1e057.c26d5bb6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6292],{341:e=>{e.exports=JSON.parse('{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","permalink":"/algorithms/rb-trees/rules"},{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1492],{12842:e=>{e.exports=JSON.parse('{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","permalink":"/algorithms/rb-trees/rules"},{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/d4b1e057.dcf46d42.js b/assets/js/d4b1e057.dcf46d42.js deleted file mode 100644 index 65bb1fd..0000000 --- a/assets/js/d4b1e057.dcf46d42.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1492],{2842:e=>{e.exports=JSON.parse('{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"rb-trees/rules","title":"On the rules of the red-black tree","description":"Shower thoughts on the rules of the red-black tree.\\n","permalink":"/algorithms/rb-trees/rules"},{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/d57b4369.38858940.js b/assets/js/d57b4369.38858940.js deleted file mode 100644 index 78518c7..0000000 --- a/assets/js/d57b4369.38858940.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6179],{2715:t=>{t.exports=JSON.parse('{"label":"csharp","permalink":"/algorithms/tags/csharp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/d57b4369.6f772ce2.js b/assets/js/d57b4369.6f772ce2.js new file mode 100644 index 0000000..7e16581 --- /dev/null +++ b/assets/js/d57b4369.6f772ce2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6179],{52715:t=>{t.exports=JSON.parse('{"label":"csharp","permalink":"/algorithms/tags/csharp","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/d675395f.1f389aac.js b/assets/js/d675395f.1f389aac.js new file mode 100644 index 0000000..1dc4e11 --- /dev/null +++ b/assets/js/d675395f.1f389aac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2741],{15745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/d675395f.567b4609.js b/assets/js/d675395f.567b4609.js deleted file mode 100644 index b3d716e..0000000 --- a/assets/js/d675395f.567b4609.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2741],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/d79dd549.0ed0fe01.js b/assets/js/d79dd549.0ed0fe01.js new file mode 100644 index 0000000..84b05e3 --- /dev/null +++ b/assets/js/d79dd549.0ed0fe01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5169],{29261:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/red-hat","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/d79dd549.ee10504b.js b/assets/js/d79dd549.ee10504b.js deleted file mode 100644 index 8206e63..0000000 --- a/assets/js/d79dd549.ee10504b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5169],{9261:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/red-hat","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/d7f7fb17.3796c0b9.js b/assets/js/d7f7fb17.3796c0b9.js new file mode 100644 index 0000000..1541ff7 --- /dev/null +++ b/assets/js/d7f7fb17.3796c0b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1171],{3455:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var n=o(85893),a=o(11151);const r={title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},s=void 0,i={permalink:"/blog/aoc-2022/intro",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md",source:"@site/blog/aoc-2022/00-intro.md",title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:8.665,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},c={authorsImageUrls:[void 0]},d=[];function f(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's talk about the preparations for this year's [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"]."]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},11151:(e,t,o)=>{o.d(t,{Z:()=>i,a:()=>s});var n=o(67294);const a={},r=n.createContext(a);function s(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d7f7fb17.b0d839de.js b/assets/js/d7f7fb17.b0d839de.js deleted file mode 100644 index d12190a..0000000 --- a/assets/js/d7f7fb17.b0d839de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1171],{3455:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var n=o(5893),a=o(1151);const r={title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},s=void 0,i={permalink:"/blog/aoc-2022/intro",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/00-intro.md",source:"@site/blog/aoc-2022/00-intro.md",title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45:00.000Z",formattedDate:"December 14, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:8.665,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"Advent of Code '22 in Rust",description:"Preparing for Advent of Code '22.",date:"2022-12-14T21:45",slug:"aoc-2022/intro",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"1st week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/1st-week"}},c={authorsImageUrls:[void 0]},d=[];function f(e){const t={em:"em",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["Let's talk about the preparations for this year's [",(0,n.jsx)(t.em,{children:"Advent of Code"}),"]."]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>i,a:()=>s});var n=o(7294);const a={},r=n.createContext(a);function s(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d8f4410e.e8838bb3.js b/assets/js/d8f4410e.e8838bb3.js new file mode 100644 index 0000000..3e3cc2c --- /dev/null +++ b/assets/js/d8f4410e.e8838bb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2997],{41941:t=>{t.exports=JSON.parse('{"label":"hash-tables","permalink":"/algorithms/tags/hash-tables","allTagsPath":"/algorithms/tags","count":3,"items":[{"id":"hash-tables/2023-11-28-breaking/breaking","title":"Breaking Hash Table","description":"How to get the linear time complexity in a hash table.\\n","permalink":"/algorithms/hash-tables/breaking"},{"id":"hash-tables/2023-11-28-breaking/python","title":"Breaking Python","description":"Actually getting the worst-case time complexity in Python.\\n","permalink":"/algorithms/hash-tables/breaking/python"},{"id":"hash-tables/2023-11-28-breaking/mitigations","title":"Possible Mitigations","description":"Talking about the ways how to prevent the attacks on the hash table.\\n","permalink":"/algorithms/hash-tables/breaking/mitigations"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/dd841e73.4a69402c.js b/assets/js/dd841e73.4a69402c.js deleted file mode 100644 index 0336ea9..0000000 --- a/assets/js/dd841e73.4a69402c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2482],{155:i=>{i.exports=JSON.parse('{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/dd841e73.9e9c9dbf.js b/assets/js/dd841e73.9e9c9dbf.js new file mode 100644 index 0000000..49bd17c --- /dev/null +++ b/assets/js/dd841e73.9e9c9dbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2482],{40155:i=>{i.exports=JSON.parse('{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/ddc7679f.34b4249c.js b/assets/js/ddc7679f.34b4249c.js deleted file mode 100644 index 176aa38..0000000 --- a/assets/js/ddc7679f.34b4249c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[569],{4322:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>h});var s=n(5893),i=n(1151);const a={id:"iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",tags:["csharp","graphs","iterators","iterative"],last_update:{date:new Date("2021-05-18T00:00:00.000Z")}},r=void 0,o={id:"graphs/iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",source:"@site/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",sourceDirName:"10-graphs",slug:"/graphs/iterative-and-iterators",permalink:"/algorithms/graphs/iterative-and-iterators",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",tags:[{label:"csharp",permalink:"/algorithms/tags/csharp"},{label:"graphs",permalink:"/algorithms/tags/graphs"},{label:"iterators",permalink:"/algorithms/tags/iterators"},{label:"iterative",permalink:"/algorithms/tags/iterative"}],version:"current",lastUpdatedAt:1621296e3,formattedLastUpdatedAt:"May 18, 2021",frontMatter:{id:"iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",tags:["csharp","graphs","iterators","iterative"],last_update:{date:"2021-05-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Graphs",permalink:"/algorithms/category/graphs"},next:{title:"Distance boundaries from BFS tree on undirected graphs",permalink:"/algorithms/graphs/bfs-tree"}},c={},h=[{value:"Introduction",id:"introduction",level:2},{value:"Different implementations",id:"different-implementations",level:2},{value:"Recursive DFS implementation from exercises without colors",id:"recursive-dfs-implementation-from-exercises-without-colors",level:3},{value:"Iterative DFS from the exercises",id:"iterative-dfs-from-the-exercises",level:3},{value:"My iterative with path in stack",id:"my-iterative-with-path-in-stack",level:3},{value:"My iterative solution with iterators",id:"my-iterative-solution-with-iterators",level:3},{value:"Implementation",id:"implementation",level:2}];function l(e){const t={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"pathname:///files/algorithms/graphs/iterative-and-iterators.tar.gz",children:"Source code used later on."})}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"As we have talked on the seminar, iterative approach to implementing DFS is not very intuitive and is a very easy way how to create an incorrect implementation."}),"\n",(0,s.jsx)(t.p,{children:"On the other hand, we have seen iterative implementation in the exercises and I have also prepared two from which one was similar to recursive implementation without colors from exercises and the other one used features of high-level languages."}),"\n",(0,s.jsx)(t.h2,{id:"different-implementations",children:"Different implementations"}),"\n",(0,s.jsx)(t.h3,{id:"recursive-dfs-implementation-from-exercises-without-colors",children:"Recursive DFS implementation from exercises without colors"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"function VisitedDFS(u: Vertex, visited: VertexSet) return VertexSet is\n v: Vertex;\nbegin\n visited.Union(To_Set(u));\n\n for v in u.successors loop\n if not Contains(visited, v) then\n visited := visitedDFS(v, Visited);\n end if;\n end loop;\n\n return visited;\nend VisitedDFS;\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This implementation is correct, does the DFS traversal as it should, however it has one \u201csmallish\u201d downside and that is the time complexity. The usage of set raises the time complexity, of course it is implementation dependant. However in case of either RB-tree or hash-table implementation, we get look-up in time ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsxs)(t.mrow,{children:[(0,s.jsx)(t.mi,{mathvariant:"script",children:"O"}),(0,s.jsx)(t.mo,{stretchy:"false",children:"("}),(0,s.jsx)(t.mi,{children:"n"}),(0,s.jsx)(t.mo,{stretchy:"false",children:")"})]}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,s.jsx)(t.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,s.jsx)(t.span,{className:"mopen",children:"("}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"}),(0,s.jsx)(t.span,{className:"mclose",children:")"})]})})]})," for hash-table in worst-case or ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsxs)(t.mrow,{children:[(0,s.jsx)(t.mi,{mathvariant:"script",children:"O"}),(0,s.jsx)(t.mo,{stretchy:"false",children:"("}),(0,s.jsx)(t.mi,{children:"log"}),(0,s.jsx)(t.mo,{children:"\u2061"}),(0,s.jsx)(t.mi,{children:"n"}),(0,s.jsx)(t.mo,{stretchy:"false",children:")"})]}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\log n)"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,s.jsx)(t.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,s.jsx)(t.span,{className:"mopen",children:"("}),(0,s.jsxs)(t.span,{className:"mop",children:["lo",(0,s.jsx)(t.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"}),(0,s.jsx)(t.span,{className:"mclose",children:")"})]})})]})," for the other in the worst-case. Both are not ideal compared to checking color on vertex."]}),"\n",(0,s.jsx)(t.h3,{id:"iterative-dfs-from-the-exercises",children:"Iterative DFS from the exercises"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure IterDFS(u: Vertex) is\n stack: StateVector;\n i, time: Integer;\n v: Vertex;\nbegin\n stack.Append(VertexState(u, 0));\n u.color := Gray;\n time := 1;\n u.d := time;\n\n while not stack.Is_Empty loop\n u := stack.Last_Element.Vertex;\n i := stack.Last_Element.NextIndex;\n stack.Delete_Last;\n\n if i < u.successors.Length then\n -- search is not finished, is pushed back to stack\n stack.Append(VertexState(u, k + 1));\n\n v := u.successors.Element(i);\n if v.color = White then\n stack.Append(VertexState(v, 0));\n v.color := Gray;\n time := time + 1;\n v.d := time;\n end if;\n else\n -- u has no other successors, we can finish the search\n time := time + 1;\n u.f := time;\n u.color := Black;\n end if;\n end loop;\n\nend IterDFS;\n"})}),"\n",(0,s.jsx)(t.p,{children:"As we can see, there is some ordering in which we search through the successors. Time complexity is OK, stack holds at most all vertices (they must be on the current path)."}),"\n",(0,s.jsx)(t.h3,{id:"my-iterative-with-path-in-stack",children:"My iterative with path in stack"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure DFS(start: Vertex) is\n path: VertexVector;\n time: Integer;\n hasSuccessor: Bool;\n successor: Vertex;\nbegin\n path.Append(start);\n time := 1;\n\n start.d := time;\n start.color := Gray;\n\n while not path.Is_Empty loop\n hasSuccessor := false;\n\n for successor in path.Last_Element.successors loop\n if successor.color = White then\n hasSuccessor := true;\n\n successor.d := time + 1;\n successor.color := Gray;\n time := time + 1;\n\n path.Append(successor);\n\n exit;\n end if;\n end loop;\n\n if not hasSuccessor then\n path.Last_Element.f := time + 1;\n path.Last_Element.color := Black;\n\n time := time + 1;\n path.Delete_Last;\n end if;\n\n end loop;\nend DFS;\n"})}),"\n",(0,s.jsx)(t.p,{children:"This approach is similar to the iterative solution from the exercises, but it does not keep the index of the next successor, therefore it always iterates through all of them, which raises the time complexity."}),"\n",(0,s.jsx)(t.h3,{id:"my-iterative-solution-with-iterators",children:"My iterative solution with iterators"}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand, we do not actually have to depend on the representation of the graph. In this case, we just ",(0,s.jsx)(t.em,{children:"somehow"})," obtain the iterator (which yields all of the succesors) and keep it in the stack."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure DFS(start: Vertex) is\n path: StateVector;\n time: Integer;\n current: State;\n nextVertex: Vertex;\nbegin\n path.Append(State(start));\n time := 1;\n\n start.d := time;\n start.color := Gray;\n\n while not path.Is_Empty loop\n current := path.Last_Element;\n\n if not Move_Next(current.successors) then\n path.Delete_Last;\n\n time := time + 1;\n current.vertex.f := time;\n\n current.vertex.color := Black;\n else if current.successors.Value.color = white then\n nextVertex := current.successors.Value;\n\n time := time + 1;\n nextVertex.d := time;\n\n nextVertex.color := Gray;\n\n path.Append(State(nextVertex));\n end if;\n end loop;\nend DFS;\n"})}),"\n",(0,s.jsxs)(t.p,{children:["( The way we manipulate with the iterators is closest to the C# implementation. Apart from the ",(0,s.jsx)(t.code,{children:"Iterator"})," thing :) In case you tried to implement it in C++, you would more than likely need to change the check, since you would get first successor right at the beginning )"]}),"\n",(0,s.jsx)(t.p,{children:"So here we don't keep indices, but the iterators. We can also check existence of other successors easily: by the iterator moving after the last successor."}),"\n",(0,s.jsxs)(t.p,{children:["Closer explanation of the ",(0,s.jsx)(t.em,{children:"iterator shenanigans"})," follows. In the beginning, either ",(0,s.jsx)(t.code,{children:"start"})," or when pushing new vertex, we are pushing an iterator that points ",(0,s.jsx)(t.em,{children:"just before"})," the first successor. When populating ",(0,s.jsx)(t.code,{children:"lastVertex"})," and ",(0,s.jsx)(t.code,{children:"successors"})," in the ",(0,s.jsx)(t.code,{children:"while"}),"-loop, we take the element from the top of the stack. ",(0,s.jsx)(t.code,{children:"MoveNext"})," returns ",(0,s.jsx)(t.code,{children:"true"})," if there is an element, i.e. successor in this case. If it returns ",(0,s.jsx)(t.code,{children:"false"})," we have nothing to do and we pop the vertex from the stack (also set finishing time and color). If we have successor we check if it has been already visited or not. If has not, we set discovery time and color accordingly, also we add it to stack."]}),"\n",(0,s.jsx)(t.h2,{id:"implementation",children:"Implementation"}),"\n",(0,s.jsx)(t.p,{children:"In case you want to play around with the code. At the beginning there is a link to the C# implementation that can be used. It has a basic representation of graph and includes BFS/DFS implementation in classes."}),"\n",(0,s.jsxs)(t.p,{children:["In ",(0,s.jsx)(t.code,{children:"Program.cs"})," you can also find a method that returns graph we used on the seminar."]})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var s=n(7294);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ddc7679f.4b5bdacd.js b/assets/js/ddc7679f.4b5bdacd.js new file mode 100644 index 0000000..175f6ab --- /dev/null +++ b/assets/js/ddc7679f.4b5bdacd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[569],{64322:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>h});var s=n(85893),i=n(11151);const a={id:"iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",tags:["csharp","graphs","iterators","iterative"],last_update:{date:new Date("2021-05-18T00:00:00.000Z")}},r=void 0,o={id:"graphs/iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",source:"@site/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",sourceDirName:"10-graphs",slug:"/graphs/iterative-and-iterators",permalink:"/algorithms/graphs/iterative-and-iterators",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",tags:[{label:"csharp",permalink:"/algorithms/tags/csharp"},{label:"graphs",permalink:"/algorithms/tags/graphs"},{label:"iterators",permalink:"/algorithms/tags/iterators"},{label:"iterative",permalink:"/algorithms/tags/iterative"}],version:"current",lastUpdatedAt:1621296e3,formattedLastUpdatedAt:"May 18, 2021",frontMatter:{id:"iterative-and-iterators",title:"Iterative algorithms via iterators",description:"Iterative DFS using iterators.\n",tags:["csharp","graphs","iterators","iterative"],last_update:{date:"2021-05-18T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Graphs",permalink:"/algorithms/category/graphs"},next:{title:"Distance boundaries from BFS tree on undirected graphs",permalink:"/algorithms/graphs/bfs-tree"}},c={},h=[{value:"Introduction",id:"introduction",level:2},{value:"Different implementations",id:"different-implementations",level:2},{value:"Recursive DFS implementation from exercises without colors",id:"recursive-dfs-implementation-from-exercises-without-colors",level:3},{value:"Iterative DFS from the exercises",id:"iterative-dfs-from-the-exercises",level:3},{value:"My iterative with path in stack",id:"my-iterative-with-path-in-stack",level:3},{value:"My iterative solution with iterators",id:"my-iterative-solution-with-iterators",level:3},{value:"Implementation",id:"implementation",level:2}];function l(e){const t={a:"a",annotation:"annotation",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mo:"mo",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"pathname:///files/algorithms/graphs/iterative-and-iterators.tar.gz",children:"Source code used later on."})}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"As we have talked on the seminar, iterative approach to implementing DFS is not very intuitive and is a very easy way how to create an incorrect implementation."}),"\n",(0,s.jsx)(t.p,{children:"On the other hand, we have seen iterative implementation in the exercises and I have also prepared two from which one was similar to recursive implementation without colors from exercises and the other one used features of high-level languages."}),"\n",(0,s.jsx)(t.h2,{id:"different-implementations",children:"Different implementations"}),"\n",(0,s.jsx)(t.h3,{id:"recursive-dfs-implementation-from-exercises-without-colors",children:"Recursive DFS implementation from exercises without colors"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"function VisitedDFS(u: Vertex, visited: VertexSet) return VertexSet is\n v: Vertex;\nbegin\n visited.Union(To_Set(u));\n\n for v in u.successors loop\n if not Contains(visited, v) then\n visited := visitedDFS(v, Visited);\n end if;\n end loop;\n\n return visited;\nend VisitedDFS;\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This implementation is correct, does the DFS traversal as it should, however it has one \u201csmallish\u201d downside and that is the time complexity. The usage of set raises the time complexity, of course it is implementation dependant. However in case of either RB-tree or hash-table implementation, we get look-up in time ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsxs)(t.mrow,{children:[(0,s.jsx)(t.mi,{mathvariant:"script",children:"O"}),(0,s.jsx)(t.mo,{stretchy:"false",children:"("}),(0,s.jsx)(t.mi,{children:"n"}),(0,s.jsx)(t.mo,{stretchy:"false",children:")"})]}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(n)"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,s.jsx)(t.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,s.jsx)(t.span,{className:"mopen",children:"("}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"}),(0,s.jsx)(t.span,{className:"mclose",children:")"})]})})]})," for hash-table in worst-case or ",(0,s.jsxs)(t.span,{className:"katex",children:[(0,s.jsx)(t.span,{className:"katex-mathml",children:(0,s.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,s.jsxs)(t.semantics,{children:[(0,s.jsxs)(t.mrow,{children:[(0,s.jsx)(t.mi,{mathvariant:"script",children:"O"}),(0,s.jsx)(t.mo,{stretchy:"false",children:"("}),(0,s.jsx)(t.mi,{children:"log"}),(0,s.jsx)(t.mo,{children:"\u2061"}),(0,s.jsx)(t.mi,{children:"n"}),(0,s.jsx)(t.mo,{stretchy:"false",children:")"})]}),(0,s.jsx)(t.annotation,{encoding:"application/x-tex",children:"\\mathcal{O}(\\log n)"})]})})}),(0,s.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,s.jsxs)(t.span,{className:"base",children:[(0,s.jsx)(t.span,{className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,s.jsx)(t.span,{className:"mord mathcal",style:{marginRight:"0.02778em"},children:"O"}),(0,s.jsx)(t.span,{className:"mopen",children:"("}),(0,s.jsxs)(t.span,{className:"mop",children:["lo",(0,s.jsx)(t.span,{style:{marginRight:"0.01389em"},children:"g"})]}),(0,s.jsx)(t.span,{className:"mspace",style:{marginRight:"0.1667em"}}),(0,s.jsx)(t.span,{className:"mord mathnormal",children:"n"}),(0,s.jsx)(t.span,{className:"mclose",children:")"})]})})]})," for the other in the worst-case. Both are not ideal compared to checking color on vertex."]}),"\n",(0,s.jsx)(t.h3,{id:"iterative-dfs-from-the-exercises",children:"Iterative DFS from the exercises"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure IterDFS(u: Vertex) is\n stack: StateVector;\n i, time: Integer;\n v: Vertex;\nbegin\n stack.Append(VertexState(u, 0));\n u.color := Gray;\n time := 1;\n u.d := time;\n\n while not stack.Is_Empty loop\n u := stack.Last_Element.Vertex;\n i := stack.Last_Element.NextIndex;\n stack.Delete_Last;\n\n if i < u.successors.Length then\n -- search is not finished, is pushed back to stack\n stack.Append(VertexState(u, k + 1));\n\n v := u.successors.Element(i);\n if v.color = White then\n stack.Append(VertexState(v, 0));\n v.color := Gray;\n time := time + 1;\n v.d := time;\n end if;\n else\n -- u has no other successors, we can finish the search\n time := time + 1;\n u.f := time;\n u.color := Black;\n end if;\n end loop;\n\nend IterDFS;\n"})}),"\n",(0,s.jsx)(t.p,{children:"As we can see, there is some ordering in which we search through the successors. Time complexity is OK, stack holds at most all vertices (they must be on the current path)."}),"\n",(0,s.jsx)(t.h3,{id:"my-iterative-with-path-in-stack",children:"My iterative with path in stack"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure DFS(start: Vertex) is\n path: VertexVector;\n time: Integer;\n hasSuccessor: Bool;\n successor: Vertex;\nbegin\n path.Append(start);\n time := 1;\n\n start.d := time;\n start.color := Gray;\n\n while not path.Is_Empty loop\n hasSuccessor := false;\n\n for successor in path.Last_Element.successors loop\n if successor.color = White then\n hasSuccessor := true;\n\n successor.d := time + 1;\n successor.color := Gray;\n time := time + 1;\n\n path.Append(successor);\n\n exit;\n end if;\n end loop;\n\n if not hasSuccessor then\n path.Last_Element.f := time + 1;\n path.Last_Element.color := Black;\n\n time := time + 1;\n path.Delete_Last;\n end if;\n\n end loop;\nend DFS;\n"})}),"\n",(0,s.jsx)(t.p,{children:"This approach is similar to the iterative solution from the exercises, but it does not keep the index of the next successor, therefore it always iterates through all of them, which raises the time complexity."}),"\n",(0,s.jsx)(t.h3,{id:"my-iterative-solution-with-iterators",children:"My iterative solution with iterators"}),"\n",(0,s.jsxs)(t.p,{children:["On the other hand, we do not actually have to depend on the representation of the graph. In this case, we just ",(0,s.jsx)(t.em,{children:"somehow"})," obtain the iterator (which yields all of the succesors) and keep it in the stack."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ada",metastring:"showLineNumbers",children:"procedure DFS(start: Vertex) is\n path: StateVector;\n time: Integer;\n current: State;\n nextVertex: Vertex;\nbegin\n path.Append(State(start));\n time := 1;\n\n start.d := time;\n start.color := Gray;\n\n while not path.Is_Empty loop\n current := path.Last_Element;\n\n if not Move_Next(current.successors) then\n path.Delete_Last;\n\n time := time + 1;\n current.vertex.f := time;\n\n current.vertex.color := Black;\n else if current.successors.Value.color = white then\n nextVertex := current.successors.Value;\n\n time := time + 1;\n nextVertex.d := time;\n\n nextVertex.color := Gray;\n\n path.Append(State(nextVertex));\n end if;\n end loop;\nend DFS;\n"})}),"\n",(0,s.jsxs)(t.p,{children:["( The way we manipulate with the iterators is closest to the C# implementation. Apart from the ",(0,s.jsx)(t.code,{children:"Iterator"})," thing :) In case you tried to implement it in C++, you would more than likely need to change the check, since you would get first successor right at the beginning )"]}),"\n",(0,s.jsx)(t.p,{children:"So here we don't keep indices, but the iterators. We can also check existence of other successors easily: by the iterator moving after the last successor."}),"\n",(0,s.jsxs)(t.p,{children:["Closer explanation of the ",(0,s.jsx)(t.em,{children:"iterator shenanigans"})," follows. In the beginning, either ",(0,s.jsx)(t.code,{children:"start"})," or when pushing new vertex, we are pushing an iterator that points ",(0,s.jsx)(t.em,{children:"just before"})," the first successor. When populating ",(0,s.jsx)(t.code,{children:"lastVertex"})," and ",(0,s.jsx)(t.code,{children:"successors"})," in the ",(0,s.jsx)(t.code,{children:"while"}),"-loop, we take the element from the top of the stack. ",(0,s.jsx)(t.code,{children:"MoveNext"})," returns ",(0,s.jsx)(t.code,{children:"true"})," if there is an element, i.e. successor in this case. If it returns ",(0,s.jsx)(t.code,{children:"false"})," we have nothing to do and we pop the vertex from the stack (also set finishing time and color). If we have successor we check if it has been already visited or not. If has not, we set discovery time and color accordingly, also we add it to stack."]}),"\n",(0,s.jsx)(t.h2,{id:"implementation",children:"Implementation"}),"\n",(0,s.jsx)(t.p,{children:"In case you want to play around with the code. At the beginning there is a link to the C# implementation that can be used. It has a basic representation of graph and includes BFS/DFS implementation in classes."}),"\n",(0,s.jsxs)(t.p,{children:["In ",(0,s.jsx)(t.code,{children:"Program.cs"})," you can also find a method that returns graph we used on the seminar."]})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var s=n(67294);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dead8108.33f96b65.js b/assets/js/dead8108.33f96b65.js deleted file mode 100644 index 4a06351..0000000 --- a/assets/js/dead8108.33f96b65.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8807],{1431:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var s=t(5893),i=t(1151);const o={id:"seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",last_update:{date:new Date("2023-03-07T00:00:00.000Z")}},r=void 0,c={id:"bonuses/seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",source:"@site/c/bonuses/03.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-03",permalink:"/c/bonuses/seminar-03",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/03.md",tags:[],version:"current",lastUpdatedAt:1678147200,formattedLastUpdatedAt:"Mar 7, 2023",frontMatter:{id:"seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",last_update:{date:"2023-03-07T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Bonuses",permalink:"/c/category/bonuses"},next:{title:"4th seminar",permalink:"/c/bonuses/seminar-04"}},a={},l=[{value:"Light version (<code>main_light.c</code>)",id:"light-version-main_lightc",level:2},{value:"Full fat version (<code>main.c</code>)",id:"full-fat-version-mainc",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.admonition,{type:"caution",children:(0,s.jsxs)(n.p,{children:["Deadline for the submission of the bonus is ",(0,s.jsx)(n.strong,{children:"March 16th 24:00"}),"."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["In case you have any questions, feel free to reach out either by email, Discord\nor just by submitting an issue ",(0,s.jsx)(n.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/-/issues/new",children:"here"}),"."]})}),"\n",(0,s.jsxs)(n.p,{children:["This assignment has two versions. For the light version you can get 1.5 K\u20a1. For\nthe ",(0,s.jsx)(n.em,{children:"full fat"})," 3 K\u20a1. ",(0,s.jsx)(n.strong,{children:"You can choose only one of them"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To both of them you are given some basic tests. You can also have a look at the\ncode used by the tests and use it to your advantage."}),"\n",(0,s.jsx)(n.p,{children:"Details can be found in the doxygen comments included in the source files."}),"\n",(0,s.jsxs)(n.h2,{id:"light-version-main_lightc",children:["Light version (",(0,s.jsx)(n.code,{children:"main_light.c"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/03/main_light.c",children:"Source"})}),"\n",(0,s.jsx)(n.p,{children:"For the light version you have 3 functions to finish:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"swap"})," - that swaps two ints passed by pointers."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"maximum"})," - that returns index of the biggest ",(0,s.jsx)(n.code,{children:"int"})," in the array."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"select_sort"})," - that sorts passed array using Select Sort."]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"full-fat-version-mainc",children:["Full fat version (",(0,s.jsx)(n.code,{children:"main.c"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/03/main.c",children:"Source"})}),"\n",(0,s.jsx)(n.p,{children:"For the full fat version you have 4 functions to implement:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"swap"})," - that swaps two variables passed by pointers."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"maximum"})," - that returns index of the biggest element in the array using the\ncomparator."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"select_sort"})," - that sorts passed array using Select Sort."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"int_comparator"})," - that is used for generic sort and maximum"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"To 2nd and 3rd function you are given a pseudocode that you can use to implement\nit."}),"\n",(0,s.jsxs)(n.admonition,{title:"Function pointers",type:"tip",children:[(0,s.jsxs)(n.p,{children:["In the skeleton of the \u201cfull fat\u201d version you might have noticed a weird type\nsignature of both the ",(0,s.jsx)(n.code,{children:"maximum"})," and ",(0,s.jsx)(n.code,{children:"select_sort"})," functions. Those functions get\npassed a ",(0,s.jsx)(n.em,{children:"function pointer"})," to the comparator that you use for comparing the\nrespective elements in the passed in array."]}),(0,s.jsx)(n.p,{children:"If we take the parameter from one of the functions from the skeleton:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:"int (*comp)(const void *, const void *)\n"})}),(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"comp"})," is a function pointer to a function that takes two pointers of unspecified\ntype, i.e. pure address to the memory (you don't know what stored in there), and\nreturns an ",(0,s.jsx)(n.code,{children:"int"}),"."]}),(0,s.jsxs)(n.p,{children:["You can pass the function by simply using its name. (There is no need to use ",(0,s.jsx)(n.code,{children:"&"}),"\nto get its address.) And you can also call the function by \u201ccalling\u201d the function\npointer, e.g. ",(0,s.jsx)(n.code,{children:"comp(left, right)"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"For submitting the bonus assignment you can follow the same procedure as for\nsubmitting the homeworks, that is:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["On branch ",(0,s.jsx)(n.code,{children:"main"})," add the provided skeleton."]}),"\n",(0,s.jsxs)(n.li,{children:["Checkout new branch ",(0,s.jsx)(n.code,{children:"seminar-bonus-03"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Add your solution to the newly created branch."}),"\n",(0,s.jsxs)(n.li,{children:["Create a MR to the ",(0,s.jsx)(n.code,{children:"main"})," branch with me (",(0,s.jsx)(n.code,{children:"@xfocko"}),") as the reviewer."]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{title:"Directory structure for bonuses",type:"tip",children:[(0,s.jsxs)(n.p,{children:["Ideally create a directory ",(0,s.jsx)(n.code,{children:"seminar-bonuses"})," in the root of your repository with\nbonuses in their own subdirectories."]}),(0,s.jsx)(n.p,{children:"Structure of your repository can look like this:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:".\n\u251c\u2500\u2500 bonuses\n\u2502 \u2514\u2500\u2500 seminar-03\n\u251c\u2500\u2500 hello\n\u251c\u2500\u2500 hw01\n\u251c\u2500\u2500 hw02\n\u251c\u2500\u2500 seminar-01\n\u251c\u2500\u2500 seminar-02\n\u2514\u2500\u2500 seminar-03\n"})}),(0,s.jsx)(n.p,{children:"or"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:".\n\u251c\u2500\u2500 bonus-seminar-03\n\u251c\u2500\u2500 hello\n\u251c\u2500\u2500 hw01\n\u251c\u2500\u2500 hw02\n\u251c\u2500\u2500 seminar-01\n\u251c\u2500\u2500 seminar-02\n\u2514\u2500\u2500 seminar-03\n"})}),(0,s.jsx)(n.p,{children:"Structure of the bonuses is entirely up to you, just keep it consistent."})]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var s=t(7294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dead8108.9d966504.js b/assets/js/dead8108.9d966504.js new file mode 100644 index 0000000..4270c16 --- /dev/null +++ b/assets/js/dead8108.9d966504.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8807],{21431:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var s=t(85893),i=t(11151);const o={id:"seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",last_update:{date:new Date("2023-03-07T00:00:00.000Z")}},r=void 0,c={id:"bonuses/seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",source:"@site/c/bonuses/03.md",sourceDirName:"bonuses",slug:"/bonuses/seminar-03",permalink:"/c/bonuses/seminar-03",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/bonuses/03.md",tags:[],version:"current",lastUpdatedAt:1678147200,formattedLastUpdatedAt:"Mar 7, 2023",frontMatter:{id:"seminar-03",title:"3rd seminar",description:"Select sort implementation on arrays.\n",last_update:{date:"2023-03-07T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Bonuses",permalink:"/c/category/bonuses"},next:{title:"4th seminar",permalink:"/c/bonuses/seminar-04"}},a={},l=[{value:"Light version (<code>main_light.c</code>)",id:"light-version-main_lightc",level:2},{value:"Full fat version (<code>main.c</code>)",id:"full-fat-version-mainc",level:2},{value:"Submitting",id:"submitting",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.admonition,{type:"caution",children:(0,s.jsxs)(n.p,{children:["Deadline for the submission of the bonus is ",(0,s.jsx)(n.strong,{children:"March 16th 24:00"}),"."]})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["In case you have any questions, feel free to reach out either by email, Discord\nor just by submitting an issue ",(0,s.jsx)(n.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/-/issues/new",children:"here"}),"."]})}),"\n",(0,s.jsxs)(n.p,{children:["This assignment has two versions. For the light version you can get 1.5 K\u20a1. For\nthe ",(0,s.jsx)(n.em,{children:"full fat"})," 3 K\u20a1. ",(0,s.jsx)(n.strong,{children:"You can choose only one of them"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To both of them you are given some basic tests. You can also have a look at the\ncode used by the tests and use it to your advantage."}),"\n",(0,s.jsx)(n.p,{children:"Details can be found in the doxygen comments included in the source files."}),"\n",(0,s.jsxs)(n.h2,{id:"light-version-main_lightc",children:["Light version (",(0,s.jsx)(n.code,{children:"main_light.c"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/03/main_light.c",children:"Source"})}),"\n",(0,s.jsx)(n.p,{children:"For the light version you have 3 functions to finish:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"swap"})," - that swaps two ints passed by pointers."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"maximum"})," - that returns index of the biggest ",(0,s.jsx)(n.code,{children:"int"})," in the array."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"select_sort"})," - that sorts passed array using Select Sort."]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"full-fat-version-mainc",children:["Full fat version (",(0,s.jsx)(n.code,{children:"main.c"}),")"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"pathname:///files/c/bonuses/03/main.c",children:"Source"})}),"\n",(0,s.jsx)(n.p,{children:"For the full fat version you have 4 functions to implement:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"swap"})," - that swaps two variables passed by pointers."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"maximum"})," - that returns index of the biggest element in the array using the\ncomparator."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"select_sort"})," - that sorts passed array using Select Sort."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"int_comparator"})," - that is used for generic sort and maximum"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"To 2nd and 3rd function you are given a pseudocode that you can use to implement\nit."}),"\n",(0,s.jsxs)(n.admonition,{title:"Function pointers",type:"tip",children:[(0,s.jsxs)(n.p,{children:["In the skeleton of the \u201cfull fat\u201d version you might have noticed a weird type\nsignature of both the ",(0,s.jsx)(n.code,{children:"maximum"})," and ",(0,s.jsx)(n.code,{children:"select_sort"})," functions. Those functions get\npassed a ",(0,s.jsx)(n.em,{children:"function pointer"})," to the comparator that you use for comparing the\nrespective elements in the passed in array."]}),(0,s.jsx)(n.p,{children:"If we take the parameter from one of the functions from the skeleton:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c",children:"int (*comp)(const void *, const void *)\n"})}),(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"comp"})," is a function pointer to a function that takes two pointers of unspecified\ntype, i.e. pure address to the memory (you don't know what stored in there), and\nreturns an ",(0,s.jsx)(n.code,{children:"int"}),"."]}),(0,s.jsxs)(n.p,{children:["You can pass the function by simply using its name. (There is no need to use ",(0,s.jsx)(n.code,{children:"&"}),"\nto get its address.) And you can also call the function by \u201ccalling\u201d the function\npointer, e.g. ",(0,s.jsx)(n.code,{children:"comp(left, right)"}),"."]})]}),"\n",(0,s.jsx)(n.h2,{id:"submitting",children:"Submitting"}),"\n",(0,s.jsx)(n.p,{children:"For submitting the bonus assignment you can follow the same procedure as for\nsubmitting the homeworks, that is:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["On branch ",(0,s.jsx)(n.code,{children:"main"})," add the provided skeleton."]}),"\n",(0,s.jsxs)(n.li,{children:["Checkout new branch ",(0,s.jsx)(n.code,{children:"seminar-bonus-03"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Add your solution to the newly created branch."}),"\n",(0,s.jsxs)(n.li,{children:["Create a MR to the ",(0,s.jsx)(n.code,{children:"main"})," branch with me (",(0,s.jsx)(n.code,{children:"@xfocko"}),") as the reviewer."]}),"\n"]}),"\n",(0,s.jsxs)(n.admonition,{title:"Directory structure for bonuses",type:"tip",children:[(0,s.jsxs)(n.p,{children:["Ideally create a directory ",(0,s.jsx)(n.code,{children:"seminar-bonuses"})," in the root of your repository with\nbonuses in their own subdirectories."]}),(0,s.jsx)(n.p,{children:"Structure of your repository can look like this:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:".\n\u251c\u2500\u2500 bonuses\n\u2502 \u2514\u2500\u2500 seminar-03\n\u251c\u2500\u2500 hello\n\u251c\u2500\u2500 hw01\n\u251c\u2500\u2500 hw02\n\u251c\u2500\u2500 seminar-01\n\u251c\u2500\u2500 seminar-02\n\u2514\u2500\u2500 seminar-03\n"})}),(0,s.jsx)(n.p,{children:"or"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:".\n\u251c\u2500\u2500 bonus-seminar-03\n\u251c\u2500\u2500 hello\n\u251c\u2500\u2500 hw01\n\u251c\u2500\u2500 hw02\n\u251c\u2500\u2500 seminar-01\n\u251c\u2500\u2500 seminar-02\n\u2514\u2500\u2500 seminar-03\n"})}),(0,s.jsx)(n.p,{children:"Structure of the bonuses is entirely up to you, just keep it consistent."})]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var s=t(67294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/decbf9d1.369aa5a6.js b/assets/js/decbf9d1.369aa5a6.js new file mode 100644 index 0000000..cd64350 --- /dev/null +++ b/assets/js/decbf9d1.369aa5a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2445],{88876:t=>{t.exports=JSON.parse('{"title":"Asymptotic Notation and Time Complexity","description":"Materials related to asymptotic notation and time complexity.\\n","slug":"/category/asymptotic-notation-and-time-complexity","permalink":"/algorithms/category/asymptotic-notation-and-time-complexity","navigation":{"previous":{"title":"Vague postconditions and proving correctness of algorithms","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"},"next":{"title":"Time complexity of \u2039extend\u203a","permalink":"/algorithms/time-complexity/extend"}}}')}}]); \ No newline at end of file diff --git a/assets/js/decbf9d1.c170fe23.js b/assets/js/decbf9d1.c170fe23.js deleted file mode 100644 index 01adf1d..0000000 --- a/assets/js/decbf9d1.c170fe23.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[2445],{8876:t=>{t.exports=JSON.parse('{"title":"Asymptotic Notation and Time Complexity","description":"Materials related to asymptotic notation and time complexity.\\n","slug":"/category/asymptotic-notation-and-time-complexity","permalink":"/algorithms/category/asymptotic-notation-and-time-complexity","navigation":{"previous":{"title":"Vague postconditions and proving correctness of algorithms","permalink":"/algorithms/algorithms-correctness/postcondition-ambiguity"},"next":{"title":"Time complexity of \u2039extend\u203a","permalink":"/algorithms/time-complexity/extend"}}}')}}]); \ No newline at end of file diff --git a/assets/js/df0885f0.2970a5ee.js b/assets/js/df0885f0.2970a5ee.js new file mode 100644 index 0000000..efcc55d --- /dev/null +++ b/assets/js/df0885f0.2970a5ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4343],{34175:t=>{t.exports=JSON.parse('{"label":"iterators","permalink":"/algorithms/tags/iterators","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/df0885f0.72a19a1c.js b/assets/js/df0885f0.72a19a1c.js deleted file mode 100644 index cfeba7d..0000000 --- a/assets/js/df0885f0.72a19a1c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4343],{4175:t=>{t.exports=JSON.parse('{"label":"iterators","permalink":"/algorithms/tags/iterators","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"graphs/iterative-and-iterators","title":"Iterative algorithms via iterators","description":"Iterative DFS using iterators.\\n","permalink":"/algorithms/graphs/iterative-and-iterators"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/df203c0f.12cfbe9e.js b/assets/js/df203c0f.12cfbe9e.js new file mode 100644 index 0000000..aaa37b5 --- /dev/null +++ b/assets/js/df203c0f.12cfbe9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9924],{59047:(e,n,t)=>{t.d(n,{Z:()=>M});var i=t(67294),s=t(85893);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(86010),a=t(95999),r=t(35281);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.Z)(r.k.common.admonition,r.k.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[(0,s.jsx)(u,{title:i,icon:t}),(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("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"})})}const f={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,s.jsx)(m,{...f,...e,className:(0,l.Z)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("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"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.Z)("alert alert--success",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("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"})})}const Z={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...Z,...e,className:(0,l.Z)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("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"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("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"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:x,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(x,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{...C,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,k[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,s.jsx)(t,{...n})}},40491:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(67294);var i=t(86010),s=t(39960),o=t(88824),l=t(10833),a=t(35281),r=t(95999),c=t(90197),d=t(22212),u=t(92503),h=t(85893);function m(e){const n=function(){const{selectMessage:e}=(0,o.c)();return n=>e(n,(0,r.I)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". 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 doc tagged|{count} docs tagged"},{count:n}))}();return(0,r.I)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.Z,{to:n.permalink,children:(0,h.jsx)(u.Z,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function f(e){let{title:n}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.d,{title:n}),(0,h.jsx)(c.Z,{tag:"doc_tag_doc_list"})]})}function x(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.FG,{className:(0,i.Z)(a.k.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.Z,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.Z,{as:"h1",children:t}),(0,h.jsx)(s.Z,{href:n.allTagsPath,children:(0,h.jsx)(r.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(f,{...e,title:n}),(0,h.jsx)(x,{...e,title:n})]})}},22212:(e,n,t)=>{t.d(n,{Z:()=>m});t(67294);var i=t(86010),s=t(95999),o=t(35742),l=t(85893);function a(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(o.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(35281),u=t(59047);function h(e){let{className:n}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(a,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(h,{...e})]})}},88824:(e,n,t)=>{t.d(n,{c:()=>c});var i=t(67294),s=t(52263);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const a={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function r(){const{i18n:{currentLocale:e}}=(0,s.Z)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),a}}),[e])}function c(){const e=r();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/assets/js/df203c0f.3809dec2.js b/assets/js/df203c0f.3809dec2.js deleted file mode 100644 index 3b57a01..0000000 --- a/assets/js/df203c0f.3809dec2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9924],{9047:(e,n,t)=>{t.d(n,{Z:()=>M});var i=t(7294),s=t(5893);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(6010),a=t(5999),r=t(5281);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.Z)(r.k.common.admonition,r.k.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[(0,s.jsx)(u,{title:i,icon:t}),(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("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"})})}const f={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,s.jsx)(m,{...f,...e,className:(0,l.Z)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("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"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.Z)("alert alert--success",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("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"})})}const Z={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...Z,...e,className:(0,l.Z)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("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"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("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"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:x,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(x,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{...C,...e,className:(0,l.Z)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,k[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,s.jsx)(t,{...n})}},491:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(7294);var i=t(6010),s=t(9960),o=t(8824),l=t(833),a=t(5281),r=t(5999),c=t(197),d=t(2212),u=t(7955),h=t(5893);function m(e){const n=function(){const{selectMessage:e}=(0,o.c)();return n=>e(n,(0,r.I)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". 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 doc tagged|{count} docs tagged"},{count:n}))}();return(0,r.I)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.Z,{to:n.permalink,children:(0,h.jsx)(u.Z,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function f(e){let{title:n}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.d,{title:n}),(0,h.jsx)(c.Z,{tag:"doc_tag_doc_list"})]})}function x(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.FG,{className:(0,i.Z)(a.k.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.Z,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.Z,{as:"h1",children:t}),(0,h.jsx)(s.Z,{href:n.allTagsPath,children:(0,h.jsx)(r.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(f,{...e,title:n}),(0,h.jsx)(x,{...e,title:n})]})}},2212:(e,n,t)=>{t.d(n,{Z:()=>m});t(7294);var i=t(6010),s=t(5999),o=t(5742),l=t(5893);function a(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(s.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(o.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),u=t(9047);function h(e){let{className:n}=e;return(0,l.jsx)(u.Z,{type:"caution",title:(0,l.jsx)(a,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(h,{...e})]})}},8824:(e,n,t)=>{t.d(n,{c:()=>c});var i=t(7294),s=t(2263);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const a={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function r(){const{i18n:{currentLocale:e}}=(0,s.Z)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),a}}),[e])}function c(){const e=r();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/assets/js/dff2ebad.1cc2f99c.js b/assets/js/dff2ebad.1cc2f99c.js deleted file mode 100644 index 9a21948..0000000 --- a/assets/js/dff2ebad.1cc2f99c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[146],{2492:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var i=n(5893),o=n(1151);const s={title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,l={permalink:"/blog/aoc-2022/1st-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md",source:"@site/blog/aoc-2022/01-week-1.md",title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:12.4,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"},nextItem:{title:"Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/intro"}},r={authorsImageUrls:[void 0]},c=[{value:"Day 1: Calorie Counting",id:"day-1-calorie-counting",level:2},{value:"Solution",id:"solution",level:3},{value:"Day 2: Rock Paper Scissors",id:"day-2-rock-paper-scissors",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 3: Rucksack Reorganization",id:"day-3-rucksack-reorganization",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Day 4: Camp Cleanup",id:"day-4-camp-cleanup",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 5: Supply Stacks",id:"day-5-supply-stacks",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 6: Tuning Trouble",id:"day-6-tuning-trouble",level:2},{value:"Solution",id:"solution-5",level:3},{value:"Day 7: No Space Left On Device",id:"day-7-no-space-left-on-device",level:2},{value:"Solution",id:"solution-6",level:3},{value:"Post Mortem",id:"post-mortem",level:2},{value:"<code>Rc<T></code> vs <code>Rc<RefCell<T>></code>",id:"rct-vs-rcrefcellt",level:3}];function d(e){const t={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",del:"del",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Let's go through the first week of ",(0,i.jsx)(t.a,{href:"https://adventofcode.com",children:(0,i.jsx)(t.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["If you wish to have a look at the solutions, you can follow them on my ",(0,i.jsx)(t.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022",children:"GitLab"}),".\nMore specifically in the ",(0,i.jsx)(t.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022/-/tree/main/src/bin",children:(0,i.jsx)(t.code,{children:"/src/bin/"})}),"."]})}),"\n",(0,i.jsxs)(t.p,{children:["I will try to summarize my experience with using Rust for the AoC. Trying it out\nages ago, I believe it will be ",(0,i.jsx)(t.em,{children:"pain and suffering"}),", but we will see. For each\nday I will also try to give a tl;dr of the problem, so that you can better imagine\nthe relation to my woes or ","\ud83d\udc4d"," moments."]}),"\n",(0,i.jsx)(t.h2,{id:"day-1-calorie-counting",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/1",children:"Day 1: Calorie Counting"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"As the name suggests, we get the calories of the food contained in the elves\nbackpacks and we want to choose the elf that has the most food ;)"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Wakey wakey!"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Programming in Rust at 6am definitely hits. I've also forgotten to mention how I\nhandle samples. With each puzzle you usually get a sample input and expected\noutput. You can use them to verify that your solution works, or usually doesn't."}),"\n",(0,i.jsxs)(t.p,{children:["At first I've decided to put asserts into my ",(0,i.jsx)(t.code,{children:"main"}),", something like"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'assert_eq!(part_1(&sample), 24000);\ninfo!("Part 1: {}", part_1(&input));\n\nassert_eq!(part_2(&sample), 45000);\ninfo!("Part 2: {}", part_2(&input));\n'})}),"\n",(0,i.jsx)(t.p,{children:"However, once you get further, the sample input may take some time to run itself.\nSo in the end, I have decided to turn them into unit tests:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'#[cfg(test)]\nmod tests {\n use super::*;\n\n #[test]\n fn test_part_1() {\n let sample = parse_input("samples/day01.txt");\n assert_eq!(part_1(&sample), 24000);\n }\n\n #[test]\n fn test_part_2() {\n let sample = parse_input("samples/day01.txt");\n assert_eq!(part_2(&sample), 45000);\n }\n}\n'})}),"\n",(0,i.jsxs)(t.p,{children:["And later on I have noticed, it's hard to tell the difference between the days,\nso I further renamed the ",(0,i.jsx)(t.code,{children:"mod"})," from generic ",(0,i.jsx)(t.code,{children:"tests"})," to reflect the days."]}),"\n",(0,i.jsxs)(t.p,{children:["Also after finishing the first day puzzle, I have installed an ",(0,i.jsx)(t.a,{href:"https://github.com/mozilla/sccache",children:(0,i.jsx)(t.code,{children:"sccache"})})," to\ncache the builds, so that the build time is lower, cause it was kinda unbearable."]}),"\n",(0,i.jsx)(t.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"Well, it's a pretty simple problem. You just take the input, sum the calories and\nfind the biggest one. However, if we try to generalize to more than the biggest\none, the fun appears. We have few options:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"keep all the calories, sort them, take what we need"}),"\n",(0,i.jsx)(t.li,{children:"keep all the calories and use max heap"}),"\n",(0,i.jsx)(t.li,{children:"use min heap and maintain at most N calories that we need"}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"day-2-rock-paper-scissors",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/2",children:"Day 2: Rock Paper Scissors"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["You want to know what score did you achieve while playing ",(0,i.jsx)(t.em,{children:"Rock Paper Scissors"}),".\nAnd then you want to be strategic about it."]})}),"\n",(0,i.jsx)(t.p,{children:"Apart from the technical details of the puzzle, it went relatively smooth."}),"\n",(0,i.jsx)(t.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"I took relatively na\xefve approach and then tried to simplify it."}),"\n",(0,i.jsx)(t.h2,{id:"day-3-rucksack-reorganization",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/3",children:"Day 3: Rucksack Reorganization"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Let's go reorganize elves' backpacks! Each backpacks has 2 compartments and you\nwant to find the common item among those compartments. Each of them has priority,\nyou care only about the sum."})}),"\n",(0,i.jsx)(t.p,{children:"This is the day where I started to fight the compiler and neither of us decided\nto give up. Let's dive into it \\o/"}),"\n",(0,i.jsx)(t.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(t.p,{children:"Fighting the compiler took me 30 minutes."})}),"\n",(0,i.jsx)(t.p,{children:"We need to find a common item among 2 collections, that's an easy task, right?\nWe can construct 2 sets and find an intersection:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let top: HashSet<i32> = [1, 2, 3].iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5].iter().collect();\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Now, the first issue that we encounter is caused by the fact that we are using\na slice (the ",(0,i.jsx)(t.code,{children:"[\u2026]"}),"), iterator of that returns ",(0,i.jsx)(t.strong,{children:"references"})," to the numbers.\nAnd we get immediately yelled at by the compiler, because the numbers are discarded\nafter running the ",(0,i.jsx)(t.code,{children:".collect"}),". To fix this, we can use ",(0,i.jsx)(t.code,{children:".into_iter"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let top: HashSet<i32> = [1, 2, 3].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5].into_iter().collect();\n"})}),"\n",(0,i.jsx)(t.p,{children:"This way the numbers will get copied instead of referenced. OK, let's find the\nintersection of those 2 collections:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'println!("Common elements: {:?}", top.intersection(&bottom));\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Common elements: [3]\n"})}),"\n",(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsxs)(t.p,{children:["Notice that we need to do ",(0,i.jsx)(t.code,{children:"&bottom"}),". It explicitly specifies that ",(0,i.jsx)(t.code,{children:".intersection"}),"\n",(0,i.jsx)(t.strong,{children:"borrows"})," the ",(0,i.jsx)(t.code,{children:"bottom"}),", i.e. takes an immutable reference to it."]})}),"\n",(0,i.jsx)(t.p,{children:"That's what we want, right? Looks like it! \\o/"}),"\n",(0,i.jsx)(t.p,{children:"Next part wants us to find the common element among all of the backpacks. OK, so\nthat should be fairly easy, we have an intersection and we want to find intersection\nover all of them."}),"\n",(0,i.jsxs)(t.p,{children:["Let's have a look at the type of the ",(0,i.jsx)(t.code,{children:".intersection"})]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"pub fn intersection<'a>(\n\xa0\xa0\xa0\xa0&'a self,\n\xa0\xa0\xa0\xa0other: &'a HashSet<T, S>\n) -> Intersection<'a, T, S>\n"})}),"\n",(0,i.jsx)(t.p,{children:"OK\u2026 Huh\u2026 But we have an example there!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let intersection: HashSet<_> = a.intersection(&b).collect();\n"})}),"\n",(0,i.jsx)(t.p,{children:"Cool, that's all we need."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Intersection: {3, 4}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Cool, so let's do the intersection with the ",(0,i.jsx)(t.code,{children:"top_2"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\nlet intersection: HashSet<_> = intersection.intersection(&top_2).collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.p,{children:"And we get yelled at by the compiler:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"error[E0308]: mismatched types\n --\x3e src/main.rs:10:58\n |\n10 | let intersection: HashSet<_> = intersection.intersection(&top_2).collect();\n | ------------ ^^^^^^ expected `&i32`, found `i32`\n | |\n | arguments to this function are incorrect\n |\n = note: expected reference `&HashSet<&i32>`\n found reference `&HashSet<i32>`\n"})}),"\n",(0,i.jsx)(t.p,{children:"/o\\ What the hell is going on here? Well, the funny thing is, that this operation\ndoesn't return the elements themselves, but the references to them and when we pass\nthe third set, it has just the values themselves, without any references."}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["It may seem as a very weird decision, but in fact it makes some sense\u2026 It allows\nyou to do intersection of items that may not be possible to copy. Overall this is\na \u201ctax\u201d for having a borrow checker ",(0,i.jsx)(t.del,{children:"drilling your ass"})," having your back and\nmaking sure you're not doing something naughty that may cause an ",(0,i.jsx)(t.strong,{children:"undefined"}),"\n",(0,i.jsx)(t.strong,{children:"behavior"}),"."]})}),"\n",(0,i.jsxs)(t.p,{children:["To resolve this we need to get an iterator that ",(0,i.jsx)(t.strong,{children:"clones"})," the elements:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).cloned().collect();\nlet intersection: HashSet<_> = intersection.intersection(&top_2).cloned().collect();\nlet intersection: HashSet<_> = intersection.intersection(&bottom_2).cloned().collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Intersection: {4}\n"})}),"\n",(0,i.jsx)(t.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["The approach is pretty simple, if you omit the ",(0,i.jsx)(t.em,{children:"1on1 with the compiler"}),". You just\nhave some fun with the set operations :)"]}),"\n",(0,i.jsx)(t.h2,{id:"day-4-camp-cleanup",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/4",children:"Day 4: Camp Cleanup"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Elves are cleaning up the camp and they got overlapping sections to clean up.\nFind how many overlap and can take the day off."})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html",children:(0,i.jsx)(t.code,{children:"RangeInclusive"})})," is your friend not an enemy :)"]}),"\n",(0,i.jsx)(t.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["Relatively easy, you just need to parse the input and know what you want. Rust's\n",(0,i.jsx)(t.code,{children:"RangeInclusive"})," type helped a lot, cause it took care of all abstractions."]}),"\n",(0,i.jsx)(t.h2,{id:"day-5-supply-stacks",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/5",children:"Day 5: Supply Stacks"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Let's play with stacks of crates."})}),"\n",(0,i.jsx)(t.p,{children:"Very easy problem with very annoying input. You can judge yourself:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:" [D] \n[N] [C] \n[Z] [M] [P]\n 1 2 3 \n\nmove 1 from 2 to 1\nmove 3 from 1 to 3\nmove 2 from 2 to 1\nmove 1 from 1 to 2\n"})}),"\n",(0,i.jsx)(t.p,{children:"Good luck transforming that into something reasonable :)"}),"\n",(0,i.jsx)(t.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(t.p,{children:"Took me 40 minutes to parse this reasonably, including fighting the compiler."})}),"\n",(0,i.jsx)(t.h3,{id:"solution-4",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["For the initial solution I went with a manual solution (as in ",(0,i.jsx)(t.em,{children:"I have done all"}),"\n",(0,i.jsx)(t.em,{children:"the work"}),". Later on I have decided to explore the ",(0,i.jsx)(t.code,{children:"std"})," and interface of the\n",(0,i.jsx)(t.code,{children:"std::vec::Vec"})," and found ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/vec/struct.Vec.html#method.split_off",children:(0,i.jsx)(t.code,{children:"split_off"})})," which takes an index and splits (duh)\nthe vector:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This helped me simplify my solution a lot and also get rid of some ",(0,i.jsx)(t.em,{children:"edge cases"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"day-6-tuning-trouble",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/6",children:"Day 6: Tuning Trouble"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["Finding start of the message in a very weird protocol. Start of the message is\ndenoted by ",(0,i.jsxs)(t.span,{className:"katex",children:[(0,i.jsx)(t.span,{className:"katex-mathml",children:(0,i.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(t.semantics,{children:[(0,i.jsx)(t.mrow,{children:(0,i.jsx)(t.mi,{children:"N"})}),(0,i.jsx)(t.annotation,{encoding:"application/x-tex",children:"N"})]})})}),(0,i.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,i.jsxs)(t.span,{className:"base",children:[(0,i.jsx)(t.span,{className:"strut",style:{height:"0.6833em"}}),(0,i.jsx)(t.span,{className:"mord mathnormal",style:{marginRight:"0.10903em"},children:"N"})]})})]})," unique consecutive characters."]})}),"\n",(0,i.jsx)(t.h3,{id:"solution-5",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"A lot of different approaches, knowing that we are dealing with input consisting\nsolely of ASCII letters, I bit the bullet and went with sliding window and\nconstructing sets from that window, checking if the set is as big as the window."}),"\n",(0,i.jsxs)(t.p,{children:["One possible optimization could consist of keeping a bit-vector (i.e. ",(0,i.jsx)(t.code,{children:"usize"}),"\nvariable) of encountered characters and updating it as we go. However this has\na different issue and that is removal of the characters from the left side of the\nwindow. We don't know if the same character is not included later on."]}),"\n",(0,i.jsx)(t.p,{children:"Other option is to do similar thing, but keeping the frequencies of the letters,\nand again knowing we have only ASCII letters we can optimize by having a vector\nof 26 elements that keeps count for each lowercase letter."}),"\n",(0,i.jsx)(t.h2,{id:"day-7-no-space-left-on-device",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/7",children:"Day 7: No Space Left On Device"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["Let's simulate ",(0,i.jsx)(t.a,{href:"https://www.man7.org/linux/man-pages/man1/du.1.html",children:(0,i.jsx)(t.code,{children:"du"})})," to get some stats about our file system and then pinpoint\ndirectories that take a lot of space and should be deleted."]})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:["I was waiting for this moment, and yet it got me!\n",(0,i.jsx)(t.em,{children:"imagine me swearing for hours"})]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"solution-6",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["We need to \u201c",(0,i.jsx)(t.em,{children:"build"}),"\u201d a file system from the input that is given in a following form:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"$ cd /\n$ ls\ndir a\n14848514 b.txt\n8504156 c.dat\ndir d\n$ cd a\n$ ls\ndir e\n29116 f\n2557 g\n62596 h.lst\n$ cd e\n$ ls\n584 i\n$ cd ..\n$ cd ..\n$ cd d\n$ ls\n4060174 j\n8033020 d.log\n5626152 d.ext\n7214296 k\n"})}),"\n",(0,i.jsx)(t.p,{children:"There are few ways in which you can achieve this and also you can assume some\npreconditions, but why would we do that, right? :)"}),"\n",(0,i.jsxs)(t.p,{children:["You can \u201cslap\u201d this in either ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/collections/struct.HashMap.html",children:(0,i.jsx)(t.code,{children:"HashMap"})})," or ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/collections/struct.BTreeMap.html",children:(0,i.jsx)(t.code,{children:"BTreeMap"})})," and call it a day.\nAnd that would be boring\u2026"]}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"BTreeMap"})," is quite fitting for this, don't you think?"]})}),"\n",(0,i.jsxs)(t.p,{children:["I always wanted to try allocation on heap in Rust, so I chose to implement a tree.\nI fought with the ",(0,i.jsx)(t.code,{children:"Box<T>"})," for some time and was losing\u2026"]}),"\n",(0,i.jsxs)(t.p,{children:["Then I looked up some implementations of trees or linked lists and decided to try\n",(0,i.jsx)(t.code,{children:"Rc<Cell<T>>"}),". And I got my ",(0,i.jsx)(t.em,{children:"ass whopped"})," by the compiler once again. /o\\"]}),"\n",(0,i.jsxs)(t.admonition,{type:"tip",children:[(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Box<T>"})," represents a dynamically allocated memory on heap. It is a single pointer,\nyou can imagine this as ",(0,i.jsx)(t.code,{children:"std::unique_ptr<T>"})," in C++."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," represents a dynamically allocated memory on heap. On top of that it is\n",(0,i.jsx)(t.em,{children:"reference counted"})," (that's what the ",(0,i.jsx)(t.code,{children:"Rc"})," stands for). You can imagine this as\n",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," in C++."]}),(0,i.jsxs)(t.p,{children:["Now the fun stuff. Neither of them lets you ",(0,i.jsx)(t.strong,{children:"mutate"})," the contents of the memory."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Cell<T>"})," allows you to mutate the memory. Can be used reasonably with types that\ncan be copied, because the memory safety is guaranteed by copying the contents\nwhen there is more than one ",(0,i.jsx)(t.strong,{children:"mutable"})," reference to the memory."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"RefCell<T>"})," is similar to the ",(0,i.jsx)(t.code,{children:"Cell<T>"}),", but the borrowing rules (how many mutable\nreferences are present) are checked dynamically."]}),(0,i.jsxs)(t.p,{children:["So in the end, if you want something like ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," in Rust, you want\nto have ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"}),"."]})]}),"\n",(0,i.jsxs)(t.p,{children:["So, how are we going to represent the file system then? We will use an enumeration,\nhehe, which is an algebraic data type that can store some stuff in itself ","\ud83d\ude29"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"type FileHandle = Rc<RefCell<AocFile>>;\n\n#[derive(Debug)]\nenum AocFile {\n File(usize),\n Directory(BTreeMap<String, FileHandle>),\n}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Let's go over it! ",(0,i.jsx)(t.code,{children:"FileHandle"})," represents dynamically allocated ",(0,i.jsx)(t.code,{children:"AocFile"}),", not\nmuch to discuss. What does the ",(0,i.jsx)(t.code,{children:"#[derive(Debug)]"})," do though? It lets us to print\nout the value of that enumeration, it's derived, so it's not as good as if we had\nimplemented it ourselves, but it's good enough for debugging, hence the name."]}),"\n",(0,i.jsxs)(t.p,{children:["Now to the fun part! ",(0,i.jsx)(t.code,{children:"AocFile"})," value can be represented in two ways:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"File(usize)"}),", e.g. ",(0,i.jsx)(t.code,{children:"AocFile::File(123)"})," and we can pattern match it, if we\nneed to"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Directory(BTreeMap<String, FileHandle>)"})," will represent the directory and will\ncontain map matching the name of the files (or directories) within to their\nrespective file handles"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"I will omit the details about constructing this file system, cause there are a lot\nof technicalities introduced by the nature of the input. However if you are\ninterested, you can have a look at my solution."}),"\n",(0,i.jsx)(t.p,{children:"We need to find small enough directories and also find the smallest directory that\nwill free enough space. Now the question is, how could we do that. And there are\nmultiple ways I will describe."}),"\n",(0,i.jsxs)(t.p,{children:["I have chosen to implement ",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Catamorphism#Tree_fold",children:(0,i.jsx)(t.em,{children:"tree catamorphism"})})," ","\ud83d\ude29",". It is basically a fold\nover a tree data structure. We descent down into the leaves and propagate computed\nresults all the way to the root. You can also notice that this approach is very\nsimilar to ",(0,i.jsx)(t.em,{children:"dynamic programming"}),", we find overlapping sections of the computation\nand try to minimize the additional work (in this case: we need to know sizes of\nour descendants, but we have already been there)."]}),"\n",(0,i.jsx)(t.p,{children:"Another approach that has been suggested to me few days later is running DFS on\nthe graph. And, funnily enough, we would still need to combine what we found in\nthe branches where we descent. So in the end, it would work very similarly to my\nsolution."}),"\n",(0,i.jsx)(t.p,{children:"One of the more exotic options would be precomputing the required information at\nthe same time as parsing. That could be done by adding additional fields to the\nnodes which would allow storing such information and updating it as we construct\nthe file system."}),"\n",(0,i.jsx)(t.h2,{id:"post-mortem",children:"Post Mortem"}),"\n",(0,i.jsx)(t.p,{children:"Things that have been brought up in the discussion later on."}),"\n",(0,i.jsxs)(t.h3,{id:"rct-vs-rcrefcellt",children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," vs ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})]}),"\n",(0,i.jsx)(t.p,{children:"It has been brought up that I have a contradicting statement regarding the\ndynamically allocated memory. Specifically:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["You can imagine ",(0,i.jsx)(t.code,{children:"Rc<T>"})," as an ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," (in C++)"]}),"\n",(0,i.jsxs)(t.li,{children:["When you want an equivalent of ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),", you want to use\n",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Now, in Rust it is a bit more complicated, because the type that represents the\n\u201cshared pointer\u201d is ",(0,i.jsx)(t.code,{children:"Rc<T>"}),". What ",(0,i.jsx)(t.code,{children:"RefCell<T>"})," does is making sure that there is\nonly one \u201cowner\u201d of a mutable reference at a time (and dynamically, as opposed\nto the ",(0,i.jsx)(t.code,{children:"Cell<T>"}),")."]}),"\n",(0,i.jsxs)(t.p,{children:["Therefore to be precise and correct about the equivalents of ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),"\nin Rust, we can say that"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," is an equivalent of a ",(0,i.jsx)(t.code,{children:"const std::shared_ptr<T>"}),","]}),"\n",(0,i.jsxs)(t.li,{children:["and ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})," is an equivalent of a ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["You can easily see that they only differ in the mutability. (And even that is not\nas simple as it seems, because there is also ",(0,i.jsx)(t.code,{children:"Cell<T>"}),")"]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>a});var i=n(7294);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dff2ebad.2596a554.js b/assets/js/dff2ebad.2596a554.js new file mode 100644 index 0000000..38783df --- /dev/null +++ b/assets/js/dff2ebad.2596a554.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[146],{42492:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var i=n(85893),o=n(11151);const s={title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,l={permalink:"/blog/aoc-2022/1st-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/01-week-1.md",source:"@site/blog/aoc-2022/01-week-1.md",title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15:00.000Z",formattedDate:"December 15, 2022",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:12.4,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"1st week of Advent of Code '22 in Rust",description:"Surviving first week in Rust.",date:"2022-12-15T01:15",slug:"aoc-2022/1st-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"2nd week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/2nd-week"},nextItem:{title:"Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/intro"}},r={authorsImageUrls:[void 0]},c=[{value:"Day 1: Calorie Counting",id:"day-1-calorie-counting",level:2},{value:"Solution",id:"solution",level:3},{value:"Day 2: Rock Paper Scissors",id:"day-2-rock-paper-scissors",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Day 3: Rucksack Reorganization",id:"day-3-rucksack-reorganization",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Day 4: Camp Cleanup",id:"day-4-camp-cleanup",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 5: Supply Stacks",id:"day-5-supply-stacks",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 6: Tuning Trouble",id:"day-6-tuning-trouble",level:2},{value:"Solution",id:"solution-5",level:3},{value:"Day 7: No Space Left On Device",id:"day-7-no-space-left-on-device",level:2},{value:"Solution",id:"solution-6",level:3},{value:"Post Mortem",id:"post-mortem",level:2},{value:"<code>Rc<T></code> vs <code>Rc<RefCell<T>></code>",id:"rct-vs-rcrefcellt",level:3}];function d(e){const t={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",del:"del",em:"em",h2:"h2",h3:"h3",li:"li",math:"math",mi:"mi",mrow:"mrow",p:"p",pre:"pre",semantics:"semantics",span:"span",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Let's go through the first week of ",(0,i.jsx)(t.a,{href:"https://adventofcode.com",children:(0,i.jsx)(t.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["If you wish to have a look at the solutions, you can follow them on my ",(0,i.jsx)(t.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022",children:"GitLab"}),".\nMore specifically in the ",(0,i.jsx)(t.a,{href:"https://gitlab.com/mfocko/advent-of-code-2022/-/tree/main/src/bin",children:(0,i.jsx)(t.code,{children:"/src/bin/"})}),"."]})}),"\n",(0,i.jsxs)(t.p,{children:["I will try to summarize my experience with using Rust for the AoC. Trying it out\nages ago, I believe it will be ",(0,i.jsx)(t.em,{children:"pain and suffering"}),", but we will see. For each\nday I will also try to give a tl;dr of the problem, so that you can better imagine\nthe relation to my woes or ","\ud83d\udc4d"," moments."]}),"\n",(0,i.jsx)(t.h2,{id:"day-1-calorie-counting",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/1",children:"Day 1: Calorie Counting"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"As the name suggests, we get the calories of the food contained in the elves\nbackpacks and we want to choose the elf that has the most food ;)"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Wakey wakey!"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Programming in Rust at 6am definitely hits. I've also forgotten to mention how I\nhandle samples. With each puzzle you usually get a sample input and expected\noutput. You can use them to verify that your solution works, or usually doesn't."}),"\n",(0,i.jsxs)(t.p,{children:["At first I've decided to put asserts into my ",(0,i.jsx)(t.code,{children:"main"}),", something like"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'assert_eq!(part_1(&sample), 24000);\ninfo!("Part 1: {}", part_1(&input));\n\nassert_eq!(part_2(&sample), 45000);\ninfo!("Part 2: {}", part_2(&input));\n'})}),"\n",(0,i.jsx)(t.p,{children:"However, once you get further, the sample input may take some time to run itself.\nSo in the end, I have decided to turn them into unit tests:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'#[cfg(test)]\nmod tests {\n use super::*;\n\n #[test]\n fn test_part_1() {\n let sample = parse_input("samples/day01.txt");\n assert_eq!(part_1(&sample), 24000);\n }\n\n #[test]\n fn test_part_2() {\n let sample = parse_input("samples/day01.txt");\n assert_eq!(part_2(&sample), 45000);\n }\n}\n'})}),"\n",(0,i.jsxs)(t.p,{children:["And later on I have noticed, it's hard to tell the difference between the days,\nso I further renamed the ",(0,i.jsx)(t.code,{children:"mod"})," from generic ",(0,i.jsx)(t.code,{children:"tests"})," to reflect the days."]}),"\n",(0,i.jsxs)(t.p,{children:["Also after finishing the first day puzzle, I have installed an ",(0,i.jsx)(t.a,{href:"https://github.com/mozilla/sccache",children:(0,i.jsx)(t.code,{children:"sccache"})})," to\ncache the builds, so that the build time is lower, cause it was kinda unbearable."]}),"\n",(0,i.jsx)(t.h3,{id:"solution",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"Well, it's a pretty simple problem. You just take the input, sum the calories and\nfind the biggest one. However, if we try to generalize to more than the biggest\none, the fun appears. We have few options:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"keep all the calories, sort them, take what we need"}),"\n",(0,i.jsx)(t.li,{children:"keep all the calories and use max heap"}),"\n",(0,i.jsx)(t.li,{children:"use min heap and maintain at most N calories that we need"}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"day-2-rock-paper-scissors",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/2",children:"Day 2: Rock Paper Scissors"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["You want to know what score did you achieve while playing ",(0,i.jsx)(t.em,{children:"Rock Paper Scissors"}),".\nAnd then you want to be strategic about it."]})}),"\n",(0,i.jsx)(t.p,{children:"Apart from the technical details of the puzzle, it went relatively smooth."}),"\n",(0,i.jsx)(t.h3,{id:"solution-1",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"I took relatively na\xefve approach and then tried to simplify it."}),"\n",(0,i.jsx)(t.h2,{id:"day-3-rucksack-reorganization",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/3",children:"Day 3: Rucksack Reorganization"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Let's go reorganize elves' backpacks! Each backpacks has 2 compartments and you\nwant to find the common item among those compartments. Each of them has priority,\nyou care only about the sum."})}),"\n",(0,i.jsx)(t.p,{children:"This is the day where I started to fight the compiler and neither of us decided\nto give up. Let's dive into it \\o/"}),"\n",(0,i.jsx)(t.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(t.p,{children:"Fighting the compiler took me 30 minutes."})}),"\n",(0,i.jsx)(t.p,{children:"We need to find a common item among 2 collections, that's an easy task, right?\nWe can construct 2 sets and find an intersection:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let top: HashSet<i32> = [1, 2, 3].iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5].iter().collect();\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Now, the first issue that we encounter is caused by the fact that we are using\na slice (the ",(0,i.jsx)(t.code,{children:"[\u2026]"}),"), iterator of that returns ",(0,i.jsx)(t.strong,{children:"references"})," to the numbers.\nAnd we get immediately yelled at by the compiler, because the numbers are discarded\nafter running the ",(0,i.jsx)(t.code,{children:".collect"}),". To fix this, we can use ",(0,i.jsx)(t.code,{children:".into_iter"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let top: HashSet<i32> = [1, 2, 3].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5].into_iter().collect();\n"})}),"\n",(0,i.jsx)(t.p,{children:"This way the numbers will get copied instead of referenced. OK, let's find the\nintersection of those 2 collections:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'println!("Common elements: {:?}", top.intersection(&bottom));\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Common elements: [3]\n"})}),"\n",(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsxs)(t.p,{children:["Notice that we need to do ",(0,i.jsx)(t.code,{children:"&bottom"}),". It explicitly specifies that ",(0,i.jsx)(t.code,{children:".intersection"}),"\n",(0,i.jsx)(t.strong,{children:"borrows"})," the ",(0,i.jsx)(t.code,{children:"bottom"}),", i.e. takes an immutable reference to it."]})}),"\n",(0,i.jsx)(t.p,{children:"That's what we want, right? Looks like it! \\o/"}),"\n",(0,i.jsx)(t.p,{children:"Next part wants us to find the common element among all of the backpacks. OK, so\nthat should be fairly easy, we have an intersection and we want to find intersection\nover all of them."}),"\n",(0,i.jsxs)(t.p,{children:["Let's have a look at the type of the ",(0,i.jsx)(t.code,{children:".intersection"})]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"pub fn intersection<'a>(\n\xa0\xa0\xa0\xa0&'a self,\n\xa0\xa0\xa0\xa0other: &'a HashSet<T, S>\n) -> Intersection<'a, T, S>\n"})}),"\n",(0,i.jsx)(t.p,{children:"OK\u2026 Huh\u2026 But we have an example there!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let intersection: HashSet<_> = a.intersection(&b).collect();\n"})}),"\n",(0,i.jsx)(t.p,{children:"Cool, that's all we need."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Intersection: {3, 4}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Cool, so let's do the intersection with the ",(0,i.jsx)(t.code,{children:"top_2"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).collect();\nlet intersection: HashSet<_> = intersection.intersection(&top_2).collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.p,{children:"And we get yelled at by the compiler:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"error[E0308]: mismatched types\n --\x3e src/main.rs:10:58\n |\n10 | let intersection: HashSet<_> = intersection.intersection(&top_2).collect();\n | ------------ ^^^^^^ expected `&i32`, found `i32`\n | |\n | arguments to this function are incorrect\n |\n = note: expected reference `&HashSet<&i32>`\n found reference `&HashSet<i32>`\n"})}),"\n",(0,i.jsx)(t.p,{children:"/o\\ What the hell is going on here? Well, the funny thing is, that this operation\ndoesn't return the elements themselves, but the references to them and when we pass\nthe third set, it has just the values themselves, without any references."}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["It may seem as a very weird decision, but in fact it makes some sense\u2026 It allows\nyou to do intersection of items that may not be possible to copy. Overall this is\na \u201ctax\u201d for having a borrow checker ",(0,i.jsx)(t.del,{children:"drilling your ass"})," having your back and\nmaking sure you're not doing something naughty that may cause an ",(0,i.jsx)(t.strong,{children:"undefined"}),"\n",(0,i.jsx)(t.strong,{children:"behavior"}),"."]})}),"\n",(0,i.jsxs)(t.p,{children:["To resolve this we need to get an iterator that ",(0,i.jsx)(t.strong,{children:"clones"})," the elements:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'let top: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();\nlet bottom: HashSet<i32> = [3, 4, 5, 6].into_iter().collect();\nlet top_2: HashSet<i32> = [2, 3, 4, 5, 6].into_iter().collect();\nlet bottom_2: HashSet<i32> = [4, 5, 6].into_iter().collect();\n\nlet intersection: HashSet<_> = top.intersection(&bottom).cloned().collect();\nlet intersection: HashSet<_> = intersection.intersection(&top_2).cloned().collect();\nlet intersection: HashSet<_> = intersection.intersection(&bottom_2).cloned().collect();\nprintln!("Intersection: {:?}", intersection);\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"Intersection: {4}\n"})}),"\n",(0,i.jsx)(t.h3,{id:"solution-2",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["The approach is pretty simple, if you omit the ",(0,i.jsx)(t.em,{children:"1on1 with the compiler"}),". You just\nhave some fun with the set operations :)"]}),"\n",(0,i.jsx)(t.h2,{id:"day-4-camp-cleanup",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/4",children:"Day 4: Camp Cleanup"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Elves are cleaning up the camp and they got overlapping sections to clean up.\nFind how many overlap and can take the day off."})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html",children:(0,i.jsx)(t.code,{children:"RangeInclusive"})})," is your friend not an enemy :)"]}),"\n",(0,i.jsx)(t.h3,{id:"solution-3",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["Relatively easy, you just need to parse the input and know what you want. Rust's\n",(0,i.jsx)(t.code,{children:"RangeInclusive"})," type helped a lot, cause it took care of all abstractions."]}),"\n",(0,i.jsx)(t.h2,{id:"day-5-supply-stacks",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/5",children:"Day 5: Supply Stacks"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsx)(t.p,{children:"Let's play with stacks of crates."})}),"\n",(0,i.jsx)(t.p,{children:"Very easy problem with very annoying input. You can judge yourself:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:" [D] \n[N] [C] \n[Z] [M] [P]\n 1 2 3 \n\nmove 1 from 2 to 1\nmove 3 from 1 to 3\nmove 2 from 2 to 1\nmove 1 from 1 to 2\n"})}),"\n",(0,i.jsx)(t.p,{children:"Good luck transforming that into something reasonable :)"}),"\n",(0,i.jsx)(t.admonition,{title:"Fun fact",type:"tip",children:(0,i.jsx)(t.p,{children:"Took me 40 minutes to parse this reasonably, including fighting the compiler."})}),"\n",(0,i.jsx)(t.h3,{id:"solution-4",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["For the initial solution I went with a manual solution (as in ",(0,i.jsx)(t.em,{children:"I have done all"}),"\n",(0,i.jsx)(t.em,{children:"the work"}),". Later on I have decided to explore the ",(0,i.jsx)(t.code,{children:"std"})," and interface of the\n",(0,i.jsx)(t.code,{children:"std::vec::Vec"})," and found ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/vec/struct.Vec.html#method.split_off",children:(0,i.jsx)(t.code,{children:"split_off"})})," which takes an index and splits (duh)\nthe vector:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);\n"})}),"\n",(0,i.jsxs)(t.p,{children:["This helped me simplify my solution a lot and also get rid of some ",(0,i.jsx)(t.em,{children:"edge cases"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"day-6-tuning-trouble",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/6",children:"Day 6: Tuning Trouble"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["Finding start of the message in a very weird protocol. Start of the message is\ndenoted by ",(0,i.jsxs)(t.span,{className:"katex",children:[(0,i.jsx)(t.span,{className:"katex-mathml",children:(0,i.jsx)(t.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,i.jsxs)(t.semantics,{children:[(0,i.jsx)(t.mrow,{children:(0,i.jsx)(t.mi,{children:"N"})}),(0,i.jsx)(t.annotation,{encoding:"application/x-tex",children:"N"})]})})}),(0,i.jsx)(t.span,{className:"katex-html","aria-hidden":"true",children:(0,i.jsxs)(t.span,{className:"base",children:[(0,i.jsx)(t.span,{className:"strut",style:{height:"0.6833em"}}),(0,i.jsx)(t.span,{className:"mord mathnormal",style:{marginRight:"0.10903em"},children:"N"})]})})]})," unique consecutive characters."]})}),"\n",(0,i.jsx)(t.h3,{id:"solution-5",children:"Solution"}),"\n",(0,i.jsx)(t.p,{children:"A lot of different approaches, knowing that we are dealing with input consisting\nsolely of ASCII letters, I bit the bullet and went with sliding window and\nconstructing sets from that window, checking if the set is as big as the window."}),"\n",(0,i.jsxs)(t.p,{children:["One possible optimization could consist of keeping a bit-vector (i.e. ",(0,i.jsx)(t.code,{children:"usize"}),"\nvariable) of encountered characters and updating it as we go. However this has\na different issue and that is removal of the characters from the left side of the\nwindow. We don't know if the same character is not included later on."]}),"\n",(0,i.jsx)(t.p,{children:"Other option is to do similar thing, but keeping the frequencies of the letters,\nand again knowing we have only ASCII letters we can optimize by having a vector\nof 26 elements that keeps count for each lowercase letter."}),"\n",(0,i.jsx)(t.h2,{id:"day-7-no-space-left-on-device",children:(0,i.jsx)(t.a,{href:"https://adventofcode.com/2022/day/7",children:"Day 7: No Space Left On Device"})}),"\n",(0,i.jsx)(t.admonition,{title:"tl;dr",type:"info",children:(0,i.jsxs)(t.p,{children:["Let's simulate ",(0,i.jsx)(t.a,{href:"https://www.man7.org/linux/man-pages/man1/du.1.html",children:(0,i.jsx)(t.code,{children:"du"})})," to get some stats about our file system and then pinpoint\ndirectories that take a lot of space and should be deleted."]})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:["I was waiting for this moment, and yet it got me!\n",(0,i.jsx)(t.em,{children:"imagine me swearing for hours"})]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"solution-6",children:"Solution"}),"\n",(0,i.jsxs)(t.p,{children:["We need to \u201c",(0,i.jsx)(t.em,{children:"build"}),"\u201d a file system from the input that is given in a following form:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"$ cd /\n$ ls\ndir a\n14848514 b.txt\n8504156 c.dat\ndir d\n$ cd a\n$ ls\ndir e\n29116 f\n2557 g\n62596 h.lst\n$ cd e\n$ ls\n584 i\n$ cd ..\n$ cd ..\n$ cd d\n$ ls\n4060174 j\n8033020 d.log\n5626152 d.ext\n7214296 k\n"})}),"\n",(0,i.jsx)(t.p,{children:"There are few ways in which you can achieve this and also you can assume some\npreconditions, but why would we do that, right? :)"}),"\n",(0,i.jsxs)(t.p,{children:["You can \u201cslap\u201d this in either ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/collections/struct.HashMap.html",children:(0,i.jsx)(t.code,{children:"HashMap"})})," or ",(0,i.jsx)(t.a,{href:"https://doc.rust-lang.org/std/collections/struct.BTreeMap.html",children:(0,i.jsx)(t.code,{children:"BTreeMap"})})," and call it a day.\nAnd that would be boring\u2026"]}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"BTreeMap"})," is quite fitting for this, don't you think?"]})}),"\n",(0,i.jsxs)(t.p,{children:["I always wanted to try allocation on heap in Rust, so I chose to implement a tree.\nI fought with the ",(0,i.jsx)(t.code,{children:"Box<T>"})," for some time and was losing\u2026"]}),"\n",(0,i.jsxs)(t.p,{children:["Then I looked up some implementations of trees or linked lists and decided to try\n",(0,i.jsx)(t.code,{children:"Rc<Cell<T>>"}),". And I got my ",(0,i.jsx)(t.em,{children:"ass whopped"})," by the compiler once again. /o\\"]}),"\n",(0,i.jsxs)(t.admonition,{type:"tip",children:[(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Box<T>"})," represents a dynamically allocated memory on heap. It is a single pointer,\nyou can imagine this as ",(0,i.jsx)(t.code,{children:"std::unique_ptr<T>"})," in C++."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," represents a dynamically allocated memory on heap. On top of that it is\n",(0,i.jsx)(t.em,{children:"reference counted"})," (that's what the ",(0,i.jsx)(t.code,{children:"Rc"})," stands for). You can imagine this as\n",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," in C++."]}),(0,i.jsxs)(t.p,{children:["Now the fun stuff. Neither of them lets you ",(0,i.jsx)(t.strong,{children:"mutate"})," the contents of the memory."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Cell<T>"})," allows you to mutate the memory. Can be used reasonably with types that\ncan be copied, because the memory safety is guaranteed by copying the contents\nwhen there is more than one ",(0,i.jsx)(t.strong,{children:"mutable"})," reference to the memory."]}),(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"RefCell<T>"})," is similar to the ",(0,i.jsx)(t.code,{children:"Cell<T>"}),", but the borrowing rules (how many mutable\nreferences are present) are checked dynamically."]}),(0,i.jsxs)(t.p,{children:["So in the end, if you want something like ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," in Rust, you want\nto have ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"}),"."]})]}),"\n",(0,i.jsxs)(t.p,{children:["So, how are we going to represent the file system then? We will use an enumeration,\nhehe, which is an algebraic data type that can store some stuff in itself ","\ud83d\ude29"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"type FileHandle = Rc<RefCell<AocFile>>;\n\n#[derive(Debug)]\nenum AocFile {\n File(usize),\n Directory(BTreeMap<String, FileHandle>),\n}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Let's go over it! ",(0,i.jsx)(t.code,{children:"FileHandle"})," represents dynamically allocated ",(0,i.jsx)(t.code,{children:"AocFile"}),", not\nmuch to discuss. What does the ",(0,i.jsx)(t.code,{children:"#[derive(Debug)]"})," do though? It lets us to print\nout the value of that enumeration, it's derived, so it's not as good as if we had\nimplemented it ourselves, but it's good enough for debugging, hence the name."]}),"\n",(0,i.jsxs)(t.p,{children:["Now to the fun part! ",(0,i.jsx)(t.code,{children:"AocFile"})," value can be represented in two ways:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"File(usize)"}),", e.g. ",(0,i.jsx)(t.code,{children:"AocFile::File(123)"})," and we can pattern match it, if we\nneed to"]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Directory(BTreeMap<String, FileHandle>)"})," will represent the directory and will\ncontain map matching the name of the files (or directories) within to their\nrespective file handles"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"I will omit the details about constructing this file system, cause there are a lot\nof technicalities introduced by the nature of the input. However if you are\ninterested, you can have a look at my solution."}),"\n",(0,i.jsx)(t.p,{children:"We need to find small enough directories and also find the smallest directory that\nwill free enough space. Now the question is, how could we do that. And there are\nmultiple ways I will describe."}),"\n",(0,i.jsxs)(t.p,{children:["I have chosen to implement ",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Catamorphism#Tree_fold",children:(0,i.jsx)(t.em,{children:"tree catamorphism"})})," ","\ud83d\ude29",". It is basically a fold\nover a tree data structure. We descent down into the leaves and propagate computed\nresults all the way to the root. You can also notice that this approach is very\nsimilar to ",(0,i.jsx)(t.em,{children:"dynamic programming"}),", we find overlapping sections of the computation\nand try to minimize the additional work (in this case: we need to know sizes of\nour descendants, but we have already been there)."]}),"\n",(0,i.jsx)(t.p,{children:"Another approach that has been suggested to me few days later is running DFS on\nthe graph. And, funnily enough, we would still need to combine what we found in\nthe branches where we descent. So in the end, it would work very similarly to my\nsolution."}),"\n",(0,i.jsx)(t.p,{children:"One of the more exotic options would be precomputing the required information at\nthe same time as parsing. That could be done by adding additional fields to the\nnodes which would allow storing such information and updating it as we construct\nthe file system."}),"\n",(0,i.jsx)(t.h2,{id:"post-mortem",children:"Post Mortem"}),"\n",(0,i.jsx)(t.p,{children:"Things that have been brought up in the discussion later on."}),"\n",(0,i.jsxs)(t.h3,{id:"rct-vs-rcrefcellt",children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," vs ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})]}),"\n",(0,i.jsx)(t.p,{children:"It has been brought up that I have a contradicting statement regarding the\ndynamically allocated memory. Specifically:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["You can imagine ",(0,i.jsx)(t.code,{children:"Rc<T>"})," as an ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"})," (in C++)"]}),"\n",(0,i.jsxs)(t.li,{children:["When you want an equivalent of ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),", you want to use\n",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Now, in Rust it is a bit more complicated, because the type that represents the\n\u201cshared pointer\u201d is ",(0,i.jsx)(t.code,{children:"Rc<T>"}),". What ",(0,i.jsx)(t.code,{children:"RefCell<T>"})," does is making sure that there is\nonly one \u201cowner\u201d of a mutable reference at a time (and dynamically, as opposed\nto the ",(0,i.jsx)(t.code,{children:"Cell<T>"}),")."]}),"\n",(0,i.jsxs)(t.p,{children:["Therefore to be precise and correct about the equivalents of ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),"\nin Rust, we can say that"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"Rc<T>"})," is an equivalent of a ",(0,i.jsx)(t.code,{children:"const std::shared_ptr<T>"}),","]}),"\n",(0,i.jsxs)(t.li,{children:["and ",(0,i.jsx)(t.code,{children:"Rc<RefCell<T>>"})," is an equivalent of a ",(0,i.jsx)(t.code,{children:"std::shared_ptr<T>"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["You can easily see that they only differ in the mutability. (And even that is not\nas simple as it seems, because there is also ",(0,i.jsx)(t.code,{children:"Cell<T>"}),")"]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},11151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>a});var i=n(67294);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e1d2ae23.2bc6580d.js b/assets/js/e1d2ae23.2bc6580d.js new file mode 100644 index 0000000..4e15c85 --- /dev/null +++ b/assets/js/e1d2ae23.2bc6580d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1475],{36302:a=>{a.exports=JSON.parse('{"label":"applications","permalink":"/algorithms/tags/applications","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/e1d2ae23.a7e24da2.js b/assets/js/e1d2ae23.a7e24da2.js deleted file mode 100644 index c3fc1d5..0000000 --- a/assets/js/e1d2ae23.a7e24da2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1475],{6302:a=>{a.exports=JSON.parse('{"label":"applications","permalink":"/algorithms/tags/applications","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"rb-trees/applications","title":"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f","description":"Uk\xe1zka pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f v standardn\xedch kni\u017enic\xedch zn\xe1m\xfdch jazyk\u016f.\\n","permalink":"/algorithms/rb-trees/applications"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/e31003e9.3ae053c2.js b/assets/js/e31003e9.3ae053c2.js deleted file mode 100644 index e491ec8..0000000 --- a/assets/js/e31003e9.3ae053c2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1960],{1695:e=>{e.exports=JSON.parse('{"title":"Exceptions and RAII","description":"Materials related to the exceptions or RAII in C++.\\n","slug":"/category/exceptions-and-raii","permalink":"/cpp/category/exceptions-and-raii","navigation":{"previous":{"title":"Introduction","permalink":"/cpp/"},"next":{"title":"Placeholders","permalink":"/cpp/exceptions-and-raii/placeholders"}}}')}}]); \ No newline at end of file diff --git a/assets/js/e31003e9.e9396e0a.js b/assets/js/e31003e9.e9396e0a.js new file mode 100644 index 0000000..14f9b49 --- /dev/null +++ b/assets/js/e31003e9.e9396e0a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1960],{81695:e=>{e.exports=JSON.parse('{"title":"Exceptions and RAII","description":"Materials related to the exceptions or RAII in C++.\\n","slug":"/category/exceptions-and-raii","permalink":"/cpp/category/exceptions-and-raii","navigation":{"previous":{"title":"Introduction","permalink":"/cpp/"},"next":{"title":"Placeholders","permalink":"/cpp/exceptions-and-raii/placeholders"}}}')}}]); \ No newline at end of file diff --git a/assets/js/e89da83e.1856d5b6.js b/assets/js/e89da83e.1856d5b6.js new file mode 100644 index 0000000..5bad459 --- /dev/null +++ b/assets/js/e89da83e.1856d5b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8757],{97416:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/leetcode","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/e89da83e.a63c019a.js b/assets/js/e89da83e.a63c019a.js deleted file mode 100644 index 02612b9..0000000 --- a/assets/js/e89da83e.a63c019a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8757],{7416:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/leetcode","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/eba2374c.56ada146.js b/assets/js/eba2374c.56ada146.js deleted file mode 100644 index ab7835f..0000000 --- a/assets/js/eba2374c.56ada146.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8387],{7662:a=>{a.exports=JSON.parse('{"label":"backtracking","permalink":"/algorithms/tags/backtracking","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/eba2374c.71f2685d.js b/assets/js/eba2374c.71f2685d.js new file mode 100644 index 0000000..ae893ad --- /dev/null +++ b/assets/js/eba2374c.71f2685d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8387],{47662:a=>{a.exports=JSON.parse('{"label":"backtracking","permalink":"/algorithms/tags/backtracking","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/karel-1","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel-1"}],"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/f48be158.5e2dd98c.js b/assets/js/f48be158.5e2dd98c.js new file mode 100644 index 0000000..e124484 --- /dev/null +++ b/assets/js/f48be158.5e2dd98c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4064],{12326:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=t(85893),i=t(11151);const r={title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,s={permalink:"/blog/aoc-2022/3rd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md",source:"@site/blog/aoc-2022/03-week-3.md",title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:11.565,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"},nextItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"}},l={authorsImageUrls:[void 0]},d=[{value:"Day 15: Beacon Exclusion Zone",id:"day-15-beacon-exclusion-zone",level:2},{value:"Solution",id:"solution",level:3},{value:"Day 16: Proboscidea Volcanium",id:"day-16-proboscidea-volcanium",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Indexing in graph",id:"indexing-in-graph",level:4},{value:"Cartesian product",id:"cartesian-product",level:4},{value:"\u201cImplementing\u201d an iterator",id:"implementing-an-iterator",level:4},{value:"Day 17: Pyroclastic Flow",id:"day-17-pyroclastic-flow",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Collision detection",id:"collision-detection",level:4},{value:"Infinite iterator",id:"infinite-iterator",level:4},{value:"Day 18: Boiling Boulders",id:"day-18-boiling-boulders",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 19: Not Enough Minerals",id:"day-19-not-enough-minerals",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 20: Grove Positioning System",id:"day-20-grove-positioning-system",level:2},{value:"Solution",id:"solution-5",level:3},{value:"<code>.borrow_mut()</code>",id:"borrow_mut",level:4},{value:"<code>.borrow_mut()</code> on <code>Rc<RefCell<T>></code>",id:"borrow_mut-on-rcrefcellt",level:5},{value:"<code>BorrowMut</code> trait",id:"borrowmut-trait",level:5},{value:"Conflict",id:"conflict",level:5},{value:"Day 21: Monkey Math",id:"day-21-monkey-math",level:2},{value:"Solution",id:"solution-6",level:3},{value:"<code>Default</code> trait",id:"default-trait",level:4},{value:"Abusing negation",id:"abusing-negation",level:4}];function c(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Let's go through the third week of ",(0,o.jsx)(n.a,{href:"https://adventofcode.com",children:(0,o.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,o.jsx)(n.h2,{id:"day-15-beacon-exclusion-zone",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/15",children:"Day 15: Beacon Exclusion Zone"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Triangulating a distress beacon based on the information from the sensors."})}),"\n",(0,o.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Relatively easy thing to implement, no major Rust issues hit."}),"\n",(0,o.jsx)(n.h2,{id:"day-16-proboscidea-volcanium",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/16",children:"Day 16: Proboscidea Volcanium"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Finding a max flow in a graph given some time constraints."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"I have used some interesting things to implement this and make it easier for me."}),"\n",(0,o.jsx)(n.h4,{id:"indexing-in-graph",children:"Indexing in graph"}),"\n",(0,o.jsx)(n.p,{children:"I have come across a situation where I needed to keep more information regarding\nthe graph\u2026 In that case you can, of course, create a structure and keep it in,\nbut once you have multiple members in the structure it gets harder to work with\nsince you need to address the fields in the structure. When you work with graph,\nyou frequently need to access the vertices and in this case it felt a lot easier\nto implement the indexing in a graph, rather than explicitly access the\nunderlying data structure."}),"\n",(0,o.jsx)(n.p,{children:"Here you can see a rather short snippet from the solution that allows you to\n\u201cindex\u201d the graph:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"impl Index<&str> for Graph {\n type Output = Vertex;\n\n fn index(&self, index: &str) -> &Self::Output {\n &self.g[index]\n }\n}\n"})}),"\n",(0,o.jsx)(n.h4,{id:"cartesian-product",children:"Cartesian product"}),"\n",(0,o.jsxs)(n.p,{children:["During the implementation I had to utilize Floyd-Warshall algorithm for finding\nthe shortest path between pairs of vertices and utilized the ",(0,o.jsx)(n.code,{children:"iproduct!"})," macro\nfrom the ",(0,o.jsx)(n.a,{href:"https://crates.io/crates/itertools",children:(0,o.jsx)(n.code,{children:"itertools"})}),". It is a very useful higher-order function that allows\nyou to keep the nesting of the loops at a minimum level while still maintaining\nthe same functionality."]}),"\n",(0,o.jsx)(n.h4,{id:"implementing-an-iterator",children:"\u201cImplementing\u201d an iterator"}),"\n",(0,o.jsx)(n.p,{children:"For the second part, you get to split the work between 2 actors. That way you\ncan achieve higher efficiency of the whole process that you're planning, but it\nalso makes it harder to evaluate algorithmically, since you need to check the\ndifferent ways the work can be split."}),"\n",(0,o.jsxs)(n.p,{children:["Being affected by ",(0,o.jsx)(n.em,{children:"functional programming brain damage"}),"\u2122\ufe0f",", I have chosen to\ndo this part by function that returns an iterator over the possible ways:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"fn pairings(\n valves: &BTreeSet<String>,\n) -> impl Iterator<Item = (BTreeSet<String>, BTreeSet<String>)> + '_ {\n let mapping = valves.iter().collect_vec();\n\n let max_mask = 1 << (valves.len() - 1);\n\n (0..max_mask).map(move |mask| {\n let mut elephant = BTreeSet::new();\n let mut human = BTreeSet::new();\n\n for (i, &v) in mapping.iter().enumerate() {\n if (mask & (1 << i)) == 0 {\n human.insert(v.clone());\n } else {\n elephant.insert(v.clone());\n }\n }\n\n (human, elephant)\n })\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"day-17-pyroclastic-flow",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/17",children:"Day 17: Pyroclastic Flow"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Simulating an autonomous Tetris where pieces get affected by a series of jets of\nhot gas."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["Similarly to the previous day I have created some iterators ","\ud83d\ude04"]}),"\n",(0,o.jsx)(n.h4,{id:"collision-detection",children:"Collision detection"}),"\n",(0,o.jsx)(n.p,{children:"Once you need to check for collisions it is very helpful to be able to just\niterate through the positions that can actually collide with the wall or other\npiece."}),"\n",(0,o.jsx)(n.p,{children:"To get the desired behaviour, you can just compose few smaller functions:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"fn occupied(shape: &[Vec<char>]) -> impl Iterator<Item = Position> + '_ {\n shape.iter().enumerate().flat_map(|(y, row)| {\n row.iter().enumerate().filter_map(move |(x, c)| {\n if c == &'#' {\n Some(Vector2D::new(x as isize, y as isize))\n } else {\n None\n }\n })\n })\n}\n"})}),"\n",(0,o.jsx)(n.p,{children:"In the end, we get relative positions which we can adjust later when given the\nspecific positions from iterator. You can see some interesting parts in this:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:".enumerate()"})," allows us to get both the indices (coordinates) and the line\nor, later on, the character itself,"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:".flat_map()"})," flattens the iterator, i.e. when we return another iterator,\nthey just get chained instead of iterating over iterators (which sounds pretty\ndisturbing, doesn't it?),"]}),"\n",(0,o.jsxs)(n.li,{children:["and finally ",(0,o.jsx)(n.code,{children:".filter_map()"})," which is pretty similar to the \u201cbasic\u201d ",(0,o.jsx)(n.code,{children:".map()"}),"\nwith a one, key, difference that it expects the items of an iterator to be\nmapped to an ",(0,o.jsx)(n.code,{children:"Option<T>"})," from which it ignores nothing (as in ",(0,o.jsx)(n.code,{children:"None"})," ","\ud83d\ude09",")\nand also unwraps the values from ",(0,o.jsx)(n.code,{children:"Some(\u2026)"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"infinite-iterator",children:"Infinite iterator"}),"\n",(0,o.jsx)(n.p,{children:"In the solution we cycle through both Tetris-like shapes that fall down and the\njets that move our pieces around. Initially I have implemented my own infinite\niterator that just yields the indices. It is a very simple, yet powerful, piece\nof code:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"struct InfiniteIndex {\n size: usize,\n i: usize,\n}\n\nimpl InfiniteIndex {\n fn new(size: usize) -> InfiniteIndex {\n InfiniteIndex { size, i: size - 1 }\n }\n}\n\nimpl Iterator for InfiniteIndex {\n type Item = usize;\n\n fn next(&mut self) -> Option<Self::Item> {\n self.i = (self.i + 1) % self.size;\n Some(self.i)\n }\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["However when I'm looking at the code now, it doesn't really make much sense\u2026\nGuess what, we can use a built-in function that is implemented on iterators for\nthat! The function is called ",(0,o.jsx)(n.code,{children:".cycle()"})]}),"\n",(0,o.jsx)(n.p,{children:"On the other hand, I am not going to switch to that function, since it would\nintroduce an another myriad of issues caused by the fact that I create iterators\nright away in the constructor of my structure and the iterators would borrow\nboth the jets and shapes which would introduce a lifetime dependency into the\nstructure."}),"\n",(0,o.jsx)(n.h2,{id:"day-18-boiling-boulders",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/18",children:"Day 18: Boiling Boulders"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Let's compute a surface area of some obsidian approximated via coordinates of\ncubes."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"This day is kinda interesting, because it shows how easily you can complicate the\nproblem and also how much can you screw yourself over with the optimization and\n\u201csmart\u201d approach."}),"\n",(0,o.jsxs)(n.p,{children:["For the first part you need to find the surface area of an obsidian that is\napproximated by cubes. Now, that is a very easy thing to do, just keep the track\nof already added cubes, and check if the newly added cube touches any face of any\nother cube. Simple, and with a ",(0,o.jsx)(n.code,{children:"BTreeSet"})," relatively efficient way to do it."]}),"\n",(0,o.jsx)(n.p,{children:"However the second part lets you on a secret that there may be some surface area\nfrom the \u201cinside\u201d too and you want to know only the one from the outside of the\nobsidian. I have seen some solutions later, but if you check your data, you might\nnotice that the bounding box of all the cubes isn't that big at all. Therefore I\nchose to pre-construct the box beforehand, fill in the cubes and then just run a\nBFS turning all the lava on the outside into the air. Now you just need to check\ncubes and count how many of their faces touch the air."}),"\n",(0,o.jsx)(n.h2,{id:"day-19-not-enough-minerals",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/19",children:"Day 19: Not Enough Minerals"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Finding out the best strategy for building robots to collect geodes."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-4",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["Not much interesting stuff to mention apart from the suggestion to never believe\nthat the default implementation given by ",(0,o.jsx)(n.code,{children:"derive"})," macro is what you want, it\ndoesn't have to be. ","\ud83d\ude04"]}),"\n",(0,o.jsx)(n.h2,{id:"day-20-grove-positioning-system",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/20",children:"Day 20: Grove Positioning System"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsxs)(n.p,{children:["Shuffling around the ",(0,o.jsx)(n.em,{children:"circular linked list"})," to find the coordinates."]})}),"\n",(0,o.jsx)(n.p,{children:"Now, small rant for this day is in place. They've never mentioned that coordinates\ncan repeat and therefore the values are non-unique. This is something that did\nnot happen in the given sample, but was present in the user input. It took \xbba lot\xab\nto realize that this is the issue."}),"\n",(0,o.jsx)(n.h3,{id:"solution-5",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["I have tried implementing a circular linked list for this\u2026 and I have failed\nmiserably. To be fair, I still have no clue why. It was \u201cfun\u201d to play around with\nthe ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),". In the end I failed on ",(0,o.jsx)(n.em,{children:"wrong answer"}),". I have also encountered\na rather interesting issue with ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," method being used on ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"borrow_mut",children:(0,o.jsx)(n.code,{children:".borrow_mut()"})}),"\n",(0,o.jsx)(n.p,{children:"Consider the following snippet of the code (taken from the documentation):"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:'use std::cell::{RefCell, RefMut};\nuse std::collections::HashMap;\nuse std::rc::Rc;\n// use std::borrow::BorrowMut;\n\nfn main() {\n let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));\n // Create a new block to limit the scope of the dynamic borrow\n {\n let mut map: RefMut<_> = shared_map.borrow_mut();\n map.insert("africa", 92388);\n map.insert("kyoto", 11837);\n map.insert("piccadilly", 11826);\n map.insert("marbles", 38);\n }\n\n // Note that if we had not let the previous borrow of the cache fall out\n // of scope then the subsequent borrow would cause a dynamic thread panic.\n // This is the major hazard of using `RefCell`.\n let total: i32 = shared_map.borrow().values().sum();\n println!("{total}");\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"We allocate a hash map on the heap and then in the inner block, we borrow it as\na mutable reference, so that we can use it."}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["It is a very primitive example for ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})," and mutable borrow."]})}),"\n",(0,o.jsxs)(n.p,{children:["If you uncomment the 4th line with ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"}),", you cannot\ncompile the code anymore, because of"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:" Compiling playground v0.0.1 (/playground)\nerror[E0308]: mismatched types\n --\x3e src/main.rs:10:34\n |\n10 | let mut map: RefMut<_> = shared_map.borrow_mut();\n | --------- ^^^^^^^^^^^^^^^^^^^^^^^ expected struct `RefMut`, found mutable reference\n | |\n | expected due to this\n |\n = note: expected struct `RefMut<'_, _>`\n found mutable reference `&mut Rc<RefCell<HashMap<_, _>>>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:11:13\n |\n11 | map.insert(\"africa\", 92388);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:12:13\n |\n12 | map.insert(\"kyoto\", 11837);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:13:13\n |\n13 | map.insert(\"piccadilly\", 11826);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:14:13\n |\n14 | map.insert(\"marbles\", 38);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nSome errors have detailed explanations: E0308, E0599.\nFor more information about an error, try `rustc --explain E0308`.\nerror: could not compile `playground` due to 5 previous errors\n"})}),"\n",(0,o.jsxs)(n.p,{children:["It might seem ",(0,o.jsx)(n.strong,{children:"a bit"})," ridiculous. However, I got to a point where the compiler\nsuggested ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"})," and it resulted in breaking parts of the\ncode that worked previously. I think it may be a good idea to go over what is\nhappening here."]}),"\n",(0,o.jsxs)(n.h5,{id:"borrow_mut-on-rcrefcellt",children:[(0,o.jsx)(n.code,{children:".borrow_mut()"})," on ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})]}),"\n",(0,o.jsxs)(n.p,{children:["Let's consider a variable ",(0,o.jsx)(n.code,{children:"x"})," of type ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),". What happens when you\ncall ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," on it? We can look at the ",(0,o.jsx)(n.code,{children:"Rc"})," type, and\u2026 hang on! There is\nneither ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," method or ",(0,o.jsx)(n.code,{children:"BorrowMut"})," trait implemented. How can we do it\nthen?"]}),"\n",(0,o.jsxs)(n.p,{children:["Let's go further and we can see that ",(0,o.jsx)(n.code,{children:"RefCell<T>"})," implements a ",(0,o.jsx)(n.code,{children:".borrow_mut()"}),"\nmethod. OK, but how can we call it on the ",(0,o.jsx)(n.code,{children:"Rc<T>"}),"? Easily! ",(0,o.jsx)(n.code,{children:"Rc<T>"})," implements\n",(0,o.jsx)(n.code,{children:"Deref<T>"})," and therefore you can call methods on ",(0,o.jsx)(n.code,{children:"Rc<T>"})," objects as if they were\n",(0,o.jsx)(n.code,{children:"T"})," objects. If we read on ",(0,o.jsxs)(n.em,{children:[(0,o.jsx)(n.code,{children:"Deref"})," coercion"]}),", we can see the following:"]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["If ",(0,o.jsx)(n.code,{children:"T"})," implements ",(0,o.jsx)(n.code,{children:"Deref<Target = U>"}),", \u2026:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"\u2026"}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"T"})," implicitly implements all the (immutable) methods of the type ",(0,o.jsx)(n.code,{children:"U"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["What is the requirement for the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," on ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"? Well, it needs\n",(0,o.jsx)(n.code,{children:"&self"}),", so the ",(0,o.jsx)(n.code,{children:"Deref"})," implements the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," for the ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),"."]}),"\n",(0,o.jsxs)(n.h5,{id:"borrowmut-trait",children:[(0,o.jsx)(n.code,{children:"BorrowMut"})," trait"]}),"\n",(0,o.jsxs)(n.p,{children:["I have not been able to find a lot on this trait. My guess is that it provides a\nmethod instead of a syntactic sugar (",(0,o.jsx)(n.code,{children:"&mut x"}),") for the mutable borrow. And also\nit provides default implementations for the types:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"impl BorrowMut<str> for String\n\nimpl<T> BorrowMut<T> for &mut T\nwhere\n T: ?Sized,\n\nimpl<T> BorrowMut<T> for T\nwhere\n T: ?Sized,\n\nimpl<T, A> BorrowMut<[T]> for Vec<T, A>\nwhere\n A: Allocator,\n\nimpl<T, A> BorrowMut<T> for Box<T, A>\nwhere\n A: Allocator,\n T: ?Sized,\n\nimpl<T, const N: usize> BorrowMut<[T]> for [T; N]\n"})}),"\n",(0,o.jsx)(n.h5,{id:"conflict",children:"Conflict"}),"\n",(0,o.jsxs)(n.p,{children:["Now the question is why did it break the code\u2026 My first take was that the type\n",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})," has some ",(0,o.jsx)(n.em,{children:"specialized"})," implementation of the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," and\nthe ",(0,o.jsx)(n.code,{children:"use"})," overrides it with the default, which is true ",(0,o.jsx)(n.strong,{children:"in a sense"}),". However\nthere is no ",(0,o.jsx)(n.em,{children:"specialized"})," implementation. Let's have a look at the trait and the\ntype signature on the ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"// trait\npub trait BorrowMut<Borrowed>: Borrow<Borrowed>\nwhere\n Borrowed: ?Sized,\n{\n fn borrow_mut(&mut self) -> &mut Borrowed;\n}\n\n// \u2039RefCell<T>.borrow_mut()\u203a type signature\npub fn borrow_mut(&self) -> RefMut<'_, T>\n"})}),"\n",(0,o.jsxs)(n.p,{children:["I think that we can definitely agree on the fact that ",(0,o.jsx)(n.code,{children:"RefMut<'_, T>"})," is not the\n",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"In my opinion"}),", ",(0,o.jsx)(n.code,{children:"RefCell<T>"})," implements a ",(0,o.jsx)(n.strong,{children:"separate"})," ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," rather\nthan implementing the interface, because it ",(0,o.jsx)(n.strong,{children:"cannot"})," satisfy the type requirements\nof the trait."]}),"\n",(0,o.jsx)(n.admonition,{type:"caution",children:(0,o.jsxs)(n.p,{children:["I wonder how are we expected to deal with this conflict, if and when, we need\nboth the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," of the trait and ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," of the ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"Fun fact",type:"tip",children:[(0,o.jsxs)(n.p,{children:["I was suggested by the compiler to do ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"})," and break the\ncode."]}),(0,o.jsxs)(n.p,{children:["So much for the ",(0,o.jsx)(n.em,{children:"almighty"})," and ",(0,o.jsx)(n.em,{children:"helpful"})," compiler\u2026"]})]}),"\n",(0,o.jsx)(n.h2,{id:"day-21-monkey-math",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/21",children:"Day 21: Monkey Math"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Computing an expression tree and then also finding ideal value for a node."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-6",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Relatively simple, until you get to the 2nd part where you start to practice\na lot of the copy-paste. I have managed to sneak some perverted stuff in there\nthough :) Let's go through the details."}),"\n",(0,o.jsxs)(n.h4,{id:"default-trait",children:[(0,o.jsx)(n.code,{children:"Default"})," trait"]}),"\n",(0,o.jsxs)(n.p,{children:["For the first time and twice I had a need to have a default value for my types,\nenumerations in this case. Rust offers a very nice trait",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-1-990909",id:"user-content-fnref-1-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," that is described\nas:"]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsx)(n.p,{children:"A trait for giving a type a useful default value."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["I guess it sums it up nicely. The more interesting part about this is the fact\nthat you can use the ",(0,o.jsx)(n.em,{children:"macro machinery"})," to save yourself some typing. If you have\nenumeration of which the default value doesn't bear any parameter, you can just\ndo",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-2-990909",id:"user-content-fnref-2-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"#[derive(Default)]\nenum Color {\n #[default]\n White,\n Gray,\n Black,\n}\n"})}),"\n",(0,o.jsx)(n.h4,{id:"abusing-negation",children:"Abusing negation"}),"\n",(0,o.jsxs)(n.p,{children:["If you want to use a ",(0,o.jsx)(n.em,{children:"unary minus"})," operator on your own type, you can implement\na ",(0,o.jsx)(n.code,{children:"Neg"})," trait",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-3-990909",id:"user-content-fnref-3-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". I was dealing with a binary tree and needed a way how to look\nat the other side, so I have just implemented the negation for flipping between\nleft and right ","\ud83d\ude04"]}),"\n",(0,o.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,o.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{id:"user-content-fn-1-990909",children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://doc.rust-lang.org/std/default/trait.Default.html",children:(0,o.jsx)(n.code,{children:"Default"})})," docs ",(0,o.jsx)(n.a,{href:"#user-content-fnref-1-990909","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{id:"user-content-fn-2-990909",children:["\n",(0,o.jsxs)(n.p,{children:["Pardon my example from the graph algorithms ;) ",(0,o.jsx)(n.a,{href:"#user-content-fnref-2-990909","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{id:"user-content-fn-3-990909",children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://doc.rust-lang.org/std/ops/trait.Neg.html",children:(0,o.jsx)(n.code,{children:"Neg"})})," docs ",(0,o.jsx)(n.a,{href:"#user-content-fnref-3-990909","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>a});var o=t(67294);const i={},r=o.createContext(i);function a(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f48be158.f126906d.js b/assets/js/f48be158.f126906d.js deleted file mode 100644 index 6de5796..0000000 --- a/assets/js/f48be158.f126906d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4064],{2326:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=t(5893),i=t(1151);const r={title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},a=void 0,s={permalink:"/blog/aoc-2022/3rd-week",editUrl:"https://github.com/mfocko/blog/tree/main/blog/aoc-2022/03-week-3.md",source:"@site/blog/aoc-2022/03-week-3.md",title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00:00.000Z",formattedDate:"July 6, 2023",tags:[{label:"advent-of-code",permalink:"/blog/tags/advent-of-code"},{label:"advent-of-code-2022",permalink:"/blog/tags/advent-of-code-2022"},{label:"rust",permalink:"/blog/tags/rust"}],readingTime:11.565,hasTruncateMarker:!0,authors:[{name:"Matej Focko",email:"me+blog@mfocko.xyz",title:"a.k.a. @mf",url:"https://gitlab.com/mfocko",imageURL:"https://github.com/mfocko.png",key:"mf"}],frontMatter:{title:"3rd week of Advent of Code '22 in Rust",description:"Surviving third week in Rust.",date:"2023-07-06T21:00",slug:"aoc-2022/3rd-week",authors:"mf",tags:["advent-of-code","advent-of-code-2022","rust"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"4th week of Advent of Code '22 in Rust",permalink:"/blog/aoc-2022/4th-week"},nextItem:{title:"Sort the matrix diagonally",permalink:"/blog/leetcode/sort-diagonally"}},l={authorsImageUrls:[void 0]},d=[{value:"Day 15: Beacon Exclusion Zone",id:"day-15-beacon-exclusion-zone",level:2},{value:"Solution",id:"solution",level:3},{value:"Day 16: Proboscidea Volcanium",id:"day-16-proboscidea-volcanium",level:2},{value:"Solution",id:"solution-1",level:3},{value:"Indexing in graph",id:"indexing-in-graph",level:4},{value:"Cartesian product",id:"cartesian-product",level:4},{value:"\u201cImplementing\u201d an iterator",id:"implementing-an-iterator",level:4},{value:"Day 17: Pyroclastic Flow",id:"day-17-pyroclastic-flow",level:2},{value:"Solution",id:"solution-2",level:3},{value:"Collision detection",id:"collision-detection",level:4},{value:"Infinite iterator",id:"infinite-iterator",level:4},{value:"Day 18: Boiling Boulders",id:"day-18-boiling-boulders",level:2},{value:"Solution",id:"solution-3",level:3},{value:"Day 19: Not Enough Minerals",id:"day-19-not-enough-minerals",level:2},{value:"Solution",id:"solution-4",level:3},{value:"Day 20: Grove Positioning System",id:"day-20-grove-positioning-system",level:2},{value:"Solution",id:"solution-5",level:3},{value:"<code>.borrow_mut()</code>",id:"borrow_mut",level:4},{value:"<code>.borrow_mut()</code> on <code>Rc<RefCell<T>></code>",id:"borrow_mut-on-rcrefcellt",level:5},{value:"<code>BorrowMut</code> trait",id:"borrowmut-trait",level:5},{value:"Conflict",id:"conflict",level:5},{value:"Day 21: Monkey Math",id:"day-21-monkey-math",level:2},{value:"Solution",id:"solution-6",level:3},{value:"<code>Default</code> trait",id:"default-trait",level:4},{value:"Abusing negation",id:"abusing-negation",level:4}];function c(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",section:"section",strong:"strong",sup:"sup",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Let's go through the third week of ",(0,o.jsx)(n.a,{href:"https://adventofcode.com",children:(0,o.jsx)(n.em,{children:"Advent of Code"})})," in Rust."]}),"\n",(0,o.jsx)(n.h2,{id:"day-15-beacon-exclusion-zone",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/15",children:"Day 15: Beacon Exclusion Zone"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Triangulating a distress beacon based on the information from the sensors."})}),"\n",(0,o.jsx)(n.h3,{id:"solution",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Relatively easy thing to implement, no major Rust issues hit."}),"\n",(0,o.jsx)(n.h2,{id:"day-16-proboscidea-volcanium",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/16",children:"Day 16: Proboscidea Volcanium"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Finding a max flow in a graph given some time constraints."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-1",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"I have used some interesting things to implement this and make it easier for me."}),"\n",(0,o.jsx)(n.h4,{id:"indexing-in-graph",children:"Indexing in graph"}),"\n",(0,o.jsx)(n.p,{children:"I have come across a situation where I needed to keep more information regarding\nthe graph\u2026 In that case you can, of course, create a structure and keep it in,\nbut once you have multiple members in the structure it gets harder to work with\nsince you need to address the fields in the structure. When you work with graph,\nyou frequently need to access the vertices and in this case it felt a lot easier\nto implement the indexing in a graph, rather than explicitly access the\nunderlying data structure."}),"\n",(0,o.jsx)(n.p,{children:"Here you can see a rather short snippet from the solution that allows you to\n\u201cindex\u201d the graph:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"impl Index<&str> for Graph {\n type Output = Vertex;\n\n fn index(&self, index: &str) -> &Self::Output {\n &self.g[index]\n }\n}\n"})}),"\n",(0,o.jsx)(n.h4,{id:"cartesian-product",children:"Cartesian product"}),"\n",(0,o.jsxs)(n.p,{children:["During the implementation I had to utilize Floyd-Warshall algorithm for finding\nthe shortest path between pairs of vertices and utilized the ",(0,o.jsx)(n.code,{children:"iproduct!"})," macro\nfrom the ",(0,o.jsx)(n.a,{href:"https://crates.io/crates/itertools",children:(0,o.jsx)(n.code,{children:"itertools"})}),". It is a very useful higher-order function that allows\nyou to keep the nesting of the loops at a minimum level while still maintaining\nthe same functionality."]}),"\n",(0,o.jsx)(n.h4,{id:"implementing-an-iterator",children:"\u201cImplementing\u201d an iterator"}),"\n",(0,o.jsx)(n.p,{children:"For the second part, you get to split the work between 2 actors. That way you\ncan achieve higher efficiency of the whole process that you're planning, but it\nalso makes it harder to evaluate algorithmically, since you need to check the\ndifferent ways the work can be split."}),"\n",(0,o.jsxs)(n.p,{children:["Being affected by ",(0,o.jsx)(n.em,{children:"functional programming brain damage"}),"\u2122\ufe0f",", I have chosen to\ndo this part by function that returns an iterator over the possible ways:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"fn pairings(\n valves: &BTreeSet<String>,\n) -> impl Iterator<Item = (BTreeSet<String>, BTreeSet<String>)> + '_ {\n let mapping = valves.iter().collect_vec();\n\n let max_mask = 1 << (valves.len() - 1);\n\n (0..max_mask).map(move |mask| {\n let mut elephant = BTreeSet::new();\n let mut human = BTreeSet::new();\n\n for (i, &v) in mapping.iter().enumerate() {\n if (mask & (1 << i)) == 0 {\n human.insert(v.clone());\n } else {\n elephant.insert(v.clone());\n }\n }\n\n (human, elephant)\n })\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"day-17-pyroclastic-flow",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/17",children:"Day 17: Pyroclastic Flow"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Simulating an autonomous Tetris where pieces get affected by a series of jets of\nhot gas."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-2",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["Similarly to the previous day I have created some iterators ","\ud83d\ude04"]}),"\n",(0,o.jsx)(n.h4,{id:"collision-detection",children:"Collision detection"}),"\n",(0,o.jsx)(n.p,{children:"Once you need to check for collisions it is very helpful to be able to just\niterate through the positions that can actually collide with the wall or other\npiece."}),"\n",(0,o.jsx)(n.p,{children:"To get the desired behaviour, you can just compose few smaller functions:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"fn occupied(shape: &[Vec<char>]) -> impl Iterator<Item = Position> + '_ {\n shape.iter().enumerate().flat_map(|(y, row)| {\n row.iter().enumerate().filter_map(move |(x, c)| {\n if c == &'#' {\n Some(Vector2D::new(x as isize, y as isize))\n } else {\n None\n }\n })\n })\n}\n"})}),"\n",(0,o.jsx)(n.p,{children:"In the end, we get relative positions which we can adjust later when given the\nspecific positions from iterator. You can see some interesting parts in this:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:".enumerate()"})," allows us to get both the indices (coordinates) and the line\nor, later on, the character itself,"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:".flat_map()"})," flattens the iterator, i.e. when we return another iterator,\nthey just get chained instead of iterating over iterators (which sounds pretty\ndisturbing, doesn't it?),"]}),"\n",(0,o.jsxs)(n.li,{children:["and finally ",(0,o.jsx)(n.code,{children:".filter_map()"})," which is pretty similar to the \u201cbasic\u201d ",(0,o.jsx)(n.code,{children:".map()"}),"\nwith a one, key, difference that it expects the items of an iterator to be\nmapped to an ",(0,o.jsx)(n.code,{children:"Option<T>"})," from which it ignores nothing (as in ",(0,o.jsx)(n.code,{children:"None"})," ","\ud83d\ude09",")\nand also unwraps the values from ",(0,o.jsx)(n.code,{children:"Some(\u2026)"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h4,{id:"infinite-iterator",children:"Infinite iterator"}),"\n",(0,o.jsx)(n.p,{children:"In the solution we cycle through both Tetris-like shapes that fall down and the\njets that move our pieces around. Initially I have implemented my own infinite\niterator that just yields the indices. It is a very simple, yet powerful, piece\nof code:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"struct InfiniteIndex {\n size: usize,\n i: usize,\n}\n\nimpl InfiniteIndex {\n fn new(size: usize) -> InfiniteIndex {\n InfiniteIndex { size, i: size - 1 }\n }\n}\n\nimpl Iterator for InfiniteIndex {\n type Item = usize;\n\n fn next(&mut self) -> Option<Self::Item> {\n self.i = (self.i + 1) % self.size;\n Some(self.i)\n }\n}\n"})}),"\n",(0,o.jsxs)(n.p,{children:["However when I'm looking at the code now, it doesn't really make much sense\u2026\nGuess what, we can use a built-in function that is implemented on iterators for\nthat! The function is called ",(0,o.jsx)(n.code,{children:".cycle()"})]}),"\n",(0,o.jsx)(n.p,{children:"On the other hand, I am not going to switch to that function, since it would\nintroduce an another myriad of issues caused by the fact that I create iterators\nright away in the constructor of my structure and the iterators would borrow\nboth the jets and shapes which would introduce a lifetime dependency into the\nstructure."}),"\n",(0,o.jsx)(n.h2,{id:"day-18-boiling-boulders",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/18",children:"Day 18: Boiling Boulders"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Let's compute a surface area of some obsidian approximated via coordinates of\ncubes."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-3",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"This day is kinda interesting, because it shows how easily you can complicate the\nproblem and also how much can you screw yourself over with the optimization and\n\u201csmart\u201d approach."}),"\n",(0,o.jsxs)(n.p,{children:["For the first part you need to find the surface area of an obsidian that is\napproximated by cubes. Now, that is a very easy thing to do, just keep the track\nof already added cubes, and check if the newly added cube touches any face of any\nother cube. Simple, and with a ",(0,o.jsx)(n.code,{children:"BTreeSet"})," relatively efficient way to do it."]}),"\n",(0,o.jsx)(n.p,{children:"However the second part lets you on a secret that there may be some surface area\nfrom the \u201cinside\u201d too and you want to know only the one from the outside of the\nobsidian. I have seen some solutions later, but if you check your data, you might\nnotice that the bounding box of all the cubes isn't that big at all. Therefore I\nchose to pre-construct the box beforehand, fill in the cubes and then just run a\nBFS turning all the lava on the outside into the air. Now you just need to check\ncubes and count how many of their faces touch the air."}),"\n",(0,o.jsx)(n.h2,{id:"day-19-not-enough-minerals",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/19",children:"Day 19: Not Enough Minerals"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Finding out the best strategy for building robots to collect geodes."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-4",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["Not much interesting stuff to mention apart from the suggestion to never believe\nthat the default implementation given by ",(0,o.jsx)(n.code,{children:"derive"})," macro is what you want, it\ndoesn't have to be. ","\ud83d\ude04"]}),"\n",(0,o.jsx)(n.h2,{id:"day-20-grove-positioning-system",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/20",children:"Day 20: Grove Positioning System"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsxs)(n.p,{children:["Shuffling around the ",(0,o.jsx)(n.em,{children:"circular linked list"})," to find the coordinates."]})}),"\n",(0,o.jsx)(n.p,{children:"Now, small rant for this day is in place. They've never mentioned that coordinates\ncan repeat and therefore the values are non-unique. This is something that did\nnot happen in the given sample, but was present in the user input. It took \xbba lot\xab\nto realize that this is the issue."}),"\n",(0,o.jsx)(n.h3,{id:"solution-5",children:"Solution"}),"\n",(0,o.jsxs)(n.p,{children:["I have tried implementing a circular linked list for this\u2026 and I have failed\nmiserably. To be fair, I still have no clue why. It was \u201cfun\u201d to play around with\nthe ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),". In the end I failed on ",(0,o.jsx)(n.em,{children:"wrong answer"}),". I have also encountered\na rather interesting issue with ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," method being used on ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),"."]}),"\n",(0,o.jsx)(n.h4,{id:"borrow_mut",children:(0,o.jsx)(n.code,{children:".borrow_mut()"})}),"\n",(0,o.jsx)(n.p,{children:"Consider the following snippet of the code (taken from the documentation):"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:'use std::cell::{RefCell, RefMut};\nuse std::collections::HashMap;\nuse std::rc::Rc;\n// use std::borrow::BorrowMut;\n\nfn main() {\n let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));\n // Create a new block to limit the scope of the dynamic borrow\n {\n let mut map: RefMut<_> = shared_map.borrow_mut();\n map.insert("africa", 92388);\n map.insert("kyoto", 11837);\n map.insert("piccadilly", 11826);\n map.insert("marbles", 38);\n }\n\n // Note that if we had not let the previous borrow of the cache fall out\n // of scope then the subsequent borrow would cause a dynamic thread panic.\n // This is the major hazard of using `RefCell`.\n let total: i32 = shared_map.borrow().values().sum();\n println!("{total}");\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"We allocate a hash map on the heap and then in the inner block, we borrow it as\na mutable reference, so that we can use it."}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["It is a very primitive example for ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})," and mutable borrow."]})}),"\n",(0,o.jsxs)(n.p,{children:["If you uncomment the 4th line with ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"}),", you cannot\ncompile the code anymore, because of"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:" Compiling playground v0.0.1 (/playground)\nerror[E0308]: mismatched types\n --\x3e src/main.rs:10:34\n |\n10 | let mut map: RefMut<_> = shared_map.borrow_mut();\n | --------- ^^^^^^^^^^^^^^^^^^^^^^^ expected struct `RefMut`, found mutable reference\n | |\n | expected due to this\n |\n = note: expected struct `RefMut<'_, _>`\n found mutable reference `&mut Rc<RefCell<HashMap<_, _>>>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:11:13\n |\n11 | map.insert(\"africa\", 92388);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:12:13\n |\n12 | map.insert(\"kyoto\", 11837);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:13:13\n |\n13 | map.insert(\"piccadilly\", 11826);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nerror[E0599]: no method named `insert` found for struct `RefMut<'_, _>` in the current scope\n --\x3e src/main.rs:14:13\n |\n14 | map.insert(\"marbles\", 38);\n | ^^^^^^ method not found in `RefMut<'_, _>`\n\nSome errors have detailed explanations: E0308, E0599.\nFor more information about an error, try `rustc --explain E0308`.\nerror: could not compile `playground` due to 5 previous errors\n"})}),"\n",(0,o.jsxs)(n.p,{children:["It might seem ",(0,o.jsx)(n.strong,{children:"a bit"})," ridiculous. However, I got to a point where the compiler\nsuggested ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"})," and it resulted in breaking parts of the\ncode that worked previously. I think it may be a good idea to go over what is\nhappening here."]}),"\n",(0,o.jsxs)(n.h5,{id:"borrow_mut-on-rcrefcellt",children:[(0,o.jsx)(n.code,{children:".borrow_mut()"})," on ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})]}),"\n",(0,o.jsxs)(n.p,{children:["Let's consider a variable ",(0,o.jsx)(n.code,{children:"x"})," of type ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),". What happens when you\ncall ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," on it? We can look at the ",(0,o.jsx)(n.code,{children:"Rc"})," type, and\u2026 hang on! There is\nneither ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," method or ",(0,o.jsx)(n.code,{children:"BorrowMut"})," trait implemented. How can we do it\nthen?"]}),"\n",(0,o.jsxs)(n.p,{children:["Let's go further and we can see that ",(0,o.jsx)(n.code,{children:"RefCell<T>"})," implements a ",(0,o.jsx)(n.code,{children:".borrow_mut()"}),"\nmethod. OK, but how can we call it on the ",(0,o.jsx)(n.code,{children:"Rc<T>"}),"? Easily! ",(0,o.jsx)(n.code,{children:"Rc<T>"})," implements\n",(0,o.jsx)(n.code,{children:"Deref<T>"})," and therefore you can call methods on ",(0,o.jsx)(n.code,{children:"Rc<T>"})," objects as if they were\n",(0,o.jsx)(n.code,{children:"T"})," objects. If we read on ",(0,o.jsxs)(n.em,{children:[(0,o.jsx)(n.code,{children:"Deref"})," coercion"]}),", we can see the following:"]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsxs)(n.p,{children:["If ",(0,o.jsx)(n.code,{children:"T"})," implements ",(0,o.jsx)(n.code,{children:"Deref<Target = U>"}),", \u2026:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"\u2026"}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"T"})," implicitly implements all the (immutable) methods of the type ",(0,o.jsx)(n.code,{children:"U"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["What is the requirement for the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," on ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"? Well, it needs\n",(0,o.jsx)(n.code,{children:"&self"}),", so the ",(0,o.jsx)(n.code,{children:"Deref"})," implements the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," for the ",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"}),"."]}),"\n",(0,o.jsxs)(n.h5,{id:"borrowmut-trait",children:[(0,o.jsx)(n.code,{children:"BorrowMut"})," trait"]}),"\n",(0,o.jsxs)(n.p,{children:["I have not been able to find a lot on this trait. My guess is that it provides a\nmethod instead of a syntactic sugar (",(0,o.jsx)(n.code,{children:"&mut x"}),") for the mutable borrow. And also\nit provides default implementations for the types:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"impl BorrowMut<str> for String\n\nimpl<T> BorrowMut<T> for &mut T\nwhere\n T: ?Sized,\n\nimpl<T> BorrowMut<T> for T\nwhere\n T: ?Sized,\n\nimpl<T, A> BorrowMut<[T]> for Vec<T, A>\nwhere\n A: Allocator,\n\nimpl<T, A> BorrowMut<T> for Box<T, A>\nwhere\n A: Allocator,\n T: ?Sized,\n\nimpl<T, const N: usize> BorrowMut<[T]> for [T; N]\n"})}),"\n",(0,o.jsx)(n.h5,{id:"conflict",children:"Conflict"}),"\n",(0,o.jsxs)(n.p,{children:["Now the question is why did it break the code\u2026 My first take was that the type\n",(0,o.jsx)(n.code,{children:"Rc<RefCell<T>>"})," has some ",(0,o.jsx)(n.em,{children:"specialized"})," implementation of the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," and\nthe ",(0,o.jsx)(n.code,{children:"use"})," overrides it with the default, which is true ",(0,o.jsx)(n.strong,{children:"in a sense"}),". However\nthere is no ",(0,o.jsx)(n.em,{children:"specialized"})," implementation. Let's have a look at the trait and the\ntype signature on the ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"// trait\npub trait BorrowMut<Borrowed>: Borrow<Borrowed>\nwhere\n Borrowed: ?Sized,\n{\n fn borrow_mut(&mut self) -> &mut Borrowed;\n}\n\n// \u2039RefCell<T>.borrow_mut()\u203a type signature\npub fn borrow_mut(&self) -> RefMut<'_, T>\n"})}),"\n",(0,o.jsxs)(n.p,{children:["I think that we can definitely agree on the fact that ",(0,o.jsx)(n.code,{children:"RefMut<'_, T>"})," is not the\n",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"In my opinion"}),", ",(0,o.jsx)(n.code,{children:"RefCell<T>"})," implements a ",(0,o.jsx)(n.strong,{children:"separate"})," ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," rather\nthan implementing the interface, because it ",(0,o.jsx)(n.strong,{children:"cannot"})," satisfy the type requirements\nof the trait."]}),"\n",(0,o.jsx)(n.admonition,{type:"caution",children:(0,o.jsxs)(n.p,{children:["I wonder how are we expected to deal with this conflict, if and when, we need\nboth the ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," of the trait and ",(0,o.jsx)(n.code,{children:".borrow_mut()"})," of the ",(0,o.jsx)(n.code,{children:"RefCell<T>"}),"."]})}),"\n",(0,o.jsxs)(n.admonition,{title:"Fun fact",type:"tip",children:[(0,o.jsxs)(n.p,{children:["I was suggested by the compiler to do ",(0,o.jsx)(n.code,{children:"use std::borrow::BorrowMut;"})," and break the\ncode."]}),(0,o.jsxs)(n.p,{children:["So much for the ",(0,o.jsx)(n.em,{children:"almighty"})," and ",(0,o.jsx)(n.em,{children:"helpful"})," compiler\u2026"]})]}),"\n",(0,o.jsx)(n.h2,{id:"day-21-monkey-math",children:(0,o.jsx)(n.a,{href:"https://adventofcode.com/2022/day/21",children:"Day 21: Monkey Math"})}),"\n",(0,o.jsx)(n.admonition,{title:"tl;dr",type:"info",children:(0,o.jsx)(n.p,{children:"Computing an expression tree and then also finding ideal value for a node."})}),"\n",(0,o.jsx)(n.h3,{id:"solution-6",children:"Solution"}),"\n",(0,o.jsx)(n.p,{children:"Relatively simple, until you get to the 2nd part where you start to practice\na lot of the copy-paste. I have managed to sneak some perverted stuff in there\nthough :) Let's go through the details."}),"\n",(0,o.jsxs)(n.h4,{id:"default-trait",children:[(0,o.jsx)(n.code,{children:"Default"})," trait"]}),"\n",(0,o.jsxs)(n.p,{children:["For the first time and twice I had a need to have a default value for my types,\nenumerations in this case. Rust offers a very nice trait",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-1-990909",id:"user-content-fnref-1-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})})," that is described\nas:"]}),"\n",(0,o.jsxs)(n.blockquote,{children:["\n",(0,o.jsx)(n.p,{children:"A trait for giving a type a useful default value."}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["I guess it sums it up nicely. The more interesting part about this is the fact\nthat you can use the ",(0,o.jsx)(n.em,{children:"macro machinery"})," to save yourself some typing. If you have\nenumeration of which the default value doesn't bear any parameter, you can just\ndo",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-2-990909",id:"user-content-fnref-2-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:"#[derive(Default)]\nenum Color {\n #[default]\n White,\n Gray,\n Black,\n}\n"})}),"\n",(0,o.jsx)(n.h4,{id:"abusing-negation",children:"Abusing negation"}),"\n",(0,o.jsxs)(n.p,{children:["If you want to use a ",(0,o.jsx)(n.em,{children:"unary minus"})," operator on your own type, you can implement\na ",(0,o.jsx)(n.code,{children:"Neg"})," trait",(0,o.jsx)(n.sup,{children:(0,o.jsx)(n.a,{href:"#user-content-fn-3-990909",id:"user-content-fnref-3-990909","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"3"})}),". I was dealing with a binary tree and needed a way how to look\nat the other side, so I have just implemented the negation for flipping between\nleft and right ","\ud83d\ude04"]}),"\n",(0,o.jsxs)(n.section,{"data-footnotes":!0,className:"footnotes",children:[(0,o.jsx)(n.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{id:"user-content-fn-1-990909",children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://doc.rust-lang.org/std/default/trait.Default.html",children:(0,o.jsx)(n.code,{children:"Default"})})," docs ",(0,o.jsx)(n.a,{href:"#user-content-fnref-1-990909","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{id:"user-content-fn-2-990909",children:["\n",(0,o.jsxs)(n.p,{children:["Pardon my example from the graph algorithms ;) ",(0,o.jsx)(n.a,{href:"#user-content-fnref-2-990909","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{id:"user-content-fn-3-990909",children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://doc.rust-lang.org/std/ops/trait.Neg.html",children:(0,o.jsx)(n.code,{children:"Neg"})})," docs ",(0,o.jsx)(n.a,{href:"#user-content-fnref-3-990909","data-footnote-backref":"","aria-label":"Back to reference 3",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>a});var o=t(7294);const i={},r=o.createContext(i);function a(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff82dde7.6a7a72b2.js b/assets/js/ff82dde7.6a7a72b2.js deleted file mode 100644 index a82520a..0000000 --- a/assets/js/ff82dde7.6a7a72b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8472],{158:(I,M,i)=>{i.r(M),i.d(M,{assets:()=>U,contentTitle:()=>e,default:()=>u,frontMatter:()=>a,metadata:()=>O,toc:()=>k});var N=i(5893),T=i(1151),g=i(7294),j=i(6010),z=i(2466),Z=i(6550),c=i(469),l=i(1980),D=i(7392),G=i(12);function C(I){return g.Children.toArray(I).filter((I=>"\n"!==I)).map((I=>{if(!I||(0,g.isValidElement)(I)&&function(I){const{props:M}=I;return!!M&&"object"==typeof M&&"value"in M}(I))return I;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof I.type?I.type:I.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function b(I){const{values:M,children:i}=I;return(0,g.useMemo)((()=>{const I=M??function(I){return C(I).map((I=>{let{props:{value:M,label:i,attributes:N,default:T}}=I;return{value:M,label:i,attributes:N,default:T}}))}(i);return function(I){const M=(0,D.l)(I,((I,M)=>I.value===M.value));if(M.length>0)throw new Error(`Docusaurus error: Duplicate values "${M.map((I=>I.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(I),I}),[M,i])}function S(I){let{value:M,tabValues:i}=I;return i.some((I=>I.value===M))}function x(I){let{queryString:M=!1,groupId:i}=I;const N=(0,Z.k6)(),T=function(I){let{queryString:M=!1,groupId:i}=I;if("string"==typeof M)return M;if(!1===M)return null;if(!0===M&&!i)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 i??null}({queryString:M,groupId:i});return[(0,l._X)(T),(0,g.useCallback)((I=>{if(!T)return;const M=new URLSearchParams(N.location.search);M.set(T,I),N.replace({...N.location,search:M.toString()})}),[T,N])]}function L(I){const{defaultValue:M,queryString:i=!1,groupId:N}=I,T=b(I),[j,z]=(0,g.useState)((()=>function(I){let{defaultValue:M,tabValues:i}=I;if(0===i.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(M){if(!S({value:M,tabValues:i}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${M}" but none of its children has the corresponding value. Available values are: ${i.map((I=>I.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return M}const N=i.find((I=>I.default))??i[0];if(!N)throw new Error("Unexpected error: 0 tabValues");return N.value}({defaultValue:M,tabValues:T}))),[Z,l]=x({queryString:i,groupId:N}),[D,C]=function(I){let{groupId:M}=I;const i=function(I){return I?`docusaurus.tab.${I}`:null}(M),[N,T]=(0,G.Nk)(i);return[N,(0,g.useCallback)((I=>{i&&T.set(I)}),[i,T])]}({groupId:N}),L=(()=>{const I=Z??D;return S({value:I,tabValues:T})?I:null})();(0,c.Z)((()=>{L&&z(L)}),[L]);return{selectedValue:j,selectValue:(0,g.useCallback)((I=>{if(!S({value:I,tabValues:T}))throw new Error(`Can't select invalid tab value=${I}`);z(I),l(I),C(I)}),[l,C,T]),tabValues:T}}var m=i(2389);const s={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function d(I){let{className:M,block:i,selectedValue:T,selectValue:g,tabValues:Z}=I;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,z.o5)(),D=I=>{const M=I.currentTarget,i=c.indexOf(M),N=Z[i].value;N!==T&&(l(M),g(N))},G=I=>{let M=null;switch(I.key){case"Enter":D(I);break;case"ArrowRight":{const i=c.indexOf(I.currentTarget)+1;M=c[i]??c[0];break}case"ArrowLeft":{const i=c.indexOf(I.currentTarget)-1;M=c[i]??c[c.length-1];break}}M?.focus()};return(0,N.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,j.Z)("tabs",{"tabs--block":i},M),children:Z.map((I=>{let{value:M,label:i,attributes:g}=I;return(0,N.jsx)("li",{role:"tab",tabIndex:T===M?0:-1,"aria-selected":T===M,ref:I=>c.push(I),onKeyDown:G,onClick:D,...g,className:(0,j.Z)("tabs__item",s.tabItem,g?.className,{"tabs__item--active":T===M}),children:i??M},M)}))})}function w(I){let{lazy:M,children:i,selectedValue:T}=I;const j=(Array.isArray(i)?i:[i]).filter(Boolean);if(M){const I=j.find((I=>I.props.value===T));return I?(0,g.cloneElement)(I,{className:"margin-top--md"}):null}return(0,N.jsx)("div",{className:"margin-top--md",children:j.map(((I,M)=>(0,g.cloneElement)(I,{key:M,hidden:I.props.value!==T})))})}function P(I){const M=L(I);return(0,N.jsxs)("div",{className:(0,j.Z)("tabs-container",s.tabList),children:[(0,N.jsx)(d,{...I,...M}),(0,N.jsx)(w,{...I,...M})]})}function y(I){const M=(0,m.Z)();return(0,N.jsx)(P,{...I,children:C(I.children)},String(M))}const t={tabItem:"tabItem_Ymn6"};function n(I){let{children:M,hidden:i,className:T}=I;return(0,N.jsx)("div",{role:"tabpanel",className:(0,j.Z)(t.tabItem,T),hidden:i,children:M})}const a={id:"rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",tags:["red-black trees","balanced trees"],last_update:{date:new Date("2023-06-10T00:00:00.000Z")}},e=void 0,O={id:"rb-trees/rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",source:"@site/algorithms/08-rb-trees/2023-06-10-rules.md",sourceDirName:"08-rb-trees",slug:"/rb-trees/rules",permalink:"/algorithms/rb-trees/rules",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/08-rb-trees/2023-06-10-rules.md",tags:[{label:"red-black trees",permalink:"/algorithms/tags/red-black-trees"},{label:"balanced trees",permalink:"/algorithms/tags/balanced-trees"}],version:"current",lastUpdatedAt:1686355200,formattedLastUpdatedAt:"Jun 10, 2023",frontMatter:{id:"rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",tags:["red-black trees","balanced trees"],last_update:{date:"2023-06-10T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",permalink:"/algorithms/rb-trees/applications"},next:{title:"Graphs",permalink:"/algorithms/category/graphs"}},U={},k=[{value:"Introduction",id:"introduction",level:2},{value:"1\xaa Every node is either red or black.",id:"1\xaa-every-node-is-either-red-or-black",level:2},{value:"Do I really need the nodes to be explicitly colored?",id:"do-i-really-need-the-nodes-to-be-explicitly-colored",level:3},{value:"Black height",id:"black-height",level:4},{value:"Isomorphic trees",id:"isomorphic-trees",level:4},{value:"2\xaa The root is black.",id:"2\xaa-the-root-is-black",level:2},{value:"3\xaa Every leaf (<code>nil</code>) is black.",id:"3\xaa-every-leaf-nil-is-black",level:2},{value:"4\xaa If a node is red, then both its children are black.",id:"4\xaa-if-a-node-is-red-then-both-its-children-are-black",level:2},{value:"5\xaa For each node, all simple paths from the node to descendant leaves contain the same number of black nodes.",id:"5\xaa-for-each-node-all-simple-paths-from-the-node-to-descendant-leaves-contain-the-same-number-of-black-nodes",level:2}];function Y(I){const M={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",math:"math",mn:"mn",mo:"mo",mrow:"mrow",mtext:"mtext",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,T.a)(),...I.components};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(M.h2,{id:"introduction",children:"Introduction"}),"\n",(0,N.jsx)(M.p,{children:"Have you ever thought about the red-black tree rules in more depth? Why are they\nformulated the way they are? How come they keep the tree balanced? Let's go through\neach of the red-black tree rules and try to change, break and contemplate about\nthem."}),"\n",(0,N.jsxs)(M.p,{children:["We expect that you are familiar with the following set of the rules",(0,N.jsx)(M.sup,{children:(0,N.jsx)(M.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),":"]}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsx)(M.li,{children:"Every node is either red or black."}),"\n",(0,N.jsx)(M.li,{children:"The root is black."}),"\n",(0,N.jsxs)(M.li,{children:["Every leaf (",(0,N.jsx)(M.code,{children:"nil"}),") is black."]}),"\n",(0,N.jsx)(M.li,{children:"If a node is red, then both its children are black."}),"\n",(0,N.jsx)(M.li,{children:"For each node, all simple paths from the node to descendant leaves contain the\nsame number of black nodes."}),"\n"]}),"\n",(0,N.jsxs)(M.p,{children:["Each section will go into ",(0,N.jsx)(M.em,{children:"reasonable"})," details of each rule."]}),"\n",(0,N.jsx)(M.h2,{id:"1\xaa-every-node-is-either-red-or-black",children:"1\xaa Every node is either red or black."}),"\n",(0,N.jsx)(M.p,{children:"OK\u2026 This one is very simple. It is just a definition and is used in all other\nrules. Not much to talk about here. Or is there?"}),"\n",(0,N.jsx)(M.h3,{id:"do-i-really-need-the-nodes-to-be-explicitly-colored",children:"Do I really need the nodes to be explicitly colored?"}),"\n",(0,N.jsx)(M.p,{children:"The answer is no. Balancing of the red-black trees is \u201cenforced\u201d by the 4th and\n5th rule in the enumeration above. There are many ways you can avoid using colors."}),"\n",(0,N.jsx)(M.h4,{id:"black-height",children:"Black height"}),"\n",(0,N.jsx)(M.p,{children:"We mentioned the 4th and 5th rule and that it enforces the balancing. What does\nit mean for us?"}),"\n",(0,N.jsxs)(M.p,{children:["Well, we definitely do not have to use the colors, which even as a ",(0,N.jsx)(M.em,{children:"boolean"})," flag\nwould take at least 1 byte of space (and usually even more), cause\u2026 well, it is\neasier for the CPU to work with words rather than single bits."]}),"\n",(0,N.jsx)(M.p,{children:"We could use the black height, couldn't we? It would mean more memory used, cause\nit should be ideally big and unsigned. Can we tell the color of a node from the\nblack height? Of course we can, if my child has the same black height as I do,\nit means that there was no black node added on the path between us and therefore\nmy child would be colored red."}),"\n",(0,N.jsx)(M.p,{children:"Example of a red-black tree that keeps count of black nodes on paths to the\nleaves follows:"}),"\n",(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{alt:"Red-black tree with black height",src:i(2787).Z+"#gh-light-mode-only",width:"923",height:"539"}),"\n",(0,N.jsx)(M.img,{alt:"Red-black tree with black height",src:i(5904).Z+"#gh-dark-mode-only",width:"923",height:"539"})]}),"\n",(0,N.jsxs)(M.p,{children:["We mark the ",(0,N.jsx)(M.em,{children:"black heights"})," in superscript. You can see that all leaves have the\nblack height equal to ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"1"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"1"})]})})]}),". Let's take a look at some of the interesting cases:"]}),"\n",(0,N.jsxs)(M.ul,{children:["\n",(0,N.jsxs)(M.li,{children:["\n",(0,N.jsxs)(M.p,{children:["If we take a look at the node with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"9"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 9"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"9"})]})]})]}),", we can see that it is\ncoloured red and its black height is 1, because it is a leaf."]}),"\n",(0,N.jsxs)(M.p,{children:["Let's look at its parent (node with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"8"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 8"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"8"})]})]})]}),"). On its left side it has\n",(0,N.jsx)(M.code,{children:"nil"})," and on its right side the ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"9"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"9"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"9"})]})})]}),". And its black height is still ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"1"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"1"})]})})]}),", cause\nexcept for the ",(0,N.jsx)(M.code,{children:"nil"})," leaves, there are no other black nodes."]}),"\n",(0,N.jsx)(M.p,{children:"We can clearly see that if a node has the same black height as its parent, it\nis a red node."}),"\n"]}),"\n",(0,N.jsxs)(M.li,{children:["\n",(0,N.jsxs)(M.p,{children:["Now let's take a look at the root with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"3"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 3"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"3"})]})]})]}),". It has a black height\nof 3. Both of its children are black nodes and have black height of 2."]}),"\n",(0,N.jsx)(M.p,{children:"We can see that if a node has its height 1 lower than its parent, it is a black\nnode."}),"\n",(0,N.jsx)(M.p,{children:"The reasoning behind it is rather simple, we count the black nodes all the way\nto the leaves, therefore if my parent has a higher black height, it means that\non the path from me to my parent there is a black node, but the only node added\nis me, therefore I must be black."}),"\n"]}),"\n"]}),"\n",(0,N.jsx)(M.h4,{id:"isomorphic-trees",children:"Isomorphic trees"}),"\n",(0,N.jsx)(M.p,{children:"One of the other ways to avoid using color is storing the red-black tree in some\nisomorphic tree. The structure of 2-3-4 tree allows us to avoid using the color\ncompletely. This is a bit different approach, cause we would be basically using\ndifferent tree, so we keep this note in just as a \u201chack\u201d."}),"\n",(0,N.jsx)(M.h2,{id:"2\xaa-the-root-is-black",children:"2\xaa The root is black."}),"\n",(0,N.jsx)(M.p,{children:"This rule might seem like a very important one, but overall is not. You can safely\nomit this rule, but you also need to deal with the consequences."}),"\n",(0,N.jsxs)(M.p,{children:["Let's refresh our memory with the algorithm of ",(0,N.jsx)(M.em,{children:"insert fixup"}),":"]}),"\n",(0,N.jsx)(M.pre,{children:(0,N.jsx)(M.code,{children:"WHILE z.p.color == Red\n IF z.p == z.p.p.left\n y = z.p.p.right\n\n IF y.color == Red\n z.p.color = Black\n y.color = Black\n z.p.p.color = Red\n z = z.p.p\n ELSE\n IF z == z.p.right\n z = z.p\n Left-Rotate(T, z)\n z.p.color = Black\n z.p.p.color = Red\n Right-Rotate(T, z.p.p)\n ELSE (same as above with \u201cright\u201d and \u201cleft\u201d exchanged)\n\nT.root.color = Black\n"})}),"\n",(0,N.jsxs)(M.admonition,{type:"tip",children:[(0,N.jsxs)(M.p,{children:["If you have tried to implement any of the more complex data structures, such as\nred-black trees, etc., in a statically typed language that also checks you for\n",(0,N.jsx)(M.code,{children:"NULL"}),"-correctness (e.g. ",(0,N.jsx)(M.em,{children:"mypy"})," or even C# with nullable reference types), you\nmight have run into numerous issues in the cases where you are 100% sure that you\ncannot obtain ",(0,N.jsx)(M.code,{children:"NULL"})," because of the invariants, but the static type checking\ndoesn't know that."]}),(0,N.jsxs)(M.p,{children:["The issue we hit with the ",(0,N.jsx)(M.em,{children:"insert fixup"})," is very similar."]})]}),"\n",(0,N.jsx)(M.p,{children:"You might not realize the issue at the first sight, but the algorithm described\nwith the pseudocode above expects that the root of the red-black tree is black by\nboth relying on the invariant in the algorithm and afterwards by enforcing the\nblack root property."}),"\n",(0,N.jsx)(M.p,{children:"If we decide to omit this condition, we need to address it in the pseudocodes\naccordingly."}),"\n",(0,N.jsxs)(M.table,{children:[(0,N.jsx)(M.thead,{children:(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.th,{style:{textAlign:"center"},children:"Usual algorithm with black root"}),(0,N.jsx)(M.th,{style:{textAlign:"center"},children:"Allowing red root"})]})}),(0,N.jsxs)(M.tbody,{children:[(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(4981).Z+"#gh-light-mode-only",width:"179",height:"155"}),(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(1141).Z+"#gh-dark-mode-only",width:"179",height:"155"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(2970).Z+"#gh-light-mode-only",width:"179",height:"155"}),(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(7284).Z+"#gh-dark-mode-only",width:"179",height:"155"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(8573).Z+"#gh-light-mode-only",width:"227",height:"251"}),(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(2172).Z+"#gh-dark-mode-only",width:"227",height:"251"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(2600).Z+"#gh-light-mode-only",width:"227",height:"251"}),(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(170).Z+"#gh-dark-mode-only",width:"227",height:"251"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(9530).Z+"#gh-light-mode-only",width:"371",height:"251"}),(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(6686).Z+"#gh-dark-mode-only",width:"371",height:"251"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(9533).Z+"#gh-light-mode-only",width:"371",height:"251"}),(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(6014).Z+"#gh-dark-mode-only",width:"371",height:"251"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(7290).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(3961).Z+"#gh-dark-mode-only",width:"419",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(4278).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(8113).Z+"#gh-dark-mode-only",width:"419",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(1071).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(505).Z+"#gh-dark-mode-only",width:"419",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(6292).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(3779).Z+"#gh-dark-mode-only",width:"419",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(2651).Z+"#gh-light-mode-only",width:"563",height:"347"}),(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(2409).Z+"#gh-dark-mode-only",width:"563",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(9932).Z+"#gh-light-mode-only",width:"563",height:"347"}),(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(9940).Z+"#gh-dark-mode-only",width:"563",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(7827).Z+"#gh-light-mode-only",width:"563",height:"443"}),(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(5265).Z+"#gh-dark-mode-only",width:"563",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(7478).Z+"#gh-light-mode-only",width:"563",height:"443"}),(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(3681).Z+"#gh-dark-mode-only",width:"563",height:"443"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(7002).Z+"#gh-light-mode-only",width:"635",height:"443"}),(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(2213).Z+"#gh-dark-mode-only",width:"635",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(345).Z+"#gh-light-mode-only",width:"635",height:"443"}),(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(539).Z+"#gh-dark-mode-only",width:"635",height:"443"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(7976).Z+"#gh-light-mode-only",width:"755",height:"443"}),(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(8818).Z+"#gh-dark-mode-only",width:"755",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(380).Z+"#gh-light-mode-only",width:"755",height:"443"}),(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(7012).Z+"#gh-dark-mode-only",width:"755",height:"443"})]})]})]})]}),"\n",(0,N.jsxs)(M.h2,{id:"3\xaa-every-leaf-nil-is-black",children:["3\xaa Every leaf (",(0,N.jsx)(M.code,{children:"nil"}),") is black."]}),"\n",(0,N.jsx)(M.p,{children:"Now, this rule is a funny one. What does this imply and can I interpret this in\nsome other way? Let's go through some of the possible ways I can look at this and\nhow would they affect the other rules and balancing."}),"\n",(0,N.jsxs)(M.p,{children:["We will experiment with the following tree:\n",(0,N.jsx)(M.img,{src:i(3942).Z+"#gh-light-mode-only",width:"899",height:"539"}),"\n",(0,N.jsx)(M.img,{src:i(9304).Z+"#gh-dark-mode-only",width:"899",height:"539"})]}),"\n",(0,N.jsxs)(M.p,{children:["We should start by counting the black nodes from root to the ",(0,N.jsx)(M.code,{children:"nil"})," leaves based\non the rules. We have multiple similar paths, so we will pick only the interesting\nones."]}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{children:["What happens if we do not count the ",(0,N.jsx)(M.code,{children:"nil"})," leaves?"]}),"\n",(0,N.jsxs)(M.li,{children:["What happens if we consider leaves the nodes with ",(0,N.jsx)(M.em,{children:"no descendants"}),", i.e. both\nof node's children are ",(0,N.jsx)(M.code,{children:"nil"}),"?"]}),"\n",(0,N.jsxs)(M.li,{children:["What happens if we do not count the ",(0,N.jsx)(M.code,{children:"nil"})," leaves, but consider nodes with at\nleast one ",(0,N.jsx)(M.code,{children:"nil"})," descendant as leaves?"]}),"\n"]}),"\n",(0,N.jsxs)(M.table,{children:[(0,N.jsx)(M.thead,{children:(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"path"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"black nodes"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"1\xaa idea"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"2\xaa idea"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"3\xaa idea"})]})}),(0,N.jsxs)(M.tbody,{children:[(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 1 \u2192 0 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 5 \u2192 7 \u2192 8 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"-"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 5 \u2192 7 \u2192 8 \u2192 9 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]})]})]}),"\n",(0,N.jsxs)(M.p,{children:["First idea is very easy to execute and it is also very easy to argue about its\ncorrectness. It is correct, because we just subtract one from each of the paths.\nThis affects ",(0,N.jsx)(M.strong,{children:"all"})," paths and therefore results in global decrease by one."]}),"\n",(0,N.jsxs)(M.p,{children:["Second idea is a bit more complicated. We count the ",(0,N.jsx)(M.code,{children:"nil"}),"s, so the count is ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"4"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"4"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"4"})]})})]}),"\nas it should be. However, there is one difference. Second path no longer satisfies\nthe condition of a ",(0,N.jsx)(M.em,{children:"leaf"}),". Technically it relaxes the 5th rule, because we leave\nout some of the nodes. We should probably avoid that."]}),"\n",(0,N.jsxs)(M.admonition,{type:"caution",children:[(0,N.jsx)(M.p,{children:"With the second idea, you may also feel that we are \u201cbending\u201d the rules a bit,\nespecially the definition of the \u201cleaf\u201d nodes."}),(0,N.jsxs)(M.p,{children:["Given the definition of the red-black tree, where ",(0,N.jsx)(M.code,{children:"nil"})," is considered to be an\nexternal node, we have decided that bending it a bit just to stir a thought about\nit won't hurt anybody. ","\ud83d\ude09"]})]}),"\n",(0,N.jsx)(M.h2,{id:"4\xaa-if-a-node-is-red-then-both-its-children-are-black",children:"4\xaa If a node is red, then both its children are black."}),"\n",(0,N.jsx)(M.p,{children:"This rule might seem rather silly on the first look, but there are 2 important\nfunctions:"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{children:["it allows the algorithms to ",(0,N.jsx)(M.em,{children:"\u201cnotice\u201d"})," that something went wrong (i.e. the\ntree needs to be rebalanced), and"]}),"\n",(0,N.jsxs)(M.li,{children:["it holds the balancing and height of the tree ",(0,N.jsx)(M.em,{children:"\u201cin check\u201d"})," (with the help of\nthe 5th rule)."]}),"\n"]}),"\n",(0,N.jsx)(M.p,{children:"When we have a look at the algorithms that are used for fixing up the red-black\ntree after an insertion or deletion, we will notice that all the algorithms need\nis the color of the node."}),"\n",(0,N.jsxs)(M.blockquote,{children:["\n",(0,N.jsx)(M.p,{children:"How come it is the only thing that we need?\nHow come such na\xefve thing can be enough?"}),"\n"]}),"\n",(0,N.jsxs)(M.p,{children:["Let's say we perform an insertion into the tree\u2026 We go with the usual and pretty\nprimitive insertion into the binary-search tree and then, if needed, we \u201cfix up\u201d\nbroken invariants. ",(0,N.jsx)(M.em,{children:"How can that be enough?"})," With each insertion and deletion we\nmaintain the invariants, therefore if we break them with one operation, there's\nonly one path on which the invariants were ",(0,N.jsx)(M.em,{children:"felled"}),". If we know that rest of the\ntree is correct, it allows us to fix the issues just by propagating it to the\nroot and ",(0,N.jsx)(M.em,{children:"abusing"})," the siblings (which are, of course, correct red-black\nsubtrees) to fix or at least partially mitigate the issues and propagate them\nfurther."]}),"\n",(0,N.jsx)(M.p,{children:"Let's assume that we do not enforce this rule, you can see how it breaks the\nbalancing of the tree below."}),"\n","\n","\n",(0,N.jsxs)(y,{children:[(0,N.jsx)(n,{value:"enforcing",label:"Enforcing this rule",children:(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{src:i(5229).Z+"#gh-light-mode-only",width:"755",height:"347"}),"\n",(0,N.jsx)(M.img,{src:i(3283).Z+"#gh-dark-mode-only",width:"755",height:"347"})]})}),(0,N.jsx)(n,{value:"omitting",label:"Omitting this rule",children:(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{src:i(5483).Z+"#gh-light-mode-only",width:"803",height:"443"}),"\n",(0,N.jsx)(M.img,{src:i(2694).Z+"#gh-dark-mode-only",width:"803",height:"443"})]})})]}),"\n",(0,N.jsxs)(M.p,{children:["We can create a ",(0,N.jsx)(M.strong,{children:"big"})," subtree with only red nodes and ",(0,N.jsx)(M.strong,{children:"even"})," when keeping\nthe rest of the rules maintained, it will break the time complexity. It stops us\nfrom \u201chacking\u201d the black height requirement laid by the 5th rule."]}),"\n",(0,N.jsx)(M.h2,{id:"5\xaa-for-each-node-all-simple-paths-from-the-node-to-descendant-leaves-contain-the-same-number-of-black-nodes",children:"5\xaa For each node, all simple paths from the node to descendant leaves contain the same number of black nodes."}),"\n",(0,N.jsx)(M.p,{children:"As it was mentioned, with the 4th rule they hold the balancing of the red-black\ntree."}),"\n",(0,N.jsx)(M.admonition,{type:"tip",children:(0,N.jsxs)(M.p,{children:["An important observation here is the fact that the red-black tree is a\n",(0,N.jsx)(M.strong,{children:"height"}),"-balanced tree."]})}),"\n",(0,N.jsx)(M.p,{children:"Enforcing this rule (together with the 4th rule) keeps the tree balanced:"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsx)(M.li,{children:"4th rule makes sure we can't \u201chack\u201d this requirement."}),"\n",(0,N.jsxs)(M.li,{children:["This rule ensures that we have \u201csimilar\u201d",(0,N.jsx)(M.sup,{children:(0,N.jsx)(M.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," length to each of the leaves."]}),"\n"]}),"\n",(0,N.jsxs)(M.admonition,{title:"AVL tree",type:"tip",children:[(0,N.jsxs)(M.p,{children:["You might have heard about an ",(0,N.jsx)(M.em,{children:"AVL tree"})," before. It is the first self-balanced\ntree to be ever introduced and works in a very similar nature as the red-black\ntree, the only difference is that it does not deal with the ",(0,N.jsx)(M.em,{children:"black height"}),", but\nthe height in general."]}),(0,N.jsx)(M.p,{children:"If you were to compare AVL with the red-black tree, you can say that AVL is much\nmore strict while red-black tree can still maintain the same asymptotic time\ncomplexity for the operations, but having more relaxed rules."})]}),"\n",(0,N.jsxs)(M.section,{"data-footnotes":!0,className:"footnotes",children:[(0,N.jsx)(M.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{id:"user-content-fn-1",children:["\n",(0,N.jsxs)(M.p,{children:["CORMEN, Thomas. Introduction to algorithms. Cambridge, Mass: MIT Press, 2009. isbn 9780262033848. ",(0,N.jsx)(M.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,N.jsxs)(M.li,{id:"user-content-fn-2",children:["\n",(0,N.jsxs)(M.p,{children:["red nodes still exist ",(0,N.jsx)(M.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function u(I={}){const{wrapper:M}={...(0,T.a)(),...I.components};return M?(0,N.jsx)(M,{...I,children:(0,N.jsx)(Y,{...I})}):Y(I)}},9304:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_dark-2917b0f8de62597646b619102f126a53.svg"},5904:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_height_dark-921b2d98d9fe1e579474faf36486f281.svg"},2787:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_height_light-0aff6e7a40a9f601e0dd1114e43e43b1.svg"},3942:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_light-9889570d993cf4a78a1bcccfbd76eab4.svg"},3283:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNTY2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNTY2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNTYyLC0yNTYgNTYyLDQgLTQsNCIvPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9Mik8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjc5IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjc5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0xLCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI2NC40MywtMjE4LjgzQzI1NC4yNSwtMjA4Ljk0IDI0MC40OCwtMTk1LjU1IDIyOC45NywtMTg0LjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIzMS40MSwtMTgxLjg1IDIyMS44LC0xNzcuMzggMjI2LjUzLC0xODYuODcgMjMxLjQxLC0xODEuODUiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzUxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9NSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjkzLjU3LC0yMTguODNDMzAzLjc1LC0yMDguOTQgMzE3LjUyLC0xOTUuNTUgMzI5LjAzLC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzMxLjQ3LC0xODYuODcgMzM2LjIsLTE3Ny4zOCAzMjYuNTksLTE4MS44NSAzMzEuNDcsLTE4Ni44NyIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0wLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjA8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0wLCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE4OC4xOSwtMTQ4LjgxQzE3MSwtMTM3LjY3IDE0NS4zOCwtMTIxLjA2IDEyNi4wMSwtMTA4LjUiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTI3Ljg5LC0xMDUuNTYgMTE3LjYsLTEwMy4wNSAxMjQuMDgsLTExMS40MyAxMjcuODksLTEwNS41NiIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTIsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjA3LC0xNDMuN0MyMDcsLTEzNS45OCAyMDcsLTEyNi43MSAyMDcsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMTAuNSwtMTE4LjEgMjA3LC0xMDguMSAyMDMuNSwtMTE4LjEgMjEwLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTQsIHJhbms9MCkgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzNTEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM1MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NDwvdGV4dD4KPC9nPgo8IS0tIG5pbDYgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNiAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zNDIuNjUsLTcyLjc2QzMzOC4yOSwtNjQuMjggMzMyLjg1LC01My43MSAzMjcuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzMwLjk5LC00Mi40NCAzMjMuMywtMzUuMTUgMzI0Ljc3LC00NS42NCAzMzAuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBuaWw3IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw3PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDcgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDc8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzU5LjM1LC03Mi43NkMzNjMuNzEsLTY0LjI4IDM2OS4xNSwtNTMuNzEgMzc0LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjM3Ny4yMywtNDUuNjQgMzc4LjcsLTM1LjE1IDM3MS4wMSwtNDIuNDQgMzc3LjIzLC00NS42NCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNDU5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI0NTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjc8L3RleHQ+CjwvZz4KPCEtLSBuaWw4IC0tPgo8ZyBpZD0ibm9kZTE0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjQ1OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDggLS0+CjxnIGlkPSJlZGdlMTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDU5LC03MS43QzQ1OSwtNjMuOTggNDU5LC01NC43MSA0NTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjQ2Mi41LC00Ni4xIDQ1OSwtMzYuMSA0NTUuNSwtNDYuMSA0NjIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI1MzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5IC0tPgo8ZyBpZD0iZWRnZTE0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTQ3My41NywtNzQuODNDNDgzLjc1LC02NC45NCA0OTcuNTIsLTUxLjU1IDUwOS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTExLjQ3LC00Mi44NyA1MTYuMiwtMzMuMzggNTA2LjU5LC0zNy44NSA1MTEuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBuaWwyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTk4LjY1LC03Mi43NkMxOTQuMjksLTY0LjI4IDE4OC44NSwtNTMuNzEgMTgzLjk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtNDIuNDQgMTc5LjMsLTM1LjE1IDE4MC43NywtNDUuNjQgMTg2Ljk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNSAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIxNS4zNSwtNzIuNzZDMjE5LjcxLC02NC4yOCAyMjUuMTUsLTUzLjcxIDIzMC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMzMuMjMsLTQ1LjY0IDIzNC43LC0zNS4xNSAyMjcuMDEsLTQyLjQ0IDIzMy4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzUxLC0xNDMuN0MzNTEsLTEzNS45OCAzNTEsLTEyNi43MSAzNTEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNTQuNSwtMTE4LjEgMzUxLC0xMDguMSAzNDcuNSwtMTE4LjEgMzU0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTcsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0zNjkuODEsLTE0OC44MUMzODcsLTEzNy42NyA0MTIuNjIsLTEyMS4wNiA0MzEuOTksLTEwOC41Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSI0MzMuOTIsLTExMS40MyA0NDAuNCwtMTAzLjA1IDQzMC4xMSwtMTA1LjU2IDQzMy45MiwtMTExLjQzIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},5229:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNTY2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNTY2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDU2MiwtMjU2IDU2Miw0IC00LDQiLz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjI3OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3OSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjY0LjQzLC0yMTguODNDMjU0LjI1LC0yMDguOTQgMjQwLjQ4LC0xOTUuNTUgMjI4Ljk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjMxLjQxLC0xODEuODUgMjIxLjgsLTE3Ny4zOCAyMjYuNTMsLTE4Ni44NyAyMzEuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIzNTEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzNTEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT01LCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5My41NywtMjE4LjgzQzMwMy43NSwtMjA4Ljk0IDMxNy41MiwtMTk1LjU1IDMyOS4wMywtMTg0LjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMzMS40NywtMTg2Ljg3IDMzNi4yLC0xNzcuMzggMzI2LjU5LC0xODEuODUgMzMxLjQ3LC0xODYuODciLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjA8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0wLCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE4OC4xOSwtMTQ4LjgxQzE3MSwtMTM3LjY3IDE0NS4zOCwtMTIxLjA2IDEyNi4wMSwtMTA4LjUiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTI3Ljg5LC0xMDUuNTYgMTE3LjYsLTEwMy4wNSAxMjQuMDgsLTExMS40MyAxMjcuODksLTEwNS41NiIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyMDciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMDcsLTE0My43QzIwNywtMTM1Ljk4IDIwNywtMTI2LjcxIDIwNywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIxMC41LC0xMTguMSAyMDcsLTEwOC4xIDIwMy41LC0xMTguMSAyMTAuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjM1MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUxIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjQ8L3RleHQ+CjwvZz4KPCEtLSBuaWw2IC0tPgo8ZyBpZD0ibm9kZTEyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjMxNSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDYgLS0+CjxnIGlkPSJlZGdlMTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzQyLjY1LC03Mi43NkMzMzguMjksLTY0LjI4IDMzMi44NSwtNTMuNzEgMzI3Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMzMC45OSwtNDIuNDQgMzIzLjMsLTM1LjE1IDMyNC43NywtNDUuNjQgMzMwLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNyAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNzwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzODciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTQsIHJhbms9MCkmIzQ1OyZndDtuaWw3IC0tPgo8ZyBpZD0iZWRnZTEyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCkmIzQ1OyZndDtuaWw3PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM1OS4zNSwtNzIuNzZDMzYzLjcxLC02NC4yOCAzNjkuMTUsLTUzLjcxIDM3NC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNzcuMjMsLTQ1LjY0IDM3OC43LC0zNS4xNSAzNzEuMDEsLTQyLjQ0IDM3Ny4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjQ1OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDU5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjc8L3RleHQ+CjwvZz4KPCEtLSBuaWw4IC0tPgo8ZyBpZD0ibm9kZTE0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjQ1OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDggLS0+CjxnIGlkPSJlZGdlMTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDU5LC03MS43QzQ1OSwtNjMuOTggNDU5LC01NC43MSA0NTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQ2Mi41LC00Ni4xIDQ1OSwtMzYuMSA0NTUuNSwtNDYuMSA0NjIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI1MzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5IC0tPgo8ZyBpZD0iZWRnZTE0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQ3My41NywtNzQuODNDNDgzLjc1LC02NC45NCA0OTcuNTIsLTUxLjU1IDUwOS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTExLjQ3LC00Mi44NyA1MTYuMiwtMzMuMzggNTA2LjU5LC0zNy44NSA1MTEuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBuaWwyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTk4LjY1LC03Mi43NkMxOTQuMjksLTY0LjI4IDE4OC44NSwtNTMuNzEgMTgzLjk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE4Ni45OSwtNDIuNDQgMTc5LjMsLTM1LjE1IDE4MC43NywtNDUuNjQgMTg2Ljk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNSAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIxNS4zNSwtNzIuNzZDMjE5LjcxLC02NC4yOCAyMjUuMTUsLTUzLjcxIDIzMC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMzMuMjMsLTQ1LjY0IDIzNC43LC0zNS4xNSAyMjcuMDEsLTQyLjQ0IDIzMy4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzUxLC0xNDMuN0MzNTEsLTEzNS45OCAzNTEsLTEyNi43MSAzNTEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNTQuNSwtMTE4LjEgMzUxLC0xMDguMSAzNDcuNSwtMTE4LjEgMzU0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTcsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0zNjkuODEsLTE0OC44MUMzODcsLTEzNy42NyA0MTIuNjIsLTEyMS4wNiA0MzEuOTksLTEwOC41Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNDMzLjkyLC0xMTEuNDMgNDQwLjQsLTEwMy4wNSA0MzAuMTEsLTEwNS41NiA0MzMuOTIsLTExMS40MyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},2694:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/incorrect_dark-d9c04aed74f7d364c3c3b1855b769ab0.svg"},5483:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNjAycHQiIGhlaWdodD0iMzMycHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNjAyLjAwIDMzMi4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAzMjgpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMzI4IDU5OCwtMzI4IDU5OCw0IC00LDQiLz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjI3OSIgY3k9Ii0zMDYiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3OSIgeT0iLTMwMi4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIyNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIyNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjY3LjAyLC0yODkuNDZDMjYwLjAyLC0yODAuNCAyNTEuMDYsLTI2OC43OSAyNDMuMjEsLTI1OC42MSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNDUuODMsLTI1Ni4yNyAyMzYuOTUsLTI1MC40OSAyNDAuMjksLTI2MC41NSAyNDUuODMsLTI1Ni4yNyIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIzMzMiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzMzMiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT01LCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5MC45OCwtMjg5LjQ2QzI5Ny45OCwtMjgwLjQgMzA2Ljk0LC0yNjguNzkgMzE0Ljc5LC0yNTguNjEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzE3LjcxLC0yNjAuNTUgMzIxLjA1LC0yNTAuNDkgMzEyLjE3LC0yNTYuMjcgMzE3LjcxLC0yNjAuNTUiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MDwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjA0Ljc2LC0yMjEuNzVDMTg0LC0yMTAuMjIgMTUxLjUyLC0xOTIuMTggMTI4LjAyLC0xNzkuMTIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTI5LjY0LC0xNzYuMDIgMTE5LjE5LC0xNzQuMjIgMTI2LjI0LC0xODIuMTMgMTI5LjY0LC0xNzYuMDIiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjI1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjI1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMjUsLTIxNS43QzIyNSwtMjA3Ljk4IDIyNSwtMTk4LjcxIDIyNSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyOC41LC0xOTAuMSAyMjUsLTE4MC4xIDIyMS41LC0xOTAuMSAyMjguNSwtMTkwLjEiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjMzMyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMzMyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NDwvdGV4dD4KPC9nPgo8IS0tIG5pbDYgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNiAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjguNjQsLTE0NC4wNUMzMjYuNjEsLTEzNi4xNCAzMjQuMTQsLTEyNi41NCAzMjEuODYsLTExNy42OSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMjUuMiwtMTE2LjYgMzE5LjMyLC0xMDcuNzkgMzE4LjQyLC0xMTguMzUgMzI1LjIsLTExNi42Ii8+CjwvZz4KPCEtLSBuaWw3IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw3PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDcgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDc8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzQ0Ljk4LC0xNDUuNDZDMzUxLjk4LC0xMzYuNCAzNjAuOTQsLTEyNC43OSAzNjguNzksLTExNC42MSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNzEuNzEsLTExNi41NSAzNzUuMDUsLTEwNi40OSAzNjYuMTcsLTExMi4yNyAzNzEuNzEsLTExNi41NSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNDU5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDU5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj43PC90ZXh0Pgo8L2c+CjwhLS0gbmlsOCAtLT4KPGcgaWQ9Im5vZGUxNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI0NTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw4IC0tPgo8ZyBpZD0iZWRnZTEzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQ1OSwtMTQzLjdDNDU5LC0xMzUuOTggNDU5LC0xMjYuNzEgNDU5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNDYyLjUsLTExOC4xIDQ1OSwtMTA4LjEgNDU1LjUsLTExOC4xIDQ2Mi41LC0xMTguMSIvPgo8L2c+CjwhLS0gOCAtLT4KPGcgaWQ9Im5vZGUxNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNTMxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI1MzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ODwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0OzggLS0+CjxnIGlkPSJlZGdlMTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0Ozg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTQ3My41NywtMTQ2LjgzQzQ4My43NSwtMTM2Ljk0IDQ5Ny41MiwtMTIzLjU1IDUwOS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNTExLjQ3LC0xMTQuODcgNTE2LjIsLTEwNS4zOCA1MDYuNTksLTEwOS44NSA1MTEuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gbmlsMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWwyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0wLCByYW5rPTApJiM0NTsmZ3Q7bmlsMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBuaWw0IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0yLCByYW5rPTApJiM0NTsmZ3Q7bmlsNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMTMuMDIsLTE0NS40NkMyMDYuMDIsLTEzNi40IDE5Ny4wNiwtMTI0Ljc5IDE4OS4yMSwtMTE0LjYxIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5MS44MywtMTEyLjI3IDE4Mi45NSwtMTA2LjQ5IDE4Ni4yOSwtMTE2LjU1IDE5MS44MywtMTEyLjI3Ii8+CjwvZz4KPCEtLSBuaWw1IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw1PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDUgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjI5LjM2LC0xNDQuMDVDMjMxLjM5LC0xMzYuMTQgMjMzLjg2LC0xMjYuNTQgMjM2LjE0LC0xMTcuNjkiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjM5LjU4LC0xMTguMzUgMjM4LjY4LC0xMDcuNzkgMjMyLjgsLTExNi42IDIzOS41OCwtMTE4LjM1Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT00LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTMzMywtMjE1LjdDMzMzLC0yMDcuOTggMzMzLC0xOTguNzEgMzMzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzM2LjUsLTE5MC4xIDMzMywtMTgwLjEgMzI5LjUsLTE5MC4xIDMzNi41LC0xOTAuMSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMzUzLjI0LC0yMjEuNzVDMzc0LC0yMTAuMjIgNDA2LjQ4LC0xOTIuMTggNDI5Ljk4LC0xNzkuMTIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSI0MzEuNzYsLTE4Mi4xMyA0MzguODEsLTE3NC4yMiA0MjguMzYsLTE3Ni4wMiA0MzEuNzYsLTE4Mi4xMyIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI0OTUiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBuaWwxMCAtLT4KPGcgaWQ9Im5vZGUxNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsMTA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iNTY3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gOCYjNDU7Jmd0O25pbDkgLS0+CjxnIGlkPSJlZGdlMTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjgmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTUyMi42NSwtNzIuNzZDNTE4LjI5LC02NC4yOCA1MTIuODUsLTUzLjcxIDUwNy45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MTAuOTksLTQyLjQ0IDUwMy4zLC0zNS4xNSA1MDQuNzcsLTQ1LjY0IDUxMC45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIDgmIzQ1OyZndDtuaWwxMCAtLT4KPGcgaWQ9ImVkZ2UxNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+OCYjNDU7Jmd0O25pbDEwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTUzOS4zNSwtNzIuNzZDNTQzLjcxLC02NC4yOCA1NDkuMTUsLTUzLjcxIDU1NC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1NTcuMjMsLTQ1LjY0IDU1OC43LC0zNS4xNSA1NTEuMDEsLTQyLjQ0IDU1Ny4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},1141:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTExMiAxMzAsLTExMiAxMzAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTU0LjY1LC03Mi43NkM1MC4yOSwtNjQuMjggNDQuODUsLTUzLjcxIDM5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjQyLjk5LC00Mi40NCAzNS4zLC0zNS4xNSAzNi43NywtNDUuNjQgNDIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNzEuMzUsLTcyLjc2Qzc1LjcxLC02NC4yOCA4MS4xNSwtNTMuNzEgODYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iODkuMjMsLTQ1LjY0IDkwLjcsLTM1LjE1IDgzLjAxLC00Mi40NCA4OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},4981:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xMTIgMTMwLC0xMTIgMTMwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iNjMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjYzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTU0LjY1LC03Mi43NkM1MC4yOSwtNjQuMjggNDQuODUsLTUzLjcxIDM5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQyLjk5LC00Mi40NCAzNS4zLC0zNS4xNSAzNi43NywtNDUuNjQgNDIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNzEuMzUsLTcyLjc2Qzc1LjcxLC02NC4yOCA4MS4xNSwtNTMuNzEgODYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iODkuMjMsLTQ1LjY0IDkwLjcsLTM1LjE1IDgzLjAxLC00Mi40NCA4OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},2172:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAxNjYsLTE4NCAxNjYsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik05MC42NSwtMTQ0Ljc2Qzg2LjI5LC0xMzYuMjggODAuODUsLTEyNS43MSA3NS45NiwtMTE2LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},8573:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMTY2LC0xODQgMTY2LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTkwLjY1LC0xNDQuNzZDODYuMjksLTEzNi4yOCA4MC44NSwtMTI1LjcxIDc1Ljk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},6686:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAyNzQsLTE4NCAyNzQsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTI2LjY1LC0xNDQuNzZDMTIyLjI5LC0xMzYuMjggMTE2Ljg1LC0xMjUuNzEgMTExLjk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTQzLjM1LC0xNDQuNzZDMTQ3LjcxLC0xMzYuMjggMTUzLjE1LC0xMjUuNzEgMTU4LjA0LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},9530:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMjc0LC0xODQgMjc0LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xMjYuNjUsLTE0NC43NkMxMjIuMjksLTEzNi4yOCAxMTYuODUsLTEyNS43MSAxMTEuOTYsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNDMuMzUsLTE0NC43NkMxNDcuNzEsLTEzNi4yOCAxNTMuMTUsLTEyNS43MSAxNTguMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},3961:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjA3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIzNC42NSwtNzIuNzZDMjMwLjI5LC02NC4yOCAyMjQuODUsLTUzLjcxIDIxOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMjIuOTksLTQyLjQ0IDIxNS4zLC0zNS4xNSAyMTYuNzcsLTQ1LjY0IDIyMi45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},7290:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},505:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI3LC03MS43QzI3LC02My45OCAyNywtNTQuNzEgMjcsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMwLjUsLTQ2LjEgMjcsLTM2LjEgMjMuNSwtNDYuMSAzMC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDEuNTcsLTc0LjgzQzUxLjc1LC02NC45NCA2NS41MiwtNTEuNTUgNzcuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijc5LjQ3LC00Mi44NyA4NC4yLC0zMy4zOCA3NC41OSwtMzcuODUgNzkuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE4PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTg1LjU3LC0xNDYuODNDMTk1Ljc1LC0xMzYuOTQgMjA5LjUyLC0xMjMuNTUgMjIxLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjA3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIzNC42NSwtNzIuNzZDMjMwLjI5LC02NC4yOCAyMjQuODUsLTUzLjcxIDIxOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMjIuOTksLTQyLjQ0IDIxNS4zLC0zNS4xNSAyMTYuNzcsLTQ1LjY0IDIyMi45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTEuMzUsLTcyLjc2QzI1NS43MSwtNjQuMjggMjYxLjE1LC01My43MSAyNjYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjY5LjIzLC00NS42NCAyNzAuNywtMzUuMTUgMjYzLjAxLC00Mi40NCAyNjkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},1071:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQxLjU3LC03NC44M0M1MS43NSwtNjQuOTQgNjUuNTIsLTUxLjU1IDc3LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI3OS40NywtNDIuODcgODQuMiwtMzMuMzggNzQuNTksLTM3Ljg1IDc5LjQ3LC00Mi44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjE4PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTg1LjU3LC0xNDYuODNDMTk1Ljc1LC0xMzYuOTQgMjA5LjUyLC0xMjMuNTUgMjIxLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},2409:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiA0MTgsLTI1NiA0MTgsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTIxNi43NkMxOTQuMjksLTIwOC4yOCAxODguODUsLTE5Ny43MSAxODMuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMTg2LjQ0IDE3OS4zLC0xNzkuMTUgMTgwLjc3LC0xODkuNjQgMTg2Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDUzOTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIxNS4zNSwtMjE2Ljc2QzIxOS43MSwtMjA4LjI4IDIyNS4xNSwtMTk3LjcxIDIzMC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjMzLjIzLC0xODkuNjQgMjM0LjcsLTE3OS4xNSAyMjcuMDEsLTE4Ni40NCAyMzMuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0xNDYuODNDMTQ2LjI1LC0xMzYuOTQgMTMyLjQ4LC0xMjMuNTUgMTIwLjk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjEyMy40MSwtMTA5Ljg1IDExMy44LC0xMDUuMzggMTE4LjUzLC0xMTQuODcgMTIzLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjQzLC0xNDMuN0MyNDMsLTEzNS45OCAyNDMsLTEyNi43MSAyNDMsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjQ2LjUsLTExOC4xIDI0MywtMTA4LjEgMjM5LjUsLTExOC4xIDI0Ni41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjMxNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNTcuNTcsLTE0Ni44M0MyNjcuNzUsLTEzNi45NCAyODEuNTIsLTEyMy41NSAyOTMuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjk1LjQ3LC0xMTQuODcgMzAwLjIsLTEwNS4zOCAyOTAuNTksLTEwOS44NSAyOTUuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMjguNDMsLTc0LjgzQzIxOC4yNSwtNjQuOTQgMjA0LjQ4LC01MS41NSAxOTIuOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMzcuODUgMTg1LjgsLTMzLjM4IDE5MC41MywtNDIuODcgMTk1LjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjQzLC03MS43QzI0MywtNjMuOTggMjQzLC01NC43MSAyNDMsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI0Ni41LC00Ni4xIDI0MywtMzYuMSAyMzkuNSwtNDYuMSAyNDYuNSwtNDYuMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzMTUiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTMxNSwtNzEuN0MzMTUsLTYzLjk4IDMxNSwtNTQuNzEgMzE1LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMTguNSwtNDYuMSAzMTUsLTM2LjEgMzExLjUsLTQ2LjEgMzE4LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTc0LjgzQzMzOS43NSwtNjQuOTQgMzUzLjUyLC01MS41NSAzNjUuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjM2Ny40NywtNDIuODcgMzcyLjIsLTMzLjM4IDM2Mi41OSwtMzcuODUgMzY3LjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},2651:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNDE4LC0yNTYgNDE4LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjE2Ljc2QzE5NC4yOSwtMjA4LjI4IDE4OC44NSwtMTk3LjcxIDE4My45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0xODYuNDQgMTc5LjMsLTE3OS4xNSAxODAuNzcsLTE4OS42NCAxODYuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMTUuMzUsLTIxNi43NkMyMTkuNzEsLTIwOC4yOCAyMjUuMTUsLTE5Ny43MSAyMzAuMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIzMy4yMywtMTg5LjY0IDIzNC43LC0xNzkuMTUgMjI3LjAxLC0xODYuNDQgMjMzLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0xNDYuODNDMTQ2LjI1LC0xMzYuOTQgMTMyLjQ4LC0xMjMuNTUgMTIwLjk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTEwOS44NSAxMTMuOCwtMTA1LjM4IDExOC41MywtMTE0Ljg3IDEyMy40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjQzLC0xNDMuN0MyNDMsLTEzNS45OCAyNDMsLTEyNi43MSAyNDMsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI0Ni41LC0xMTguMSAyNDMsLTEwOC4xIDIzOS41LC0xMTguMSAyNDYuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzMTUiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNTcuNTcsLTE0Ni44M0MyNjcuNzUsLTEzNi45NCAyODEuNTIsLTEyMy41NSAyOTMuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI5NS40NywtMTE0Ljg3IDMwMC4yLC0xMDUuMzggMjkwLjU5LC0xMDkuODUgMjk1LjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjI4LjQzLC03NC44M0MyMTguMjUsLTY0Ljk0IDIwNC40OCwtNTEuNTUgMTkyLjk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxOTUuNDEsLTM3Ljg1IDE4NS44LC0zMy4zOCAxOTAuNTMsLTQyLjg3IDE5NS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjQzIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI0MywtNzEuN0MyNDMsLTYzLjk4IDI0MywtNTQuNzEgMjQzLC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNDYuNSwtNDYuMSAyNDMsLTM2LjEgMjM5LjUsLTQ2LjEgMjQ2LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTcxLjdDMzE1LC02My45OCAzMTUsLTU0LjcxIDMxNSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzE4LjUsLTQ2LjEgMzE1LC0zNi4xIDMxMS41LC00Ni4xIDMxOC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzI5LjU3LC03NC44M0MzMzkuNzUsLTY0Ljk0IDM1My41MiwtNTEuNTUgMzY1LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTQyLjg3IDM3Mi4yLC0zMy4zOCAzNjIuNTksLTM3Ljg1IDM2Ny40NywtNDIuODciLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},5265:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTMyOCA0MTgsLTMyOCA0MTgsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMzA2IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTI4OC43NkMxOTQuMjksLTI4MC4yOCAxODguODUsLTI2OS43MSAxODMuOTYsLTI2MC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMjU4LjQ0IDE3OS4zLC0yNTEuMTUgMTgwLjc3LC0yNjEuNjQgMTg2Ljk5LC0yNTguNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjE1LjM1LC0yODguNzZDMjE5LjcxLC0yODAuMjggMjI1LjE1LC0yNjkuNzEgMjMwLjA0LC0yNjAuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjMzLjIzLC0yNjEuNjQgMjM0LjcsLTI1MS4xNSAyMjcuMDEsLTI1OC40NCAyMzMuMjMsLTI2MS42NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNTYuNDMsLTIxOC44M0MxNDYuMjUsLTIwOC45NCAxMzIuNDgsLTE5NS41NSAxMjAuOTcsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xODEuODUgMTEzLjgsLTE3Ny4zOCAxMTguNTMsLTE4Ni44NyAxMjMuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0yMTUuN0MxNzEsLTIwNy45OCAxNzEsLTE5OC43MSAxNzEsLTE5MC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTkwLjEgMTcxLC0xODAuMSAxNjcuNSwtMTkwLjEgMTc0LjUsLTE5MC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtMjE1LjdDMjQzLC0yMDcuOTggMjQzLC0xOTguNzEgMjQzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjQ2LjUsLTE5MC4xIDI0MywtMTgwLjEgMjM5LjUsLTE5MC4xIDI0Ni41LC0xOTAuMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzE1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTM8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNDMsLTE0My43QzI0MywtMTM1Ljk4IDI0MywtMTI2LjcxIDI0MywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwNTQ1NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},7827:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0zMjggNDE4LC0zMjggNDE4LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMzAyLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjg4Ljc2QzE5NC4yOSwtMjgwLjI4IDE4OC44NSwtMjY5LjcxIDE4My45NiwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0yNTguNDQgMTc5LjMsLTI1MS4xNSAxODAuNzcsLTI2MS42NCAxODYuOTksLTI1OC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTIxNS4zNSwtMjg4Ljc2QzIxOS43MSwtMjgwLjI4IDIyNS4xNSwtMjY5LjcxIDIzMC4wNCwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMzMuMjMsLTI2MS42NCAyMzQuNywtMjUxLjE1IDIyNy4wMSwtMjU4LjQ0IDIzMy4yMywtMjYxLjY0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0yMTguODNDMTQ2LjI1LC0yMDguOTQgMTMyLjQ4LC0xOTUuNTUgMTIwLjk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTE4MS44NSAxMTMuOCwtMTc3LjM4IDExOC41MywtMTg2Ljg3IDEyMy40MSwtMTgxLjg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTIxNS43QzE3MSwtMjA3Ljk4IDE3MSwtMTk4LjcxIDE3MSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xOTAuMSAxNzEsLTE4MC4xIDE2Ny41LC0xOTAuMSAxNzQuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTIxNS43QzI0MywtMjA3Ljk4IDI0MywtMTk4LjcxIDI0MywtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI0Ni41LC0xOTAuMSAyNDMsLTE4MC4xIDIzOS41LC0xOTAuMSAyNDYuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjMxNSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMzwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwNTQ1NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},2213:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_7_dark-48445480725921bc67664cac9f225476.svg"},7002:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_7_light-e3494c1dc9b1d352580427c76be40a01.svg"},8818:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_8_dark-e63a22ae61187d5745542c84a04ded26.svg"},7976:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_8_light-10d25c55c1838a408ab5dad21a9da058.svg"},7284:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTExMiAxMzAsLTExMiAxMzAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNjMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjYzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},2970:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xMTIgMTMwLC0xMTIgMTMwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjYzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI2MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},170:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAxNjYsLTE4NCAxNjYsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik05MC42NSwtMTQ0Ljc2Qzg2LjI5LC0xMzYuMjggODAuODUsLTEyNS43MSA3NS45NiwtMTE2LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},2600:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMTY2LC0xODQgMTY2LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTkwLjY1LC0xNDQuNzZDODYuMjksLTEzNi4yOCA4MC44NSwtMTI1LjcxIDc1Ljk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},6014:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAyNzQsLTE4NCAyNzQsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTI2LjY1LC0xNDQuNzZDMTIyLjI5LC0xMzYuMjggMTE2Ljg1LC0xMjUuNzEgMTExLjk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTQzLjM1LC0xNDQuNzZDMTQ3LjcxLC0xMzYuMjggMTUzLjE1LC0xMjUuNzEgMTU4LjA0LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},9533:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMjc0LC0xODQgMjc0LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xMjYuNjUsLTE0NC43NkMxMjIuMjksLTEzNi4yOCAxMTYuODUsLTEyNS43MSAxMTEuOTYsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNDMuMzUsLTE0NC43NkMxNDcuNzEsLTEzNi4yOCAxNTMuMTUsLTEyNS43MSAxNTguMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},8113:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEyNi42NSwtMjE2Ljc2QzEyMi4yOSwtMjA4LjI4IDExNi44NSwtMTk3LjcxIDExMS45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTE0Ljk5LC0xODYuNDQgMTA3LjMsLTE3OS4xNSAxMDguNzcsLTE4OS42NCAxMTQuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xODUuNTcsLTE0Ni44M0MxOTUuNzUsLTEzNi45NCAyMDkuNTIsLTEyMy41NSAyMjEuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},4278:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjEzNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEzNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xODUuNTcsLTE0Ni44M0MxOTUuNzUsLTEzNi45NCAyMDkuNTIsLTEyMy41NSAyMjEuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyMDciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTEuMzUsLTcyLjc2QzI1NS43MSwtNjQuMjggMjYxLjE1LC01My43MSAyNjYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjY5LjIzLC00NS42NCAyNzAuNywtMzUuMTUgMjYzLjAxLC00Mi40NCAyNjkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},3779:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEyNi42NSwtMjE2Ljc2QzEyMi4yOSwtMjA4LjI4IDExNi44NSwtMTk3LjcxIDExMS45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTE0Ljk5LC0xODYuNDQgMTA3LjMsLTE3OS4xNSAxMDguNzcsLTE4OS42NCAxMTQuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTQxLjU3LC03NC44M0M1MS43NSwtNjQuOTQgNjUuNTIsLTUxLjU1IDc3LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI3OS40NywtNDIuODcgODQuMiwtMzMuMzggNzQuNTksLTM3Ljg1IDc5LjQ3LC00Mi44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},6292:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjEzNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEzNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjcsLTcxLjdDMjcsLTYzLjk4IDI3LC01NC43MSAyNywtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzAuNSwtNDYuMSAyNywtMzYuMSAyMy41LC00Ni4xIDMwLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00MS41NywtNzQuODNDNTEuNzUsLTY0Ljk0IDY1LjUyLC01MS41NSA3Ny4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNzkuNDcsLTQyLjg3IDg0LjIsLTMzLjM4IDc0LjU5LC0zNy44NSA3OS40NywtNDIuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyMDciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},9940:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiA0MTgsLTI1NiA0MTgsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjA3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTk4LjY1LC0yMTYuNzZDMTk0LjI5LC0yMDguMjggMTg4Ljg1LC0xOTcuNzEgMTgzLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxODYuOTksLTE4Ni40NCAxNzkuMywtMTc5LjE1IDE4MC43NywtMTg5LjY0IDE4Ni45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI0MyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMTUuMzUsLTIxNi43NkMyMTkuNzEsLTIwOC4yOCAyMjUuMTUsLTE5Ny43MSAyMzAuMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIzMy4yMywtMTg5LjY0IDIzNC43LC0xNzkuMTUgMjI3LjAxLC0xODYuNDQgMjMzLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE1Ni40MywtMTQ2LjgzQzE0Ni4yNSwtMTM2Ljk0IDEzMi40OCwtMTIzLjU1IDEyMC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTEwOS44NSAxMTMuOCwtMTA1LjM4IDExOC41MywtMTE0Ljg3IDEyMy40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI0Ni41LC0xMTguMSAyNDMsLTEwOC4xIDIzOS41LC0xMTguMSAyNDYuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzMTUiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjU3LjU3LC0xNDYuODNDMjY3Ljc1LC0xMzYuOTQgMjgxLjUyLC0xMjMuNTUgMjkzLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI5NS40NywtMTE0Ljg3IDMwMC4yLC0xMDUuMzggMjkwLjU5LC0xMDkuODUgMjk1LjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjI4LjQzLC03NC44M0MyMTguMjUsLTY0Ljk0IDIwNC40OCwtNTEuNTUgMTkyLjk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxOTUuNDEsLTM3Ljg1IDE4NS44LC0zMy4zOCAxOTAuNTMsLTQyLjg3IDE5NS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjQzIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtNzEuN0MyNDMsLTYzLjk4IDI0MywtNTQuNzEgMjQzLC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNDYuNSwtNDYuMSAyNDMsLTM2LjEgMjM5LjUsLTQ2LjEgMjQ2LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTcxLjdDMzE1LC02My45OCAzMTUsLTU0LjcxIDMxNSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzE4LjUsLTQ2LjEgMzE1LC0zNi4xIDMxMS41LC00Ni4xIDMxOC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzI5LjU3LC03NC44M0MzMzkuNzUsLTY0Ljk0IDM1My41MiwtNTEuNTUgMzY1LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTQyLjg3IDM3Mi4yLC0zMy4zOCAzNjIuNTksLTM3Ljg1IDM2Ny40NywtNDIuODciLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},9932:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNDE4LC0yNTYgNDE4LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xOTguNjUsLTIxNi43NkMxOTQuMjksLTIwOC4yOCAxODguODUsLTE5Ny43MSAxODMuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE4Ni45OSwtMTg2LjQ0IDE3OS4zLC0xNzkuMTUgMTgwLjc3LC0xODkuNjQgMTg2Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjE1LjM1LC0yMTYuNzZDMjE5LjcxLC0yMDguMjggMjI1LjE1LC0xOTcuNzEgMjMwLjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMzMuMjMsLTE4OS42NCAyMzQuNywtMTc5LjE1IDIyNy4wMSwtMTg2LjQ0IDIzMy4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE1Ni40MywtMTQ2LjgzQzE0Ni4yNSwtMTM2Ljk0IDEzMi40OCwtMTIzLjU1IDEyMC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xMDkuODUgMTEzLjgsLTEwNS4zOCAxMTguNTMsLTExNC44NyAxMjMuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtNzQuODNDNzQuMjUsLTY0Ljk0IDYwLjQ4LC01MS41NSA0OC45NywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTM3Ljg1IDQxLjgsLTMzLjM4IDQ2LjUzLC00Mi44NyA1MS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtNzEuN0M5OSwtNjMuOTggOTksLTU0LjcxIDk5LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtNDYuMSA5OSwtMzYuMSA5NS41LC00Ni4xIDEwMi41LC00Ni4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzMTUiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjU3LjU3LC0xNDYuODNDMjY3Ljc1LC0xMzYuOTQgMjgxLjUyLC0xMjMuNTUgMjkzLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyOTUuNDcsLTExNC44NyAzMDAuMiwtMTA1LjM4IDI5MC41OSwtMTA5Ljg1IDI5NS40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtNzQuODNDMjE4LjI1LC02NC45NCAyMDQuNDgsLTUxLjU1IDE5Mi45NywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTk1LjQxLC0zNy44NSAxODUuOCwtMzMuMzggMTkwLjUzLC00Mi44NyAxOTUuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTcxLjdDMjQzLC02My45OCAyNDMsLTU0LjcxIDI0MywtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjQ2LjUsLTQ2LjEgMjQzLC0zNi4xIDIzOS41LC00Ni4xIDI0Ni41LC00Ni4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjMxNSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzE1LC03MS43QzMxNSwtNjMuOTggMzE1LC01NC43MSAzMTUsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC00Ni4xIDMxNSwtMzYuMSAzMTEuNSwtNDYuMSAzMTguNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzODciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTEyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTMyOS41NywtNzQuODNDMzM5Ljc1LC02NC45NCAzNTMuNTIsLTUxLjU1IDM2NS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzY3LjQ3LC00Mi44NyAzNzIuMiwtMzMuMzggMzYyLjU5LC0zNy44NSAzNjcuNDcsLTQyLjg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},3681:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTMyOCA0MTgsLTMyOCA0MTgsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMzA2IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTI4OC43NkMxOTQuMjksLTI4MC4yOCAxODguODUsLTI2OS43MSAxODMuOTYsLTI2MC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMjU4LjQ0IDE3OS4zLC0yNTEuMTUgMTgwLjc3LC0yNjEuNjQgMTg2Ljk5LC0yNTguNDQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjE1LjM1LC0yODguNzZDMjE5LjcxLC0yODAuMjggMjI1LjE1LC0yNjkuNzEgMjMwLjA0LC0yNjAuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjMzLjIzLC0yNjEuNjQgMjM0LjcsLTI1MS4xNSAyMjcuMDEsLTI1OC40NCAyMzMuMjMsLTI2MS42NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNTYuNDMsLTIxOC44M0MxNDYuMjUsLTIwOC45NCAxMzIuNDgsLTE5NS41NSAxMjAuOTcsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xODEuODUgMTEzLjgsLTE3Ny4zOCAxMTguNTMsLTE4Ni44NyAxMjMuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0yMTUuN0MxNzEsLTIwNy45OCAxNzEsLTE5OC43MSAxNzEsLTE5MC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTkwLjEgMTcxLC0xODAuMSAxNjcuNSwtMTkwLjEgMTc0LjUsLTE5MC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDI0JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtMjE1LjdDMjQzLC0yMDcuOTggMjQzLC0xOTguNzEgMjQzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjQ2LjUsLTE5MC4xIDI0MywtMTgwLjEgMjM5LjUsLTE5MC4xIDI0Ni41LC0xOTAuMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzE1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTM8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNDMsLTE0My43QzI0MywtMTM1Ljk4IDI0MywtMTI2LjcxIDI0MywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTc5MzQ4ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},7478:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0zMjggNDE4LC0zMjggNDE4LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMzAyLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjg4Ljc2QzE5NC4yOSwtMjgwLjI4IDE4OC44NSwtMjY5LjcxIDE4My45NiwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0yNTguNDQgMTc5LjMsLTI1MS4xNSAxODAuNzcsLTI2MS42NCAxODYuOTksLTI1OC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTIxNS4zNSwtMjg4Ljc2QzIxOS43MSwtMjgwLjI4IDIyNS4xNSwtMjY5LjcxIDIzMC4wNCwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMzMuMjMsLTI2MS42NCAyMzQuNywtMjUxLjE1IDIyNy4wMSwtMjU4LjQ0IDIzMy4yMywtMjYxLjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0yMTguODNDMTQ2LjI1LC0yMDguOTQgMTMyLjQ4LC0xOTUuNTUgMTIwLjk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTE4MS44NSAxMTMuOCwtMTc3LjM4IDExOC41MywtMTg2Ljg3IDEyMy40MSwtMTgxLjg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTIxNS43QzE3MSwtMjA3Ljk4IDE3MSwtMTk4LjcxIDE3MSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xOTAuMSAxNzEsLTE4MC4xIDE2Ny41LC0xOTAuMSAxNzQuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkzNDI0JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTIxNS43QzI0MywtMjA3Ljk4IDI0MywtMTk4LjcxIDI0MywtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI0Ni41LC0xOTAuMSAyNDMsLTE4MC4xIDIzOS41LC0xOTAuMSAyNDYuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjMxNSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMzwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTc5MzQ4ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},539:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_7_dark-f8796e7eda13a89d198098744b079384.svg"},345:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_7_light-f03b9073d10947b0af1a226ee8e12fa4.svg"},7012:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_8_dark-f1562f7fd1dc9442e496260e74447d03.svg"},380:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_8_light-7531279bbbb44b4e206fe5040b38df4d.svg"},1151:(I,M,i)=>{i.d(M,{Z:()=>z,a:()=>j});var N=i(7294);const T={},g=N.createContext(T);function j(I){const M=N.useContext(g);return N.useMemo((function(){return"function"==typeof I?I(M):{...M,...I}}),[M,I])}function z(I){let M;return M=I.disableParentContext?"function"==typeof I.components?I.components(T):I.components||T:j(I.components),N.createElement(g.Provider,{value:M},I.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff82dde7.e3161817.js b/assets/js/ff82dde7.e3161817.js new file mode 100644 index 0000000..0aa8478 --- /dev/null +++ b/assets/js/ff82dde7.e3161817.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8472],{63935:(I,M,i)=>{i.r(M),i.d(M,{assets:()=>U,contentTitle:()=>e,default:()=>u,frontMatter:()=>a,metadata:()=>O,toc:()=>k});var N=i(85893),T=i(11151),g=i(67294),j=i(86010),z=i(12466),Z=i(16550),c=i(20469),l=i(91980),D=i(67392),G=i(50012);function C(I){return g.Children.toArray(I).filter((I=>"\n"!==I)).map((I=>{if(!I||(0,g.isValidElement)(I)&&function(I){const{props:M}=I;return!!M&&"object"==typeof M&&"value"in M}(I))return I;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof I.type?I.type:I.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function b(I){const{values:M,children:i}=I;return(0,g.useMemo)((()=>{const I=M??function(I){return C(I).map((I=>{let{props:{value:M,label:i,attributes:N,default:T}}=I;return{value:M,label:i,attributes:N,default:T}}))}(i);return function(I){const M=(0,D.l)(I,((I,M)=>I.value===M.value));if(M.length>0)throw new Error(`Docusaurus error: Duplicate values "${M.map((I=>I.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(I),I}),[M,i])}function S(I){let{value:M,tabValues:i}=I;return i.some((I=>I.value===M))}function x(I){let{queryString:M=!1,groupId:i}=I;const N=(0,Z.k6)(),T=function(I){let{queryString:M=!1,groupId:i}=I;if("string"==typeof M)return M;if(!1===M)return null;if(!0===M&&!i)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 i??null}({queryString:M,groupId:i});return[(0,l._X)(T),(0,g.useCallback)((I=>{if(!T)return;const M=new URLSearchParams(N.location.search);M.set(T,I),N.replace({...N.location,search:M.toString()})}),[T,N])]}function L(I){const{defaultValue:M,queryString:i=!1,groupId:N}=I,T=b(I),[j,z]=(0,g.useState)((()=>function(I){let{defaultValue:M,tabValues:i}=I;if(0===i.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(M){if(!S({value:M,tabValues:i}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${M}" but none of its children has the corresponding value. Available values are: ${i.map((I=>I.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return M}const N=i.find((I=>I.default))??i[0];if(!N)throw new Error("Unexpected error: 0 tabValues");return N.value}({defaultValue:M,tabValues:T}))),[Z,l]=x({queryString:i,groupId:N}),[D,C]=function(I){let{groupId:M}=I;const i=function(I){return I?`docusaurus.tab.${I}`:null}(M),[N,T]=(0,G.Nk)(i);return[N,(0,g.useCallback)((I=>{i&&T.set(I)}),[i,T])]}({groupId:N}),L=(()=>{const I=Z??D;return S({value:I,tabValues:T})?I:null})();(0,c.Z)((()=>{L&&z(L)}),[L]);return{selectedValue:j,selectValue:(0,g.useCallback)((I=>{if(!S({value:I,tabValues:T}))throw new Error(`Can't select invalid tab value=${I}`);z(I),l(I),C(I)}),[l,C,T]),tabValues:T}}var m=i(72389);const s={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function d(I){let{className:M,block:i,selectedValue:T,selectValue:g,tabValues:Z}=I;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,z.o5)(),D=I=>{const M=I.currentTarget,i=c.indexOf(M),N=Z[i].value;N!==T&&(l(M),g(N))},G=I=>{let M=null;switch(I.key){case"Enter":D(I);break;case"ArrowRight":{const i=c.indexOf(I.currentTarget)+1;M=c[i]??c[0];break}case"ArrowLeft":{const i=c.indexOf(I.currentTarget)-1;M=c[i]??c[c.length-1];break}}M?.focus()};return(0,N.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,j.Z)("tabs",{"tabs--block":i},M),children:Z.map((I=>{let{value:M,label:i,attributes:g}=I;return(0,N.jsx)("li",{role:"tab",tabIndex:T===M?0:-1,"aria-selected":T===M,ref:I=>c.push(I),onKeyDown:G,onClick:D,...g,className:(0,j.Z)("tabs__item",s.tabItem,g?.className,{"tabs__item--active":T===M}),children:i??M},M)}))})}function w(I){let{lazy:M,children:i,selectedValue:T}=I;const j=(Array.isArray(i)?i:[i]).filter(Boolean);if(M){const I=j.find((I=>I.props.value===T));return I?(0,g.cloneElement)(I,{className:"margin-top--md"}):null}return(0,N.jsx)("div",{className:"margin-top--md",children:j.map(((I,M)=>(0,g.cloneElement)(I,{key:M,hidden:I.props.value!==T})))})}function P(I){const M=L(I);return(0,N.jsxs)("div",{className:(0,j.Z)("tabs-container",s.tabList),children:[(0,N.jsx)(d,{...I,...M}),(0,N.jsx)(w,{...I,...M})]})}function y(I){const M=(0,m.Z)();return(0,N.jsx)(P,{...I,children:C(I.children)},String(M))}const t={tabItem:"tabItem_Ymn6"};function n(I){let{children:M,hidden:i,className:T}=I;return(0,N.jsx)("div",{role:"tabpanel",className:(0,j.Z)(t.tabItem,T),hidden:i,children:M})}const a={id:"rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",tags:["red-black trees","balanced trees"],last_update:{date:new Date("2023-06-10T00:00:00.000Z")}},e=void 0,O={id:"rb-trees/rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",source:"@site/algorithms/08-rb-trees/2023-06-10-rules.md",sourceDirName:"08-rb-trees",slug:"/rb-trees/rules",permalink:"/algorithms/rb-trees/rules",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/08-rb-trees/2023-06-10-rules.md",tags:[{label:"red-black trees",permalink:"/algorithms/tags/red-black-trees"},{label:"balanced trees",permalink:"/algorithms/tags/balanced-trees"}],version:"current",lastUpdatedAt:1686355200,formattedLastUpdatedAt:"Jun 10, 2023",frontMatter:{id:"rules",title:"On the rules of the red-black tree",description:"Shower thoughts on the rules of the red-black tree.\n",tags:["red-black trees","balanced trees"],last_update:{date:"2023-06-10T00:00:00.000Z"}},sidebar:"autogeneratedBar",previous:{title:"Pou\u017eit\xed \u010derveno-\u010dern\xfdch strom\u016f",permalink:"/algorithms/rb-trees/applications"},next:{title:"Graphs",permalink:"/algorithms/category/graphs"}},U={},k=[{value:"Introduction",id:"introduction",level:2},{value:"1\xaa Every node is either red or black.",id:"1\xaa-every-node-is-either-red-or-black",level:2},{value:"Do I really need the nodes to be explicitly colored?",id:"do-i-really-need-the-nodes-to-be-explicitly-colored",level:3},{value:"Black height",id:"black-height",level:4},{value:"Isomorphic trees",id:"isomorphic-trees",level:4},{value:"2\xaa The root is black.",id:"2\xaa-the-root-is-black",level:2},{value:"3\xaa Every leaf (<code>nil</code>) is black.",id:"3\xaa-every-leaf-nil-is-black",level:2},{value:"4\xaa If a node is red, then both its children are black.",id:"4\xaa-if-a-node-is-red-then-both-its-children-are-black",level:2},{value:"5\xaa For each node, all simple paths from the node to descendant leaves contain the same number of black nodes.",id:"5\xaa-for-each-node-all-simple-paths-from-the-node-to-descendant-leaves-contain-the-same-number-of-black-nodes",level:2}];function Y(I){const M={a:"a",admonition:"admonition",annotation:"annotation",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",math:"math",mn:"mn",mo:"mo",mrow:"mrow",mtext:"mtext",ol:"ol",p:"p",pre:"pre",section:"section",semantics:"semantics",span:"span",strong:"strong",sup:"sup",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,T.a)(),...I.components};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(M.h2,{id:"introduction",children:"Introduction"}),"\n",(0,N.jsx)(M.p,{children:"Have you ever thought about the red-black tree rules in more depth? Why are they\nformulated the way they are? How come they keep the tree balanced? Let's go through\neach of the red-black tree rules and try to change, break and contemplate about\nthem."}),"\n",(0,N.jsxs)(M.p,{children:["We expect that you are familiar with the following set of the rules",(0,N.jsx)(M.sup,{children:(0,N.jsx)(M.a,{href:"#user-content-fn-1",id:"user-content-fnref-1","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"1"})}),":"]}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsx)(M.li,{children:"Every node is either red or black."}),"\n",(0,N.jsx)(M.li,{children:"The root is black."}),"\n",(0,N.jsxs)(M.li,{children:["Every leaf (",(0,N.jsx)(M.code,{children:"nil"}),") is black."]}),"\n",(0,N.jsx)(M.li,{children:"If a node is red, then both its children are black."}),"\n",(0,N.jsx)(M.li,{children:"For each node, all simple paths from the node to descendant leaves contain the\nsame number of black nodes."}),"\n"]}),"\n",(0,N.jsxs)(M.p,{children:["Each section will go into ",(0,N.jsx)(M.em,{children:"reasonable"})," details of each rule."]}),"\n",(0,N.jsx)(M.h2,{id:"1\xaa-every-node-is-either-red-or-black",children:"1\xaa Every node is either red or black."}),"\n",(0,N.jsx)(M.p,{children:"OK\u2026 This one is very simple. It is just a definition and is used in all other\nrules. Not much to talk about here. Or is there?"}),"\n",(0,N.jsx)(M.h3,{id:"do-i-really-need-the-nodes-to-be-explicitly-colored",children:"Do I really need the nodes to be explicitly colored?"}),"\n",(0,N.jsx)(M.p,{children:"The answer is no. Balancing of the red-black trees is \u201cenforced\u201d by the 4th and\n5th rule in the enumeration above. There are many ways you can avoid using colors."}),"\n",(0,N.jsx)(M.h4,{id:"black-height",children:"Black height"}),"\n",(0,N.jsx)(M.p,{children:"We mentioned the 4th and 5th rule and that it enforces the balancing. What does\nit mean for us?"}),"\n",(0,N.jsxs)(M.p,{children:["Well, we definitely do not have to use the colors, which even as a ",(0,N.jsx)(M.em,{children:"boolean"})," flag\nwould take at least 1 byte of space (and usually even more), cause\u2026 well, it is\neasier for the CPU to work with words rather than single bits."]}),"\n",(0,N.jsx)(M.p,{children:"We could use the black height, couldn't we? It would mean more memory used, cause\nit should be ideally big and unsigned. Can we tell the color of a node from the\nblack height? Of course we can, if my child has the same black height as I do,\nit means that there was no black node added on the path between us and therefore\nmy child would be colored red."}),"\n",(0,N.jsx)(M.p,{children:"Example of a red-black tree that keeps count of black nodes on paths to the\nleaves follows:"}),"\n",(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{alt:"Red-black tree with black height",src:i(92787).Z+"#gh-light-mode-only",width:"923",height:"539"}),"\n",(0,N.jsx)(M.img,{alt:"Red-black tree with black height",src:i(25904).Z+"#gh-dark-mode-only",width:"923",height:"539"})]}),"\n",(0,N.jsxs)(M.p,{children:["We mark the ",(0,N.jsx)(M.em,{children:"black heights"})," in superscript. You can see that all leaves have the\nblack height equal to ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"1"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"1"})]})})]}),". Let's take a look at some of the interesting cases:"]}),"\n",(0,N.jsxs)(M.ul,{children:["\n",(0,N.jsxs)(M.li,{children:["\n",(0,N.jsxs)(M.p,{children:["If we take a look at the node with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"9"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 9"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"9"})]})]})]}),", we can see that it is\ncoloured red and its black height is 1, because it is a leaf."]}),"\n",(0,N.jsxs)(M.p,{children:["Let's look at its parent (node with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"8"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 8"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"8"})]})]})]}),"). On its left side it has\n",(0,N.jsx)(M.code,{children:"nil"})," and on its right side the ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"9"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"9"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"9"})]})})]}),". And its black height is still ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"1"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"1"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"1"})]})})]}),", cause\nexcept for the ",(0,N.jsx)(M.code,{children:"nil"})," leaves, there are no other black nodes."]}),"\n",(0,N.jsx)(M.p,{children:"We can clearly see that if a node has the same black height as its parent, it\nis a red node."}),"\n"]}),"\n",(0,N.jsxs)(M.li,{children:["\n",(0,N.jsxs)(M.p,{children:["Now let's take a look at the root with ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsxs)(M.mrow,{children:[(0,N.jsx)(M.mtext,{children:"key"}),(0,N.jsx)(M.mo,{children:"="}),(0,N.jsx)(M.mn,{children:"3"})]}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"\\text{key} = 3"})]})})}),(0,N.jsxs)(M.span,{className:"katex-html","aria-hidden":"true",children:[(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.8889em",verticalAlign:"-0.1944em"}}),(0,N.jsx)(M.span,{className:"mord text",children:(0,N.jsx)(M.span,{className:"mord",children:"key"})}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}}),(0,N.jsx)(M.span,{className:"mrel",children:"="}),(0,N.jsx)(M.span,{className:"mspace",style:{marginRight:"0.2778em"}})]}),(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"3"})]})]})]}),". It has a black height\nof 3. Both of its children are black nodes and have black height of 2."]}),"\n",(0,N.jsx)(M.p,{children:"We can see that if a node has its height 1 lower than its parent, it is a black\nnode."}),"\n",(0,N.jsx)(M.p,{children:"The reasoning behind it is rather simple, we count the black nodes all the way\nto the leaves, therefore if my parent has a higher black height, it means that\non the path from me to my parent there is a black node, but the only node added\nis me, therefore I must be black."}),"\n"]}),"\n"]}),"\n",(0,N.jsx)(M.h4,{id:"isomorphic-trees",children:"Isomorphic trees"}),"\n",(0,N.jsx)(M.p,{children:"One of the other ways to avoid using color is storing the red-black tree in some\nisomorphic tree. The structure of 2-3-4 tree allows us to avoid using the color\ncompletely. This is a bit different approach, cause we would be basically using\ndifferent tree, so we keep this note in just as a \u201chack\u201d."}),"\n",(0,N.jsx)(M.h2,{id:"2\xaa-the-root-is-black",children:"2\xaa The root is black."}),"\n",(0,N.jsx)(M.p,{children:"This rule might seem like a very important one, but overall is not. You can safely\nomit this rule, but you also need to deal with the consequences."}),"\n",(0,N.jsxs)(M.p,{children:["Let's refresh our memory with the algorithm of ",(0,N.jsx)(M.em,{children:"insert fixup"}),":"]}),"\n",(0,N.jsx)(M.pre,{children:(0,N.jsx)(M.code,{children:"WHILE z.p.color == Red\n IF z.p == z.p.p.left\n y = z.p.p.right\n\n IF y.color == Red\n z.p.color = Black\n y.color = Black\n z.p.p.color = Red\n z = z.p.p\n ELSE\n IF z == z.p.right\n z = z.p\n Left-Rotate(T, z)\n z.p.color = Black\n z.p.p.color = Red\n Right-Rotate(T, z.p.p)\n ELSE (same as above with \u201cright\u201d and \u201cleft\u201d exchanged)\n\nT.root.color = Black\n"})}),"\n",(0,N.jsxs)(M.admonition,{type:"tip",children:[(0,N.jsxs)(M.p,{children:["If you have tried to implement any of the more complex data structures, such as\nred-black trees, etc., in a statically typed language that also checks you for\n",(0,N.jsx)(M.code,{children:"NULL"}),"-correctness (e.g. ",(0,N.jsx)(M.em,{children:"mypy"})," or even C# with nullable reference types), you\nmight have run into numerous issues in the cases where you are 100% sure that you\ncannot obtain ",(0,N.jsx)(M.code,{children:"NULL"})," because of the invariants, but the static type checking\ndoesn't know that."]}),(0,N.jsxs)(M.p,{children:["The issue we hit with the ",(0,N.jsx)(M.em,{children:"insert fixup"})," is very similar."]})]}),"\n",(0,N.jsx)(M.p,{children:"You might not realize the issue at the first sight, but the algorithm described\nwith the pseudocode above expects that the root of the red-black tree is black by\nboth relying on the invariant in the algorithm and afterwards by enforcing the\nblack root property."}),"\n",(0,N.jsx)(M.p,{children:"If we decide to omit this condition, we need to address it in the pseudocodes\naccordingly."}),"\n",(0,N.jsxs)(M.table,{children:[(0,N.jsx)(M.thead,{children:(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.th,{style:{textAlign:"center"},children:"Usual algorithm with black root"}),(0,N.jsx)(M.th,{style:{textAlign:"center"},children:"Allowing red root"})]})}),(0,N.jsxs)(M.tbody,{children:[(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(4981).Z+"#gh-light-mode-only",width:"179",height:"155"}),(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(91141).Z+"#gh-dark-mode-only",width:"179",height:"155"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(62970).Z+"#gh-light-mode-only",width:"179",height:"155"}),(0,N.jsx)(M.img,{alt:"1\xaa insertion",src:i(27284).Z+"#gh-dark-mode-only",width:"179",height:"155"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(88573).Z+"#gh-light-mode-only",width:"227",height:"251"}),(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(92172).Z+"#gh-dark-mode-only",width:"227",height:"251"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(52600).Z+"#gh-light-mode-only",width:"227",height:"251"}),(0,N.jsx)(M.img,{alt:"2\xaa insertion",src:i(90170).Z+"#gh-dark-mode-only",width:"227",height:"251"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(29530).Z+"#gh-light-mode-only",width:"371",height:"251"}),(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(56686).Z+"#gh-dark-mode-only",width:"371",height:"251"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(69533).Z+"#gh-light-mode-only",width:"371",height:"251"}),(0,N.jsx)(M.img,{alt:"3\xaa insertion",src:i(16014).Z+"#gh-dark-mode-only",width:"371",height:"251"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(67290).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(23961).Z+"#gh-dark-mode-only",width:"419",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(41456).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"4\xaa insertion",src:i(88113).Z+"#gh-dark-mode-only",width:"419",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(11071).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(30505).Z+"#gh-dark-mode-only",width:"419",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(96292).Z+"#gh-light-mode-only",width:"419",height:"347"}),(0,N.jsx)(M.img,{alt:"5\xaa insertion",src:i(53779).Z+"#gh-dark-mode-only",width:"419",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(42651).Z+"#gh-light-mode-only",width:"563",height:"347"}),(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(62409).Z+"#gh-dark-mode-only",width:"563",height:"347"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(39932).Z+"#gh-light-mode-only",width:"563",height:"347"}),(0,N.jsx)(M.img,{alt:"6\xaa insertion",src:i(59940).Z+"#gh-dark-mode-only",width:"563",height:"347"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(67827).Z+"#gh-light-mode-only",width:"563",height:"443"}),(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(65265).Z+"#gh-dark-mode-only",width:"563",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(77478).Z+"#gh-light-mode-only",width:"563",height:"443"}),(0,N.jsx)(M.img,{alt:"7\xaa insertion",src:i(13681).Z+"#gh-dark-mode-only",width:"563",height:"443"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(77002).Z+"#gh-light-mode-only",width:"635",height:"443"}),(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(92213).Z+"#gh-dark-mode-only",width:"635",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(345).Z+"#gh-light-mode-only",width:"635",height:"443"}),(0,N.jsx)(M.img,{alt:"8\xaa insertion",src:i(20539).Z+"#gh-dark-mode-only",width:"635",height:"443"})]})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(67976).Z+"#gh-light-mode-only",width:"755",height:"443"}),(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(18818).Z+"#gh-dark-mode-only",width:"755",height:"443"})]}),(0,N.jsxs)(M.td,{style:{textAlign:"center"},children:[(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(380).Z+"#gh-light-mode-only",width:"755",height:"443"}),(0,N.jsx)(M.img,{alt:"9\xaa insertion",src:i(77012).Z+"#gh-dark-mode-only",width:"755",height:"443"})]})]})]})]}),"\n",(0,N.jsxs)(M.h2,{id:"3\xaa-every-leaf-nil-is-black",children:["3\xaa Every leaf (",(0,N.jsx)(M.code,{children:"nil"}),") is black."]}),"\n",(0,N.jsx)(M.p,{children:"Now, this rule is a funny one. What does this imply and can I interpret this in\nsome other way? Let's go through some of the possible ways I can look at this and\nhow would they affect the other rules and balancing."}),"\n",(0,N.jsxs)(M.p,{children:["We will experiment with the following tree:\n",(0,N.jsx)(M.img,{src:i(33942).Z+"#gh-light-mode-only",width:"899",height:"539"}),"\n",(0,N.jsx)(M.img,{src:i(39304).Z+"#gh-dark-mode-only",width:"899",height:"539"})]}),"\n",(0,N.jsxs)(M.p,{children:["We should start by counting the black nodes from root to the ",(0,N.jsx)(M.code,{children:"nil"})," leaves based\non the rules. We have multiple similar paths, so we will pick only the interesting\nones."]}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{children:["What happens if we do not count the ",(0,N.jsx)(M.code,{children:"nil"})," leaves?"]}),"\n",(0,N.jsxs)(M.li,{children:["What happens if we consider leaves the nodes with ",(0,N.jsx)(M.em,{children:"no descendants"}),", i.e. both\nof node's children are ",(0,N.jsx)(M.code,{children:"nil"}),"?"]}),"\n",(0,N.jsxs)(M.li,{children:["What happens if we do not count the ",(0,N.jsx)(M.code,{children:"nil"})," leaves, but consider nodes with at\nleast one ",(0,N.jsx)(M.code,{children:"nil"})," descendant as leaves?"]}),"\n"]}),"\n",(0,N.jsxs)(M.table,{children:[(0,N.jsx)(M.thead,{children:(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"path"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"black nodes"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"1\xaa idea"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"2\xaa idea"}),(0,N.jsx)(M.th,{style:{textAlign:"right"},children:"3\xaa idea"})]})}),(0,N.jsxs)(M.tbody,{children:[(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 1 \u2192 0 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 5 \u2192 7 \u2192 8 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"-"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]}),(0,N.jsxs)(M.tr,{children:[(0,N.jsx)(M.td,{style:{textAlign:"right"},children:(0,N.jsx)(M.code,{children:"3 \u2192 5 \u2192 7 \u2192 8 \u2192 9 \u2192 nil"})}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"4"}),(0,N.jsx)(M.td,{style:{textAlign:"right"},children:"3"})]})]})]}),"\n",(0,N.jsxs)(M.p,{children:["First idea is very easy to execute and it is also very easy to argue about its\ncorrectness. It is correct, because we just subtract one from each of the paths.\nThis affects ",(0,N.jsx)(M.strong,{children:"all"})," paths and therefore results in global decrease by one."]}),"\n",(0,N.jsxs)(M.p,{children:["Second idea is a bit more complicated. We count the ",(0,N.jsx)(M.code,{children:"nil"}),"s, so the count is ",(0,N.jsxs)(M.span,{className:"katex",children:[(0,N.jsx)(M.span,{className:"katex-mathml",children:(0,N.jsx)(M.math,{xmlns:"http://www.w3.org/1998/Math/MathML",children:(0,N.jsxs)(M.semantics,{children:[(0,N.jsx)(M.mrow,{children:(0,N.jsx)(M.mn,{children:"4"})}),(0,N.jsx)(M.annotation,{encoding:"application/x-tex",children:"4"})]})})}),(0,N.jsx)(M.span,{className:"katex-html","aria-hidden":"true",children:(0,N.jsxs)(M.span,{className:"base",children:[(0,N.jsx)(M.span,{className:"strut",style:{height:"0.6444em"}}),(0,N.jsx)(M.span,{className:"mord",children:"4"})]})})]}),"\nas it should be. However, there is one difference. Second path no longer satisfies\nthe condition of a ",(0,N.jsx)(M.em,{children:"leaf"}),". Technically it relaxes the 5th rule, because we leave\nout some of the nodes. We should probably avoid that."]}),"\n",(0,N.jsxs)(M.admonition,{type:"caution",children:[(0,N.jsx)(M.p,{children:"With the second idea, you may also feel that we are \u201cbending\u201d the rules a bit,\nespecially the definition of the \u201cleaf\u201d nodes."}),(0,N.jsxs)(M.p,{children:["Given the definition of the red-black tree, where ",(0,N.jsx)(M.code,{children:"nil"})," is considered to be an\nexternal node, we have decided that bending it a bit just to stir a thought about\nit won't hurt anybody. ","\ud83d\ude09"]})]}),"\n",(0,N.jsx)(M.h2,{id:"4\xaa-if-a-node-is-red-then-both-its-children-are-black",children:"4\xaa If a node is red, then both its children are black."}),"\n",(0,N.jsx)(M.p,{children:"This rule might seem rather silly on the first look, but there are 2 important\nfunctions:"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{children:["it allows the algorithms to ",(0,N.jsx)(M.em,{children:"\u201cnotice\u201d"})," that something went wrong (i.e. the\ntree needs to be rebalanced), and"]}),"\n",(0,N.jsxs)(M.li,{children:["it holds the balancing and height of the tree ",(0,N.jsx)(M.em,{children:"\u201cin check\u201d"})," (with the help of\nthe 5th rule)."]}),"\n"]}),"\n",(0,N.jsx)(M.p,{children:"When we have a look at the algorithms that are used for fixing up the red-black\ntree after an insertion or deletion, we will notice that all the algorithms need\nis the color of the node."}),"\n",(0,N.jsxs)(M.blockquote,{children:["\n",(0,N.jsx)(M.p,{children:"How come it is the only thing that we need?\nHow come such na\xefve thing can be enough?"}),"\n"]}),"\n",(0,N.jsxs)(M.p,{children:["Let's say we perform an insertion into the tree\u2026 We go with the usual and pretty\nprimitive insertion into the binary-search tree and then, if needed, we \u201cfix up\u201d\nbroken invariants. ",(0,N.jsx)(M.em,{children:"How can that be enough?"})," With each insertion and deletion we\nmaintain the invariants, therefore if we break them with one operation, there's\nonly one path on which the invariants were ",(0,N.jsx)(M.em,{children:"felled"}),". If we know that rest of the\ntree is correct, it allows us to fix the issues just by propagating it to the\nroot and ",(0,N.jsx)(M.em,{children:"abusing"})," the siblings (which are, of course, correct red-black\nsubtrees) to fix or at least partially mitigate the issues and propagate them\nfurther."]}),"\n",(0,N.jsx)(M.p,{children:"Let's assume that we do not enforce this rule, you can see how it breaks the\nbalancing of the tree below."}),"\n","\n","\n",(0,N.jsxs)(y,{children:[(0,N.jsx)(n,{value:"enforcing",label:"Enforcing this rule",children:(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{src:i(95229).Z+"#gh-light-mode-only",width:"755",height:"347"}),"\n",(0,N.jsx)(M.img,{src:i(43283).Z+"#gh-dark-mode-only",width:"755",height:"347"})]})}),(0,N.jsx)(n,{value:"omitting",label:"Omitting this rule",children:(0,N.jsxs)(M.p,{children:[(0,N.jsx)(M.img,{src:i(15483).Z+"#gh-light-mode-only",width:"803",height:"443"}),"\n",(0,N.jsx)(M.img,{src:i(52694).Z+"#gh-dark-mode-only",width:"803",height:"443"})]})})]}),"\n",(0,N.jsxs)(M.p,{children:["We can create a ",(0,N.jsx)(M.strong,{children:"big"})," subtree with only red nodes and ",(0,N.jsx)(M.strong,{children:"even"})," when keeping\nthe rest of the rules maintained, it will break the time complexity. It stops us\nfrom \u201chacking\u201d the black height requirement laid by the 5th rule."]}),"\n",(0,N.jsx)(M.h2,{id:"5\xaa-for-each-node-all-simple-paths-from-the-node-to-descendant-leaves-contain-the-same-number-of-black-nodes",children:"5\xaa For each node, all simple paths from the node to descendant leaves contain the same number of black nodes."}),"\n",(0,N.jsx)(M.p,{children:"As it was mentioned, with the 4th rule they hold the balancing of the red-black\ntree."}),"\n",(0,N.jsx)(M.admonition,{type:"tip",children:(0,N.jsxs)(M.p,{children:["An important observation here is the fact that the red-black tree is a\n",(0,N.jsx)(M.strong,{children:"height"}),"-balanced tree."]})}),"\n",(0,N.jsx)(M.p,{children:"Enforcing this rule (together with the 4th rule) keeps the tree balanced:"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsx)(M.li,{children:"4th rule makes sure we can't \u201chack\u201d this requirement."}),"\n",(0,N.jsxs)(M.li,{children:["This rule ensures that we have \u201csimilar\u201d",(0,N.jsx)(M.sup,{children:(0,N.jsx)(M.a,{href:"#user-content-fn-2",id:"user-content-fnref-2","data-footnote-ref":!0,"aria-describedby":"footnote-label",children:"2"})})," length to each of the leaves."]}),"\n"]}),"\n",(0,N.jsxs)(M.admonition,{title:"AVL tree",type:"tip",children:[(0,N.jsxs)(M.p,{children:["You might have heard about an ",(0,N.jsx)(M.em,{children:"AVL tree"})," before. It is the first self-balanced\ntree to be ever introduced and works in a very similar nature as the red-black\ntree, the only difference is that it does not deal with the ",(0,N.jsx)(M.em,{children:"black height"}),", but\nthe height in general."]}),(0,N.jsx)(M.p,{children:"If you were to compare AVL with the red-black tree, you can say that AVL is much\nmore strict while red-black tree can still maintain the same asymptotic time\ncomplexity for the operations, but having more relaxed rules."})]}),"\n",(0,N.jsxs)(M.section,{"data-footnotes":!0,className:"footnotes",children:[(0,N.jsx)(M.h2,{className:"sr-only",id:"footnote-label",children:"Footnotes"}),"\n",(0,N.jsxs)(M.ol,{children:["\n",(0,N.jsxs)(M.li,{id:"user-content-fn-1",children:["\n",(0,N.jsxs)(M.p,{children:["CORMEN, Thomas. Introduction to algorithms. Cambridge, Mass: MIT Press, 2009. isbn 9780262033848. ",(0,N.jsx)(M.a,{href:"#user-content-fnref-1","data-footnote-backref":"","aria-label":"Back to reference 1",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n",(0,N.jsxs)(M.li,{id:"user-content-fn-2",children:["\n",(0,N.jsxs)(M.p,{children:["red nodes still exist ",(0,N.jsx)(M.a,{href:"#user-content-fnref-2","data-footnote-backref":"","aria-label":"Back to reference 2",className:"data-footnote-backref",children:"\u21a9"})]}),"\n"]}),"\n"]}),"\n"]})]})}function u(I={}){const{wrapper:M}={...(0,T.a)(),...I.components};return M?(0,N.jsx)(M,{...I,children:(0,N.jsx)(Y,{...I})}):Y(I)}},39304:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_dark-2917b0f8de62597646b619102f126a53.svg"},25904:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_height_dark-921b2d98d9fe1e579474faf36486f281.svg"},92787:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_height_light-0aff6e7a40a9f601e0dd1114e43e43b1.svg"},33942:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rb_light-9889570d993cf4a78a1bcccfbd76eab4.svg"},43283:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNTY2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNTY2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0iIzFiMWIxZCIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNTYyLC0yNTYgNTYyLDQgLTQsNCIvPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9Mik8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjc5IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjc5IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0xLCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI2NC40MywtMjE4LjgzQzI1NC4yNSwtMjA4Ljk0IDI0MC40OCwtMTk1LjU1IDIyOC45NywtMTg0LjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIzMS40MSwtMTgxLjg1IDIyMS44LC0xNzcuMzggMjI2LjUzLC0xODYuODcgMjMxLjQxLC0xODEuODUiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzUxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9NSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjkzLjU3LC0yMTguODNDMzAzLjc1LC0yMDguOTQgMzE3LjUyLC0xOTUuNTUgMzI5LjAzLC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzMxLjQ3LC0xODYuODcgMzM2LjIsLTE3Ny4zOCAzMjYuNTksLTE4MS44NSAzMzEuNDcsLTE4Ni44NyIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0wLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjA8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0wLCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE4OC4xOSwtMTQ4LjgxQzE3MSwtMTM3LjY3IDE0NS4zOCwtMTIxLjA2IDEyNi4wMSwtMTA4LjUiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTI3Ljg5LC0xMDUuNTYgMTE3LjYsLTEwMy4wNSAxMjQuMDgsLTExMS40MyAxMjcuODksLTEwNS41NiIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTIsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjA3LC0xNDMuN0MyMDcsLTEzNS45OCAyMDcsLTEyNi43MSAyMDcsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMTAuNSwtMTE4LjEgMjA3LC0xMDguMSAyMDMuNSwtMTE4LjEgMjEwLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTQsIHJhbms9MCkgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzNTEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjM1MSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NDwvdGV4dD4KPC9nPgo8IS0tIG5pbDYgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNiAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zNDIuNjUsLTcyLjc2QzMzOC4yOSwtNjQuMjggMzMyLjg1LC01My43MSAzMjcuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzMwLjk5LC00Mi40NCAzMjMuMywtMzUuMTUgMzI0Ljc3LC00NS42NCAzMzAuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBuaWw3IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw3PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDcgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDc8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzU5LjM1LC03Mi43NkMzNjMuNzEsLTY0LjI4IDM2OS4xNSwtNTMuNzEgMzc0LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjM3Ny4yMywtNDUuNjQgMzc4LjcsLTM1LjE1IDM3MS4wMSwtNDIuNDQgMzc3LjIzLC00NS42NCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNDU5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI0NTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjc8L3RleHQ+CjwvZz4KPCEtLSBuaWw4IC0tPgo8ZyBpZD0ibm9kZTE0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjQ1OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDggLS0+CjxnIGlkPSJlZGdlMTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDU5LC03MS43QzQ1OSwtNjMuOTggNDU5LC01NC43MSA0NTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjQ2Mi41LC00Ni4xIDQ1OSwtMzYuMSA0NTUuNSwtNDYuMSA0NjIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI1MzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5IC0tPgo8ZyBpZD0iZWRnZTE0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTQ3My41NywtNzQuODNDNDgzLjc1LC02NC45NCA0OTcuNTIsLTUxLjU1IDUwOS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iNTExLjQ3LC00Mi44NyA1MTYuMiwtMzMuMzggNTA2LjU5LC0zNy44NSA1MTEuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBuaWwyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTk4LjY1LC03Mi43NkMxOTQuMjksLTY0LjI4IDE4OC44NSwtNTMuNzEgMTgzLjk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtNDIuNDQgMTc5LjMsLTM1LjE1IDE4MC43NywtNDUuNjQgMTg2Ljk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNSAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIxNS4zNSwtNzIuNzZDMjE5LjcxLC02NC4yOCAyMjUuMTUsLTUzLjcxIDIzMC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMzMuMjMsLTQ1LjY0IDIzNC43LC0zNS4xNSAyMjcuMDEsLTQyLjQ0IDIzMy4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzUxLC0xNDMuN0MzNTEsLTEzNS45OCAzNTEsLTEyNi43MSAzNTEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNTQuNSwtMTE4LjEgMzUxLC0xMDguMSAzNDcuNSwtMTE4LjEgMzU0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTcsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0zNjkuODEsLTE0OC44MUMzODcsLTEzNy42NyA0MTIuNjIsLTEyMS4wNiA0MzEuOTksLTEwOC41Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSI0MzMuOTIsLTExMS40MyA0NDAuNCwtMTAzLjA1IDQzMC4xMSwtMTA1LjU2IDQzMy45MiwtMTExLjQzIi8+CjwvZz4KPC9nPgo8L3N2Zz4K"},95229:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNTY2cHQiIGhlaWdodD0iMjYwcHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNTY2LjAwIDI2MC4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAyNTYpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMjU2IDU2MiwtMjU2IDU2Miw0IC00LDQiLz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjI3OSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3OSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjY0LjQzLC0yMTguODNDMjU0LjI1LC0yMDguOTQgMjQwLjQ4LC0xOTUuNTUgMjI4Ljk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjMxLjQxLC0xODEuODUgMjIxLjgsLTE3Ny4zOCAyMjYuNTMsLTE4Ni44NyAyMzEuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIzNTEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzNTEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT01LCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5My41NywtMjE4LjgzQzMwMy43NSwtMjA4Ljk0IDMxNy41MiwtMTk1LjU1IDMyOS4wMywtMTg0LjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMzMS40NywtMTg2Ljg3IDMzNi4yLC0xNzcuMzggMzI2LjU5LC0xODEuODUgMzMxLjQ3LC0xODYuODciLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjA8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0wLCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE4OC4xOSwtMTQ4LjgxQzE3MSwtMTM3LjY3IDE0NS4zOCwtMTIxLjA2IDEyNi4wMSwtMTA4LjUiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTI3Ljg5LC0xMDUuNTYgMTE3LjYsLTEwMy4wNSAxMjQuMDgsLTExMS40MyAxMjcuODksLTEwNS41NiIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyMDciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMDcsLTE0My43QzIwNywtMTM1Ljk4IDIwNywtMTI2LjcxIDIwNywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIxMC41LC0xMTguMSAyMDcsLTEwOC4xIDIwMy41LC0xMTguMSAyMTAuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjM1MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzUxIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjQ8L3RleHQ+CjwvZz4KPCEtLSBuaWw2IC0tPgo8ZyBpZD0ibm9kZTEyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjMxNSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDYgLS0+CjxnIGlkPSJlZGdlMTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzQyLjY1LC03Mi43NkMzMzguMjksLTY0LjI4IDMzMi44NSwtNTMuNzEgMzI3Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMzMC45OSwtNDIuNDQgMzIzLjMsLTM1LjE1IDMyNC43NywtNDUuNjQgMzMwLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNyAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNzwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzODciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTQsIHJhbms9MCkmIzQ1OyZndDtuaWw3IC0tPgo8ZyBpZD0iZWRnZTEyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCkmIzQ1OyZndDtuaWw3PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTM1OS4zNSwtNzIuNzZDMzYzLjcxLC02NC4yOCAzNjkuMTUsLTUzLjcxIDM3NC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNzcuMjMsLTQ1LjY0IDM3OC43LC0zNS4xNSAzNzEuMDEsLTQyLjQ0IDM3Ny4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjQ1OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDU5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjc8L3RleHQ+CjwvZz4KPCEtLSBuaWw4IC0tPgo8ZyBpZD0ibm9kZTE0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjQ1OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDggLS0+CjxnIGlkPSJlZGdlMTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0O25pbDg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNDU5LC03MS43QzQ1OSwtNjMuOTggNDU5LC01NC43MSA0NTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQ2Mi41LC00Ni4xIDQ1OSwtMzYuMSA0NTUuNSwtNDYuMSA0NjIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI1MzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5IC0tPgo8ZyBpZD0iZWRnZTE0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQ3My41NywtNzQuODNDNDgzLjc1LC02NC45NCA0OTcuNTIsLTUxLjU1IDUwOS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTExLjQ3LC00Mi44NyA1MTYuMiwtMzMuMzggNTA2LjU5LC0zNy44NSA1MTEuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBuaWwyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gbmlsNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTk4LjY1LC03Mi43NkMxOTQuMjksLTY0LjI4IDE4OC44NSwtNTMuNzEgMTgzLjk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE4Ni45OSwtNDIuNDQgMTc5LjMsLTM1LjE1IDE4MC43NywtNDUuNjQgMTg2Ljk5LC00Mi40NCIvPgo8L2c+CjwhLS0gbmlsNSAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsNTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCkmIzQ1OyZndDtuaWw1PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIxNS4zNSwtNzIuNzZDMjE5LjcxLC02NC4yOCAyMjUuMTUsLTUzLjcxIDIzMC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMzMuMjMsLTQ1LjY0IDIzNC43LC0zNS4xNSAyMjcuMDEsLTQyLjQ0IDIzMy4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzUxLC0xNDMuN0MzNTEsLTEzNS45OCAzNTEsLTEyNi43MSAzNTEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNTQuNSwtMTE4LjEgMzUxLC0xMDguMSAzNDcuNSwtMTE4LjEgMzU0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTcsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0zNjkuODEsLTE0OC44MUMzODcsLTEzNy42NyA0MTIuNjIsLTEyMS4wNiA0MzEuOTksLTEwOC41Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNDMzLjkyLC0xMTEuNDMgNDQwLjQsLTEwMy4wNSA0MzAuMTEsLTEwNS41NiA0MzMuOTIsLTExMS40MyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},52694:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/incorrect_dark-d9c04aed74f7d364c3c3b1855b769ab0.svg"},15483:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiAlMyBQYWdlczogMSAtLT4KPHN2ZyB3aWR0aD0iNjAycHQiIGhlaWdodD0iMzMycHQiCiB2aWV3Qm94PSIwLjAwIDAuMDAgNjAyLjAwIDMzMi4wMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGlkPSJncmFwaDAiIGNsYXNzPSJncmFwaCIgdHJhbnNmb3JtPSJzY2FsZSgxIDEpIHJvdGF0ZSgwKSB0cmFuc2xhdGUoNCAzMjgpIj4KPHRpdGxlPiUzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0id2hpdGUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHBvaW50cz0iLTQsNCAtNCwtMzI4IDU5OCwtMzI4IDU5OCw0IC00LDQiLz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikgLS0+CjxnIGlkPSJub2RlMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjI3OSIgY3k9Ii0zMDYiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3OSIgeT0iLTMwMi4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MzwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIyNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIyNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MywgcmFuaz0yKSYjNDU7Jmd0O05vZGUodmFsdWU9MSwgcmFuaz0xKSAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTEsIHJhbms9MSk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjY3LjAyLC0yODkuNDZDMjYwLjAyLC0yODAuNCAyNTEuMDYsLTI2OC43OSAyNDMuMjEsLTI1OC42MSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNDUuODMsLTI1Ni4yNyAyMzYuOTUsLTI1MC40OSAyNDAuMjksLTI2MC41NSAyNDUuODMsLTI1Ni4yNyIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIzMzMiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzMzMiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTMsIHJhbms9MikmIzQ1OyZndDtOb2RlKHZhbHVlPTUsIHJhbms9MSkgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0zLCByYW5rPTIpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT01LCByYW5rPTEpPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI5MC45OCwtMjg5LjQ2QzI5Ny45OCwtMjgwLjQgMzA2Ljk0LC0yNjguNzkgMzE0Ljc5LC0yNTguNjEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzE3LjcxLC0yNjAuNTUgMzIxLjA1LC0yNTAuNDkgMzEyLjE3LC0yNTYuMjcgMzE3LjcxLC0yNjAuNTUiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MDwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MCwgcmFuaz0wKSAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTEsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTAsIHJhbms9MCk8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjA0Ljc2LC0yMjEuNzVDMTg0LC0yMTAuMjIgMTUxLjUyLC0xOTIuMTggMTI4LjAyLC0xNzkuMTIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTI5LjY0LC0xNzYuMDIgMTE5LjE5LC0xNzQuMjIgMTI2LjI0LC0xODIuMTMgMTI5LjY0LC0xNzYuMDIiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTIsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjI1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjI1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0xLCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT0yLCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9MiwgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMjUsLTIxNS43QzIyNSwtMjA3Ljk4IDIyNSwtMTk4LjcxIDIyNSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyOC41LC0xOTAuMSAyMjUsLTE4MC4xIDIyMS41LC0xOTAuMSAyMjguNSwtMTkwLjEiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTQsIHJhbms9MCk8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjMzMyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMzMyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NDwvdGV4dD4KPC9nPgo8IS0tIG5pbDYgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNiAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT00LCByYW5rPTApJiM0NTsmZ3Q7bmlsNjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjguNjQsLTE0NC4wNUMzMjYuNjEsLTEzNi4xNCAzMjQuMTQsLTEyNi41NCAzMjEuODYsLTExNy42OSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMjUuMiwtMTE2LjYgMzE5LjMyLC0xMDcuNzkgMzE4LjQyLC0xMTguMzUgMzI1LjIsLTExNi42Ii8+CjwvZz4KPCEtLSBuaWw3IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw3PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDcgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NCwgcmFuaz0wKSYjNDU7Jmd0O25pbDc8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzQ0Ljk4LC0xNDUuNDZDMzUxLjk4LC0xMzYuNCAzNjAuOTQsLTEyNC43OSAzNjguNzksLTExNC42MSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNzEuNzEsLTExNi41NSAzNzUuMDUsLTEwNi40OSAzNjYuMTcsLTExMi4yNyAzNzEuNzEsLTExNi41NSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNDU5IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNDU5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj43PC90ZXh0Pgo8L2c+CjwhLS0gbmlsOCAtLT4KPGcgaWQ9Im5vZGUxNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI0NTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw4IC0tPgo8ZyBpZD0iZWRnZTEzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTcsIHJhbms9MCkmIzQ1OyZndDtuaWw4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQ1OSwtMTQzLjdDNDU5LC0xMzUuOTggNDU5LC0xMjYuNzEgNDU5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNDYyLjUsLTExOC4xIDQ1OSwtMTA4LjEgNDU1LjUsLTExOC4xIDQ2Mi41LC0xMTguMSIvPgo8L2c+CjwhLS0gOCAtLT4KPGcgaWQ9Im5vZGUxNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNTMxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI1MzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+ODwvdGV4dD4KPC9nPgo8IS0tIE5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0OzggLS0+CjxnIGlkPSJlZGdlMTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NywgcmFuaz0wKSYjNDU7Jmd0Ozg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTQ3My41NywtMTQ2LjgzQzQ4My43NSwtMTM2Ljk0IDQ5Ny41MiwtMTIzLjU1IDUwOS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNTExLjQ3LC0xMTQuODcgNTE2LjIsLTEwNS4zOCA1MDYuNTksLTEwOS44NSA1MTEuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gbmlsMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWwyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT0wLCByYW5rPTApJiM0NTsmZ3Q7bmlsMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT5Ob2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBuaWwzIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPm5pbDM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTAsIHJhbms9MCkmIzQ1OyZndDtuaWwzIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MCwgcmFuaz0wKSYjNDU7Jmd0O25pbDM8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBuaWw0IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDQgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT0yLCByYW5rPTApJiM0NTsmZ3Q7bmlsNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMTMuMDIsLTE0NS40NkMyMDYuMDIsLTEzNi40IDE5Ny4wNiwtMTI0Ljc5IDE4OS4yMSwtMTE0LjYxIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5MS44MywtMTEyLjI3IDE4Mi45NSwtMTA2LjQ5IDE4Ni4yOSwtMTE2LjU1IDE5MS44MywtMTEyLjI3Ii8+CjwvZz4KPCEtLSBuaWw1IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5uaWw1PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIE5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDUgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9MiwgcmFuaz0wKSYjNDU7Jmd0O25pbDU8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjI5LjM2LC0xNDQuMDVDMjMxLjM5LC0xMzYuMTQgMjMzLjg2LC0xMjYuNTQgMjM2LjE0LC0xMTcuNjkiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjM5LjU4LC0xMTguMzUgMjM4LjY4LC0xMDcuNzkgMjMyLjgsLTExNi42IDIzOS41OCwtMTE4LjM1Ii8+CjwvZz4KPCEtLSBOb2RlKHZhbHVlPTUsIHJhbms9MSkmIzQ1OyZndDtOb2RlKHZhbHVlPTQsIHJhbms9MCkgLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+Tm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT00LCByYW5rPTApPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTMzMywtMjE1LjdDMzMzLC0yMDcuOTggMzMzLC0xOTguNzEgMzMzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzM2LjUsLTE5MC4xIDMzMywtMTgwLjEgMzI5LjUsLTE5MC4xIDMzNi41LC0xOTAuMSIvPgo8L2c+CjwhLS0gTm9kZSh2YWx1ZT01LCByYW5rPTEpJiM0NTsmZ3Q7Tm9kZSh2YWx1ZT03LCByYW5rPTApIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPk5vZGUodmFsdWU9NSwgcmFuaz0xKSYjNDU7Jmd0O05vZGUodmFsdWU9NywgcmFuaz0wKTwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMzUzLjI0LC0yMjEuNzVDMzc0LC0yMTAuMjIgNDA2LjQ4LC0xOTIuMTggNDI5Ljk4LC0xNzkuMTIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSI0MzEuNzYsLTE4Mi4xMyA0MzguODEsLTE3NC4yMiA0MjguMzYsLTE3Ni4wMiA0MzEuNzYsLTE4Mi4xMyIvPgo8L2c+CjwhLS0gbmlsOSAtLT4KPGcgaWQ9Im5vZGUxNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsOTwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI0OTUiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSBuaWwxMCAtLT4KPGcgaWQ9Im5vZGUxNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+bmlsMTA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iNTY3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gOCYjNDU7Jmd0O25pbDkgLS0+CjxnIGlkPSJlZGdlMTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjgmIzQ1OyZndDtuaWw5PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTUyMi42NSwtNzIuNzZDNTE4LjI5LC02NC4yOCA1MTIuODUsLTUzLjcxIDUwNy45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MTAuOTksLTQyLjQ0IDUwMy4zLC0zNS4xNSA1MDQuNzcsLTQ1LjY0IDUxMC45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIDgmIzQ1OyZndDtuaWwxMCAtLT4KPGcgaWQ9ImVkZ2UxNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+OCYjNDU7Jmd0O25pbDEwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTUzOS4zNSwtNzIuNzZDNTQzLjcxLC02NC4yOCA1NDkuMTUsLTUzLjcxIDU1NC4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1NTcuMjMsLTQ1LjY0IDU1OC43LC0zNS4xNSA1NTEuMDEsLTQyLjQ0IDU1Ny4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},91141:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTExMiAxMzAsLTExMiAxMzAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTU0LjY1LC03Mi43NkM1MC4yOSwtNjQuMjggNDQuODUsLTUzLjcxIDM5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjQyLjk5LC00Mi40NCAzNS4zLC0zNS4xNSAzNi43NywtNDUuNjQgNDIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNzEuMzUsLTcyLjc2Qzc1LjcxLC02NC4yOCA4MS4xNSwtNTMuNzEgODYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iODkuMjMsLTQ1LjY0IDkwLjcsLTM1LjE1IDgzLjAxLC00Mi40NCA4OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},4981:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xMTIgMTMwLC0xMTIgMTMwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iNjMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjYzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTU0LjY1LC03Mi43NkM1MC4yOSwtNjQuMjggNDQuODUsLTUzLjcxIDM5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjQyLjk5LC00Mi40NCAzNS4zLC0zNS4xNSAzNi43NywtNDUuNjQgNDIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNNzEuMzUsLTcyLjc2Qzc1LjcxLC02NC4yOCA4MS4xNSwtNTMuNzEgODYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iODkuMjMsLTQ1LjY0IDkwLjcsLTM1LjE1IDgzLjAxLC00Mi40NCA4OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},92172:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAxNjYsLTE4NCAxNjYsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik05MC42NSwtMTQ0Ljc2Qzg2LjI5LC0xMzYuMjggODAuODUsLTEyNS43MSA3NS45NiwtMTE2LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},88573:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMTY2LC0xODQgMTY2LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTkwLjY1LC0xNDQuNzZDODYuMjksLTEzNi4yOCA4MC44NSwtMTI1LjcxIDc1Ljk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},56686:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAyNzQsLTE4NCAyNzQsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTI2LjY1LC0xNDQuNzZDMTIyLjI5LC0xMzYuMjggMTE2Ljg1LC0xMjUuNzEgMTExLjk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTQzLjM1LC0xNDQuNzZDMTQ3LjcxLC0xMzYuMjggMTUzLjE1LC0xMjUuNzEgMTU4LjA0LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},29530:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMjc0LC0xODQgMjc0LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xMjYuNjUsLTE0NC43NkMxMjIuMjksLTEzNi4yOCAxMTYuODUsLTEyNS43MSAxMTEuOTYsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNDMuMzUsLTE0NC43NkMxNDcuNzEsLTEzNi4yOCAxNTMuMTUsLTEyNS43MSAxNTguMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},23961:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7TDE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjA3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIzNC42NSwtNzIuNzZDMjMwLjI5LC02NC4yOCAyMjQuODUsLTUzLjcxIDIxOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMjIuOTksLTQyLjQ0IDIxNS4zLC0zNS4xNSAyMTYuNzcsLTQ1LjY0IDIyMi45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},67290:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtMMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O0wxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},30505:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNDMuMzUsLTIxNi43NkMxNDcuNzEsLTIwOC4yOCAxNTMuMTUsLTE5Ny43MSAxNTguMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE2MS4yMywtMTg5LjY0IDE2Mi43LC0xNzkuMTUgMTU1LjAxLC0xODYuNDQgMTYxLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI3LC03MS43QzI3LC02My45OCAyNywtNTQuNzEgMjcsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMwLjUsLTQ2LjEgMjcsLTM2LjEgMjMuNSwtNDYuMSAzMC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNNDEuNTcsLTc0LjgzQzUxLjc1LC02NC45NCA2NS41MiwtNTEuNTUgNzcuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijc5LjQ3LC00Mi44NyA4NC4yLC0zMy4zOCA3NC41OSwtMzcuODUgNzkuNDcsLTQyLjg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE4PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTg1LjU3LC0xNDYuODNDMTk1Ljc1LC0xMzYuOTQgMjA5LjUyLC0xMjMuNTUgMjIxLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjA3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIzNC42NSwtNzIuNzZDMjMwLjI5LC02NC4yOCAyMjQuODUsLTUzLjcxIDIxOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyMjIuOTksLTQyLjQ0IDIxNS4zLC0zNS4xNSAyMTYuNzcsLTQ1LjY0IDIyMi45OSwtNDIuNDQiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTEuMzUsLTcyLjc2QzI1NS43MSwtNjQuMjggMjYxLjE1LC01My43MSAyNjYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjY5LjIzLC00NS42NCAyNzAuNywtMzUuMTUgMjYzLjAxLC00Mi40NCAyNjkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},11071:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMjYuNjUsLTIxNi43NkMxMjIuMjksLTIwOC4yOCAxMTYuODUsLTE5Ny43MSAxMTEuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjExNC45OSwtMTg2LjQ0IDEwNy4zLC0xNzkuMTUgMTA4Ljc3LC0xODkuNjQgMTE0Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MjwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTQxLjU3LC03NC44M0M1MS43NSwtNjQuOTQgNjUuNTIsLTUxLjU1IDc3LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI3OS40NywtNDIuODcgODQuMiwtMzMuMzggNzQuNTksLTM3Ljg1IDc5LjQ3LC00Mi44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjE4PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTg1LjU3LC0xNDYuODNDMTk1Ljc1LC0xMzYuOTQgMjA5LjUyLC0xMjMuNTUgMjIxLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},62409:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiA0MTgsLTI1NiA0MTgsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTIxNi43NkMxOTQuMjksLTIwOC4yOCAxODguODUsLTE5Ny43MSAxODMuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMTg2LjQ0IDE3OS4zLC0xNzkuMTUgMTgwLjc3LC0xODkuNjQgMTg2Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDUzOTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIxNS4zNSwtMjE2Ljc2QzIxOS43MSwtMjA4LjI4IDIyNS4xNSwtMTk3LjcxIDIzMC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjMzLjIzLC0xODkuNjQgMjM0LjcsLTE3OS4xNSAyMjcuMDEsLTE4Ni40NCAyMzMuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0xNDYuODNDMTQ2LjI1LC0xMzYuOTQgMTMyLjQ4LC0xMjMuNTUgMTIwLjk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjEyMy40MSwtMTA5Ljg1IDExMy44LC0xMDUuMzggMTE4LjUzLC0xMTQuODcgMTIzLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTc0LjgzQzc0LjI1LC02NC45NCA2MC40OCwtNTEuNTUgNDguOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjUxLjQxLC0zNy44NSA0MS44LC0zMy4zOCA0Ni41MywtNDIuODcgNTEuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNOTksLTcxLjdDOTksLTYzLjk4IDk5LC01NC43MSA5OSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTQ2LjEgOTksLTM2LjEgOTUuNSwtNDYuMSAxMDIuNSwtNDYuMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjQzLC0xNDMuN0MyNDMsLTEzNS45OCAyNDMsLTEyNi43MSAyNDMsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjQ2LjUsLTExOC4xIDI0MywtMTA4LjEgMjM5LjUsLTExOC4xIDI0Ni41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjMxNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNTcuNTcsLTE0Ni44M0MyNjcuNzUsLTEzNi45NCAyODEuNTIsLTEyMy41NSAyOTMuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjk1LjQ3LC0xMTQuODcgMzAwLjIsLTEwNS4zOCAyOTAuNTksLTEwOS44NSAyOTUuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMjguNDMsLTc0LjgzQzIxOC4yNSwtNjQuOTQgMjA0LjQ4LC01MS41NSAxOTIuOTcsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMzcuODUgMTg1LjgsLTMzLjM4IDE5MC41MywtNDIuODcgMTk1LjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNDMiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O1IxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjQzLC03MS43QzI0MywtNjMuOTggMjQzLC01NC43MSAyNDMsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI0Ni41LC00Ni4xIDI0MywtMzYuMSAyMzkuNSwtNDYuMSAyNDYuNSwtNDYuMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzMTUiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjgmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTMxNSwtNzEuN0MzMTUsLTYzLjk4IDMxNSwtNTQuNzEgMzE1LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMTguNSwtNDYuMSAzMTUsLTM2LjEgMzExLjUsLTQ2LjEgMzE4LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTc0LjgzQzMzOS43NSwtNjQuOTQgMzUzLjUyLC01MS41NSAzNjUuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjM2Ny40NywtNDIuODcgMzcyLjIsLTMzLjM4IDM2Mi41OSwtMzcuODUgMzY3LjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},42651:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNDE4LC0yNTYgNDE4LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjE2Ljc2QzE5NC4yOSwtMjA4LjI4IDE4OC44NSwtMTk3LjcxIDE4My45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0xODYuNDQgMTc5LjMsLTE3OS4xNSAxODAuNzcsLTE4OS42NCAxODYuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yMTUuMzUsLTIxNi43NkMyMTkuNzEsLTIwOC4yOCAyMjUuMTUsLTE5Ny43MSAyMzAuMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIzMy4yMywtMTg5LjY0IDIzNC43LC0xNzkuMTUgMjI3LjAxLC0xODYuNDQgMjMzLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0xNDYuODNDMTQ2LjI1LC0xMzYuOTQgMTMyLjQ4LC0xMjMuNTUgMTIwLjk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTEwOS44NSAxMTMuOCwtMTA1LjM4IDExOC41MywtMTE0Ljg3IDEyMy40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjQzLC0xNDMuN0MyNDMsLTEzNS45OCAyNDMsLTEyNi43MSAyNDMsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI0Ni41LC0xMTguMSAyNDMsLTEwOC4xIDIzOS41LC0xMTguMSAyNDYuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzMTUiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNTcuNTcsLTE0Ni44M0MyNjcuNzUsLTEzNi45NCAyODEuNTIsLTEyMy41NSAyOTMuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI5NS40NywtMTE0Ljg3IDMwMC4yLC0xMDUuMzggMjkwLjU5LC0xMDkuODUgMjk1LjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0O0wxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjI4LjQzLC03NC44M0MyMTguMjUsLTY0Ljk0IDIwNC40OCwtNTEuNTUgMTkyLjk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxOTUuNDEsLTM3Ljg1IDE4NS44LC0zMy4zOCAxOTAuNTMsLTQyLjg3IDE5NS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjQzIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7UjE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtSMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI0MywtNzEuN0MyNDMsLTYzLjk4IDI0MywtNTQuNzEgMjQzLC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNDYuNSwtNDYuMSAyNDMsLTM2LjEgMjM5LjUsLTQ2LjEgMjQ2LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTcxLjdDMzE1LC02My45OCAzMTUsLTU0LjcxIDMxNSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzE4LjUsLTQ2LjEgMzE1LC0zNi4xIDMxMS41LC00Ni4xIDMxOC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDM2OCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzI5LjU3LC03NC44M0MzMzkuNzUsLTY0Ljk0IDM1My41MiwtNTEuNTUgMzY1LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTQyLjg3IDM3Mi4yLC0zMy4zOCAzNjIuNTksLTM3Ljg1IDM2Ny40NywtNDIuODciLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},65265:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTMyOCA0MTgsLTMyOCA0MTgsNCAtNCw0Ii8+CjwhLS0gMTQwMzk5ODA1OTEwNjcyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMzA2IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTI4OC43NkMxOTQuMjksLTI4MC4yOCAxODguODUsLTI2OS43MSAxODMuOTYsLTI2MC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMjU4LjQ0IDE3OS4zLC0yNTEuMTUgMTgwLjc3LC0yNjEuNjQgMTg2Ljk5LC0yNTguNDQiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjE1LjM1LC0yODguNzZDMjE5LjcxLC0yODAuMjggMjI1LjE1LC0yNjkuNzEgMjMwLjA0LC0yNjAuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjMzLjIzLC0yNjEuNjQgMjM0LjcsLTI1MS4xNSAyMjcuMDEsLTI1OC40NCAyMzMuMjMsLTI2MS42NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDsxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNTYuNDMsLTIxOC44M0MxNDYuMjUsLTIwOC45NCAxMzIuNDgsLTE5NS41NSAxMjAuOTcsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xODEuODUgMTEzLjgsLTE3Ny4zOCAxMTguNTMsLTE4Ni44NyAxMjMuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNDE0MjkyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDQxNDI5MjgmIzQ1OyZndDtSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0yMTUuN0MxNzEsLTIwNy45OCAxNzEsLTE5OC43MSAxNzEsLTE5MC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTkwLjEgMTcxLC0xODAuMSAxNjcuNSwtMTkwLjEgMTc0LjUsLTE5MC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtMMTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O1IxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU2MDMyODAgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtMjE1LjdDMjQzLC0yMDcuOTggMjQzLC0xOTguNzEgMjQzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjQ2LjUsLTE5MC4xIDI0MywtMTgwLjEgMjM5LjUsLTE5MC4xIDI0Ni41LC0xOTAuMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzE1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTM8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNDMsLTE0My43QzI0MywtMTM1Ljk4IDI0MywtMTI2LjcxIDI0MywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwNTQ1NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},67827:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0zMjggNDE4LC0zMjggNDE4LDQgLTQsNCIvPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMzAyLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1OTEwNjcyJiM0NTsmZ3Q7MTQwMzk5ODA0MTQyOTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjg4Ljc2QzE5NC4yOSwtMjgwLjI4IDE4OC44NSwtMjY5LjcxIDE4My45NiwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0yNTguNDQgMTc5LjMsLTI1MS4xNSAxODAuNzcsLTI2MS42NCAxODYuOTksLTI1OC40NCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTkxMDY3MiYjNDU7Jmd0OzE0MDM5OTgwNTYwNTM5MiAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU5MTA2NzImIzQ1OyZndDsxNDAzOTk4MDU2MDUzOTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTIxNS4zNSwtMjg4Ljc2QzIxOS43MSwtMjgwLjI4IDIyNS4xNSwtMjY5LjcxIDIzMC4wNCwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMzMuMjMsLTI2MS42NCAyMzQuNywtMjUxLjE1IDIyNy4wMSwtMjU4LjQ0IDIzMy4yMywtMjYxLjY0Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7MTQwMzk5ODA1NzAwMzA0IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0OzE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0yMTguODNDMTQ2LjI1LC0yMDguOTQgMTMyLjQ4LC0xOTUuNTUgMTIwLjk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTE4MS44NSAxMTMuOCwtMTc3LjM4IDExOC41MywtMTg2Ljg3IDEyMy40MSwtMTgxLjg1Ii8+CjwvZz4KPCEtLSBSMTQwMzk5ODA0MTQyOTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDQxNDI5Mjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNDE0MjkyOCYjNDU7Jmd0O1IxNDAzOTk4MDQxNDI5MjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA0MTQyOTI4JiM0NTsmZ3Q7UjE0MDM5OTgwNDE0MjkyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTIxNS43QzE3MSwtMjA3Ljk4IDE3MSwtMTk4LjcxIDE3MSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xOTAuMSAxNzEsLTE4MC4xIDE2Ny41LC0xOTAuMSAxNzQuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDMwNCYjNDU7Jmd0O0wxNDAzOTk4MDU3MDAzMDQgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDMwNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzA0JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDMwNCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU3MDAzMDQmIzQ1OyZndDtSMTQwMzk5ODA1NzAwMzA0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTQwMzk5ODA1NjA1MzkyJiM0NTsmZ3Q7MTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTYwMzI4MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTIxNS43QzI0MywtMjA3Ljk4IDI0MywtMTk4LjcxIDI0MywtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI0Ni41LC0xOTAuMSAyNDMsLTE4MC4xIDIzOS41LC0xOTAuMSAyNDYuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjMxNSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDUzOTImIzQ1OyZndDsxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTM5MiYjNDU7Jmd0OzE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjAzMjgwIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU2MDMyODA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NjAzMjgwJiM0NTsmZ3Q7TDE0MDM5OTgwNTYwMzI4MCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDtMMTQwMzk5ODA1NjAzMjgwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMzwvdGV4dD4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwMzI4MCYjNDU7Jmd0OzE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDMyODAmIzQ1OyZndDsxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTYgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjE0MDM5OTgwNTYwNTQ1NiYjNDU7Jmd0O0wxNDAzOTk4MDU2MDU0NTY8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjE0MDM5OTgwNTYwNTQ1NiAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjE0MDM5OTgwNTYwNTQ1NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xNDAzOTk4MDU2MDU0NTYmIzQ1OyZndDtSMTQwMzk5ODA1NjA1NDU2PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7TDE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxNDAzOTk4MDU3MDAzNjggLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxNDAzOTk4MDU3MDAzNjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2OCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTQwMzk5ODA1NzAwMzY4JiM0NTsmZ3Q7UjE0MDM5OTgwNTcwMDM2ODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},92213:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_7_dark-48445480725921bc67664cac9f225476.svg"},77002:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_7_light-e3494c1dc9b1d352580427c76be40a01.svg"},18818:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_8_dark-e63a22ae61187d5745542c84a04ded26.svg"},67976:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/br_8_light-10d25c55c1838a408ab5dad21a9da058.svg"},27284:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTExMiAxMzAsLTExMiAxMzAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iNjMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjYzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},62970:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjEzNHB0IiBoZWlnaHQ9IjExNnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDEzNC4wMCAxMTYuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTEyKSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xMTIgMTMwLC0xMTIgMTMwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjYzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI2MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},90170:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAxNjYsLTE4NCAxNjYsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik05MC42NSwtMTQ0Ljc2Qzg2LjI5LC0xMzYuMjggODAuODUsLTEyNS43MSA3NS45NiwtMTE2LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},52600:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjE3MHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDE3MC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMTY2LC0xODQgMTY2LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI2MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTkwLjY1LC0xNDQuNzZDODYuMjksLTEzNi4yOCA4MC44NSwtMTI1LjcxIDc1Ljk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9Ijc4Ljk5LC0xMTQuNDQgNzEuMywtMTA3LjE1IDcyLjc3LC0xMTcuNjQgNzguOTksLTExNC40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjEzNSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xMDcuMzUsLTE0NC43NkMxMTEuNzEsLTEzNi4yOCAxMTcuMTUsLTEyNS43MSAxMjIuMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEyNS4yMywtMTE3LjY0IDEyNi43LC0xMDcuMTUgMTE5LjAxLC0xMTQuNDQgMTI1LjIzLC0xMTcuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik01NC42NSwtNzIuNzZDNTAuMjksLTY0LjI4IDQ0Ljg1LC01My43MSAzOS45NiwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI0Mi45OSwtNDIuNDQgMzUuMywtMzUuMTUgMzYuNzcsLTQ1LjY0IDQyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTcxLjM1LC03Mi43NkM3NS43MSwtNjQuMjggODEuMTUsLTUzLjcxIDg2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9Ijg5LjIzLC00NS42NCA5MC43LC0zNS4xNSA4My4wMSwtNDIuNDQgODkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},16014:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTE4NCAyNzQsLTE4NCAyNzQsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxMzUiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxMzUiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTI2LjY1LC0xNDQuNzZDMTIyLjI5LC0xMzYuMjggMTE2Ljg1LC0xMjUuNzEgMTExLjk2LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTQiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTQzLjM1LC0xNDQuNzZDMTQ3LjcxLC0xMzYuMjggMTUzLjE1LC0xMjUuNzEgMTU4LjA0LC0xMTYuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},69533:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjI3OHB0IiBoZWlnaHQ9IjE4OHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDI3OC4wMCAxODguMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMTg0KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0xODQgMjc0LC0xODQgMjc0LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTM1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xMjYuNjUsLTE0NC43NkMxMjIuMjksLTEzNi4yOCAxMTYuODUsLTEyNS43MSAxMTEuOTYsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTE0Ljk5LC0xMTQuNDQgMTA3LjMsLTEwNy4xNSAxMDguNzcsLTExNy42NCAxMTQuOTksLTExNC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNDMuMzUsLTE0NC43NkMxNDcuNzEsLTEzNi4yOCAxNTMuMTUsLTEyNS43MSAxNTguMDQsLTExNi4yIi8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTYxLjIzLC0xMTcuNjQgMTYyLjcsLTEwNy4xNSAxNTUuMDEsLTExNC40NCAxNjEuMjMsLTExNy42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC03MS43QzE3MSwtNjMuOTggMTcxLC01NC43MSAxNzEsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC00Ni4xIDE3MSwtMzYuMSAxNjcuNSwtNDYuMSAxNzQuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xODUuNTcsLTc0LjgzQzE5NS43NSwtNjQuOTQgMjA5LjUyLC01MS41NSAyMjEuMDMsLTQwLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMy40NywtNDIuODcgMjI4LjIsLTMzLjM4IDIxOC41OSwtMzcuODUgMjIzLjQ3LC00Mi44NyIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},88113:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEyNi42NSwtMjE2Ljc2QzEyMi4yOSwtMjA4LjI4IDExNi44NSwtMTk3LjcxIDExMS45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTE0Ljk5LC0xODYuNDQgMTA3LjMsLTE3OS4xNSAxMDguNzcsLTE4OS42NCAxMTQuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O0wxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xODUuNTcsLTE0Ni44M0MxOTUuNzUsLTEzNi45NCAyMDkuNTIsLTEyMy41NSAyMjEuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjc5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},41456:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjEzNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEzNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7TDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtMMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTg0LjQzLC0xNDYuODNDNzQuMjUsLTEzNi45NCA2MC40OCwtMTIzLjU1IDQ4Ljk3LC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xODUuNTcsLTE0Ni44M0MxOTUuNzUsLTEzNi45NCAyMDkuNTIsLTEyMy41NSAyMjEuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJyZWQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjIyMy40NywtMTE0Ljg3IDIyOC4yLC0xMDUuMzggMjE4LjU5LC0xMDkuODUgMjIzLjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyMDciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlOCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTEuMzUsLTcyLjc2QzI1NS43MSwtNjQuMjggMjYxLjE1LC01My43MSAyNjYuMDQsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjY5LjIzLC00NS42NCAyNzAuNywtMzUuMTUgMjYzLjAxLC00Mi40NCAyNjkuMjMsLTQ1LjY0Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},53779:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiAzMTAsLTI1NiAzMTAsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMTM1IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTM1IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTEyNi42NSwtMjE2Ljc2QzEyMi4yOSwtMjA4LjI4IDExNi44NSwtMTk3LjcxIDExMS45NiwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTE0Ljk5LC0xODYuNDQgMTA3LjMsLTE3OS4xNSAxMDguNzcsLTE4OS42NCAxMTQuOTksLTE4Ni40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTQzLjM1LC0yMTYuNzZDMTQ3LjcxLC0yMDguMjggMTUzLjE1LC0xOTcuNzEgMTU4LjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNjEuMjMsLTE4OS42NCAxNjIuNywtMTc5LjE1IDE1NS4wMSwtMTg2LjQ0IDE2MS4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjciIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJub2RlNiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNywtNzEuN0MyNywtNjMuOTggMjcsLTU0LjcxIDI3LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzMC41LC00Ni4xIDI3LC0zNi4xIDIzLjUsLTQ2LjEgMzAuNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTQxLjU3LC03NC44M0M1MS43NSwtNjQuOTQgNjUuNTIsLTUxLjU1IDc3LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI3OS40NywtNDIuODcgODQuMiwtMzMuMzggNzQuNTksLTM3Ljg1IDc5LjQ3LC00Mi44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGU5IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xODwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMjMuNDcsLTExNC44NyAyMjguMiwtMTA1LjM4IDIxOC41OSwtMTA5Ljg1IDIyMy40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMzQuNjUsLTcyLjc2QzIzMC4yOSwtNjQuMjggMjI0Ljg1LC01My43MSAyMTkuOTYsLTQ0LjIiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjIyLjk5LC00Mi40NCAyMTUuMywtMzUuMTUgMjE2Ljc3LC00NS42NCAyMjIuOTksLTQyLjQ0Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjUxLjM1LC03Mi43NkMyNTUuNzEsLTY0LjI4IDI2MS4xNSwtNTMuNzEgMjY2LjA0LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjI2OS4yMywtNDUuNjQgMjcwLjcsLTM1LjE1IDI2My4wMSwtNDIuNDQgMjY5LjIzLC00NS42NCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=="},96292:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjMxNHB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDMxNC4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgMzEwLC0yNTYgMzEwLDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjEzNSIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjEzNSIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTI2LjY1LC0yMTYuNzZDMTIyLjI5LC0yMDguMjggMTE2Ljg1LC0xOTcuNzEgMTExLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMTQuOTksLTE4Ni40NCAxMDcuMywtMTc5LjE1IDEwOC43NywtMTg5LjY0IDExNC45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjE3MSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE0My4zNSwtMjE2Ljc2QzE0Ny43MSwtMjA4LjI4IDE1My4xNSwtMTk3LjcxIDE1OC4wNCwtMTg4LjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTYxLjIzLC0xODkuNjQgMTYyLjcsLTE3OS4xNSAxNTUuMDEsLTE4Ni40NCAxNjEuMjMsLTE4OS42NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI3IiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iNTEuNDEsLTEwOS44NSA0MS44LC0xMDUuMzggNDYuNTMsLTExNC44NyA1MS40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iOTkiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNOTksLTE0My43Qzk5LC0xMzUuOTggOTksLTEyNi43MSA5OSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjEwMi41LC0xMTguMSA5OSwtMTA4LjEgOTUuNSwtMTE4LjEgMTAyLjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjcsLTcxLjdDMjcsLTYzLjk4IDI3LC01NC43MSAyNywtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzAuNSwtNDYuMSAyNywtMzYuMSAyMy41LC00Ni4xIDMwLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik00MS41NywtNzQuODNDNTEuNzUsLTY0Ljk0IDY1LjUyLC01MS41NSA3Ny4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNzkuNDcsLTQyLjg3IDg0LjIsLTMzLjM4IDc0LjU5LC0zNy44NSA3OS40NywtNDIuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMTcxLC0xNDMuN0MxNzEsLTEzNS45OCAxNzEsLTEyNi43MSAxNzEsLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxNzQuNSwtMTE4LjEgMTcxLC0xMDguMSAxNjcuNSwtMTE4LjEgMTc0LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xODwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE4NS41NywtMTQ2LjgzQzE5NS43NSwtMTM2Ljk0IDIwOS41MiwtMTIzLjU1IDIyMS4wMywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjIzLjQ3LC0xMTQuODcgMjI4LjIsLTEwNS4zOCAyMTguNTksLTEwOS44NSAyMjMuNDcsLTExNC44NyIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyMDciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTkiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTEwIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},59940:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTI1NiA0MTgsLTI1NiA0MTgsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjA3IiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+NTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTk4LjY1LC0yMTYuNzZDMTk0LjI5LC0yMDguMjggMTg4Ljg1LC0xOTcuNzEgMTgzLjk2LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxODYuOTksLTE4Ni40NCAxNzkuMywtMTc5LjE1IDE4MC43NywtMTg5LjY0IDE4Ni45OSwtMTg2LjQ0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQgLS0+CjxnIGlkPSJub2RlNyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgY3g9IjI0MyIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yMTUuMzUsLTIxNi43NkMyMTkuNzEsLTIwOC4yOCAyMjUuMTUsLTE5Ny43MSAyMzAuMDQsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIzMy4yMywtMTg5LjY0IDIzNC43LC0xNzkuMTUgMjI3LjAxLC0xODYuNDQgMjMzLjIzLC0xODkuNjQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGUzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE1Ni40MywtMTQ2LjgzQzE0Ni4yNSwtMTM2Ljk0IDEzMi40OCwtMTIzLjU1IDEyMC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTEwOS44NSAxMTMuOCwtMTA1LjM4IDExOC41MywtMTE0Ljg3IDEyMy40MSwtMTA5Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9ImVkZ2U1IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTE3MSwtMTQzLjdDMTcxLC0xMzUuOTggMTcxLC0xMjYuNzEgMTcxLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTc0LjUsLTExOC4xIDE3MSwtMTA4LjEgMTY3LjUsLTExOC4xIDE3NC41LC0xMTguMSIvPgo8L2c+CjwhLS0gTDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU0IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI3IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UzIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTg0LjQzLC03NC44M0M3NC4yNSwtNjQuOTQgNjAuNDgsLTUxLjU1IDQ4Ljk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMzcuODUgNDEuOCwtMzMuMzggNDYuNTMsLTQyLjg3IDUxLjQxLC0zNy44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTk5LC03MS43Qzk5LC02My45OCA5OSwtNTQuNzEgOTksLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjEwMi41LC00Ni4xIDk5LC0zNi4xIDk1LjUsLTQ2LjEgMTAyLjUsLTQ2LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItODYuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI0Ni41LC0xMTguMSAyNDMsLTEwOC4xIDIzOS41LC0xMTguMSAyNDYuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIzMTUiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjU3LjU3LC0xNDYuODNDMjY3Ljc1LC0xMzYuOTQgMjgxLjUyLC0xMjMuNTUgMjkzLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0icmVkIiBwb2ludHM9IjI5NS40NywtMTE0Ljg3IDMwMC4yLC0xMDUuMzggMjkwLjU5LC0xMDkuODUgMjk1LjQ3LC0xMTQuODciLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIxNzEiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTgiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O0wxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjI4LjQzLC03NC44M0MyMTguMjUsLTY0Ljk0IDIwNC40OCwtNTEuNTUgMTkyLjk3LC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxOTUuNDEsLTM3Ljg1IDE4NS44LC0zMy4zOCAxOTAuNTMsLTQyLjg3IDE5NS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlMTAiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjQzIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtSMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtNzEuN0MyNDMsLTYzLjk4IDI0MywtNTQuNzEgMjQzLC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNDYuNSwtNDYuMSAyNDMsLTM2LjEgMjM5LjUsLTQ2LjEgMjQ2LjUsLTQ2LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTcxLjdDMzE1LC02My45OCAzMTUsLTU0LjcxIDMxNSwtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMzE4LjUsLTQ2LjEgMzE1LC0zNi4xIDMxMS41LC00Ni4xIDMxOC41LC00Ni4xIi8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjM4NyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMzI5LjU3LC03NC44M0MzMzkuNzUsLTY0Ljk0IDM1My41MiwtNTEuNTUgMzY1LjAzLC00MC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTQyLjg3IDM3Mi4yLC0zMy4zOCAzNjIuNTksLTM3Ljg1IDM2Ny40NywtNDIuODciLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},39932:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjI2MHB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAyNjAuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMjU2KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0yNTYgNDE4LC0yNTYgNDE4LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjIwNyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIwNyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+OTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGUyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMTcxIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xOTguNjUsLTIxNi43NkMxOTQuMjksLTIwOC4yOCAxODguODUsLTE5Ny43MSAxODMuOTYsLTE4OC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE4Ni45OSwtMTg2LjQ0IDE3OS4zLC0xNzkuMTUgMTgwLjc3LC0xODkuNjQgMTg2Ljk5LC0xODYuNDQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjE1LjM1LC0yMTYuNzZDMjE5LjcxLC0yMDguMjggMjI1LjE1LC0xOTcuNzEgMjMwLjA0LC0xODguMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyMzMuMjMsLTE4OS42NCAyMzQuNywtMTc5LjE1IDIyNy4wMSwtMTg2LjQ0IDIzMy4yMywtMTg5LjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iOTkiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2UyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTE1Ni40MywtMTQ2LjgzQzE0Ni4yNSwtMTM2Ljk0IDEzMi40OCwtMTIzLjU1IDEyMC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InJlZCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xMDkuODUgMTEzLjgsLTEwNS4zOCAxMTguNTMsLTExNC44NyAxMjMuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTE0My43QzE3MSwtMTM1Ljk4IDE3MSwtMTI2LjcxIDE3MSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xMTguMSAxNzEsLTEwOC4xIDE2Ny41LC0xMTguMSAxNzQuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtNzQuODNDNzQuMjUsLTY0Ljk0IDYwLjQ4LC01MS41NSA0OC45NywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iNTEuNDEsLTM3Ljg1IDQxLjgsLTMzLjM4IDQ2LjUzLC00Mi44NyA1MS40MSwtMzcuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik05OSwtNzEuN0M5OSwtNjMuOTggOTksLTU0LjcxIDk5LC00Ni4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtNDYuMSA5OSwtMzYuMSA5NS41LC00Ni4xIDEwMi41LC00Ni4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJub2RlOCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMjwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U3IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIzMTUiIHk9Ii04Ni4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjU3LjU3LC0xNDYuODNDMjY3Ljc1LC0xMzYuOTQgMjgxLjUyLC0xMjMuNTUgMjkzLjAzLC0xMTIuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyOTUuNDcsLTExNC44NyAzMDAuMiwtMTA1LjM4IDI5MC41OSwtMTA5Ljg1IDI5NS40NywtMTE0Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE4IiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtNzQuODNDMjE4LjI1LC02NC45NCAyMDQuNDgsLTUxLjU1IDE5Mi45NywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTk1LjQxLC0zNy44NSAxODUuOCwtMzMuMzggMTkwLjUzLC00Mi44NyAxOTUuNDEsLTM3Ljg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTEwIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjI0MyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0O1IxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7UjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTcxLjdDMjQzLC02My45OCAyNDMsLTU0LjcxIDI0MywtNDYuMTEiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMjQ2LjUsLTQ2LjEgMjQzLC0zNi4xIDIzOS41LC00Ni4xIDI0Ni41LC00Ni4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEyIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjMxNSIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4NzgyNCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMzE1LC03MS43QzMxNSwtNjMuOTggMzE1LC01NC43MSAzMTUsLTQ2LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC00Ni4xIDMxNSwtMzYuMSAzMTEuNSwtNDYuMSAzMTguNSwtNDYuMSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIzODciIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0iZWRnZTEyIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQmIzQ1OyZndDtSMTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTMyOS41NywtNzQuODNDMzM5Ljc1LC02NC45NCAzNTMuNTIsLTUxLjU1IDM2NS4wMywtNDAuMzYiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzY3LjQ3LC00Mi44NyAzNzIuMiwtMzMuMzggMzYyLjU5LC0zNy44NSAzNjcuNDcsLTQyLjg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},13681:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSIjMWIxYjFkIiBzdHJva2U9InRyYW5zcGFyZW50IiBwb2ludHM9Ii00LDQgLTQsLTMyOCA0MTgsLTMyOCA0MTgsNCAtNCw0Ii8+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2IC0tPgo8ZyBpZD0ibm9kZTEiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIyMDciIGN5PSItMzA2IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyMDciIHk9Ii0zMDIuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9IndoaXRlIj41PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTEiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0xOTguNjUsLTI4OC43NkMxOTQuMjksLTI4MC4yOCAxODguODUsLTI2OS43MSAxODMuOTYsLTI2MC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE4Ni45OSwtMjU4LjQ0IDE3OS4zLC0yNTEuMTUgMTgwLjc3LC0yNjEuNjQgMTg2Ljk5LC0yNTguNDQiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9Im5vZGU3IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgY3g9IjI0MyIgY3k9Ii0yMzQiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTIzMC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjE1PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0iZWRnZTYiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMjE1LjM1LC0yODguNzZDMjE5LjcxLC0yODAuMjggMjI1LjE1LC0yNjkuNzEgMjMwLjA0LC0yNjAuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMjMzLjIzLC0yNjEuNjQgMjM0LjcsLTI1MS4xNSAyMjcuMDEsLTI1OC40NCAyMzMuMjMsLTI2MS42NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iOTkiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI5OSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCIgZmlsbD0id2hpdGUiPjI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDsxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMiIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0xNTYuNDMsLTIxOC44M0MxNDYuMjUsLTIwOC45NCAxMzIuNDgsLTE5NS41NSAxMjAuOTcsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJyZWQiIHBvaW50cz0iMTIzLjQxLC0xODEuODUgMTEzLjgsLTE3Ny4zOCAxMTguNTMsLTE4Ni44NyAxMjMuNDEsLTE4MS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNjA5ODEyOCAtLT4KPGcgaWQ9Im5vZGU2IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjE3MSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzYwOTgxMjgmIzQ1OyZndDtSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0iZWRnZTUiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMTcxLC0yMTUuN0MxNzEsLTIwNy45OCAxNzEsLTE5OC43MSAxNzEsLTE5MC4xMSIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIxNzQuNSwtMTkwLjEgMTcxLC0xODAuMSAxNjcuNSwtMTkwLjEgMTc0LjUsLTE5MC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0ibm9kZTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMjciIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtMMTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTMiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjA8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNODQuNDMsLTE0Ni44M0M3NC4yNSwtMTM2Ljk0IDYwLjQ4LC0xMjMuNTUgNDguOTcsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSI1MS40MSwtMTA5Ljg1IDQxLjgsLTEwNS4zOCA0Ni41MywtMTE0Ljg3IDUxLjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNSIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSI5OSIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O1IxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik05OSwtMTQzLjdDOTksLTEzNS45OCA5OSwtMTI2LjcxIDk5LC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMTAyLjUsLTExOC4xIDk5LC0xMDguMSA5NS41LC0xMTguMSAxMDIuNSwtMTE4LjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9Im5vZGU4IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMjQzIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTI8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU3OTEzMTIgLS0+CjxnIGlkPSJlZGdlNyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDI0JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI0MywtMjE1LjdDMjQzLC0yMDcuOTggMjQzLC0xOTguNzEgMjQzLC0xOTAuMTEiLz4KPHBvbHlnb24gZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0id2hpdGUiIHBvaW50cz0iMjQ2LjUsLTE5MC4xIDI0MywtMTgwLjEgMjM5LjUsLTE5MC4xIDI0Ni41LC0xOTAuMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0IC0tPgo8ZyBpZD0ibm9kZTEzIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBjeD0iMzE1IiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMzE1IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIiBmaWxsPSJ3aGl0ZSI+MTM8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlOSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGQ9Ik0yNDMsLTE0My43QzI0MywtMTM1Ljk4IDI0MywtMTI2LjcxIDI0MywtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTc5MzQ4ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9InRyYW5zcGFyZW50IiBzdHJva2U9IndoaXRlIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJ3aGl0ZSIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},77478:(I,M,i)=>{i.d(M,{Z:()=>N});const N="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuNDMuMCAoMCkKIC0tPgo8IS0tIFRpdGxlOiBSQlRyZWUgUGFnZXM6IDEgLS0+Cjxzdmcgd2lkdGg9IjQyMnB0IiBoZWlnaHQ9IjMzMnB0Igogdmlld0JveD0iMC4wMCAwLjAwIDQyMi4wMCAzMzIuMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZyBpZD0iZ3JhcGgwIiBjbGFzcz0iZ3JhcGgiIHRyYW5zZm9ybT0ic2NhbGUoMSAxKSByb3RhdGUoMCkgdHJhbnNsYXRlKDQgMzI4KSI+Cjx0aXRsZT5SQlRyZWU8L3RpdGxlPgo8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgcG9pbnRzPSItNCw0IC00LC0zMjggNDE4LC0zMjggNDE4LDQgLTQsNCIvPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzY8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iMjA3IiBjeT0iLTMwNiIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjA3IiB5PSItMzAyLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj45PC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIxNzEiIGN5PSItMjM0IiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIxNzEiIHk9Ii0yMzAuMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjU8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlMSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM0MjQ3Mzc2JiM0NTsmZ3Q7MTM5NjYwNDM2MDk4MTI4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTE5OC42NSwtMjg4Ljc2QzE5NC4yOSwtMjgwLjI4IDE4OC44NSwtMjY5LjcxIDE4My45NiwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0iYmxhY2siIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMTg2Ljk5LC0yNTguNDQgMTc5LjMsLTI1MS4xNSAxODAuNzcsLTI2MS42NCAxODYuOTksLTI1OC40NCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkzNDI0IC0tPgo8ZyBpZD0ibm9kZTciIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBjeD0iMjQzIiBjeT0iLTIzNCIgcng9IjI3IiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjQzIiB5PSItMjMwLjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xNTwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNDI0NzM3NiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQyNCAtLT4KPGcgaWQ9ImVkZ2U2IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzQyNDczNzYmIzQ1OyZndDsxMzk2NjA0MzU3OTM0MjQ8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTIxNS4zNSwtMjg4Ljc2QzIxOS43MSwtMjgwLjI4IDIyNS4xNSwtMjY5LjcxIDIzMC4wNCwtMjYwLjIiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyMzMuMjMsLTI2MS42NCAyMzQuNywtMjUxLjE1IDIyNy4wMSwtMjU4LjQ0IDIzMy4yMywtMjYxLjY0Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSI5OSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9Ijk5IiB5PSItMTU4LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4yPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7MTM5NjYwNDM1ODg3NzYwIC0tPgo8ZyBpZD0iZWRnZTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0OzEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBkPSJNMTU2LjQzLC0yMTguODNDMTQ2LjI1LC0yMDguOTQgMTMyLjQ4LC0xOTUuNTUgMTIwLjk3LC0xODQuMzYiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIxMjMuNDEsLTE4MS44NSAxMTMuOCwtMTc3LjM4IDExOC41MywtMTg2Ljg3IDEyMy40MSwtMTgxLjg1Ii8+CjwvZz4KPCEtLSBSMTM5NjYwNDM2MDk4MTI4IC0tPgo8ZyBpZD0ibm9kZTYiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzYwOTgxMjg8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTE2MiIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNjA5ODEyOCYjNDU7Jmd0O1IxMzk2NjA0MzYwOTgxMjggLS0+CjxnIGlkPSJlZGdlNSIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM2MDk4MTI4JiM0NTsmZ3Q7UjEzOTY2MDQzNjA5ODEyODwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0xNzEsLTIxNS43QzE3MSwtMjA3Ljk4IDE3MSwtMTk4LjcxIDE3MSwtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE3NC41LC0xOTAuMSAxNzEsLTE4MC4xIDE2Ny41LC0xOTAuMSAxNzQuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNyIgY3k9Ii05MCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4Nzc2MCYjNDU7Jmd0O0wxMzk2NjA0MzU4ODc3NjAgLS0+CjxnIGlkPSJlZGdlMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7TDEzOTY2MDQzNTg4Nzc2MDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik04NC40MywtMTQ2LjgzQzc0LjI1LC0xMzYuOTQgNjAuNDgsLTEyMy41NSA0OC45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjUxLjQxLC0xMDkuODUgNDEuOCwtMTA1LjM4IDQ2LjUzLC0xMTQuODcgNTEuNDEsLTEwOS44NSIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9Im5vZGU1IiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5SMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9Ijk5IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3NzYwJiM0NTsmZ3Q7UjEzOTY2MDQzNTg4Nzc2MCAtLT4KPGcgaWQ9ImVkZ2U0IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU4ODc3NjAmIzQ1OyZndDtSMTM5NjYwNDM1ODg3NzYwPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTk5LC0xNDMuN0M5OSwtMTM1Ljk4IDk5LC0xMjYuNzEgOTksLTExOC4xMSIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMDIuNSwtMTE4LjEgOTksLTEwOC4xIDk1LjUsLTExOC4xIDEwMi41LC0xMTguMSIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTgiIGNsYXNzPSJub2RlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGN4PSIyNDMiIGN5PSItMTYyIiByeD0iMjciIHJ5PSIxOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNDMiIHk9Ii0xNTguMyIgZm9udC1mYW1pbHk9IidDYXNjYWRpYSBDb2RlIFBMJywgJ0pldEJyYWlucyBNb25vJywgJ0lvc2V2a2EnLCAnRmlyYSBDb2RlJywgJ0hhY2snLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTQuMDAiPjEyPC90ZXh0Pgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkzNDI0JiM0NTsmZ3Q7MTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0iZWRnZTciIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTc5MTMxMjwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNDMsLTIxNS43QzI0MywtMjA3Ljk4IDI0MywtMTk4LjcxIDI0MywtMTkwLjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjI0Ni41LC0xOTAuMSAyNDMsLTE4MC4xIDIzOS41LC0xOTAuMSAyNDYuNSwtMTkwLjEiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9Im5vZGUxMyIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgY3g9IjMxNSIgY3k9Ii0xNjIiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjMxNSIgeT0iLTE1OC4zIiBmb250LWZhbWlseT0iJ0Nhc2NhZGlhIENvZGUgUEwnLCAnSmV0QnJhaW5zIE1vbm8nLCAnSW9zZXZrYScsICdGaXJhIENvZGUnLCAnSGFjaycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNC4wMCI+MTg8L3RleHQ+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0MjQmIzQ1OyZndDsxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJlZGdlMTIiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQyNCYjNDU7Jmd0OzEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0yNTcuNTcsLTIxOC44M0MyNjcuNzUsLTIwOC45NCAyODEuNTIsLTE5NS41NSAyOTMuMDMsLTE4NC4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyOTUuNDcsLTE4Ni44NyAzMDAuMiwtMTc3LjM4IDI5MC41OSwtMTgxLjg1IDI5NS40NywtMTg2Ljg3Ii8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkxMzEyIC0tPgo8ZyBpZD0ibm9kZTkiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU3OTEzMTI8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMTcxIiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1NzkxMzEyJiM0NTsmZ3Q7TDEzOTY2MDQzNTc5MTMxMiAtLT4KPGcgaWQ9ImVkZ2U4IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDtMMTM5NjYwNDM1NzkxMzEyPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyOC40MywtMTQ2LjgzQzIxOC4yNSwtMTM2Ljk0IDIwNC40OCwtMTIzLjU1IDE5Mi45NywtMTEyLjM2Ii8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjE5NS40MSwtMTA5Ljg1IDE4NS44LC0xMDUuMzggMTkwLjUzLC0xMTQuODcgMTk1LjQxLC0xMDkuODUiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMCIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+MTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJyZWQiIGN4PSIyNDMiIGN5PSItOTAiIHJ4PSIyNyIgcnk9IjE4Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI0MyIgeT0iLTg2LjMiIGZvbnQtZmFtaWx5PSInQ2FzY2FkaWEgQ29kZSBQTCcsICdKZXRCcmFpbnMgTW9ubycsICdJb3NldmthJywgJ0ZpcmEgQ29kZScsICdIYWNrJywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE0LjAwIj4xMzwvdGV4dD4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MTMxMiYjNDU7Jmd0OzEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9ImVkZ2U5IiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTEzMTImIzQ1OyZndDsxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgZD0iTTI0MywtMTQzLjdDMjQzLC0xMzUuOTggMjQzLC0xMjYuNzEgMjQzLC0xMTguMTEiLz4KPHBvbHlnb24gZmlsbD0icmVkIiBzdHJva2U9InJlZCIgcG9pbnRzPSIyNDYuNSwtMTE4LjEgMjQzLC0xMDguMSAyMzkuNSwtMTE4LjEgMjQ2LjUsLTExOC4xIi8+CjwvZz4KPCEtLSBMMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0ibm9kZTExIiBjbGFzcz0ibm9kZSI+Cjx0aXRsZT5MMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgY3g9IjIwNyIgY3k9Ii0xOCIgcng9IjI3IiByeT0iMTgiLz4KPC9nPgo8IS0tIDEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODggLS0+CjxnIGlkPSJlZGdlMTAiIGNsYXNzPSJlZGdlIj4KPHRpdGxlPjEzOTY2MDQzNTc5MzQ4OCYjNDU7Jmd0O0wxMzk2NjA0MzU3OTM0ODg8L3RpdGxlPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBkPSJNMjM0LjY1LC03Mi43NkMyMzAuMjksLTY0LjI4IDIyNC44NSwtNTMuNzEgMjE5Ljk2LC00NC4yIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjIyMi45OSwtNDIuNDQgMjE1LjMsLTM1LjE1IDIxNi43NywtNDUuNjQgMjIyLjk5LC00Mi40NCIvPgo8L2c+CjwhLS0gUjEzOTY2MDQzNTc5MzQ4OCAtLT4KPGcgaWQ9Im5vZGUxMiIgY2xhc3M9Im5vZGUiPgo8dGl0bGU+UjEzOTY2MDQzNTc5MzQ4ODwvdGl0bGU+CjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIGN4PSIyNzkiIGN5PSItMTgiIHJ4PSIyNyIgcnk9IjE4Ii8+CjwvZz4KPCEtLSAxMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4IC0tPgo8ZyBpZD0iZWRnZTExIiBjbGFzcz0iZWRnZSI+Cjx0aXRsZT4xMzk2NjA0MzU3OTM0ODgmIzQ1OyZndDtSMTM5NjYwNDM1NzkzNDg4PC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTI1MS4zNSwtNzIuNzZDMjU1LjcxLC02NC4yOCAyNjEuMTUsLTUzLjcxIDI2Ni4wNCwtNDQuMiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIyNjkuMjMsLTQ1LjY0IDI3MC43LC0zNS4xNSAyNjMuMDEsLTQyLjQ0IDI2OS4yMywtNDUuNjQiLz4KPC9nPgo8IS0tIEwxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTQiIGNsYXNzPSJub2RlIj4KPHRpdGxlPkwxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzE1IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxMyIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7TDEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMTUsLTE0My43QzMxNSwtMTM1Ljk4IDMxNSwtMTI2LjcxIDMxNSwtMTE4LjExIi8+Cjxwb2x5Z29uIGZpbGw9ImJsYWNrIiBzdHJva2U9ImJsYWNrIiBwb2ludHM9IjMxOC41LC0xMTguMSAzMTUsLTEwOC4xIDMxMS41LC0xMTguMSAzMTguNSwtMTE4LjEiLz4KPC9nPgo8IS0tIFIxMzk2NjA0MzU4ODc4MjQgLS0+CjxnIGlkPSJub2RlMTUiIGNsYXNzPSJub2RlIj4KPHRpdGxlPlIxMzk2NjA0MzU4ODc4MjQ8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBjeD0iMzg3IiBjeT0iLTkwIiByeD0iMjciIHJ5PSIxOCIvPgo8L2c+CjwhLS0gMTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNCAtLT4KPGcgaWQ9ImVkZ2UxNCIgY2xhc3M9ImVkZ2UiPgo8dGl0bGU+MTM5NjYwNDM1ODg3ODI0JiM0NTsmZ3Q7UjEzOTY2MDQzNTg4NzgyNDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIGQ9Ik0zMjkuNTcsLTE0Ni44M0MzMzkuNzUsLTEzNi45NCAzNTMuNTIsLTEyMy41NSAzNjUuMDMsLTExMi4zNiIvPgo8cG9seWdvbiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzNjcuNDcsLTExNC44NyAzNzIuMiwtMTA1LjM4IDM2Mi41OSwtMTA5Ljg1IDM2Ny40NywtMTE0Ljg3Ii8+CjwvZz4KPC9nPgo8L3N2Zz4K"},20539:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_7_dark-f8796e7eda13a89d198098744b079384.svg"},345:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_7_light-f03b9073d10947b0af1a226ee8e12fa4.svg"},77012:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_8_dark-f1562f7fd1dc9442e496260e74447d03.svg"},380:(I,M,i)=>{i.d(M,{Z:()=>N});const N=i.p+"assets/images/rr_8_light-7531279bbbb44b4e206fe5040b38df4d.svg"},11151:(I,M,i)=>{i.d(M,{Z:()=>z,a:()=>j});var N=i(67294);const T={},g=N.createContext(T);function j(I){const M=N.useContext(g);return N.useMemo((function(){return"function"==typeof I?I(M):{...M,...I}}),[M,I])}function z(I){let M;return M=I.disableParentContext?"function"==typeof I.components?I.components(T):I.components||T:j(I.components),N.createElement(g.Provider,{value:M},I.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.2d5ce640.js b/assets/js/main.2d5ce640.js deleted file mode 100644 index 554d242..0000000 --- a/assets/js/main.2d5ce640.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.2d5ce640.js.LICENSE.txt */ -(self.webpackChunkfi=self.webpackChunkfi||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){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:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"0123bc76":[()=>n.e(3734).then(n.t.bind(n,6554,19)),"~docs/algorithms/tag-algorithms-tags-c-e22.json",6554],"0178f9ad":[()=>n.e(9898).then(n.bind(n,5610)),"@site/algorithms/08-rb-trees/2022-04-05-applications.md",5610],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,4524)),"@theme/BlogTagsListPage",4524],"0220f5fc":[()=>n.e(1378).then(n.t.bind(n,5804,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-blog/blog/plugin-route-context-module-100.json",5804],"0608d96f":[()=>n.e(7568).then(n.t.bind(n,7158,19)),"~blog/blog/blog-tags-vps-843-list.json",7158],"06c4a8fc":[()=>n.e(2125).then(n.t.bind(n,4697,19)),"~docs/algorithms/tag-algorithms-tags-testing-0c4.json",4697],"0bfe45d5":[()=>n.e(4269).then(n.t.bind(n,3847,19)),"~blog/blog/blog-tags-rust-0c9-list.json",3847],"0fcbc6ca":[()=>Promise.all([n.e(532),n.e(1851)]).then(n.bind(n,9900)),"@site/src/pages/talks.tsx",9900],"146d9b84":[()=>n.e(9300).then(n.t.bind(n,6671,19)),"~blog/blog/blog-tags-admin-b05-list.json",6671],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"1535ede8":[()=>n.e(5376).then(n.bind(n,4969)),"@site/c/bonuses/10.md",4969],"16cbc838":[()=>n.e(1494).then(n.t.bind(n,8252,19)),"~docs/algorithms/tag-algorithms-tags-iterative-d5b.json",8252],17896441:[()=>Promise.all([n.e(532),n.e(1325),n.e(7918)]).then(n.bind(n,5154)),"@theme/DocItem",5154],"19d7c045":[()=>n.e(4637).then(n.t.bind(n,7772,19)),"~blog/blog/blog-tags-advent-of-code-49f.json",7772],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,9172)),"@theme/SearchPage",9172],"1a606400":[()=>n.e(494).then(n.t.bind(n,2400,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/algorithms/plugin-route-context-module-100.json",2400],"1acf65cc":[()=>n.e(8529).then(n.bind(n,4568)),"@site/c/pexam/b-garbage_collect.md",4568],"22a175ec":[()=>Promise.all([n.e(532),n.e(6890)]).then(n.bind(n,707)),"@site/src/pages/contributions.tsx",707],"24fecc0a":[()=>n.e(3707).then(n.bind(n,9383)),"@site/algorithms/03-time-complexity/2021-03-31-extend.md",9383],"28d80ff8":[()=>n.e(6435).then(n.t.bind(n,7465,19)),"~docs/algorithms/tag-algorithms-tags-sorting-d73.json",7465],29694455:[()=>n.e(3388).then(n.t.bind(n,9828,19)),"~blog/blog/blog-tags-iterators-977-list.json",9828],"2b89902a":[()=>n.e(6342).then(n.t.bind(n,5443,19)),"~docs/algorithms/tag-algorithms-tags-recursion-1bd.json",5443],"3011a4c0":[()=>n.e(7926).then(n.t.bind(n,1670,19)),"~blog/blog/blog-tags-copr-70b-list.json",1670],"34ab65f4":[()=>n.e(3220).then(n.t.bind(n,8865,19)),"~docs/algorithms/tag-algorithms-tags-postconditions-1f3.json",8865],"354a7b72":[()=>n.e(9414).then(n.bind(n,6617)),"@site/algorithms/10-graphs/2022-04-30-bfs-tree.md",6617],"3720c009":[()=>Promise.all([n.e(532),n.e(3751)]).then(n.bind(n,727)),"@theme/DocTagsListPage",727],"377f3aa1":[()=>n.e(1011).then(n.bind(n,7582)),"@site/blog/aoc-2022/02-week-2.md",7582],"3da4b779":[()=>n.e(2177).then(n.bind(n,8737)),"@site/blog/aoc-2022/04-week-4.md",8737],"4200b1a9":[()=>n.e(866).then(n.t.bind(n,4612,19)),"~blog/blog/blog-archive-80c.json",4612],"45c9e308":[()=>n.e(7084).then(n.bind(n,3181)),"@site/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",3181],"4621632b":[()=>n.e(3519).then(n.t.bind(n,9760,19)),"~blog/blog/blog-tags-cpp-7c7-list.json",9760],"48b268a6":[()=>n.e(1648).then(n.t.bind(n,5067,19)),"~docs/c/category-c-autogeneratedbar-category-bonuses-216.json",5067],"4e546705":[()=>n.e(4327).then(n.t.bind(n,1795,19)),"~docs/c/version-current-metadata-prop-751.json",1795],"4edd2021":[()=>n.e(5975).then(n.t.bind(n,1705,19)),"~blog/blog/blog-tags-cpp-7c7.json",1705],"4f96b16e":[()=>n.e(6306).then(n.bind(n,4693)),"@site/c/pexam/c-cams.md",4693],51624505:[()=>n.e(3731).then(n.bind(n,2609)),"@site/blog/aoc-2022/00-intro.md",2609],"52f2a5bf":[()=>n.e(5430).then(n.t.bind(n,1387,19)),"~blog/blog/blog-tags-red-hat-df4.json",1387],"534d4833":[()=>n.e(9771).then(n.bind(n,3019)),"@site/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",3019],"595c7293":[()=>n.e(5634).then(n.bind(n,8396)),"@site/c/bonuses/08.md",8396],"5ca803d2":[()=>n.e(9173).then(n.t.bind(n,4890,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/c/plugin-route-context-module-100.json",4890],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5fe5d476":[()=>n.e(2619).then(n.bind(n,4457)),"@site/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",4457],"62d847b3":[()=>n.e(8520).then(n.t.bind(n,1901,19)),"~blog/blog/blog-tags-advent-of-code-2022-3db-list.json",1901],"66d5ef6c":[()=>n.e(9228).then(n.t.bind(n,4087,19)),"~blog/blog/blog-tags-tags-4c2.json",4087],"686a7a89":[()=>n.e(728).then(n.t.bind(n,7507,19)),"~docs/algorithms/tag-algorithms-tags-graphs-31d.json",7507],"6875c492":[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"6bc697d0":[()=>n.e(5287).then(n.t.bind(n,8529,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/cpp/plugin-route-context-module-100.json",8529],"6e3cbca1":[()=>n.e(3276).then(n.t.bind(n,9538,19)),"~docs/algorithms/version-current-metadata-prop-751.json",9538],"7052c0bc":[()=>n.e(9731).then(n.bind(n,2286)),"@site/cpp/00-intro.md",2286],"75cccf44":[()=>n.e(4256).then(n.bind(n,8215)),"@site/blog/leetcode/sort-matrix-diagonally.md?truncated=true",8215],"765ea78b":[()=>n.e(3039).then(n.t.bind(n,3010,19)),"~blog/blog/blog-tags-\ud83c\udfed-551.json",3010],"794ef108":[()=>n.e(3803).then(n.bind(n,6427)),"@site/c/00-intro.md",6427],"7e6d325b":[()=>n.e(3184).then(n.t.bind(n,6139,19)),"~docs/cpp/version-current-metadata-prop-751.json",6139],"84d1e0d8":[()=>n.e(1885).then(n.bind(n,9713)),"@site/algorithms/00-intro.md",9713],"86cd1460":[()=>n.e(1235).then(n.t.bind(n,8968,19)),"~blog/blog/blog-tags-leetcode-042.json",8968],"8b1802c5":[()=>n.e(8480).then(n.t.bind(n,832,19)),"~blog/blog/blog-tags-advent-of-code-49f-list.json",832],"8c0e532b":[()=>n.e(822).then(n.t.bind(n,3968,19)),"~blog/blog/blog-tags-vps-843.json",3968],"8d31a880":[()=>n.e(9066).then(n.t.bind(n,2232,19)),"~docs/algorithms/tag-algorithms-tags-python-48f.json",2232],"8e6bb954":[()=>n.e(5775).then(n.t.bind(n,6206,19)),"~docs/algorithms/tag-algorithms-tags-exponential-60a.json",6206],"9287eafd":[()=>n.e(5521).then(n.t.bind(n,716,19)),"~blog/blog/blog-tags-rust-0c9.json",716],"933b95b3":[()=>n.e(3887).then(n.t.bind(n,7405,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-recursion-257.json",7405],"947341b7":[()=>n.e(1145).then(n.t.bind(n,2897,19)),"~docs/algorithms/tag-algorithms-tags-bfs-69f.json",2897],"95b96bb9":[()=>n.e(3561).then(n.t.bind(n,4577,19)),"~blog/blog/blog-post-list-prop-blog.json",4577],"95f41f0b":[()=>n.e(9385).then(n.bind(n,3195)),"@site/blog/aoc-2022/01-week-1.md?truncated=true",3195],"962da50c":[()=>n.e(2264).then(n.t.bind(n,9705,19)),"~docs/c/category-c-autogeneratedbar-category-practice-exams-e97.json",9705],"976c4f3b":[()=>n.e(4562).then(n.t.bind(n,9019,19)),"~docs/algorithms/tag-algorithms-tags-java-6c3.json",9019],"97a42631":[()=>n.e(1464).then(n.t.bind(n,7343,19)),"~docs/algorithms/tags-list-current-prop-15a.json",7343],"9a3dc578":[()=>n.e(655).then(n.t.bind(n,9916,19)),"~docs/algorithms/tag-algorithms-tags-dynamic-array-5d3.json",9916],"9df0e937":[()=>n.e(2210).then(n.t.bind(n,5256,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-graphs-2e2.json",5256],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],a082abd3:[()=>n.e(8786).then(n.t.bind(n,3276,19)),"~blog/blog/blog-tags-admin-b05.json",3276],a4c10cf4:[()=>n.e(4382).then(n.t.bind(n,685,19)),"~docs/algorithms/tag-algorithms-tags-time-complexity-c50.json",685],a6a48ea2:[()=>n.e(3618).then(n.bind(n,1176)),"@site/blog/aoc-2022/02-week-2.md?truncated=true",1176],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],a7098721:[()=>n.e(1050).then(n.t.bind(n,6615,19)),"~blog/blog/blog-c06.json",6615],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a80747a0:[()=>n.e(5824).then(n.t.bind(n,4464,19)),"~blog/blog/blog-tags-advent-of-code-2022-3db.json",4464],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],ab2721d4:[()=>n.e(7755).then(n.bind(n,3037)),"@site/blog/aoc-2022/04-week-4.md?truncated=true",3037],af8b72a7:[()=>n.e(5658).then(n.bind(n,507)),"@site/blog/2023-08-02-copr.md?truncated=true",507],b0291f37:[()=>n.e(6097).then(n.t.bind(n,7085,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],b1288602:[()=>n.e(59).then(n.bind(n,1456)),"@site/c/mr.md",1456],b25fbc58:[()=>n.e(9197).then(n.t.bind(n,5617,19)),"~blog/blog/blog-tags-\ud83c\udfed-551-list.json",5617],b45dccf0:[()=>n.e(9679).then(n.t.bind(n,8296,19)),"~blog/blog/blog-tags-copr-70b.json",8296],b5a32f14:[()=>n.e(2433).then(n.bind(n,1976)),"@site/blog/2023-08-02-copr.md",1976],b8cbf382:[()=>n.e(7438).then(n.t.bind(n,4632,19)),"~docs/algorithms/tag-algorithms-tags-greedy-02f.json",4632],b9f7f5c4:[()=>n.e(9179).then(n.bind(n,6699)),"@site/cpp/environment.md",6699],bb882650:[()=>n.e(8091).then(n.bind(n,6765)),"@site/blog/aoc-2022/03-week-3.md?truncated=true",6765],bb984793:[()=>n.e(6864).then(n.t.bind(n,2505,19)),"~docs/algorithms/tag-algorithms-tags-karel-df7.json",2505],bc0c9d90:[()=>n.e(354).then(n.bind(n,476)),"@site/c/bonuses/04.md",476],bc2d22bc:[()=>n.e(6519).then(n.t.bind(n,428,19)),"~docs/algorithms/tag-algorithms-tags-bottom-up-dp-4f9.json",428],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,3261)),"@site/src/pages/index.js",3261],c580b66a:[()=>n.e(6573).then(n.t.bind(n,5021,19)),"~docs/algorithms/tag-algorithms-tags-top-down-dp-c2f.json",5021],ccc49370:[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],cfa2b263:[()=>n.e(3086).then(n.bind(n,4437)),"@site/blog/leetcode/sort-matrix-diagonally.md",4437],d05e838c:[()=>n.e(6544).then(n.bind(n,3004)),"@site/c/bonuses/05-06.md",3004],d1aceb2e:[()=>n.e(1353).then(n.bind(n,1466)),"@site/algorithms/04-recursion/2022-11-29-karel-1.md",1466],d255bd7f:[()=>n.e(6292).then(n.t.bind(n,341,19)),"~docs/algorithms/tag-algorithms-tags-red-black-trees-c61.json",341],d309b5b1:[()=>n.e(8908).then(n.t.bind(n,6102,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-algorithms-and-correctness-d51.json",6102],d4b1e057:[()=>n.e(1492).then(n.t.bind(n,2842,19)),"~docs/algorithms/tag-algorithms-tags-balanced-trees-b3e.json",2842],d57b4369:[()=>n.e(6179).then(n.t.bind(n,2715,19)),"~docs/algorithms/tag-algorithms-tags-csharp-d1d.json",2715],d675395f:[()=>n.e(2741).then(n.t.bind(n,5745,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],d79dd549:[()=>n.e(5169).then(n.t.bind(n,9261,19)),"~blog/blog/blog-tags-red-hat-df4-list.json",9261],d7f7fb17:[()=>n.e(1171).then(n.bind(n,3455)),"@site/blog/aoc-2022/00-intro.md?truncated=true",3455],dd841e73:[()=>n.e(2482).then(n.t.bind(n,155,19)),"~docs/algorithms/tag-algorithms-tags-dynamic-programming-3e6.json",155],ddc7679f:[()=>n.e(569).then(n.bind(n,4322)),"@site/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",4322],dead8108:[()=>n.e(8807).then(n.bind(n,1431)),"@site/c/bonuses/03.md",1431],decbf9d1:[()=>n.e(2445).then(n.t.bind(n,8876,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-asymptotic-notation-and-time-complexity-e0d.json",8876],df0885f0:[()=>n.e(4343).then(n.t.bind(n,4175,19)),"~docs/algorithms/tag-algorithms-tags-iterators-13a.json",4175],df203c0f:[()=>Promise.all([n.e(532),n.e(9924)]).then(n.bind(n,491)),"@theme/DocTagDocListPage",491],dff2ebad:[()=>n.e(146).then(n.bind(n,2492)),"@site/blog/aoc-2022/01-week-1.md",2492],e1d2ae23:[()=>n.e(1475).then(n.t.bind(n,6302,19)),"~docs/algorithms/tag-algorithms-tags-applications-020.json",6302],e31003e9:[()=>n.e(1960).then(n.t.bind(n,1695,19)),"~docs/cpp/category-cpp-autogeneratedbar-category-exceptions-and-raii-6e9.json",1695],e89da83e:[()=>n.e(8757).then(n.t.bind(n,7416,19)),"~blog/blog/blog-tags-leetcode-042-list.json",7416],eba2374c:[()=>n.e(8387).then(n.t.bind(n,7662,19)),"~docs/algorithms/tag-algorithms-tags-backtracking-bb2.json",7662],f48be158:[()=>n.e(4064).then(n.bind(n,2326)),"@site/blog/aoc-2022/03-week-3.md",2326],fb4361d3:[()=>n.e(6327).then(n.t.bind(n,9631,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-red-black-trees-d8a.json",9631],ff472cd9:[()=>n.e(8643).then(n.t.bind(n,7122,19)),"~blog/blog/blog-tags-iterators-977.json",7122],ff82dde7:[()=>Promise.all([n.e(532),n.e(8472)]).then(n.bind(n,158)),"@site/algorithms/08-rb-trees/2023-06-10-rules.md",158]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("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%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("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",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],g=(0,c.Z)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));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 i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/blog/",component:d("/blog/","608"),exact:!0},{path:"/blog/2023/08/02/copr/",component:d("/blog/2023/08/02/copr/","69d"),exact:!0},{path:"/blog/aoc-2022/1st-week/",component:d("/blog/aoc-2022/1st-week/","df4"),exact:!0},{path:"/blog/aoc-2022/2nd-week/",component:d("/blog/aoc-2022/2nd-week/","783"),exact:!0},{path:"/blog/aoc-2022/3rd-week/",component:d("/blog/aoc-2022/3rd-week/","7c5"),exact:!0},{path:"/blog/aoc-2022/4th-week/",component:d("/blog/aoc-2022/4th-week/","1ac"),exact:!0},{path:"/blog/aoc-2022/intro/",component:d("/blog/aoc-2022/intro/","ada"),exact:!0},{path:"/blog/archive/",component:d("/blog/archive/","22d"),exact:!0},{path:"/blog/leetcode/sort-diagonally/",component:d("/blog/leetcode/sort-diagonally/","d97"),exact:!0},{path:"/blog/tags/",component:d("/blog/tags/","f23"),exact:!0},{path:"/blog/tags/\ud83c\udfed/",component:d("/blog/tags/\ud83c\udfed/","ffd"),exact:!0},{path:"/blog/tags/admin/",component:d("/blog/tags/admin/","d3a"),exact:!0},{path:"/blog/tags/advent-of-code-2022/",component:d("/blog/tags/advent-of-code-2022/","7bd"),exact:!0},{path:"/blog/tags/advent-of-code/",component:d("/blog/tags/advent-of-code/","313"),exact:!0},{path:"/blog/tags/copr/",component:d("/blog/tags/copr/","959"),exact:!0},{path:"/blog/tags/cpp/",component:d("/blog/tags/cpp/","770"),exact:!0},{path:"/blog/tags/iterators/",component:d("/blog/tags/iterators/","2eb"),exact:!0},{path:"/blog/tags/leetcode/",component:d("/blog/tags/leetcode/","e31"),exact:!0},{path:"/blog/tags/red-hat/",component:d("/blog/tags/red-hat/","a58"),exact:!0},{path:"/blog/tags/rust/",component:d("/blog/tags/rust/","281"),exact:!0},{path:"/blog/tags/vps/",component:d("/blog/tags/vps/","1b8"),exact:!0},{path:"/contributions/",component:d("/contributions/","541"),exact:!0},{path:"/search/",component:d("/search/","c7b"),exact:!0},{path:"/talks/",component:d("/talks/","819"),exact:!0},{path:"/algorithms/",component:d("/algorithms/","67b"),routes:[{path:"/algorithms/",component:d("/algorithms/","96e"),routes:[{path:"/algorithms/tags/",component:d("/algorithms/tags/","bb8"),exact:!0},{path:"/algorithms/tags/applications/",component:d("/algorithms/tags/applications/","b32"),exact:!0},{path:"/algorithms/tags/backtracking/",component:d("/algorithms/tags/backtracking/","e2d"),exact:!0},{path:"/algorithms/tags/balanced-trees/",component:d("/algorithms/tags/balanced-trees/","591"),exact:!0},{path:"/algorithms/tags/bfs/",component:d("/algorithms/tags/bfs/","334"),exact:!0},{path:"/algorithms/tags/bottom-up-dp/",component:d("/algorithms/tags/bottom-up-dp/","9e5"),exact:!0},{path:"/algorithms/tags/c/",component:d("/algorithms/tags/c/","cc5"),exact:!0},{path:"/algorithms/tags/csharp/",component:d("/algorithms/tags/csharp/","7a9"),exact:!0},{path:"/algorithms/tags/dynamic-array/",component:d("/algorithms/tags/dynamic-array/","00e"),exact:!0},{path:"/algorithms/tags/dynamic-programming/",component:d("/algorithms/tags/dynamic-programming/","f82"),exact:!0},{path:"/algorithms/tags/exponential/",component:d("/algorithms/tags/exponential/","a74"),exact:!0},{path:"/algorithms/tags/graphs/",component:d("/algorithms/tags/graphs/","d5b"),exact:!0},{path:"/algorithms/tags/greedy/",component:d("/algorithms/tags/greedy/","079"),exact:!0},{path:"/algorithms/tags/iterative/",component:d("/algorithms/tags/iterative/","783"),exact:!0},{path:"/algorithms/tags/iterators/",component:d("/algorithms/tags/iterators/","1bc"),exact:!0},{path:"/algorithms/tags/java/",component:d("/algorithms/tags/java/","2b4"),exact:!0},{path:"/algorithms/tags/karel/",component:d("/algorithms/tags/karel/","79f"),exact:!0},{path:"/algorithms/tags/postconditions/",component:d("/algorithms/tags/postconditions/","a27"),exact:!0},{path:"/algorithms/tags/python/",component:d("/algorithms/tags/python/","eb2"),exact:!0},{path:"/algorithms/tags/recursion/",component:d("/algorithms/tags/recursion/","2b0"),exact:!0},{path:"/algorithms/tags/red-black-trees/",component:d("/algorithms/tags/red-black-trees/","9ca"),exact:!0},{path:"/algorithms/tags/sorting/",component:d("/algorithms/tags/sorting/","7ca"),exact:!0},{path:"/algorithms/tags/testing/",component:d("/algorithms/tags/testing/","2af"),exact:!0},{path:"/algorithms/tags/time-complexity/",component:d("/algorithms/tags/time-complexity/","2d3"),exact:!0},{path:"/algorithms/tags/top-down-dp/",component:d("/algorithms/tags/top-down-dp/","779"),exact:!0},{path:"/algorithms/",component:d("/algorithms/","2a9"),routes:[{path:"/algorithms/",component:d("/algorithms/","9b0"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/algorithms-correctness/postcondition-ambiguity/",component:d("/algorithms/algorithms-correctness/postcondition-ambiguity/","c18"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/algorithms-and-correctness/",component:d("/algorithms/category/algorithms-and-correctness/","ea2"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/asymptotic-notation-and-time-complexity/",component:d("/algorithms/category/asymptotic-notation-and-time-complexity/","fba"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/graphs/",component:d("/algorithms/category/graphs/","a92"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/recursion/",component:d("/algorithms/category/recursion/","61f"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/red-black-trees/",component:d("/algorithms/category/red-black-trees/","0c0"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/graphs/bfs-tree/",component:d("/algorithms/graphs/bfs-tree/","2fb"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/graphs/iterative-and-iterators/",component:d("/algorithms/graphs/iterative-and-iterators/","bfd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/rb-trees/applications/",component:d("/algorithms/rb-trees/applications/","46a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/rb-trees/rules/",component:d("/algorithms/rb-trees/rules/","21a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/recursion/karel-1/",component:d("/algorithms/recursion/karel-1/","600"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/recursion/pyramid-slide-down/",component:d("/algorithms/recursion/pyramid-slide-down/","947"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/time-complexity/extend/",component:d("/algorithms/time-complexity/extend/","250"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/c/",component:d("/c/","dae"),routes:[{path:"/c/",component:d("/c/","fc8"),routes:[{path:"/c/",component:d("/c/","1c4"),routes:[{path:"/c/",component:d("/c/","a0f"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-03/",component:d("/c/bonuses/seminar-03/","aaa"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-04/",component:d("/c/bonuses/seminar-04/","ffe"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-05-06/",component:d("/c/bonuses/seminar-05-06/","4cd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-08/",component:d("/c/bonuses/seminar-08/","09a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-10/",component:d("/c/bonuses/seminar-10/","b9e"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/category/bonuses/",component:d("/c/category/bonuses/","17e"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/category/practice-exams/",component:d("/c/category/practice-exams/","009"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/mr/",component:d("/c/mr/","4c5"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/pexam/cams/",component:d("/c/pexam/cams/","a10"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/pexam/garbage_collect/",component:d("/c/pexam/garbage_collect/","44e"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/cpp/",component:d("/cpp/","269"),routes:[{path:"/cpp/",component:d("/cpp/","187"),routes:[{path:"/cpp/",component:d("/cpp/","102"),routes:[{path:"/cpp/",component:d("/cpp/","fcd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/category/exceptions-and-raii/",component:d("/cpp/category/exceptions-and-raii/","cfa"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/environment/",component:d("/cpp/environment/","e0b"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/exceptions-and-raii/placeholders/",component:d("/cpp/exceptions-and-raii/placeholders/","9b3"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/",component:d("/","dfb"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(7439),n(7800)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var g=n(5742),m=n(2263),h=n(4996),b=n(6668),y=n(833),v=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(g.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,h.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(g.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function A(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),j=n(8940),L=n(469);function P(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 a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,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=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?P("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=P("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(0,p.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const F=I,M="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" 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="${B}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${B}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,m.Z)();return(0,p.jsx)(p.Fragment,{children:!s.Z.canUseDOM&&(0,p.jsx)(g.Z,{children:(0,p.jsx)("script",{children:z(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?(0,p.jsx)($,{}):null}function Z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,m.Z)(),o=(0,h.Z)(e),{htmlLang:i,direction:s}=a[r];return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var H=n(4763),V=n(2389);function W(){const e=(0,V.Z)();return(0,p.jsx)(g.Z,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function G(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return(0,p.jsx)(H.Z,{children:(0,p.jsx)(j.M,{children:(0,p.jsxs)(N.t,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(Z,{}),(0,p.jsx)(C,{}),(0,p.jsx)(U,{}),(0,p.jsx)(F,{location:A(t),children:e})]}),(0,p.jsx)(W,{})]})})})}var q=n(6887);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}: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 Y=n(9670);const Q=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};O(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"cpp":{"path":"/cpp","versions":[{"name":"current","label":"Next","isLast":true,"path":"/cpp","mainDocId":"cpp-intro","docs":[{"id":"cpp-intro","path":"/cpp/","sidebar":"autogeneratedBar"},{"id":"environment","path":"/cpp/environment","sidebar":"autogeneratedBar"},{"id":"exceptions-and-raii/2023-11-24-placeholders","path":"/cpp/exceptions-and-raii/placeholders","sidebar":"autogeneratedBar"},{"id":"/category/exceptions-and-raii","path":"/cpp/category/exceptions-and-raii","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/cpp/","label":"cpp-intro"}}}}],"breadcrumbs":true},"c":{"path":"/c","versions":[{"name":"current","label":"Next","isLast":true,"path":"/c","mainDocId":"c-intro","docs":[{"id":"bonuses/seminar-03","path":"/c/bonuses/seminar-03","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-04","path":"/c/bonuses/seminar-04","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-05-06","path":"/c/bonuses/seminar-05-06","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-08","path":"/c/bonuses/seminar-08","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-10","path":"/c/bonuses/seminar-10","sidebar":"autogeneratedBar"},{"id":"c-intro","path":"/c/","sidebar":"autogeneratedBar"},{"id":"mr","path":"/c/mr","sidebar":"autogeneratedBar"},{"id":"pexam/b-garbage_collect","path":"/c/pexam/garbage_collect","sidebar":"autogeneratedBar"},{"id":"pexam/c-cams","path":"/c/pexam/cams","sidebar":"autogeneratedBar"},{"id":"/category/bonuses","path":"/c/category/bonuses","sidebar":"autogeneratedBar"},{"id":"/category/practice-exams","path":"/c/category/practice-exams","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/c/","label":"c-intro"}}}}],"breadcrumbs":true},"algorithms":{"path":"/algorithms","versions":[{"name":"current","label":"Next","isLast":true,"path":"/algorithms","mainDocId":"algorithms-intro","docs":[{"id":"algorithms-correctness/postcondition-ambiguity","path":"/algorithms/algorithms-correctness/postcondition-ambiguity","sidebar":"autogeneratedBar"},{"id":"algorithms-intro","path":"/algorithms/","sidebar":"autogeneratedBar"},{"id":"graphs/bfs-tree","path":"/algorithms/graphs/bfs-tree","sidebar":"autogeneratedBar"},{"id":"graphs/iterative-and-iterators","path":"/algorithms/graphs/iterative-and-iterators","sidebar":"autogeneratedBar"},{"id":"rb-trees/applications","path":"/algorithms/rb-trees/applications","sidebar":"autogeneratedBar"},{"id":"rb-trees/rules","path":"/algorithms/rb-trees/rules","sidebar":"autogeneratedBar"},{"id":"recursion/karel-1","path":"/algorithms/recursion/karel-1","sidebar":"autogeneratedBar"},{"id":"recursion/pyramid-slide-down","path":"/algorithms/recursion/pyramid-slide-down","sidebar":"autogeneratedBar"},{"id":"time-complexity/extend","path":"/algorithms/time-complexity/extend","sidebar":"autogeneratedBar"},{"id":"/category/algorithms-and-correctness","path":"/algorithms/category/algorithms-and-correctness","sidebar":"autogeneratedBar"},{"id":"/category/asymptotic-notation-and-time-complexity","path":"/algorithms/category/asymptotic-notation-and-time-complexity","sidebar":"autogeneratedBar"},{"id":"/category/recursion","path":"/algorithms/category/recursion","sidebar":"autogeneratedBar"},{"id":"/category/red-black-trees","path":"/algorithms/category/red-black-trees","sidebar":"autogeneratedBar"},{"id":"/category/graphs","path":"/algorithms/category/graphs","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/algorithms/","label":"algorithms-intro"}}}}],"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 s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.0.0"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.0.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.0.0"}}}');var c=n(5893);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(8207),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,s.Z)(_),C=_?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&E&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),j=n?a.OL:a.rU,L=l.Z.canUseIntersectionObserver,P=(0,r.useRef)(),R=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!L&&E&&null!=T&&window.docusaurus.prefetch(T),()=>{L&&P.current&&P.current.disconnect()})),[P,T,L,E]);const O=T?.startsWith("#")??!1,I=!T||!E||O;return I||h||x.collectLink(T),I?(0,c.jsx)("a",{ref:S,href:T,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(j,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{S.current=e,L&&e&&E&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),P.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:g}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=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 i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=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 i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(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,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>g,_r:()=>d,Jo:()=>y,zh:()=>p,yW:()=>h,gB:()=>m});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=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})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&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 o}(t,n,e)}function g(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function m(e){return p(e).versions}function h(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return c(t,n)}function y(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(4965),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(218)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},7955:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6010),a=n(5999),o=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,o.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("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"})})}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Tt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,l.I)({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 m(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(5281),b=n(9727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var w=n(6668),k=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),o&&(0,u.jsx)(_,{onClick:n,className:T.announcementBarClose})]})}var N=n(3163),j=n(2466);var L=n(902),P=n(3102);const R=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,P.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,L.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(R.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(R);if(!e)throw new L.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var D=n(2949),B=n(2389);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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 $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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 U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.Z)(),s=(0,l.I)({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"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(Z),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,D.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var G=n(1327);function q(){return(0,u.jsx)(G.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,N.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({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(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(q,{}),(0,u.jsx)(W,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),g=o&&a&&!(0,J.Z)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,g&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Q.Z,{href:l?f:a,...c,...m}):(0,u.jsx)(Q.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!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)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ze,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ze,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var fe=n(4711);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("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 me="iconLanguage_nlXk";function he(){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 be=n(830),ye=["translations"];function ve(){return ve=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},ve.apply(this,arguments)}function we(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,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){s=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(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 ke(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 ke(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 xe(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Se="Ctrl";var _e=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=xe(e,ye),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=we((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(Se))}),[]),r.createElement("button",ve({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(he,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ee=n(5742),Ce=n(6177),Te=n(239),Ae=n(3320);var Ne=n(3935);const je={button:{buttonText:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.I)({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,l.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.I)({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,l.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.I)({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,l.I)({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,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Le=null;function Pe(e){let{hit:t,children:n}=e;return(0,u.jsx)(Q.Z,{to:t.url,children:n})}function Re(e){let{state:t,onClose:n}=e;const r=(0,Ce.M)();return(0,u.jsx)(Q.Z,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Oe(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),l=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},g=(0,s.k6)(),m=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Le?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Le=t}))),[]),x=(0,r.useCallback)((()=>{k().then((()=>{m.current=document.createElement("div"),document.body.insertBefore(m.current,document.body.firstChild),y(!0)}))}),[k,y]),S=(0,r.useCallback)((()=>{y(!1),m.current?.remove()}),[y]),_=(0,r.useCallback)((e=>{k().then((()=>{y(!0),w(e.key)}))}),[k,y,w]),E=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:g.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>(0,u.jsx)(Re,{...e,onClose:S})),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(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?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:x,onClose:S,onInput:_,searchButtonRef:h}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ee.Z,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(_e,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:x,ref:h,translations:je.button}),b&&Le&&m.current&&(0,Ne.createPortal)((0,u.jsx)(Le,{onClose:S,initialScrollY:window.scrollY,initialQuery:v,navigator:E,transformItems:C,hitComponent:Pe,transformSearchClient:A,...o.searchPagePath&&{resultsFooterComponent:T},...o,searchParameters:f,placeholder:je.placeholder,translations:je.modal}),m.current)]})}function Ie(){const{siteConfig:e}=(0,le.Z)();return(0,u.jsx)(Oe,{...e.themeConfig.algolia})}const Fe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Me(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.Z)(n,Fe.navbarSearchContainer),children:t})}var De=n(143),Be=n(3438);var ze=n(373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ue={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,fe.l)(),{search:f,hash:g}=(0,s.TH)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:me}),h]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Me,{className:n,children:(0,u.jsx)(Ie,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,De.Iw)(r),i=(0,Be.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,De.Iw)(r),i=(0,Be.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Be.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,De.Iw)(n),f=(0,De.gB)(n),{savePreferredVersionName:g}=(0,ze.J)(n),m=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...o],h=(0,Be.lO)(n)[0],b=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&m.length>1?void 0:$e(h).path;return m.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:b,to:y,items:m,isActive:r?()=>!1:void 0})}};function Ze(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ue[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function He(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ze,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ve(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{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)",children:"\u2190 Back to main menu"})})}function We(){const e=0===(0,w.L)().navbar.items.length,t=F();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ve,{onClick:()=>t.hide()}),t.content]})}function Ge(){const e=(0,N.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?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(We,{})}):null}const qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[qe.navbarHideable,!d&&qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ke,{onClick:i.toggle}),(0,u.jsx)(Ge,{})]})}var Qe=n(9690);const Xe="right";function Je(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function et(){const{toggle:e,shown:t}=(0,N.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({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",children:(0,u.jsx)(Je,{})})}const tt={colorModeToggle:"colorModeToggle_DEke"};function nt(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Qe.QW,{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}),children:(0,u.jsx)(Ze,{...e})},t)))})}function rt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function at(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Xe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(rt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(et,{}),(0,u.jsx)(q,{}),(0,u.jsx)(nt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(nt,{items:r}),(0,u.jsx)(W,{className:tt.colorModeToggle}),!a&&(0,u.jsx)(Me,{children:(0,u.jsx)(Ie,{})})]})})}function ot(){return(0,u.jsx)(Ye,{children:(0,u.jsx)(at,{})})}function it(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Q.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function st(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(it,{item:t})},t.href??t.to)}function lt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(st,{item:e},t)))})]})}function ct(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(lt,{column:e},t)))})}function ut(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function dt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(it,{item:t})}function pt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(dt,{item:e}),t.length!==n+1&&(0,u.jsx)(ut,{})]},n)))})})}function ft(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(ct,{columns:t}):(0,u.jsx)(pt,{links:t})}var gt=n(9965);const mt={footerLogoLink:"footerLogoLink_BH7S"};function ht(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(gt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function bt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Q.Z,{href:t.href,className:mt.footerLogoLink,target:t.target,children:(0,u.jsx)(ht,{logo:t})}):(0,u.jsx)(ht,{logo:t})}function yt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function vt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function wt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(vt,{style:a,links:n&&n.length>0&&(0,u.jsx)(ft,{links:n}),logo:r&&(0,u.jsx)(bt,{logo:r}),copyright:t&&(0,u.jsx)(yt,{copyright:t})})}const kt=r.memo(wt),xt=(0,L.Qc)([D.S,k.pl,j.OC,ze.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(P.n2,{children:(0,u.jsx)(N.M,{children:(0,u.jsx)(O,{children:t})})})}]);function St(e){let{children:t}=e;return(0,u.jsx)(xt,{children:t})}var _t=n(7955);function Et(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(_t.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Qe.Cw,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Qe.aG,{error:t})})]})})})}const Ct={mainWrapper:"mainWrapper_z2l0"};function Tt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(St,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(ot,{}),(0,u.jsx)("div",{id:d,className:(0,a.Z)(h.k.wrapper.main,Ct.mainWrapper,r),children:(0,u.jsx)(o.Z,{fallback:e=>(0,u.jsx)(Et,{...e}),children:t})}),!n&&(0,u.jsx)(kt,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),g=n?"":t,m=s?.alt??g;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),a=n(6010),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,o.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function g(e){if(!a.Z.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(m,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:m;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>g});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.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!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(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||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b,Oh:()=>w});var r=n(7294),a=n(143),o=n(9935),i=n(6668),s=n(3438),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const g=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return(0,u.jsx)(g.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(h,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(g);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a._r)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??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:()=>c,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)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:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),a=n(2263),o=n(1980);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(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",unlistedBanner:"theme-unlisted-banner",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:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{LM:()=>g,MN:()=>T,SN:()=>C,_F:()=>y,cE:()=>p,f:()=>w,jA:()=>m,lO:()=>S,oz:()=>_,s1:()=>x,vY:()=>E,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(143),s=n(373),l=n(4477),c=n(1116),u=n(7392),d=n(8596);const p=!!i._r;function f(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function g(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=g(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({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 h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!1}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function _(e,t){const n=S(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 E(e,t){const n=S(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 C(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.H)(i),sidebarName:c,sidebarItems:u}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!g(e)))}},9690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Ac:()=>c,Cw:()=>l,QW:()=>d});var r=n(7294),a=n(5999),o=n(8780);const i={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var s=n(5893);function l(e){return(0,s.jsx)("button",{type:"button",...e,children:(0,s.jsx)(a.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function c(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{className:i.errorBoundaryFallback,children:[(0,s.jsx)("p",{children:t.message}),(0,s.jsx)(l,{onClick:n})]})}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{className:i.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>l,Rb:()=>i,_X:()=>s});var r=n(7294),a=n(6550),o=n(902);function i(e){!function(e){const t=(0,a.k6)(),n=(0,o.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,a.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},7392:(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 a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>g});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128),u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function g(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8022:(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})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>m,OC:()=>u,RF:()=>f,o5:()=>g});var r=n(7294),a=n(412),o=n(2389),i=n(469),s=n(902),l=n(5893);const c=r.createContext(void 0);function u(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(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const p=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(p()),o=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function g(){const e=d(),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),a=(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,i.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function m(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"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 a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(143),a=n(2263),o=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>c});var r=n(7294);const a="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(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 l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(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=i(t?.persistence);return null===n?l:{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),o({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),o({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 u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.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[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,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(a,o)}},4143:(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]}},8780: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 a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;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("/")||[],s=e&&a(e),l=t&&a(t),c=s||l;if(e&&a(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?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var s=n(8776);function l(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,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!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 m=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,s.Z)(!1);var t,n=window.history,a=(-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,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,x=void 0===k?h:k,S=i.keyLength,_=void 0===S?6:S,E=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return E&&(o=u(o,E)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var A=g();function N(e){(0,r.Z)($,e),$.length=n.length,A.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(C(e.state))}function L(){R(C(v()))}var P=!1;function R(e){if(P)P=!1,N();else{A.confirmTransitionTo(e,"POP",x,(function(t){t?N({action:"POP",location:e}):function(e){var t=$.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(P=!0,M(a))}(e)}))}}var O=C(v()),I=[O.key];function F(e){return E+p(e)}function M(e){n.go(e)}var D=0;function B(e){1===(D+=e)&&1===e?(window.addEventListener(b,j),o&&window.addEventListener(y,L)):0===D&&(window.removeEventListener(b,j),o&&window.removeEventListener(y,L))}var z=!1;var $={length:n.length,action:"POP",location:O,createHref:F,push:function(e,t){var r="PUSH",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=F(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=I.indexOf($.location.key),c=I.slice(0,l+1);c.push(o.key),I=c,N({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=F(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=I.indexOf($.location.key);-1!==l&&(I[l]=o.key),N({action:r,location:o})}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=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var k="hashchange",x={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:l},slash:{encodePath:l,decodePath:l}};function S(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 E(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",y=x[c],v=y.encodePath,w=y.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var T=g();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var N=!1,j=null;function L(){var e,t,n=_(),r=v(n);if(n!==r)E(r);else{var a=C(),i=z.location;if(!N&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===p(a))return;j=null,function(e){if(N)N=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}(a)}}var P=_(),R=v(P);P!==R&&E(R);var O=C(),I=[p(O)];function F(e){t.go(e)}var M=0;function D(e){1===(M+=e)&&1===e?window.addEventListener(k,L):0===M&&window.removeEventListener(k,L)}var B=!1;var z={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(_()!==a){j=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(z.location)),i=I.slice(0,o+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);_()!==a&&(j=t,E(a));var o=I.indexOf(p(z.location));-1!==o&&(I[o]=t),A({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||(D(1),B=!0),function(){return B&&(B=!1,D(-1)),t()}},listen:function(e){var t=T.appendListener(e);return D(1),function(){D(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=g();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function m(){return Math.random().toString(36).substr(2,c)}var h=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?m():e.key||m())})),y=p;function v(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[h],index:h,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,m(),w.location);u.confirmTransitionTo(a,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,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,m(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(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(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={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},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var a=f(n);a&&a!==g&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||r&&r[b]||m&&m[b]||s&&s[b])){var y=p(n,b);try{c(t,b,y)}catch(v){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=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,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},7439:(e,t,n)=>{"use strict";n.r(t)},2497:(e,t,n)=>{"use strict";n.r(t)},7800:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;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 a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}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=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{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)*a(Math.random()*t,.1,.95)),t=a(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 a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[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===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},5795:()=>{Prism.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],attribute:{pattern:/\b'\w+/,alias:"attr-name"},keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}},7874:()=>{!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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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 a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},9016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",o="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(o),u=RegExp(l(a+" "+o+" "+i+" "+s)),d=l(o+" "+i+" "+s),p=l(a+" "+o+" "+s),f=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),g=r(/\((?:[^()]|<<self>>)*\)/.source,2),m=/@?\b[A-Za-z_]\w*\b/.source,h=t(/<<0>>(?:\s*<<1>>)?/.source,[m,f]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,h]),y=/\[\s*(?:,\s*)*\]/.source,v=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,y]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[f,g,y]),k=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),x=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[k,b,y]),S={keyword:u,punctuation:/[<>()?,.:[\]]/},_=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,C=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[C]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[m,x]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[m]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,h]),lookbehind:!0,inside:S},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:S},{pattern:n(/(\bwhere\s+)<<0>>/.source,[m]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[v]),lookbehind:!0,inside:S},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[x,p,m]),inside:S}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[m]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[m]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[g]),lookbehind:!0,alias:"class-name",inside:S},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[x,b]),inside:S,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[x]),lookbehind:!0,inside:S,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[m,f]),inside:{function:n(/^<<0>>/.source,[m]),generic:{pattern:RegExp(f),alias:"class-name",inside:S}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,h,m,x,u.source,g,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[h,g]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(x),greedy:!0,inside:S},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var T=E+"|"+_,A=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[T]),N=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[A]),2),j=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,L=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,N]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[j,L]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[j]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[N]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var P=/:[^}\r\n]+/.source,R=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[A]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[R,P]),I=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[T]),2),F=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,P]);function M(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,P]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:M(O,R)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[F]),lookbehind:!0,greedy:!0,inside:M(F,I)}],char:{pattern:RegExp(_),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},397:()=>{!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!<!--)<(?:[^<>"']|"[^"]*"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(/<ID>/g,(function(){return t})),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)<ID>/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)<ID>/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])<ID>(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])<ID>/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(Prism)},1295:()=>{Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell},2503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++a;var m=p.substring(0,g),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(g+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},8704:()=>{Prism.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside=Prism.languages.nix},3210:()=>{Prism.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},Prism.languages.pascal.asm.inside=Prism.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),Prism.languages.objectpascal=Prism.languages.pascal},366:()=>{Prism.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:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},9385:()=>{!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism)},767:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},218:(e,t,n)=>{var r={"./prism-ada":5795,"./prism-bash":7874,"./prism-csharp":9016,"./prism-dot":397,"./prism-haskell":1295,"./prism-java":2503,"./prism-nix":8704,"./prism-pascal":3210,"./prism-python":366,"./prism-ruby":9385,"./prism-rust":767};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=218},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(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 i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,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={},g={};function m(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new m(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){h[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=h.hasOwnProperty(t)?h[t]:null;(null!==a?0!==a.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,a,r)&&(n=null),r||null===a?function(e){return!!d.call(g,e)||!d.call(f,e)&&(p.test(e)?g[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!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(b,y);h[t]=new m(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(b,y);h[t]=new m(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(b,y);h[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var F,M=Object.assign;function D(e){if(void 0===F)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);F=t&&t[1]||""}return"\n"+F+e}var B=!1;function z(e,t){if(!e||B)return"";B=!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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s]){var l="\n"+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?D(e):""}function $(e){switch(e.tag){case 5:return D(e.type);case 16:return D("Lazy");case 13:return D("Suspense");case 19:return D("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function U(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 S:return"Fragment";case x:return"Portal";case E:return"Profiler";case _:return"StrictMode";case N:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function Z(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===_?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function V(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=V(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 a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.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 G(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=V(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function q(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 K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(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 Q(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Q(e,t);var n=H(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")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(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 ee(e,t,n){"number"===t&&q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(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 ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.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 ue(e,t)}))}:ue);function pe(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 fe={animationIterationCount:!0,aspectRatio:!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},ge=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({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 ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(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}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,_e=null;function Ee(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?_e?_e.push(e):_e=[e]:Se=e}function Te(){if(Se){var e=Se,t=_e;if(_e=Se=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Ae(e,t){return e(t)}function Ne(){}var je=!1;function Le(e,t,n){if(je)return e(t,n);je=!0;try{return Ae(e,t,n)}finally{je=!1,(null!==Se||null!==_e)&&(Ne(),Te())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(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(o(231,t,typeof n));return n}var Re=!1;if(u)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Re=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ue){Re=!1}function Ie(e,t,n,r,a,o,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Fe=!1,Me=null,De=!1,Be=null,ze={onError:function(e){Fe=!0,Me=e}};function $e(e,t,n,r,a,o,i,s,l){Fe=!1,Me=null,Ie.apply(ze,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ze(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 He(e){if(Ue(e)!==e)throw Error(o(188))}function Ve(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?We(e):null}function We(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=We(e);if(null!==t)return t;e=e.sibling}return null}var Ge=a.unstable_scheduleCallback,qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Qe=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~a;0!==s?r=dt(s):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,xt,St,_t,Et,Ct=!1,Tt=[],At=null,Nt=null,jt=null,Lt=new Map,Pt=new Map,Rt=[],Ot="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 It(e,t){switch(e){case"focusin":case"focusout":At=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function Ft(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ze(n)))return e.blockedOn=t,void Et(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Dt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Bt(e,t,n){Dt(e)&&n.delete(t)}function zt(){Ct=!1,null!==At&&Dt(At)&&(At=null),null!==Nt&&Dt(Nt)&&(Nt=null),null!==jt&&Dt(jt)&&(jt=null),Lt.forEach(Bt),Pt.forEach(Bt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,zt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==At&&$t(At,e),null!==Nt&&$t(Nt,e),null!==jt&&$t(jt,e),Lt.forEach(t),Pt.forEach(t),n=0;n<Rt.length;n++)(r=Rt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Rt.shift()}var Zt=w.ReactCurrentBatchConfig,Ht=!0;function Vt(e,t,n,r){var a=vt,o=Zt.transition;Zt.transition=null;try{vt=1,Gt(e,t,n,r)}finally{vt=a,Zt.transition=o}}function Wt(e,t,n,r){var a=vt,o=Zt.transition;Zt.transition=null;try{vt=4,Gt(e,t,n,r)}finally{vt=a,Zt.transition=o}}function Gt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,qt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return At=Ft(At,e,t,n,r,a),!0;case"dragenter":return Nt=Ft(Nt,e,t,n,r,a),!0;case"mouseover":return jt=Ft(jt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Lt.set(o,Ft(Lt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Pt.set(o,Ft(Pt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var qt=null;function Kt(e,t,n,r){if(qt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ze(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Qt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Qt?Qt.value:Qt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(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 nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(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=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=M({},cn,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,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!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=an(fn),mn=an(M({},fn,{dataTransfer:0})),hn=an(M({},dn,{relatedTarget:0})),bn=an(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(M({},cn,{data:0})),kn={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"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function _n(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function En(){return _n}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(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:En,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),An=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),jn=an(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=M({},fn,{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}),Pn=an(Ln),Rn=[9,13,27,32],On=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Fn=u&&"TextEvent"in window&&!In,Mn=u&&(!On||In&&8<In&&11>=In),Dn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var Zn={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 Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Zn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ce(r),0<(t=Wr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Gn=null;function qn(e){Dr(e,0)}function Kn(e){if(G(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Qn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Qn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Wn&&(Wn.detachEvent("onpropertychange",nr),Gn=Wn=null)}function nr(e){if("value"===e.propertyName&&Kn(Gn)){var t=[];Vn(t,Gn,e,ke(e)),Le(qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Gn=n,(Wn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Gn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(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++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(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=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=q((e=t.contentWindow).document)}return t}function fr(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)}function gr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=ur(n,o);var i=ur(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=u&&"documentMode"in document&&11>=document.documentMode,hr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==hr||hr!==q(r)||("selectionStart"in(r=hr)&&fr(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},yr&&lr(yr,r)||(yr=r,0<(r=Wr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},_r={};function Er(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in _r)return Sr[e]=n[t];return e}u&&(_r=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=Er("animationend"),Tr=Er("animationiteration"),Ar=Er("animationstart"),Nr=Er("transitionend"),jr=new Map,Lr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){jr.set(e,t),l(t,[e])}for(var Rr=0;Rr<Lr.length;Rr++){var Or=Lr[Rr];Pr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Pr(Cr,"onAnimationEnd"),Pr(Tr,"onAnimationIteration"),Pr(Ar,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(Nr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,c){if($e.apply(this,arguments),Fe){if(!Fe)throw Error(o(198));var u=Me;Fe=!1,Me=null,De||(De=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Dr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}}}if(De)throw e=Be,De=!1,Be=null,e}function Br(e,t){var n=t[ma];void 0===n&&(n=t[ma]=new Set);var r=e+"__bubble";n.has(r)||(Zr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),Zr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Fr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,zr("selectionchange",!1,t))}}function Zr(e,t,n,r){switch(Yt(t)){case 1:var a=Vt;break;case 4:a=Wt;break;default:a=Gt}n=a.bind(null,t,n,e),a=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=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 s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ya(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}Le((function(){var r=o,a=ke(n),i=[];e:{var s=jr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=hn;break;case"focusout":c="blur",l=hn;break;case"beforeblur":case"afterblur":l=hn;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":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Cr:case Tr:case Ar:l=bn;break;case Nr:l=jn;break;case"scroll":l=pn;break;case"wheel":l=Pn;break;case"copy":case"cut":case"paste":l=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=An}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,g=r;null!==g;){var m=(f=g).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Pe(g,p))&&u.push(Vr(g,m,f)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,a),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!ya(c)&&!c[ga])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?ya(c):null)&&(c!==(d=Ue(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,m="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=An,m="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:wa(l),f=null==c?s:wa(c),(s=new u(m,g+"leave",l,n,a)).target=d,s.relatedTarget=f,m=null,ya(a)===r&&((u=new u(p,g+"enter",c,n,a)).target=f,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(p=c,g=0,f=u=l;f;f=Gr(f))g++;for(f=0,m=p;m;m=Gr(m))f++;for(;0<g-f;)u=Gr(u),g--;for(;0<f-g;)p=Gr(p),f--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=Gr(u),p=Gr(p)}u=null}else u=null;null!==l&&qr(i,s,l,u,!1),null!==c&&null!==d&&qr(i,d,c,u,!0)}if("select"===(l=(s=r?wa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var h=Yn;else if(Hn(s))if(Qn)h=ir;else{h=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(h=or);switch(h&&(h=h(e,r))?Vn(i,h,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(hr=b,br=r,yr=null);break;case"focusout":yr=br=hr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?zn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Qt=a)?Qt.value:Qt.textContent,Un=!0)),0<(b=Wr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Fn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(Bn=!0,Dn);case"textInput":return(e=t.data)===Dn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&zn(e,t)?(e=en(),Jt=Xt=Qt=null,Un=!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 Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Wr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Dr(i,t)}))}function Vr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Pe(e,n))&&r.unshift(Vr(e,o,a)),null!=(o=Pe(e,t))&&r.push(Vr(e,o,a))),e=e.return}return r}function Gr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Pe(n,o))&&i.unshift(Vr(n,l,s)):a||null!=(l=Pe(n,o))&&i.push(Vr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Qr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Qr(t),Qr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(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 da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ga="__reactContainer$"+da,ma="__reactEvents$"+da,ha="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ga]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ga])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function _a(e){return{current:e}}function Ea(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Ta={},Aa=_a(Ta),Na=_a(!1),ja=Ta;function La(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Pa(e){return null!=(e=e.childContextTypes)}function Ra(){Ea(Na),Ea(Aa)}function Oa(e,t,n){if(Aa.current!==Ta)throw Error(o(168));Ca(Aa,t),Ca(Na,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,Z(e)||"Unknown",a));return M({},n,r)}function Fa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,ja=Aa.current,Ca(Aa,e),Ca(Na,Na.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,ja),r.__reactInternalMemoizedMergedChildContext=e,Ea(Na),Ea(Aa),Ca(Aa,e)):Ea(Na),Ca(Na,n)}var Da=null,Ba=!1,za=!1;function $a(e){null===Da?Da=[e]:Da.push(e)}function Ua(){if(!za&&null!==Da){za=!0;var e=0,t=vt;try{var n=Da;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Da=null,Ba=!1}catch(a){throw null!==Da&&(Da=Da.slice(e+1)),Ge(Je,Ua),a}finally{vt=t,za=!1}}return null}var Za=[],Ha=0,Va=null,Wa=0,Ga=[],qa=0,Ka=null,Ya=1,Qa="";function Xa(e,t){Za[Ha++]=Wa,Za[Ha++]=Va,Va=e,Wa=t}function Ja(e,t,n){Ga[qa++]=Ya,Ga[qa++]=Qa,Ga[qa++]=Ka,Ka=e;var r=Ya;e=Qa;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Qa=o+e}else Ya=1<<o|n<<a|r,Qa=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Va;)Va=Za[--Ha],Za[Ha]=null,Wa=Za[--Ha],Za[Ha]=null;for(;e===Ka;)Ka=Ga[--qa],Ga[qa]=null,Qa=Ga[--qa],Ga[qa]=null,Ya=Ga[--qa],Ga[qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Pc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(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,no=e,ro=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Qa}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function co(e){if(ao){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ca(n.nextSibling);var r=no;t&&so(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return uo(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ca(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ca(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ca(e.nextSibling)}function go(){ro=no=null,ao=!1}function mo(e){null===oo?oo=[e]:oo.push(e)}var ho=w.ReactCurrentBatchConfig;function bo(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var yo=_a(null),vo=null,wo=null,ko=null;function xo(){ko=wo=vo=null}function So(e){var t=yo.current;Ea(yo),e._currentValue=t}function _o(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Eo(e,t){vo=e,ko=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(ko!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===vo)throw Error(o(308));wo=e,vo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function Ao(e){null===To?To=[e]:To.push(e)}function No(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ao(t)):(n.next=a.next,a.next=n),t.interleaved=n,jo(e,r)}function jo(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}var Lo=!1;function Po(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ro(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 Oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Io(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,jo(e,n)}return null===(a=r.interleaved)?(t.next=t,Ao(r)):(t.next=a.next,a.next=t),r.interleaved=t,jo(e,n)}function Fo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Mo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=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===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Do(e,t,n,r){var a=e.updateQueue;Lo=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?o=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=a.baseState;for(i=0,u=c=l=null,s=o;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(g=m.payload)){d=g.call(f,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p="function"==typeof(g=m.payload)?g.call(f,d,p):g))break e;d=M({},d,p);break e;case 2:Lo=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ml|=i,e.lanes=i,e.memoizedState=d}}function Bo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var zo=(new r.Component).refs;function $o(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Uo={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Fo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Fo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),a=Oo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Io(e,a,r))&&(rc(t,e,r,n),Fo(t,e,r))}};function Zo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,o))}function Ho(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=Pa(t)?ja:Aa.current,o=(r=null!=(r=t.contextTypes))?La(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Uo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Vo(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&&Uo.enqueueReplaceState(t,t.state,null)}function Wo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=zo,Po(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=Pa(t)?ja:Aa.current,a.context=La(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&($o(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Uo.enqueueReplaceState(a,a.state,null),Do(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Go(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(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===zo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function qo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ko(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}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 a(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function i(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):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Dc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===P&&Ko(o)===t.type)?((r=a(t,n.props)).ref=Go(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Go(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=Bc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Fc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Dc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Go(e,null,t),n.return=e,n;case x:return(t=Bc(t,e.mode,n)).return=e,t;case P:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Fc(t,e.mode,n,null)).return=e,t;qo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?c(e,t,n,r):null;case x:return n.key===a?u(e,t,n,r):null;case P:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);qo(e,n)}return null}function g(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case P:return g(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);qo(t,r)}return null}function m(a,o,s,l){for(var c=null,u=null,d=o,m=o=0,h=null;null!==d&&m<s.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var b=f(a,d,s[m],l);if(null===b){null===d&&(d=h);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,m),null===u?c=b:u.sibling=b,u=b,d=h}if(m===s.length)return n(a,d),ao&&Xa(a,m),c;if(null===d){for(;m<s.length;m++)null!==(d=p(a,s[m],l))&&(o=i(d,o,m),null===u?c=d:u.sibling=d,u=d);return ao&&Xa(a,m),c}for(d=r(a,d);m<s.length;m++)null!==(h=g(d,a,m,s[m],l))&&(e&&null!==h.alternate&&d.delete(null===h.key?m:h.key),o=i(h,o,m),null===u?c=h:u.sibling=h,u=h);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,m),c}function h(a,s,l,c){var u=I(l);if("function"!=typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,m=s,h=s=0,b=null,y=l.next();null!==m&&!y.done;h++,y=l.next()){m.index>h?(b=m,m=null):b=m.sibling;var v=f(a,m,y.value,c);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(a,m),s=i(v,s,h),null===d?u=v:d.sibling=v,d=v,m=b}if(y.done)return n(a,m),ao&&Xa(a,h),u;if(null===m){for(;!y.done;h++,y=l.next())null!==(y=p(a,y.value,c))&&(s=i(y,s,h),null===d?u=y:d.sibling=y,d=y);return ao&&Xa(a,h),u}for(m=r(a,m);!y.done;h++,y=l.next())null!==(y=g(m,a,h,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?h:y.key),s=i(y,s,h),null===d?u=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),u}return function e(r,o,i,l){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=o;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(o=a(u,i.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===P&&Ko(c)===u.type){n(r,u.sibling),(o=a(u,i.props)).ref=Go(r,u,i),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((o=Fc(i.props.children,r.mode,l,i.key)).return=r,r=o):((l=Ic(i.type,i.key,i.props,null,r.mode,l)).ref=Go(r,o,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Bc(i,r.mode,l)).return=r,r=o}return s(r);case P:return e(r,o,(u=i._init)(i._payload),l)}if(te(i))return m(r,o,i,l);if(I(i))return h(r,o,i,l);qo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Dc(i,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Qo=Yo(!0),Xo=Yo(!1),Jo={},ei=_a(Jo),ti=_a(Jo),ni=_a(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ea(ei),Ca(ei,t)}function oi(){Ea(ei),Ea(ti),Ea(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function si(e){ti.current===e&&(Ea(ei),Ea(ti))}var li=_a(0);function ci(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!=(128&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 ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,gi=0,mi=null,hi=null,bi=null,yi=!1,vi=!1,wi=0,ki=0;function xi(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function _i(e,t,n,r,a,i){if(gi=i,mi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),vi){i=0;do{if(vi=!1,wi=0,25<=i)throw Error(o(301));i+=1,bi=hi=null,t.updateQueue=null,pi.current=cs,e=n(r,a)}while(vi)}if(pi.current=is,t=null!==hi&&null!==hi.next,gi=0,bi=hi=mi=null,yi=!1,t)throw Error(o(300));return e}function Ei(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?mi.memoizedState=bi=e:bi=bi.next=e,bi}function Ti(){if(null===hi){var e=mi.alternate;e=null!==e?e.memoizedState:null}else e=hi.next;var t=null===bi?mi.memoizedState:bi.next;if(null!==t)bi=t,hi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(hi=e).memoizedState,baseState:hi.baseState,baseQueue:hi.baseQueue,queue:hi.queue,next:null},null===bi?mi.memoizedState=bi=e:bi=bi.next=e}return bi}function Ai(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=hi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((gi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,mi.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,mi.lanes|=i,Ml|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ji(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Li(){}function Pi(e,t){var n=mi,r=Ti(),a=t(),i=!sr(r.memoizedState,a);if(i&&(r.memoizedState=a,ws=!0),r=r.queue,Hi(Ii.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,Bi(9,Oi.bind(null,n,r,a,t),void 0,null),null===jl)throw Error(o(349));0!=(30&gi)||Ri(n,t,a)}return a}function Ri(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Fi(t)&&Mi(e)}function Ii(e,t,n){return n((function(){Fi(t)&&Mi(e)}))}function Fi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Mi(e){var t=jo(e,1);null!==t&&rc(t,e,1,-1)}function Di(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ai,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,mi,e),[t.memoizedState,e]}function Bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.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 zi(){return Ti().memoizedState}function $i(e,t,n,r){var a=Ci();mi.flags|=e,a.memoizedState=Bi(1|t,n,void 0,void 0===r?null:r)}function Ui(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==hi){var i=hi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=Bi(t,n,o,r))}mi.flags|=e,a.memoizedState=Bi(1|t,n,o,r)}function Zi(e,t){return $i(8390656,8,e,t)}function Hi(e,t){return Ui(2048,8,e,t)}function Vi(e,t){return Ui(4,2,e,t)}function Wi(e,t){return Ui(4,4,e,t)}function Gi(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 qi(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4,4,Gi.bind(null,t,e),n)}function Ki(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Qi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&gi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=mt(),mi.lanes|=n,Ml|=n,e.baseState=!0),t)}function Ji(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{vt=n,fi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=No(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(a.next=a,Ao(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=No(e,t,a,r))&&(rc(n,e,r,a=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===mi||null!==t&&t===mi}function as(e,t){vi=yi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var is={readContext:Co,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ss={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:Zi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Gi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,mi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Di,useDebugValue:Ki,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Di(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=mi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===jl)throw Error(o(349));0!=(30&gi)||Ri(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Zi(Ii.bind(null,r,i,e),[e]),r.flags|=2048,Bi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=jl.identifierPrefix;if(ao){var n=Qa;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:qi,useInsertionEffect:Vi,useLayoutEffect:Wi,useMemo:Qi,useReducer:Ni,useRef:zi,useState:function(){return Ni(Ai)},useDebugValue:Ki,useDeferredValue:function(e){return Xi(Ti(),hi.memoizedState,e)},useTransition:function(){return[Ni(Ai)[0],Ti().memoizedState]},useMutableSource:Li,useSyncExternalStore:Pi,useId:es,unstable_isNewReconciler:!1},cs={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:qi,useInsertionEffect:Vi,useLayoutEffect:Wi,useMemo:Qi,useReducer:ji,useRef:zi,useState:function(){return ji(Ai)},useDebugValue:Ki,useDeferredValue:function(e){var t=Ti();return null===hi?t.memoizedState=e:Xi(t,hi.memoizedState,e)},useTransition:function(){return[ji(Ai)[0],Ti().memoizedState]},useMutableSource:Li,useSyncExternalStore:Pi,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function gs(e,t,n){(n=Oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,Wl=r),ps(0,t)},n}function ms(e,t,n){(n=Oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Gl?Gl=new Set([this]):Gl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oo(-1,1)).tag=2,Io(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var vs=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Qo(t,e.child,n,r)}function xs(e,t,n,r,a){n=n.render;var o=t.ref;return Eo(t,a),r=_i(e,t,n,r,o,a),n=Ei(),null===e||ws?(ao&&n&&eo(t),t.flags|=1,ks(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function Ss(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Rc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,_s(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Vs(e,t,a)}return t.flags|=1,(e=Oc(o,r)).ref=t.ref,e.return=t,t.child=e}function _s(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Vs(e,t,a);0!=(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,r,a)}function Es(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ol,Rl),Rl|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ol,Rl),Rl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ol,Rl),Rl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ol,Rl),Rl|=r;return ks(e,t,a,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,a){var o=Pa(n)?ja:Aa.current;return o=La(t,o),Eo(t,a),n=_i(e,t,n,r,o,a),r=Ei(),null===e||ws?(ao&&r&&eo(t),t.flags|=1,ks(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function As(e,t,n,r,a){if(Pa(n)){var o=!0;Fa(t)}else o=!1;if(Eo(t,a),null===t.stateNode)Hs(e,t),Ho(t,n,r),Wo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Co(c):c=La(t,c=Pa(n)?ja:Aa.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&Vo(t,i,r,c),Lo=!1;var p=t.memoizedState;i.state=p,Do(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Na.current||Lo?("function"==typeof u&&($o(t,n,u,r),l=t.memoizedState),(s=Lo||Zo(t,n,s,r,p,l,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|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ro(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:bo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Co(l):l=La(t,l=Pa(n)?ja:Aa.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&Vo(t,i,r,l),Lo=!1,p=t.memoizedState,i.state=p,Do(t,r,i,a);var g=t.memoizedState;s!==d||p!==g||Na.current||Lo?("function"==typeof f&&($o(t,n,f,r),g=t.memoizedState),(c=Lo||Zo(t,n,c,r,p,g,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,g,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,g,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),i.props=r,i.state=g,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ns(e,t,n,r,o,a)}function Ns(e,t,n,r,a,o){Cs(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Vs(e,t,o);r=t.stateNode,vs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Qo(t,e.child,null,o),t.child=Qo(t,null,s,o)):ks(e,t,s,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function js(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),ai(e,t.containerInfo)}function Ls(e,t,n,r,a){return go(),mo(a),t.flags|=256,ks(e,t,n,r),t.child}var Ps,Rs,Os,Is,Fs={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ds(e,t,n){var r,a=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(li,1&i),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Fc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Fs,e):Bs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(i=Fc(i,a,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Qo(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Fs,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=ds(i=Error(o(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=jl)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,jo(e,a),rc(r,e,a,-1))}return hc(),zs(e,t,s,r=ds(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Ac.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ca(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Ga[qa++]=Ya,Ga[qa++]=Qa,Ga[qa++]=Ka,Ya=e.id,Qa=e.overflow,Ka=t),t=Bs(t,r.children),t.flags|=4096,t)}(e,t,l,a,r,i,n);if(s){s=a.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 0==(1&l)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Oc(r,s):(s=Fc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Fs,a}return e=(s=e.child).sibling,a=Oc(s,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Bs(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&mo(r),Qo(t,e.child,null,n),(e=Bs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $s(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),_o(e.return,t,n)}function Us(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Zs(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$s(e,n,t);else if(19===e.tag)$s(e,n,t);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(Ca(li,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Us(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ci(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Us(t,!0,n,null,o);break;case"together":Us(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ws(e,t){if(!ao)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 Gs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qs(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gs(t),null;case 1:case 17:return Pa(t.type)&&Ra(),Gs(t),null;case 3:return r=t.stateNode,oi(),Ea(Na),Ea(Aa),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Rs(e,t),Gs(t),null;case 5:si(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Os(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Gs(t),null}if(e=ri(ei.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=0!=(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Y(r,i),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Br("invalid",r);break;case"textarea":ae(r,i),Br("invalid",r)}for(var l in ye(n,i),a=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":W(r),J(r,i,!0);break;case"textarea":W(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[fa]=r,Ps(e,t,!1,!1),t.stateNode=e;e:{switch(l=ve(n,r),n){case"dialog":Br("cancel",e),Br("close",e),a=r;break;case"iframe":case"object":case"embed":Br("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],e);a=r;break;case"source":Br("error",e),a=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),a=r;break;case"details":Br("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),Br("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),Br("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Br("invalid",e)}for(i in ye(n,a),c=a)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?he(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Br("scroll",e):null!=u&&v(e,i,u,l))}switch(n){case"input":W(e),J(e,r,!1);break;case"textarea":W(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Gs(t),null;case 6:if(e&&null!=t.stateNode)Is(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Gs(t),null;case 13:if(Ea(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))fo(),go(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else go(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Gs(t),i=!1}else null!==oo&&(sc(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Il&&(Il=3):hc())),null!==t.updateQueue&&(t.flags|=4),Gs(t),null);case 4:return oi(),Rs(e,t),null===e&&Ur(t.stateNode.containerInfo),Gs(t),null;case 10:return So(t.type._context),Gs(t),null;case 19:if(Ea(li),null===(i=t.memoizedState))return Gs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Ws(i,!1);else{if(0!==Il||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Ws(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Qe()>Zl&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ws(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!ao)return Gs(t),null}else 2*Qe()-i.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Qe(),t.sibling=null,n=li.current,Ca(li,r?1&n|2:1&n),t):(Gs(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Rl)&&(Gs(t),6&t.subtreeFlags&&(t.flags|=8192)):Gs(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ks(e,t){switch(to(t),t.tag){case 1:return Pa(t.type)&&Ra(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),Ea(Na),Ea(Aa),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(Ea(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));go()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ea(li),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Ps=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}},Rs=function(){},Os=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ye(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Is=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ys=!1,Qs=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Ec(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){Ec(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&tl(t,n,o)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ma],delete t[ha],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,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=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)gl(e,t,n),n=n.sibling}function gl(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Qs||el(n,t);case 6:var r=dl,a=pl;dl=null,fl(e,t,n),pl=a,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),Ut(e)):la(dl,n.stateNode));break;case 4:r=dl,a=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Qs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&tl(n,t,i),a=a.next}while(a!==r)}fl(e,t,n);break;case 1:if(!Qs&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Ec(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Qs=(r=Qs)||null!==n.memoizedState,fl(e,t,n),Qs=r):fl(e,t,n);break;default:fl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));gl(i,s,a),dl=null,pl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){Ec(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hl(t,e),yl(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(h){Ec(e,e.return,h)}try{rl(5,e,e.return)}catch(h){Ec(e,e.return,h)}}break;case 1:hl(t,e),yl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(hl(t,e),yl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(h){Ec(e,e.return,h)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Q(a,i),ve(l,s);var u=ve(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?he(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,u)}switch(l){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var g=i.value;null!=g?ne(a,!!i.multiple,g,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(h){Ec(e,e.return,h)}}break;case 6:if(hl(t,e),yl(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(h){Ec(e,e.return,h)}}break;case 3:if(hl(t,e),yl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(h){Ec(e,e.return,h)}break;case 4:default:hl(t,e),yl(e);break;case 13:hl(t,e),yl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Ul=Qe())),4&r&&ml(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Qs=(u=Qs)||d,hl(t,e),Qs=u):hl(t,e),yl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(g=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){r=f,n=f.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(h){Ec(r,n,h)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){xl(p);continue}}null!==g?(g.return=f,Js=g):xl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(h){Ec(e,e.return,h)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(h){Ec(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hl(t,e),yl(e),4&r&&ml(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),ul(e,ll(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(o(161))}}catch(s){Ec(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vl(e,t,n){Js=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Js;){var a=Js,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Ys;if(!i){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Qs;s=Ys;var c=Qs;if(Ys=i,(Qs=l)&&!c)for(Js=a;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?Sl(a):null!==l?(l.return=i,Js=l):Sl(a);for(;null!==o;)Js=o,wl(o,t,n),o=o.sibling;Js=a,Ys=s,Qs=c}kl(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Js=o):kl(e)}}function kl(e){for(;null!==Js;){var t=Js;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Qs||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Qs)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Bo(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Bo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Qs||512&t.flags&&ol(t)}catch(f){Ec(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function xl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(l){Ec(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){Ec(t,a,l)}}var o=t.return;try{ol(t)}catch(l){Ec(t,o,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){Ec(t,i,l)}}}catch(l){Ec(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var _l,El=Math.ceil,Cl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,Al=w.ReactCurrentBatchConfig,Nl=0,jl=null,Ll=null,Pl=0,Rl=0,Ol=_a(0),Il=0,Fl=null,Ml=0,Dl=0,Bl=0,zl=null,$l=null,Ul=0,Zl=1/0,Hl=null,Vl=!1,Wl=null,Gl=null,ql=!1,Kl=null,Yl=0,Ql=0,Xl=null,Jl=-1,ec=0;function tc(){return 0!=(6&Nl)?Qe():-1!==Jl?Jl:Jl=Qe()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Nl)&&0!==Pl?Pl&-Pl:null!==ho.transition?(0===ec&&(ec=mt()),ec):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function rc(e,t,n,r){if(50<Ql)throw Ql=0,Xl=null,Error(o(185));bt(e,n,r),0!=(2&Nl)&&e===jl||(e===jl&&(0==(2&Nl)&&(Dl|=n),4===Il&&lc(e,Pl)),ac(e,r),1===n&&0===Nl&&0==(1&t.mode)&&(Zl=Qe()+500,Ba&&Ua()))}function ac(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),s=1<<i,l=a[i];-1===l?0!=(s&n)&&0==(s&r)||(a[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=pt(e,e===jl?Pl:0);if(0===r)null!==n&&qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&qe(n),1===t)0===e.tag?function(e){Ba=!0,$a(e)}(cc.bind(null,e)):$a(cc.bind(null,e)),ia((function(){0==(6&Nl)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=jc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!=(6&Nl))throw Error(o(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===jl?Pl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var a=Nl;Nl|=2;var i=mc();for(jl===e&&Pl===t||(Hl=null,Zl=Qe()+500,fc(e,t));;)try{vc();break}catch(l){gc(e,l)}xo(),Cl.current=i,Nl=a,null!==Ll?t=0:(jl=null,Pl=0,t=Il)}if(0!==t){if(2===t&&(0!==(a=gt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Fl,fc(e,0),lc(e,r),ac(e,Qe()),n;if(6===t)lc(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!sr(o(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=bc(e,r))&&(0!==(i=gt(e))&&(r=i,t=ic(e,i))),1===t))throw n=Fl,fc(e,0),lc(e,r),ac(e,Qe()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:xc(e,$l,Hl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Ul+500-Qe())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),t);break}xc(e,$l,Hl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>a&&(a=s),r&=~i}if(r=a,10<(r=(120>(r=Qe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*El(r/1960))-r)){e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),r);break}xc(e,$l,Hl);break;default:throw Error(o(329))}}}return ac(e,Qe()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=$l,$l=n,null!==t&&sc(t)),e}function sc(e){null===$l?$l=e:$l.push.apply($l,e)}function lc(e,t){for(t&=~Bl,t&=~Dl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Nl))throw Error(o(327));Sc();var t=pt(e,0);if(0==(1&t))return ac(e,Qe()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Fl,fc(e,0),lc(e,t),ac(e,Qe()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xc(e,$l,Hl),ac(e,Qe()),null}function uc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Zl=Qe()+500,Ba&&Ua())}}function dc(e){null!==Kl&&0===Kl.tag&&0==(6&Nl)&&Sc();var t=Nl;Nl|=1;var n=Al.transition,r=vt;try{if(Al.transition=null,vt=1,e)return e()}finally{vt=r,Al.transition=n,0==(6&(Nl=t))&&Ua()}}function pc(){Rl=Ol.current,Ea(Ol)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Ra();break;case 3:oi(),Ea(Na),Ea(Aa),di();break;case 5:si(r);break;case 4:oi();break;case 13:case 19:Ea(li);break;case 10:So(r.type._context);break;case 22:case 23:pc()}n=n.return}if(jl=e,Ll=e=Oc(e.current,null),Pl=Rl=t,Il=0,Fl=null,Bl=Dl=Ml=0,$l=zl=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function gc(e,t){for(;;){var n=Ll;try{if(xo(),pi.current=is,yi){for(var r=mi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}yi=!1}if(gi=0,bi=hi=mi=null,vi=!1,wi=0,Tl.current=null,null===n||null===n.return){Il=1,Fl=t,Ll=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Pl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var g=bs(s);if(null!==g){g.flags&=-257,ys(g,s,l,0,t),1&g.mode&&hs(i,u,t),c=u;var m=(t=g).updateQueue;if(null===m){var h=new Set;h.add(c),t.updateQueue=h}else m.add(c);break e}if(0==(1&t)){hs(i,u,t),hc();break e}c=Error(o(426))}else if(ao&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),ys(b,s,l,0,t),mo(us(c,l));break e}}i=c=us(c,l),4!==Il&&(Il=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,gs(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Gl||!Gl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,ms(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function mc(){var e=Cl.current;return Cl.current=is,null===e?is:e}function hc(){0!==Il&&3!==Il&&2!==Il||(Il=4),null===jl||0==(268435455&Ml)&&0==(268435455&Dl)||lc(jl,Pl)}function bc(e,t){var n=Nl;Nl|=2;var r=mc();for(jl===e&&Pl===t||(Hl=null,fc(e,t));;)try{yc();break}catch(a){gc(e,a)}if(xo(),Nl=n,Cl.current=r,null!==Ll)throw Error(o(261));return jl=null,Pl=0,Il}function yc(){for(;null!==Ll;)wc(Ll)}function vc(){for(;null!==Ll&&!Ke();)wc(Ll)}function wc(e){var t=_l(e.alternate,e,Rl);e.memoizedProps=e.pendingProps,null===t?kc(e):Ll=t,Tl.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=qs(n,t,Rl)))return void(Ll=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(Ll=n);if(null===e)return Il=6,void(Ll=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Il&&(Il=5)}function xc(e,t,n){var r=vt,a=Al.transition;try{Al.transition=null,vt=1,function(e,t,n,r){do{Sc()}while(null!==Kl);if(0!=(6&Nl))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===jl&&(Ll=jl=null,Pl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||ql||(ql=!0,jc(tt,(function(){return Sc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Al.transition,Al.transition=null;var s=vt;vt=1;var l=Nl;Nl|=4,Tl.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var g;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)f=p,p=g;for(;;){if(p===e)break t;if(f===n&&++u===a&&(l=s),f===i&&++d===r&&(c=s),null!==(g=p.nextSibling))break;f=(p=f).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var m=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var h=m.memoizedProps,b=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?h:bo(t.type,h),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Ec(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}m=nl,nl=!1}(e,n),bl(n,e),gr(ta),Ht=!!ea,ta=ea=null,e.current=n,vl(n,e,a),Ye(),Nl=l,vt=s,Al.transition=i}else e.current=n;if(ql&&(ql=!1,Kl=e,Yl=a),i=e.pendingLanes,0===i&&(Gl=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),ac(e,Qe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Vl)throw Vl=!1,e=Wl,Wl=null,e;0!=(1&Yl)&&0!==e.tag&&Sc(),i=e.pendingLanes,0!=(1&i)?e===Xl?Ql++:(Ql=0,Xl=e):Ql=0,Ua()}(e,t,n,r)}finally{Al.transition=a,vt=r}return null}function Sc(){if(null!==Kl){var e=wt(Yl),t=Al.transition,n=vt;try{if(Al.transition=null,vt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Yl=0,0!=(6&Nl))throw Error(o(331));var a=Nl;for(Nl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(0!=(16&Js.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,g=d.return;if(il(d),d===u){Js=null;break}if(null!==f){f.return=g,Js=f;break}Js=g}}}var m=i.alternate;if(null!==m){var h=m.child;if(null!==h){m.child=null;do{var b=h.sibling;h.sibling=null,h=b}while(null!==h)}}Js=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(0!=(2048&(i=Js).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Js=y;break e}Js=i.return}}var v=e.current;for(Js=v;null!==Js;){var w=(s=Js).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Js=w;else e:for(s=v;null!==Js;){if(0!=(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(x){Ec(l,l.return,x)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Nl=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,Al.transition=t}}return!1}function _c(e,t,n){e=Io(e,t=gs(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),ac(e,t))}function Ec(e,t,n){if(3===e.tag)_c(e,e,n);else for(;null!==t;){if(3===t.tag){_c(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Gl||!Gl.has(r))){t=Io(t,e=ms(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),ac(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,jl===e&&(Pl&n)===n&&(4===Il||3===Il&&(130023424&Pl)===Pl&&500>Qe()-Ul?fc(e,0):Bl|=n),ac(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=jo(e,t))&&(bt(e,t,n),ac(e,n))}function Ac(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tc(e,n)}function jc(e,t){return Ge(e,t)}function Lc(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.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pc(e,t,n,r){return new Lc(e,t,n,r)}function Rc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Pc(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.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,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 Ic(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Rc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Fc(n.children,a,i,t);case _:s=8,a|=8;break;case E:return(e=Pc(12,n,t,2|a)).elementType=E,e.lanes=i,e;case N:return(e=Pc(13,n,t,a)).elementType=N,e.lanes=i,e;case j:return(e=Pc(19,n,t,a)).elementType=j,e.lanes=i,e;case R:return Mc(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case A:s=11;break e;case L:s=14;break e;case P:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pc(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Fc(e,t,n,r){return(e=Pc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Pc(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Dc(e,t,n){return(e=Pc(6,e,null,t)).lanes=n,e}function Bc(e,t,n){return(t=Pc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $c(e,t,n,r,a,o,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Po(o),e}function Uc(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Pa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Pa(n))return Ia(e,n,t)}return t}function Zc(e,t,n,r,a,o,i,s,l){return(e=$c(n,r,!0,e,0,o,0,s,l)).context=Uc(null),n=e.current,(o=Oo(r=tc(),a=nc(n))).callback=null!=t?t:null,Io(n,o,a),e.current.lanes=a,bt(e,a,r),ac(e,r),e}function Hc(e,t,n,r){var a=t.current,o=tc(),i=nc(a);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Io(a,t,i))&&(rc(e,a,i,o),Fo(e,a,i)),i}function Vc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Wc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Gc(e,t){Wc(e,t),(e=e.alternate)&&Wc(e,t)}_l=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:js(t),go();break;case 5:ii(t);break;case 1:Pa(t.type)&&Fa(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(yo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Ds(e,t,n):(Ca(li,1&li.current),null!==(e=Vs(e,t,n))?e.sibling:null);Ca(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Zs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,Es(e,t,n)}return Vs(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Wa,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var a=La(t,Aa.current);Eo(t,n),a=_i(null,t,r,e,a,n);var i=Ei();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pa(r)?(i=!0,Fa(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Po(t),a.updater=Uo,t.stateNode=a,a._reactInternals=t,Wo(t,r,e,n),t=Ns(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),ks(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Rc(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===L)return 14}return 2}(r),e=bo(r,e),a){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=As(null,t,r,e,n);break e;case 11:t=xs(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,bo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ts(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 1:return r=t.type,a=t.pendingProps,As(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 3:e:{if(js(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Ro(e,t),Do(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ls(e,t,r,n,a=us(Error(o(423)),t));break e}if(r!==a){t=Ls(e,t,r,n,a=us(Error(o(424)),t));break e}for(ro=ca(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(go(),r===a){t=Vs(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&co(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==i&&na(r,i)&&(t.flags|=32),Cs(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Ds(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Qo(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,xs(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ca(yo,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===a.children&&!Na.current){t=Vs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Oo(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),_o(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),_o(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Eo(t,n),r=r(a=Co(a)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return a=bo(r=t.type,t.pendingProps),Ss(e,t,r,a=bo(r.type,a),n);case 15:return _s(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:bo(r,a),Hs(e,t),t.tag=1,Pa(r)?(e=!0,Fa(t)):e=!1,Eo(t,n),Ho(t,r,a),Wo(t,r,a,n),Ns(null,t,r,!0,e,n);case 19:return Zs(e,t,n);case 22:return Es(e,t,n)}throw Error(o(156,t.tag))};var qc="function"==typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var s=a;a=function(){var e=Vc(i);s.call(e)}}Hc(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Vc(i);o.call(e)}}var i=Zc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ga]=i.current,Ur(8===e.nodeType?e.parentNode:e),dc(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var s=r;r=function(){var e=Vc(l);s.call(e)}}var l=$c(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ga]=l.current,Ur(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,a,r);return Vc(i)}Yc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Hc(e,t,null,null)},Yc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[ga]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=_t();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ac(t,Qe()),0==(6&Nl)&&(Zl=Qe()+500,Ua()))}break;case 13:dc((function(){var t=jo(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Gc(e,1)}},xt=function(e){if(13===e.tag){var t=jo(e,134217728);if(null!==t)rc(t,e,134217728,tc());Gc(e,134217728)}},St=function(e){if(13===e.tag){var t=nc(e),n=jo(e,t);if(null!==n)rc(n,e,t,tc());Gc(e,t)}},_t=function(){return vt},Et=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(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 a=ka(r);if(!a)throw Error(o(90));G(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ae=uc,Ne=dc;var tu={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Te,uc]},nu={findFiberByHostInstance:ya,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ve(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),ot=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Qc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Qc(e))throw Error(o(299));var n=!1,r="",a=qc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$c(e,1,!1,null,0,n,0,r,a),e[ga]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Kc(t)},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(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ve(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Qc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",s=qc;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Zc(t,null,e,1,null!=n?n:null,a,0,i,s),e[ga]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ga]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(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(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],i.get(l.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();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>V,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),s=n.n(i),l=n(1143),c=n.n(l),u=n(6774),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,g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={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"]},y={type:["application/ld+json"]},v={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(h).map((function(e){return h[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=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=S(e,h.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},E=function(e){return S(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[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=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 a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},N=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},j=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}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[h.NOSCRIPT,h.SCRIPT,h.STYLE],O=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,"'")},I=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 a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},D=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=F(n,a),[r.createElement(h.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=j(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var g=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=L(e.metaTags,v),o=L(t,b),i=L(n,y);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,a.priority),M(h.LINK,o.priority),M(h.SCRIPT,i.priority))},toString:function(){return D(h.META,a.priority,r)+" "+D(h.LINK,o.priority,r)+" "+D(h.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=g.priorityMethods,u=g.linkTags,d=g.metaTags,p=g.scriptTags}return{priority:f,base:D(h.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(h.LINK,u,r),meta:D(h.META,d,r),noscript:D(h.NOSCRIPT,o,r),script:D(h.SCRIPT,p,r),style:D(h.STYLE,i,r),title:D(h.TITLE,{title:l,titleAttributes:c},r)}},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?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z: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:{}}))},U=r.createContext({}),Z=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,V=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);V.canUseDOM=H,V.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},V.defaultProps={context:{}},V.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},G=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===a.indexOf(l)&&a.push(l);var u=o.indexOf(l);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;G(h.BODY,e.bodyAttributes),G(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),G(h.TITLE,t)}(u,d);var p={baseTag:W(h.BASE,n),linkTags:W(h.LINK,a),metaTags:W(h.META,o),noscriptTags:W(h.NOSCRIPT,i),scriptTags:W(h.SCRIPT,l),styleTags:W(h.STYLE,c)},f={},g={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(g[e]=p[e].oldTags)})),t&&t(),s(e,f,g)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];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,a=null,o=(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:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(h.LINK,["rel","href"],e),metaTags:A(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:A(h.SCRIPT,["src","innerHTML"],e),styleTags:A(h.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:N(e,"prioritizeSeoTags")});V.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){q(t,(function(){K=null}))})):(q(t),K=null)):B&&(a=B(o)),r(a)},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:Z.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!s()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.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,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case h.BODY:return p({},a,{bodyAttributes:p({},o)});case h.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),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,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=m(r,Q),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=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,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=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 o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case h:case m:case l:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=h,t.Memo=m,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},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)===o},t.isLazy=function(e){return k(e)===h},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},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===o||e===d||e===s||e===i||e===f||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}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 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 s=n(7294),l=n(5697),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 a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.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 s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function g(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var g=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function h(){return m||(m=e(g.loader)),m.promise}return c.push(h),"function"==typeof g.webpack&&u.push((function(){if((0,g.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return h()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(g.loader),r._loadModule()})),h(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return h()};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(g.modules)&&g.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),g.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.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?s.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function m(e){return g(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(p,e)};var h=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 s.Children.only(this.props.children)},t}(s.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)}))}o(h,"propTypes",{report:l.func.isRequired}),o(h,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),m.Capture=h,m.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=m},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.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,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>u,rU:()=>h});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),s=n(7462),l=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.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},g=o.forwardRef;void 0===g&&(g=f);var m=g((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{a&&a(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!==g&&t||n,o.createElement("a",u)}));var h=g((function(e,t){var n=e.component,a=void 0===n?m:n,u=e.replace,h=e.to,b=e.innerRef,y=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(h,e.location),e.location),l=r?n.createHref(r):"",m=(0,s.Z)({},y,{href:l,navigate:function(){var t=d(h,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==g?m.ref=t||b:m.innerRef=b,o.createElement(a,m)}))})),b=function(e){return e},y=o.forwardRef;void 0===y&&(y=b);var v=y((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,g=e.className,m=e.exact,v=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,_=e.to,E=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(_,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:k,strict:x}):null,N=!!(v?v(A,n):A),j="function"==typeof g?g(N):g,L="function"==typeof S?S(N):S;N&&(j=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(" ")}(j,u),L=(0,s.Z)({},L,f));var P=(0,s.Z)({"aria-current":N&&a||null,className:j,style:L,to:i},C);return b!==y?P.ref=t||E:P.innerRef=E,o.createElement(h,P)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>_,F0:()=>v,LX:()=>S,TH:()=>R,k6:()=>P,rs:()=>j,s6:()=>y});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),s=n(9318),l=n(8776),c=n(7462),u=n(9658),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return g[e]=(g[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.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 a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:c}},h=function(e){var t=m();return t.displayName=e,t},b=h("Router-History"),y=h("Router"),v=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 a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;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=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:s,sensitive:c}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(y.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:u?a.createElement(u,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function A(e){return function(){(0,l.Z)(!1)}}function N(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var L=a.useContext;function P(){return L(b)}function R(){return L(y).location}},9658:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var g=e[i],m=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=m&&null!=g&&g!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,_=n[2]||u,E=b||y;r.push({name:h||o++,prefix:m||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":"[^"+l(_)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(o+=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=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(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()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(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 a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(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 g=l(n.delimiter||"/"),m=i.slice(-g.length)===g;return a||(i=(m?i.slice(0,-g.length):i)+"(?:"+g+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+g+"|$)",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=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:s.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||g}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,m(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!_.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===o[a]&&(o[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function A(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 N(e,t,a,o,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===o?"."+A(l,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),N(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,o=""===o?".":o+":",k(e))for(var c=0;c<e.length;c++){var u=o+A(s=e[c],c);l+=N(s,t,a,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=N(s=s.value,t,a,u=o+A(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function j(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},R={transition:null},O={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:R,ReactCurrentOwner:S};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=m({},e.props),o=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!_.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_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:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<a&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,g=!1,m=!1,h=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(h=!1,w(e),!m)if(null!==r(c))m=!0,R(x);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function x(e,n){m=!1,h&&(h=!1,y(C),C=-1),g=!0;var o=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!N());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&a(c),w(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),l=!1}return l}finally{p=null,f=o,g=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,_=!1,E=null,C=-1,T=5,A=-1;function N(){return!(t.unstable_now()-A<T)}function j(){if(null!==E){var e=t.unstable_now();A=e;var n=!0;try{n=E(!0,e)}finally{n?S():(_=!1,E=null)}}else _=!1}if("function"==typeof v)S=function(){v(j)};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,P=L.port2;L.port1.onmessage=j,S=function(){P.postMessage(null)}}else S=function(){b(j,0)};function R(e){E=e,_||(_=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}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(){m||g||(m=!0,R(x))},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"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,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:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(h?(y(C),C=-1):h=!0,O(k,o-i))):(e.sortIndex=s,n(c,e),m||g||(m=!0,R(x))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"mf",tagline:"blog and additional materials for courses at \u03c6",url:"https://blog.mfocko.xyz",baseUrl:"/",organizationName:"mfocko",projectName:"blog",trailingSlash:!0,onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",favicon:"img/favicon.ico",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:!1,blog:!1,theme:{customCss:["/home/runner/work/blog/blog/src/css/custom.scss","/home/runner/work/blog/blog/src/css/jetbrains_mono.css"]}}]],plugins:[["@docusaurus/plugin-content-docs",{id:"algorithms",path:"algorithms",routeBasePath:"algorithms",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-docs",{id:"c",path:"c",routeBasePath:"c",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-docs",{id:"cpp",path:"cpp",routeBasePath:"cpp",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-blog",{id:"blog",routeBasePath:"blog",path:"./blog",feedOptions:{type:"all",description:"mf's blog"},editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],"docusaurus-plugin-sass",["@docusaurus/plugin-client-redirects",{}]],stylesheets:[{href:"https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css",type:"text/css",integrity:"sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM",crossorigin:"anonymous"}],themeConfig:{navbar:{title:"mf",items:[{type:"dropdown",label:"Additional FI MU materials",items:[{type:"doc",docId:"algorithms-intro",docsPluginId:"algorithms",label:"Algorithms"},{type:"doc",docId:"c-intro",docsPluginId:"c",label:"C"},{type:"doc",docId:"cpp-intro",docsPluginId:"cpp",label:"C++"}],position:"left"},{to:"contributions",label:"Contributions",position:"left"},{to:"talks",label:"Talks",position:"left"},{to:"blog",position:"right",label:"Blog"}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2023 Matej Focko.",links:[{title:"Git",items:[{label:"GitHub",href:"https://github.com/mfocko"},{label:"GitLab",href:"https://gitlab.com/mfocko"},{label:"Gitea (self-hosted)",href:"https://git.mfocko.xyz/mfocko"}]},{title:"Social #1",items:[{label:"LinkedIn",href:"https://www.linkedin.com/in/mfocko/"},{label:"Fosstodon",href:"https://fosstodon.org/@m4tt_314"},{label:"Hachyderm.io",href:"https://hachyderm.io/@m4tt_314"}]},{title:"Social #2",items:[{label:"Twitter",href:"https://twitter.com/m4tt_314"},{label:"Twitch",href:"https://twitch.tv/m4tt_314"},{label:"Ko-fi",href:"https://ko-fi.com/m4tt_314"}]}]},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"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["ada","bash","csharp","dot","haskell","java","nix","pascal","python","ruby","rust"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},mermaid:{options:{fontFamily:"Iosevka,'Iosevka Term','Cascadia Code','JetBrains Mono','Fira Code',monospace"},theme:{dark:"dark",light:"default"}},algolia:{appId:"0VXRFPR4QF",apiKey:"9d4d452117cfaaae3e51b9568e22aa16",indexName:"mfocko",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},markdown:{mermaid:!0,format:"mdx",mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}},themes:["@docusaurus/theme-mermaid"],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},scripts:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},7462:(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})},5068:(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 a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},4965:(e,t,n)=>{"use strict";n.d(t,{y$:()=>J,p1:()=>C});var r=n(7294);function a(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=a(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}const o=function(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=a(e))&&(r&&(r+=" "),r+=t);return r};var i,s,l,c,u,d=Object.create,p=Object.defineProperty,f=Object.defineProperties,g=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,k=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&k(e,n,t[n]);if(b)for(var n of b(t))w.call(t,n)&&k(e,n,t[n]);return e},S=(e,t)=>f(e,m(t)),_=(e,t)=>{var n={};for(var r in e)v.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n},E=(i={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(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 a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);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 a=e.classList;if(a.contains(t))return!0;if(a.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 a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],c=r.util.type(l);"Object"!==c||o[i(l)]?"Array"!==c||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},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 a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,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 g=0;g<f.length;++g){if(d&&d.cause==p+","+g)return;var m=f[g],h=m.inside,b=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var k=m.pattern||m,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof a)){var E,C=1;if(y){if(!(E=o(k,S,e,b))||E.index>=e.length)break;var T=E.index,A=E.index+E[0].length,N=S;for(N+=x.value.length;T>=N;)N+=(x=x.next).value.length;if(S=N-=x.value.length,x.value instanceof a)continue;for(var j=x;j!==t.tail&&(N<A||"string"==typeof j.value);j=j.next)C++,N+=j.value.length;C--,_=e.slice(S,N),E.index-=S}else if(!(E=o(k,0,_,b)))continue;T=E.index;var L=E[0],P=_.slice(0,T),R=_.slice(T+L.length),O=S+_.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(P&&(I=l(t,I,P),S+=P.length),c(t,I,C),x=l(t,I,new a(p,h?r.tokenize(L,h):L,v,L)),R&&l(t,x,R),C>1){var F={cause:p+","+g,reach:O};i(e,t,n,x.prev,S,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function s(){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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={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(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return s||(0,i[h(i)[0]])((s={exports:{}}).exports,s),s.exports}),C=((e,t,n)=>(n=null!=e?d(y(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of h(t))v.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(E());C.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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},C.languages.markup.tag.inside["attr-value"].inside.entity=C.languages.markup.entity,C.languages.markup.doctype.inside["internal-subset"].inside=C.languages.markup,C.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(C.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:C.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:C.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},C.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(C.languages.markup.tag,"addAttribute",{value:function(e,t){C.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:C.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),C.languages.html=C.languages.markup,C.languages.mathml=C.languages.markup,C.languages.svg=C.languages.markup,C.languages.xml=C.languages.extend("markup",{}),C.languages.ssml=C.languages.xml,C.languages.atom=C.languages.xml,C.languages.rss=C.languages.xml,function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",a=(r=RegExp(r+"-"+r),{pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"});e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:r,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":a}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":a}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(C),C.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:/[{}[\];(),.:]/},C.languages.javascript=C.languages.extend("clike",{"class-name":[C.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}|\?\?=?|\?\.?|[~:]/}),C.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,C.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:C.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:C.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:C.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:C.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:C.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),C.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:C.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"}}),C.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),C.languages.markup&&(C.languages.markup.tag.addInlined("script","javascript"),C.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")),C.languages.js=C.languages.javascript,C.languages.actionscript=C.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),C.languages.actionscript["class-name"].alias="function",delete C.languages.actionscript.parameter,delete C.languages.actionscript["literal-property"],C.languages.markup&&C.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:C.languages.markup}}),c=/#(?!\{).+/,u={pattern:/#\{[^}]+\}/,alias:"variable"},(l=C).languages.coffeescript=l.languages.extend("javascript",{comment:c,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:u}}],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"}}),l.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:c,interpolation:u}}}),l.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:l.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:u}}]}),l.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete l.languages.coffeescript["template-string"],l.languages.coffee=l.languages.coffeescript,function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(C),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),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,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(C),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(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("\\[(?:[^[\\]\"']|"+t.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":[t,{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}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{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|RebeccaPurple|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:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(C),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\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})),o=/"(?:[^"\\\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"(?:"+a+"|"+o+")"}))),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(o),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}(C),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,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(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("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),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 a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(C),C.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:C.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+/},C.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 a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<a.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=a.indexOf(c.content)&&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}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),C.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,a=r.inside["interpolation-punctuation"],o=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 s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var o=0;o<n.length;o++){if(c>=d.length)return;var i,l,p,f,g,m,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(h=(m="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=m.substring(0,h),g=u[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(g,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,g),f=m.substring(h+i.length),g=[],l&&g.push(l),g.push(p),f&&(t(m=[f]),g.push.apply(g,m)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(g)),o+=g.length-1):b.content=g)):(h=b.content,Array.isArray(h)?t(h):t([h]))}}(l),new e.Token(i,l,"language-"+i,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 c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,s,c=n[r];"string"!=typeof c&&(o=c.content,Array.isArray(o)?"template-string"===c.type?(c=o[1],3===o.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(o[1]=l(i,s,c))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(C),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}(C),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(C),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(C),C.languages.n4js=C.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),C.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),C.languages.n4jsd=C.languages.n4js,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 a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(C),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:s(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=s(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=s(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\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:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(C),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(C),C.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},C.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=C.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(C),C.languages.c=C.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|[?:~]|[-+*/%&|^!=<>]=?/}),C.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),C.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},C.languages.c.string],char:C.languages.c.char,comment:C.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:C.languages.c}}}}),C.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 C.languages.c.boolean,C.languages.objectivec=C.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 C.languages.objectivec["class-name"],C.languages.objc=C.languages.objectivec,C.languages.reason=C.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/}),C.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 C.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(C),C.languages.go=C.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/}),C.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete C.languages.go["class-name"],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"])}(C),C.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:/[{}[\];(),.:]/},C.languages.python["string-interpolation"].inside.interpolation.inside.rest=C.languages.python,C.languages.py=C.languages.python;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>A,duotoneLight:()=>N,github:()=>j,jettwaveDark:()=>Z,jettwaveLight:()=>H,nightOwl:()=>L,nightOwlLight:()=>P,oceanicNext:()=>I,okaidia:()=>F,oneDark:()=>V,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>D,synthwave84:()=>B,ultramin:()=>z,vsDark:()=>$,vsLight:()=>U});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},A={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"}}]},N={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{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:"#896724"}}]},j={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"}}]},L={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},P={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},R="#c5a5c5",O="#8dc891",I={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:R}},{types:["attr-value"],style:{color:O}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:O}},{types:["punctuation"],style:{color:O}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:R}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},F={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},M={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},D={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},z={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},$={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},U={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},Z={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{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:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{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:"hsl(230, 8%, 24%)"}}]},G=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=x(x({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=S(x({},n),{backgroundColor:void 0}),r},q=/\r\n|\r|\n/,K=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)},Y=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},Q=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,c=t[i];const u=n[i][o];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=Y(c,u.type),u.alias&&(c=Y(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(q),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)K(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return K(s),l},X=({children:e,language:t,code:n,theme:a,prism:i})=>{const s=t.toLowerCase(),l=((e,t)=>{const[n,a]=(0,r.useState)(G(t,e)),o=(0,r.useRef)(),i=(0,r.useRef)();return(0,r.useEffect)((()=>{t===o.current&&e===i.current||(o.current=t,i.current=e,a(G(t,e)))}),[e,t]),n})(s,a),c=(e=>(0,r.useCallback)((t=>{var n=t,{className:r,style:a,line:i}=n,s=_(n,["className","style","line"]);const l=S(x({},s),{className:o("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=x(x({},l.style||{}),a)),l}),[e]))(l),u=(e=>{const t=(0,r.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,r.useCallback)((e=>{var n=e,{token:r,className:a,style:i}=n,s=_(n,["token","className","style"]);const l=S(x({},s),{className:o("token",...r.types,a),children:r.content,style:t(r)});return null!=i&&(l.style=x(x({},l.style||{}),i)),l}),[t])})(l),d=(({prism:e,code:t,grammar:n,language:a})=>{const o=(0,r.useRef)(e);return(0,r.useMemo)((()=>{if(null==n)return Q([t]);const e={code:t,grammar:n,language:a,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),Q(e.tokens)}),[t,n,a])})({prism:i,language:s,code:n,grammar:i.languages[s]});return e({tokens:d,className:`prism-code language-${s}`,style:null!=l?l.root:{},getLineProps:c,getTokenProps:u})},J=e=>(0,r.createElement)(X,S(x({},e),{prism:e.prism||C,theme:e.theme||$,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/blog/-608":{"__comp":"a6aa9e1f","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"},{"content":"ab2721d4"},{"content":"bb882650"},{"content":"75cccf44"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"metadata":"a7098721"},"/blog/2023/08/02/copr/-69d":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"b5a32f14"},"/blog/aoc-2022/1st-week/-df4":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"dff2ebad"},"/blog/aoc-2022/2nd-week/-783":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"377f3aa1"},"/blog/aoc-2022/3rd-week/-7c5":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"f48be158"},"/blog/aoc-2022/4th-week/-1ac":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"3da4b779"},"/blog/aoc-2022/intro/-ada":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"51624505"},"/blog/archive/-22d":{"__comp":"9e4087bc","__context":{"plugin":"0220f5fc"},"archive":"4200b1a9"},"/blog/leetcode/sort-diagonally/-d97":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"cfa2b263"},"/blog/tags/-f23":{"__comp":"01a85c17","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","tags":"66d5ef6c"},"/blog/tags/\ud83c\udfed/-ffd":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"765ea78b","listMetadata":"b25fbc58"},"/blog/tags/admin/-d3a":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"a082abd3","listMetadata":"146d9b84"},"/blog/tags/advent-of-code-2022/-7bd":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"a80747a0","listMetadata":"62d847b3"},"/blog/tags/advent-of-code/-313":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"19d7c045","listMetadata":"8b1802c5"},"/blog/tags/copr/-959":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"b45dccf0","listMetadata":"3011a4c0"},"/blog/tags/cpp/-770":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"4edd2021","listMetadata":"4621632b"},"/blog/tags/iterators/-2eb":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"ff472cd9","listMetadata":"29694455"},"/blog/tags/leetcode/-e31":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"86cd1460","listMetadata":"e89da83e"},"/blog/tags/red-hat/-a58":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"52f2a5bf","listMetadata":"d79dd549"},"/blog/tags/rust/-281":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"9287eafd","listMetadata":"0bfe45d5"},"/blog/tags/vps/-1b8":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"8c0e532b","listMetadata":"0608d96f"},"/contributions/-541":{"__comp":"22a175ec","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"},"/search/-c7b":{"__comp":"1a4e3797","__context":{"plugin":"b0291f37"}},"/talks/-819":{"__comp":"0fcbc6ca","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"},"/algorithms/-67b":{"__comp":"5e95c892","__context":{"plugin":"1a606400"}},"/algorithms/-96e":{"__comp":"a7bd4aaa","version":"6e3cbca1"},"/algorithms/tags/-bb8":{"__comp":"3720c009","tags":"97a42631"},"/algorithms/tags/applications/-b32":{"__comp":"df203c0f","tag":"e1d2ae23"},"/algorithms/tags/backtracking/-e2d":{"__comp":"df203c0f","tag":"eba2374c"},"/algorithms/tags/balanced-trees/-591":{"__comp":"df203c0f","tag":"d4b1e057"},"/algorithms/tags/bfs/-334":{"__comp":"df203c0f","tag":"947341b7"},"/algorithms/tags/bottom-up-dp/-9e5":{"__comp":"df203c0f","tag":"bc2d22bc"},"/algorithms/tags/c/-cc5":{"__comp":"df203c0f","tag":"0123bc76"},"/algorithms/tags/csharp/-7a9":{"__comp":"df203c0f","tag":"d57b4369"},"/algorithms/tags/dynamic-array/-00e":{"__comp":"df203c0f","tag":"9a3dc578"},"/algorithms/tags/dynamic-programming/-f82":{"__comp":"df203c0f","tag":"dd841e73"},"/algorithms/tags/exponential/-a74":{"__comp":"df203c0f","tag":"8e6bb954"},"/algorithms/tags/graphs/-d5b":{"__comp":"df203c0f","tag":"686a7a89"},"/algorithms/tags/greedy/-079":{"__comp":"df203c0f","tag":"b8cbf382"},"/algorithms/tags/iterative/-783":{"__comp":"df203c0f","tag":"16cbc838"},"/algorithms/tags/iterators/-1bc":{"__comp":"df203c0f","tag":"df0885f0"},"/algorithms/tags/java/-2b4":{"__comp":"df203c0f","tag":"976c4f3b"},"/algorithms/tags/karel/-79f":{"__comp":"df203c0f","tag":"bb984793"},"/algorithms/tags/postconditions/-a27":{"__comp":"df203c0f","tag":"34ab65f4"},"/algorithms/tags/python/-eb2":{"__comp":"df203c0f","tag":"8d31a880"},"/algorithms/tags/recursion/-2b0":{"__comp":"df203c0f","tag":"2b89902a"},"/algorithms/tags/red-black-trees/-9ca":{"__comp":"df203c0f","tag":"d255bd7f"},"/algorithms/tags/sorting/-7ca":{"__comp":"df203c0f","tag":"28d80ff8"},"/algorithms/tags/testing/-2af":{"__comp":"df203c0f","tag":"06c4a8fc"},"/algorithms/tags/time-complexity/-2d3":{"__comp":"df203c0f","tag":"a4c10cf4"},"/algorithms/tags/top-down-dp/-779":{"__comp":"df203c0f","tag":"c580b66a"},"/algorithms/-2a9":{"__comp":"a94703ab"},"/algorithms/-9b0":{"__comp":"17896441","content":"84d1e0d8"},"/algorithms/algorithms-correctness/postcondition-ambiguity/-c18":{"__comp":"17896441","content":"534d4833"},"/algorithms/category/algorithms-and-correctness/-ea2":{"__comp":"14eb3368","categoryGeneratedIndex":"d309b5b1"},"/algorithms/category/asymptotic-notation-and-time-complexity/-fba":{"__comp":"14eb3368","categoryGeneratedIndex":"decbf9d1"},"/algorithms/category/graphs/-a92":{"__comp":"14eb3368","categoryGeneratedIndex":"9df0e937"},"/algorithms/category/recursion/-61f":{"__comp":"14eb3368","categoryGeneratedIndex":"933b95b3"},"/algorithms/category/red-black-trees/-0c0":{"__comp":"14eb3368","categoryGeneratedIndex":"fb4361d3"},"/algorithms/graphs/bfs-tree/-2fb":{"__comp":"17896441","content":"354a7b72"},"/algorithms/graphs/iterative-and-iterators/-bfd":{"__comp":"17896441","content":"ddc7679f"},"/algorithms/rb-trees/applications/-46a":{"__comp":"17896441","content":"0178f9ad"},"/algorithms/rb-trees/rules/-21a":{"__comp":"17896441","content":"ff82dde7"},"/algorithms/recursion/karel-1/-600":{"__comp":"17896441","content":"d1aceb2e"},"/algorithms/recursion/pyramid-slide-down/-947":{"__comp":"17896441","content":"5fe5d476"},"/algorithms/time-complexity/extend/-250":{"__comp":"17896441","content":"24fecc0a"},"/c/-dae":{"__comp":"5e95c892","__context":{"plugin":"5ca803d2"}},"/c/-fc8":{"__comp":"a7bd4aaa","version":"4e546705"},"/c/-1c4":{"__comp":"a94703ab"},"/c/-a0f":{"__comp":"17896441","content":"794ef108"},"/c/bonuses/seminar-03/-aaa":{"__comp":"17896441","content":"dead8108"},"/c/bonuses/seminar-04/-ffe":{"__comp":"17896441","content":"bc0c9d90"},"/c/bonuses/seminar-05-06/-4cd":{"__comp":"17896441","content":"d05e838c"},"/c/bonuses/seminar-08/-09a":{"__comp":"17896441","content":"595c7293"},"/c/bonuses/seminar-10/-b9e":{"__comp":"17896441","content":"1535ede8"},"/c/category/bonuses/-17e":{"__comp":"14eb3368","categoryGeneratedIndex":"48b268a6"},"/c/category/practice-exams/-009":{"__comp":"14eb3368","categoryGeneratedIndex":"962da50c"},"/c/mr/-4c5":{"__comp":"17896441","content":"b1288602"},"/c/pexam/cams/-a10":{"__comp":"17896441","content":"4f96b16e"},"/c/pexam/garbage_collect/-44e":{"__comp":"17896441","content":"1acf65cc"},"/cpp/-269":{"__comp":"5e95c892","__context":{"plugin":"6bc697d0"}},"/cpp/-187":{"__comp":"a7bd4aaa","version":"7e6d325b"},"/cpp/-102":{"__comp":"a94703ab"},"/cpp/-fcd":{"__comp":"17896441","content":"7052c0bc"},"/cpp/category/exceptions-and-raii/-cfa":{"__comp":"14eb3368","categoryGeneratedIndex":"e31003e9"},"/cpp/environment/-e0b":{"__comp":"17896441","content":"b9f7f5c4"},"/cpp/exceptions-and-raii/placeholders/-9b3":{"__comp":"17896441","content":"45c9e308"},"/-dfb":{"__comp":"c4f5d8e4","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.a809bb25.js b/assets/js/main.a809bb25.js new file mode 100644 index 0000000..f5f99de --- /dev/null +++ b/assets/js/main.a809bb25.js @@ -0,0 +1,2 @@ +/*! For license information please see main.a809bb25.js.LICENSE.txt */ +(self.webpackChunkfi=self.webpackChunkfi||[]).push([[179],{20830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(67294);function a(){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:()=>p});n(67294);var r=n(68356),a=n.n(r),o=n(16887);const i={"0123bc76":[()=>n.e(3734).then(n.t.bind(n,76554,19)),"~docs/algorithms/tag-algorithms-tags-c-e22.json",76554],"0178f9ad":[()=>n.e(9898).then(n.bind(n,35610)),"@site/algorithms/08-rb-trees/2022-04-05-applications.md",35610],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,24524)),"@theme/BlogTagsListPage",24524],"0220f5fc":[()=>n.e(1378).then(n.t.bind(n,85804,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-blog/blog/plugin-route-context-module-100.json",85804],"0608d96f":[()=>n.e(7568).then(n.t.bind(n,77158,19)),"~blog/blog/blog-tags-vps-843-list.json",77158],"06c4a8fc":[()=>n.e(2125).then(n.t.bind(n,4697,19)),"~docs/algorithms/tag-algorithms-tags-testing-0c4.json",4697],"087808f1":[()=>n.e(3731).then(n.bind(n,48157)),"@site/algorithms/12-hash-tables/2023-11-28-breaking/index.md",48157],"0bfe45d5":[()=>n.e(4269).then(n.t.bind(n,13847,19)),"~blog/blog/blog-tags-rust-0c9-list.json",13847],"0fcbc6ca":[()=>Promise.all([n.e(532),n.e(1851)]).then(n.bind(n,39900)),"@site/src/pages/talks.tsx",39900],"146d9b84":[()=>n.e(9300).then(n.t.bind(n,96671,19)),"~blog/blog/blog-tags-admin-b05-list.json",96671],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,34228)),"@theme/DocCategoryGeneratedIndexPage",34228],"1535ede8":[()=>n.e(5376).then(n.bind(n,44969)),"@site/c/bonuses/10.md",44969],15966941:[()=>n.e(8326).then(n.bind(n,16721)),"@site/algorithms/12-hash-tables/2023-11-28-breaking/02-mitigations.md",16721],"16cbc838":[()=>n.e(1494).then(n.t.bind(n,98252,19)),"~docs/algorithms/tag-algorithms-tags-iterative-d5b.json",98252],17896441:[()=>Promise.all([n.e(532),n.e(1325),n.e(7918)]).then(n.bind(n,15154)),"@theme/DocItem",15154],"19d7c045":[()=>n.e(4637).then(n.t.bind(n,67772,19)),"~blog/blog/blog-tags-advent-of-code-49f.json",67772],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,39172)),"@theme/SearchPage",39172],"1a606400":[()=>n.e(494).then(n.t.bind(n,82400,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/algorithms/plugin-route-context-module-100.json",82400],"1acf65cc":[()=>n.e(8529).then(n.bind(n,34568)),"@site/c/pexam/b-garbage_collect.md",34568],"22a175ec":[()=>Promise.all([n.e(532),n.e(6890)]).then(n.bind(n,40707)),"@site/src/pages/contributions.tsx",40707],"24fecc0a":[()=>n.e(3707).then(n.bind(n,69383)),"@site/algorithms/03-time-complexity/2021-03-31-extend.md",69383],"28d80ff8":[()=>n.e(6435).then(n.t.bind(n,7465,19)),"~docs/algorithms/tag-algorithms-tags-sorting-d73.json",7465],29694455:[()=>n.e(3388).then(n.t.bind(n,39828,19)),"~blog/blog/blog-tags-iterators-977-list.json",39828],"2b89902a":[()=>n.e(6342).then(n.t.bind(n,45443,19)),"~docs/algorithms/tag-algorithms-tags-recursion-1bd.json",45443],"2fcf0558":[()=>n.e(4638).then(n.t.bind(n,69470,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-hash-tables-062.json",69470],"3011a4c0":[()=>n.e(7926).then(n.t.bind(n,31670,19)),"~blog/blog/blog-tags-copr-70b-list.json",31670],"34ab65f4":[()=>n.e(3220).then(n.t.bind(n,28865,19)),"~docs/algorithms/tag-algorithms-tags-postconditions-1f3.json",28865],"354a7b72":[()=>n.e(9414).then(n.bind(n,46617)),"@site/algorithms/10-graphs/2022-04-30-bfs-tree.md",46617],"3720c009":[()=>Promise.all([n.e(532),n.e(3751)]).then(n.bind(n,10727)),"@theme/DocTagsListPage",10727],"377f3aa1":[()=>n.e(1011).then(n.bind(n,7582)),"@site/blog/aoc-2022/02-week-2.md",7582],"3da4b779":[()=>n.e(2177).then(n.bind(n,28737)),"@site/blog/aoc-2022/04-week-4.md",28737],"4200b1a9":[()=>n.e(866).then(n.t.bind(n,24612,19)),"~blog/blog/blog-archive-80c.json",24612],"45c9e308":[()=>n.e(7084).then(n.bind(n,53181)),"@site/cpp/07-exceptions-and-raii/2023-11-24-placeholders.md",53181],"4621632b":[()=>n.e(3519).then(n.t.bind(n,29760,19)),"~blog/blog/blog-tags-cpp-7c7-list.json",29760],"48b268a6":[()=>n.e(1648).then(n.t.bind(n,35067,19)),"~docs/c/category-c-autogeneratedbar-category-bonuses-216.json",35067],"4e546705":[()=>n.e(4327).then(n.t.bind(n,61795,19)),"~docs/c/version-current-metadata-prop-751.json",61795],"4edd2021":[()=>n.e(5975).then(n.t.bind(n,21705,19)),"~blog/blog/blog-tags-cpp-7c7.json",21705],"4f96b16e":[()=>n.e(6306).then(n.bind(n,24693)),"@site/c/pexam/c-cams.md",24693],51624505:[()=>n.e(4394).then(n.bind(n,32609)),"@site/blog/aoc-2022/00-intro.md",32609],"520f8175":[()=>n.e(8058).then(n.t.bind(n,24353,19)),"~docs/algorithms/tag-algorithms-tags-cpp-0d2.json",24353],"52f2a5bf":[()=>n.e(5430).then(n.t.bind(n,61387,19)),"~blog/blog/blog-tags-red-hat-df4.json",61387],"534d4833":[()=>n.e(9771).then(n.bind(n,93019)),"@site/algorithms/02-algorithms-correctness/2021-03-18-postcondition-ambiguity.md",93019],"595c7293":[()=>n.e(5634).then(n.bind(n,58396)),"@site/c/bonuses/08.md",58396],"5ca803d2":[()=>n.e(9173).then(n.t.bind(n,24890,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/c/plugin-route-context-module-100.json",24890],"5e95c892":[()=>n.e(9661).then(n.bind(n,41892)),"@theme/DocsRoot",41892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"5fe5d476":[()=>n.e(2619).then(n.bind(n,14457)),"@site/algorithms/04-recursion/2023-08-17-pyramid-slide-down.md",14457],"62d847b3":[()=>n.e(8520).then(n.t.bind(n,91901,19)),"~blog/blog/blog-tags-advent-of-code-2022-3db-list.json",91901],"66d5ef6c":[()=>n.e(9228).then(n.t.bind(n,4087,19)),"~blog/blog/blog-tags-tags-4c2.json",4087],"686a7a89":[()=>n.e(728).then(n.t.bind(n,77507,19)),"~docs/algorithms/tag-algorithms-tags-graphs-31d.json",77507],"6875c492":[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(8610)]).then(n.bind(n,41714)),"@theme/BlogTagsPostsPage",41714],"6bc697d0":[()=>n.e(5287).then(n.t.bind(n,68529,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-docs/cpp/plugin-route-context-module-100.json",68529],"6e3cbca1":[()=>n.e(3276).then(n.t.bind(n,29538,19)),"~docs/algorithms/version-current-metadata-prop-751.json",29538],"7052c0bc":[()=>n.e(9731).then(n.bind(n,42286)),"@site/cpp/00-intro.md",42286],"75cccf44":[()=>n.e(4256).then(n.bind(n,98215)),"@site/blog/leetcode/sort-matrix-diagonally.md?truncated=true",98215],"765ea78b":[()=>n.e(3039).then(n.t.bind(n,83010,19)),"~blog/blog/blog-tags-\ud83c\udfed-551.json",83010],"794ef108":[()=>n.e(3803).then(n.bind(n,86427)),"@site/c/00-intro.md",86427],"7e6d325b":[()=>n.e(3184).then(n.t.bind(n,26139,19)),"~docs/cpp/version-current-metadata-prop-751.json",26139],"84d1e0d8":[()=>n.e(1885).then(n.bind(n,49713)),"@site/algorithms/00-intro.md",49713],"86cd1460":[()=>n.e(1235).then(n.t.bind(n,38968,19)),"~blog/blog/blog-tags-leetcode-042.json",38968],"8b1802c5":[()=>n.e(8480).then(n.t.bind(n,60832,19)),"~blog/blog/blog-tags-advent-of-code-49f-list.json",60832],"8c0e532b":[()=>n.e(822).then(n.t.bind(n,73968,19)),"~blog/blog/blog-tags-vps-843.json",73968],"8d31a880":[()=>n.e(9066).then(n.t.bind(n,72232,19)),"~docs/algorithms/tag-algorithms-tags-python-48f.json",72232],"8e6bb954":[()=>n.e(5775).then(n.t.bind(n,76206,19)),"~docs/algorithms/tag-algorithms-tags-exponential-60a.json",76206],"9287eafd":[()=>n.e(5521).then(n.t.bind(n,90716,19)),"~blog/blog/blog-tags-rust-0c9.json",90716],"933b95b3":[()=>n.e(3887).then(n.t.bind(n,7405,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-recursion-257.json",7405],"947341b7":[()=>n.e(1145).then(n.t.bind(n,2897,19)),"~docs/algorithms/tag-algorithms-tags-bfs-69f.json",2897],"95b96bb9":[()=>n.e(3561).then(n.t.bind(n,24577,19)),"~blog/blog/blog-post-list-prop-blog.json",24577],"95f41f0b":[()=>n.e(9385).then(n.bind(n,93195)),"@site/blog/aoc-2022/01-week-1.md?truncated=true",93195],"962da50c":[()=>n.e(2264).then(n.t.bind(n,9705,19)),"~docs/c/category-c-autogeneratedbar-category-practice-exams-e97.json",9705],"976c4f3b":[()=>n.e(4562).then(n.t.bind(n,69019,19)),"~docs/algorithms/tag-algorithms-tags-java-6c3.json",69019],"97a42631":[()=>n.e(1464).then(n.t.bind(n,77343,19)),"~docs/algorithms/tags-list-current-prop-15a.json",77343],"9a3dc578":[()=>n.e(655).then(n.t.bind(n,9916,19)),"~docs/algorithms/tag-algorithms-tags-dynamic-array-5d3.json",9916],"9df0e937":[()=>n.e(2210).then(n.t.bind(n,55256,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-graphs-2e2.json",55256],"9e4087bc":[()=>n.e(3608).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],a082abd3:[()=>n.e(8786).then(n.t.bind(n,73276,19)),"~blog/blog/blog-tags-admin-b05.json",73276],a4c10cf4:[()=>n.e(4382).then(n.t.bind(n,30685,19)),"~docs/algorithms/tag-algorithms-tags-time-complexity-c50.json",30685],a6a48ea2:[()=>n.e(3618).then(n.bind(n,1176)),"@site/blog/aoc-2022/02-week-2.md?truncated=true",1176],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(3089)]).then(n.bind(n,80046)),"@theme/BlogListPage",80046],a7098721:[()=>n.e(1050).then(n.t.bind(n,26615,19)),"~blog/blog/blog-c06.json",26615],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a80747a0:[()=>n.e(5824).then(n.t.bind(n,4464,19)),"~blog/blog/blog-tags-advent-of-code-2022-3db.json",4464],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,12674)),"@theme/DocRoot",12674],aa24fd5d:[()=>n.e(7257).then(n.bind(n,90251)),"@site/algorithms/12-hash-tables/2023-11-28-breaking/01-python.md",90251],ab2721d4:[()=>n.e(7755).then(n.bind(n,53037)),"@site/blog/aoc-2022/04-week-4.md?truncated=true",53037],af8b72a7:[()=>n.e(5658).then(n.bind(n,10507)),"@site/blog/2023-08-02-copr.md?truncated=true",10507],b0291f37:[()=>n.e(6097).then(n.t.bind(n,7085,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],b1288602:[()=>n.e(59).then(n.bind(n,51456)),"@site/c/mr.md",51456],b25fbc58:[()=>n.e(9197).then(n.t.bind(n,75617,19)),"~blog/blog/blog-tags-\ud83c\udfed-551-list.json",75617],b45dccf0:[()=>n.e(9679).then(n.t.bind(n,58296,19)),"~blog/blog/blog-tags-copr-70b.json",58296],b5a32f14:[()=>n.e(2433).then(n.bind(n,31976)),"@site/blog/2023-08-02-copr.md",31976],b8cbf382:[()=>n.e(7438).then(n.t.bind(n,74632,19)),"~docs/algorithms/tag-algorithms-tags-greedy-02f.json",74632],b9f7f5c4:[()=>n.e(9179).then(n.bind(n,76699)),"@site/cpp/environment.md",76699],bb882650:[()=>n.e(8091).then(n.bind(n,66765)),"@site/blog/aoc-2022/03-week-3.md?truncated=true",66765],bb984793:[()=>n.e(6864).then(n.t.bind(n,82505,19)),"~docs/algorithms/tag-algorithms-tags-karel-df7.json",82505],bc0c9d90:[()=>n.e(354).then(n.bind(n,50476)),"@site/c/bonuses/04.md",50476],bc2d22bc:[()=>n.e(6519).then(n.t.bind(n,70428,19)),"~docs/algorithms/tag-algorithms-tags-bottom-up-dp-4f9.json",70428],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,53261)),"@site/src/pages/index.js",53261],c580b66a:[()=>n.e(6573).then(n.t.bind(n,45021,19)),"~docs/algorithms/tag-algorithms-tags-top-down-dp-c2f.json",45021],ccc49370:[()=>Promise.all([n.e(532),n.e(1325),n.e(130),n.e(6103)]).then(n.bind(n,65203)),"@theme/BlogPostPage",65203],cfa2b263:[()=>n.e(3086).then(n.bind(n,34437)),"@site/blog/leetcode/sort-matrix-diagonally.md",34437],d05e838c:[()=>n.e(6544).then(n.bind(n,63004)),"@site/c/bonuses/05-06.md",63004],d1aceb2e:[()=>n.e(1353).then(n.bind(n,71466)),"@site/algorithms/04-recursion/2022-11-29-karel-1.md",71466],d255bd7f:[()=>n.e(6292).then(n.t.bind(n,60341,19)),"~docs/algorithms/tag-algorithms-tags-red-black-trees-c61.json",60341],d309b5b1:[()=>n.e(8908).then(n.t.bind(n,26102,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-algorithms-and-correctness-d51.json",26102],d4b1e057:[()=>n.e(1492).then(n.t.bind(n,12842,19)),"~docs/algorithms/tag-algorithms-tags-balanced-trees-b3e.json",12842],d57b4369:[()=>n.e(6179).then(n.t.bind(n,52715,19)),"~docs/algorithms/tag-algorithms-tags-csharp-d1d.json",52715],d675395f:[()=>n.e(2741).then(n.t.bind(n,15745,19)),"/home/runner/work/blog/blog/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],d79dd549:[()=>n.e(5169).then(n.t.bind(n,29261,19)),"~blog/blog/blog-tags-red-hat-df4-list.json",29261],d7f7fb17:[()=>n.e(1171).then(n.bind(n,3455)),"@site/blog/aoc-2022/00-intro.md?truncated=true",3455],d8f4410e:[()=>n.e(2997).then(n.t.bind(n,41941,19)),"~docs/algorithms/tag-algorithms-tags-hash-tables-b36.json",41941],dd841e73:[()=>n.e(2482).then(n.t.bind(n,40155,19)),"~docs/algorithms/tag-algorithms-tags-dynamic-programming-3e6.json",40155],ddc7679f:[()=>n.e(569).then(n.bind(n,64322)),"@site/algorithms/10-graphs/2021-05-18-iterative-and-iterators.md",64322],dead8108:[()=>n.e(8807).then(n.bind(n,21431)),"@site/c/bonuses/03.md",21431],decbf9d1:[()=>n.e(2445).then(n.t.bind(n,88876,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-asymptotic-notation-and-time-complexity-e0d.json",88876],df0885f0:[()=>n.e(4343).then(n.t.bind(n,34175,19)),"~docs/algorithms/tag-algorithms-tags-iterators-13a.json",34175],df203c0f:[()=>Promise.all([n.e(532),n.e(9924)]).then(n.bind(n,40491)),"@theme/DocTagDocListPage",40491],dff2ebad:[()=>n.e(146).then(n.bind(n,42492)),"@site/blog/aoc-2022/01-week-1.md",42492],e1d2ae23:[()=>n.e(1475).then(n.t.bind(n,36302,19)),"~docs/algorithms/tag-algorithms-tags-applications-020.json",36302],e31003e9:[()=>n.e(1960).then(n.t.bind(n,81695,19)),"~docs/cpp/category-cpp-autogeneratedbar-category-exceptions-and-raii-6e9.json",81695],e89da83e:[()=>n.e(8757).then(n.t.bind(n,97416,19)),"~blog/blog/blog-tags-leetcode-042-list.json",97416],eba2374c:[()=>n.e(8387).then(n.t.bind(n,47662,19)),"~docs/algorithms/tag-algorithms-tags-backtracking-bb2.json",47662],f48be158:[()=>n.e(4064).then(n.bind(n,12326)),"@site/blog/aoc-2022/03-week-3.md",12326],fb4361d3:[()=>n.e(6327).then(n.t.bind(n,9631,19)),"~docs/algorithms/category-algorithms-autogeneratedbar-category-red-black-trees-d8a.json",9631],ff472cd9:[()=>n.e(8643).then(n.t.bind(n,7122,19)),"~blog/blog/blog-tags-iterators-977.json",7122],ff82dde7:[()=>Promise.all([n.e(532),n.e(8472)]).then(n.bind(n,63935)),"@site/algorithms/08-rb-trees/2023-06-10-rules.md",63935]};var s=n(85893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("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%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("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",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(99670),u=n(30226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,51772)),modules:["@theme/NotFound"],webpack:()=>[51772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],g=(0,c.Z)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));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 i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/blog/",component:d("/blog/","608"),exact:!0},{path:"/blog/2023/08/02/copr/",component:d("/blog/2023/08/02/copr/","69d"),exact:!0},{path:"/blog/aoc-2022/1st-week/",component:d("/blog/aoc-2022/1st-week/","df4"),exact:!0},{path:"/blog/aoc-2022/2nd-week/",component:d("/blog/aoc-2022/2nd-week/","783"),exact:!0},{path:"/blog/aoc-2022/3rd-week/",component:d("/blog/aoc-2022/3rd-week/","7c5"),exact:!0},{path:"/blog/aoc-2022/4th-week/",component:d("/blog/aoc-2022/4th-week/","1ac"),exact:!0},{path:"/blog/aoc-2022/intro/",component:d("/blog/aoc-2022/intro/","ada"),exact:!0},{path:"/blog/archive/",component:d("/blog/archive/","22d"),exact:!0},{path:"/blog/leetcode/sort-diagonally/",component:d("/blog/leetcode/sort-diagonally/","d97"),exact:!0},{path:"/blog/tags/",component:d("/blog/tags/","f23"),exact:!0},{path:"/blog/tags/\ud83c\udfed/",component:d("/blog/tags/\ud83c\udfed/","ffd"),exact:!0},{path:"/blog/tags/admin/",component:d("/blog/tags/admin/","d3a"),exact:!0},{path:"/blog/tags/advent-of-code-2022/",component:d("/blog/tags/advent-of-code-2022/","7bd"),exact:!0},{path:"/blog/tags/advent-of-code/",component:d("/blog/tags/advent-of-code/","313"),exact:!0},{path:"/blog/tags/copr/",component:d("/blog/tags/copr/","959"),exact:!0},{path:"/blog/tags/cpp/",component:d("/blog/tags/cpp/","770"),exact:!0},{path:"/blog/tags/iterators/",component:d("/blog/tags/iterators/","2eb"),exact:!0},{path:"/blog/tags/leetcode/",component:d("/blog/tags/leetcode/","e31"),exact:!0},{path:"/blog/tags/red-hat/",component:d("/blog/tags/red-hat/","a58"),exact:!0},{path:"/blog/tags/rust/",component:d("/blog/tags/rust/","281"),exact:!0},{path:"/blog/tags/vps/",component:d("/blog/tags/vps/","1b8"),exact:!0},{path:"/contributions/",component:d("/contributions/","541"),exact:!0},{path:"/search/",component:d("/search/","c7b"),exact:!0},{path:"/talks/",component:d("/talks/","819"),exact:!0},{path:"/algorithms/",component:d("/algorithms/","f04"),routes:[{path:"/algorithms/",component:d("/algorithms/","d58"),routes:[{path:"/algorithms/tags/",component:d("/algorithms/tags/","bb8"),exact:!0},{path:"/algorithms/tags/applications/",component:d("/algorithms/tags/applications/","b32"),exact:!0},{path:"/algorithms/tags/backtracking/",component:d("/algorithms/tags/backtracking/","e2d"),exact:!0},{path:"/algorithms/tags/balanced-trees/",component:d("/algorithms/tags/balanced-trees/","591"),exact:!0},{path:"/algorithms/tags/bfs/",component:d("/algorithms/tags/bfs/","334"),exact:!0},{path:"/algorithms/tags/bottom-up-dp/",component:d("/algorithms/tags/bottom-up-dp/","9e5"),exact:!0},{path:"/algorithms/tags/c/",component:d("/algorithms/tags/c/","cc5"),exact:!0},{path:"/algorithms/tags/cpp/",component:d("/algorithms/tags/cpp/","f5b"),exact:!0},{path:"/algorithms/tags/csharp/",component:d("/algorithms/tags/csharp/","7a9"),exact:!0},{path:"/algorithms/tags/dynamic-array/",component:d("/algorithms/tags/dynamic-array/","00e"),exact:!0},{path:"/algorithms/tags/dynamic-programming/",component:d("/algorithms/tags/dynamic-programming/","f82"),exact:!0},{path:"/algorithms/tags/exponential/",component:d("/algorithms/tags/exponential/","a74"),exact:!0},{path:"/algorithms/tags/graphs/",component:d("/algorithms/tags/graphs/","d5b"),exact:!0},{path:"/algorithms/tags/greedy/",component:d("/algorithms/tags/greedy/","079"),exact:!0},{path:"/algorithms/tags/hash-tables/",component:d("/algorithms/tags/hash-tables/","ae4"),exact:!0},{path:"/algorithms/tags/iterative/",component:d("/algorithms/tags/iterative/","783"),exact:!0},{path:"/algorithms/tags/iterators/",component:d("/algorithms/tags/iterators/","1bc"),exact:!0},{path:"/algorithms/tags/java/",component:d("/algorithms/tags/java/","2b4"),exact:!0},{path:"/algorithms/tags/karel/",component:d("/algorithms/tags/karel/","79f"),exact:!0},{path:"/algorithms/tags/postconditions/",component:d("/algorithms/tags/postconditions/","a27"),exact:!0},{path:"/algorithms/tags/python/",component:d("/algorithms/tags/python/","eb2"),exact:!0},{path:"/algorithms/tags/recursion/",component:d("/algorithms/tags/recursion/","2b0"),exact:!0},{path:"/algorithms/tags/red-black-trees/",component:d("/algorithms/tags/red-black-trees/","9ca"),exact:!0},{path:"/algorithms/tags/sorting/",component:d("/algorithms/tags/sorting/","7ca"),exact:!0},{path:"/algorithms/tags/testing/",component:d("/algorithms/tags/testing/","2af"),exact:!0},{path:"/algorithms/tags/time-complexity/",component:d("/algorithms/tags/time-complexity/","2d3"),exact:!0},{path:"/algorithms/tags/top-down-dp/",component:d("/algorithms/tags/top-down-dp/","779"),exact:!0},{path:"/algorithms/",component:d("/algorithms/","301"),routes:[{path:"/algorithms/",component:d("/algorithms/","9b0"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/algorithms-correctness/postcondition-ambiguity/",component:d("/algorithms/algorithms-correctness/postcondition-ambiguity/","c18"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/algorithms-and-correctness/",component:d("/algorithms/category/algorithms-and-correctness/","ea2"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/asymptotic-notation-and-time-complexity/",component:d("/algorithms/category/asymptotic-notation-and-time-complexity/","fba"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/graphs/",component:d("/algorithms/category/graphs/","a92"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/hash-tables/",component:d("/algorithms/category/hash-tables/","ddd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/recursion/",component:d("/algorithms/category/recursion/","61f"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/category/red-black-trees/",component:d("/algorithms/category/red-black-trees/","0c0"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/graphs/bfs-tree/",component:d("/algorithms/graphs/bfs-tree/","2fb"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/graphs/iterative-and-iterators/",component:d("/algorithms/graphs/iterative-and-iterators/","bfd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/hash-tables/breaking/",component:d("/algorithms/hash-tables/breaking/","319"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/hash-tables/breaking/mitigations/",component:d("/algorithms/hash-tables/breaking/mitigations/","4c2"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/hash-tables/breaking/python/",component:d("/algorithms/hash-tables/breaking/python/","3d1"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/rb-trees/applications/",component:d("/algorithms/rb-trees/applications/","46a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/rb-trees/rules/",component:d("/algorithms/rb-trees/rules/","21a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/recursion/karel-1/",component:d("/algorithms/recursion/karel-1/","600"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/recursion/pyramid-slide-down/",component:d("/algorithms/recursion/pyramid-slide-down/","947"),exact:!0,sidebar:"autogeneratedBar"},{path:"/algorithms/time-complexity/extend/",component:d("/algorithms/time-complexity/extend/","250"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/c/",component:d("/c/","dae"),routes:[{path:"/c/",component:d("/c/","fc8"),routes:[{path:"/c/",component:d("/c/","1c4"),routes:[{path:"/c/",component:d("/c/","a0f"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-03/",component:d("/c/bonuses/seminar-03/","aaa"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-04/",component:d("/c/bonuses/seminar-04/","ffe"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-05-06/",component:d("/c/bonuses/seminar-05-06/","4cd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-08/",component:d("/c/bonuses/seminar-08/","09a"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/bonuses/seminar-10/",component:d("/c/bonuses/seminar-10/","b9e"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/category/bonuses/",component:d("/c/category/bonuses/","17e"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/category/practice-exams/",component:d("/c/category/practice-exams/","009"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/mr/",component:d("/c/mr/","4c5"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/pexam/cams/",component:d("/c/pexam/cams/","a10"),exact:!0,sidebar:"autogeneratedBar"},{path:"/c/pexam/garbage_collect/",component:d("/c/pexam/garbage_collect/","44e"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/cpp/",component:d("/cpp/","269"),routes:[{path:"/cpp/",component:d("/cpp/","187"),routes:[{path:"/cpp/",component:d("/cpp/","102"),routes:[{path:"/cpp/",component:d("/cpp/","fcd"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/category/exceptions-and-raii/",component:d("/cpp/category/exceptions-and-raii/","cfa"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/environment/",component:d("/cpp/environment/","e0b"),exact:!0,sidebar:"autogeneratedBar"},{path:"/cpp/exceptions-and-raii/placeholders/",component:d("/cpp/exceptions-and-raii/placeholders/","9b3"),exact:!0,sidebar:"autogeneratedBar"}]}]}]},{path:"/",component:d("/","dfb"),exact:!0},{path:"*",component:d("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(67294),a=n(85893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},97221:(e,t,n)=>{"use strict";var r=n(67294),a=n(20745),o=n(73727),i=n(70405),s=n(10412);const l=[n(32497),n(3310),n(18320),n(7439),n(57800)];var c=n(723),u=n(16550),d=n(18790),p=n(85893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var g=n(35742),h=n(52263),m=n(44996),b=n(86668),y=n(10833),v=n(94711),w=n(19727),k=n(43320),x=n(18780),S=n(90197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(g.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,m.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(g.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function A(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(98934),j=n(58940),L=n(20469);function P(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 a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,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=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?P("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=P("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(0,p.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const F=I,M="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" 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="${B}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${B}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,p.jsx)(p.Fragment,{children:!s.Z.canUseDOM&&(0,p.jsx)(g.Z,{children:(0,p.jsx)("script",{children:z(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?(0,p.jsx)($,{}):null}function Z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.Z)(),o=(0,m.Z)(e),{htmlLang:i,direction:s}=a[r];return(0,p.jsxs)(g.Z,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var H=n(44763),V=n(72389);function W(){const e=(0,V.Z)();return(0,p.jsx)(g.Z,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function G(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return(0,p.jsx)(H.Z,{children:(0,p.jsx)(j.M,{children:(0,p.jsxs)(N.t,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(Z,{}),(0,p.jsx)(C,{}),(0,p.jsx)(U,{}),(0,p.jsx)(F,{location:A(t),children:e})]}),(0,p.jsx)(W,{})]})})})}var q=n(16887);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}: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 Y=n(99670);const Q=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(G,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};O(window.location.pathname).then(s)}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(67294),a=n(36809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"cpp":{"path":"/cpp","versions":[{"name":"current","label":"Next","isLast":true,"path":"/cpp","mainDocId":"cpp-intro","docs":[{"id":"cpp-intro","path":"/cpp/","sidebar":"autogeneratedBar"},{"id":"environment","path":"/cpp/environment","sidebar":"autogeneratedBar"},{"id":"exceptions-and-raii/2023-11-24-placeholders","path":"/cpp/exceptions-and-raii/placeholders","sidebar":"autogeneratedBar"},{"id":"/category/exceptions-and-raii","path":"/cpp/category/exceptions-and-raii","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/cpp/","label":"cpp-intro"}}}}],"breadcrumbs":true},"algorithms":{"path":"/algorithms","versions":[{"name":"current","label":"Next","isLast":true,"path":"/algorithms","mainDocId":"algorithms-intro","docs":[{"id":"algorithms-correctness/postcondition-ambiguity","path":"/algorithms/algorithms-correctness/postcondition-ambiguity","sidebar":"autogeneratedBar"},{"id":"algorithms-intro","path":"/algorithms/","sidebar":"autogeneratedBar"},{"id":"graphs/bfs-tree","path":"/algorithms/graphs/bfs-tree","sidebar":"autogeneratedBar"},{"id":"graphs/iterative-and-iterators","path":"/algorithms/graphs/iterative-and-iterators","sidebar":"autogeneratedBar"},{"id":"hash-tables/2023-11-28-breaking/breaking","path":"/algorithms/hash-tables/breaking","sidebar":"autogeneratedBar"},{"id":"hash-tables/2023-11-28-breaking/mitigations","path":"/algorithms/hash-tables/breaking/mitigations","sidebar":"autogeneratedBar"},{"id":"hash-tables/2023-11-28-breaking/python","path":"/algorithms/hash-tables/breaking/python","sidebar":"autogeneratedBar"},{"id":"rb-trees/applications","path":"/algorithms/rb-trees/applications","sidebar":"autogeneratedBar"},{"id":"rb-trees/rules","path":"/algorithms/rb-trees/rules","sidebar":"autogeneratedBar"},{"id":"recursion/karel-1","path":"/algorithms/recursion/karel-1","sidebar":"autogeneratedBar"},{"id":"recursion/pyramid-slide-down","path":"/algorithms/recursion/pyramid-slide-down","sidebar":"autogeneratedBar"},{"id":"time-complexity/extend","path":"/algorithms/time-complexity/extend","sidebar":"autogeneratedBar"},{"id":"/category/algorithms-and-correctness","path":"/algorithms/category/algorithms-and-correctness","sidebar":"autogeneratedBar"},{"id":"/category/asymptotic-notation-and-time-complexity","path":"/algorithms/category/asymptotic-notation-and-time-complexity","sidebar":"autogeneratedBar"},{"id":"/category/recursion","path":"/algorithms/category/recursion","sidebar":"autogeneratedBar"},{"id":"/category/red-black-trees","path":"/algorithms/category/red-black-trees","sidebar":"autogeneratedBar"},{"id":"/category/graphs","path":"/algorithms/category/graphs","sidebar":"autogeneratedBar"},{"id":"/category/hash-tables","path":"/algorithms/category/hash-tables","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/algorithms/","label":"algorithms-intro"}}}}],"breadcrumbs":true},"c":{"path":"/c","versions":[{"name":"current","label":"Next","isLast":true,"path":"/c","mainDocId":"c-intro","docs":[{"id":"bonuses/seminar-03","path":"/c/bonuses/seminar-03","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-04","path":"/c/bonuses/seminar-04","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-05-06","path":"/c/bonuses/seminar-05-06","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-08","path":"/c/bonuses/seminar-08","sidebar":"autogeneratedBar"},{"id":"bonuses/seminar-10","path":"/c/bonuses/seminar-10","sidebar":"autogeneratedBar"},{"id":"c-intro","path":"/c/","sidebar":"autogeneratedBar"},{"id":"mr","path":"/c/mr","sidebar":"autogeneratedBar"},{"id":"pexam/b-garbage_collect","path":"/c/pexam/garbage_collect","sidebar":"autogeneratedBar"},{"id":"pexam/c-cams","path":"/c/pexam/cams","sidebar":"autogeneratedBar"},{"id":"/category/bonuses","path":"/c/category/bonuses","sidebar":"autogeneratedBar"},{"id":"/category/practice-exams","path":"/c/category/practice-exams","sidebar":"autogeneratedBar"}],"draftIds":[],"sidebars":{"autogeneratedBar":{"link":{"path":"/c/","label":"c-intro"}}}}],"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 s=n(57529);const l=JSON.parse('{"docusaurusVersion":"3.0.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.0.0"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.0.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.0.0"}}}');var c=n(85893);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),a=n(10412),o=n(35742),i=n(18780),s=n(58207),l=n(85893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={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:()=>o});n(67294);var r=n(70405),a=n(85893);function o(e){return(0,a.jsx)(r.ql,{...e})}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),a=n(73727),o=n(18780),i=n(52263),s=n(13919),l=n(10412),c=n(85893);const u=r.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:h,"data-noBrokenLinkCheck":m,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,s.Z)(_),C=_?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&E&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),j=n?a.OL:a.rU,L=l.Z.canUseIntersectionObserver,P=(0,r.useRef)(),R=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!L&&E&&null!=T&&window.docusaurus.prefetch(T),()=>{L&&P.current&&P.current.disconnect()})),[P,T,L,E]);const O=T?.startsWith("#")??!1,I=!T||!E||O;return I||m||x.collectLink(T),I?(0,c.jsx)("a",{ref:S,href:T,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(j,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{S.current=e,L&&e&&E&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),P.current.observe(e))},to:T,...n&&{isActive:h,activeClassName:g}})}const f=r.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(67294),a=n(85893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=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 i=n(57529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=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 i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},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 a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(67294),a=n(52263),o=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(58940);function o(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(98934);function o(){return(0,r.useContext)(a._)}},20469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(67294),a=n(85893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(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,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>g,_r:()=>d,Jo:()=>y,zh:()=>p,yW:()=>m,gB:()=>h});var r=n(16550),a=n(52263),o=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=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})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&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 o}(t,n,e)}function g(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function h(e){return p(e).versions}function m(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return c(t,n)}function y(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(14965),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(96854),n(30218)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},92503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(67294);var r=n(86010),a=n(95999),o=n(86668),i=n(39960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(85893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,o.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(67294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(85893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("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"})})}},58207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Tt});var r=n(67294),a=n(86010),o=n(44763),i=n(10833),s=n(16550),l=n(95999),c=n(85936),u=n(85893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,l.I)({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 h(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var m=n(35281),b=n(19727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(86668),k=n(59689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),o&&(0,u.jsx)(_,{onClick:n,className:T.announcementBarClose})]})}var N=n(93163),j=n(12466);var L=n(902),P=n(13102);const R=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,P.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,L.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(R.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(R);if(!e)throw new L.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var D=n(92949),B=n(72389);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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 $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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 U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.Z)(),s=(0,l.I)({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"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(Z),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,D.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var G=n(21327);function q(){return(0,u.jsx)(G.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,N.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({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(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(q,{}),(0,u.jsx)(W,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Q=n(39960),X=n(44996),J=n(13919),ee=n(98022),te=n(39471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),g=o&&a&&!(0,J.Z)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,g&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Q.Z,{href:l?f:a,...c,...h}):(0,u.jsx)(Q.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(86043),se=n(48596),le=n(52263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!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)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ze,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ze,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var fe=n(94711);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("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 he="iconLanguage_nlXk";function me(){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 be=n(20830),ye=["translations"];function ve(){return ve=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},ve.apply(this,arguments)}function we(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,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){s=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(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 ke(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 ke(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 xe(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Se="Ctrl";var _e=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=xe(e,ye),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=we((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(Se))}),[]),r.createElement("button",ve({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(me,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ee=n(35742),Ce=n(66177),Te=n(239),Ae=n(43320);var Ne=n(73935);const je={button:{buttonText:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.I)({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,l.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.I)({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,l.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.I)({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,l.I)({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,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Le=null;function Pe(e){let{hit:t,children:n}=e;return(0,u.jsx)(Q.Z,{to:t.url,children:n})}function Re(e){let{state:t,onClose:n}=e;const r=(0,Ce.M)();return(0,u.jsx)(Q.Z,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Oe(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),l=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},g=(0,s.k6)(),h=(0,r.useRef)(null),m=(0,r.useRef)(null),[b,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Le?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,61426)),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;Le=t}))),[]),x=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),y(!0)}))}),[k,y]),S=(0,r.useCallback)((()=>{y(!1),h.current?.remove()}),[y]),_=(0,r.useCallback)((e=>{k().then((()=>{y(!0),w(e.key)}))}),[k,y,w]),E=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:g.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>(0,u.jsx)(Re,{...e,onClose:S})),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(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?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:x,onClose:S,onInput:_,searchButtonRef:m}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ee.Z,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(_e,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:x,ref:m,translations:je.button}),b&&Le&&h.current&&(0,Ne.createPortal)((0,u.jsx)(Le,{onClose:S,initialScrollY:window.scrollY,initialQuery:v,navigator:E,transformItems:C,hitComponent:Pe,transformSearchClient:A,...o.searchPagePath&&{resultsFooterComponent:T},...o,searchParameters:f,placeholder:je.placeholder,translations:je.modal}),h.current)]})}function Ie(){const{siteConfig:e}=(0,le.Z)();return(0,u.jsx)(Oe,{...e.themeConfig.algolia})}const Fe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Me(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.Z)(n,Fe.navbarSearchContainer),children:t})}var De=n(80143),Be=n(53438);var ze=n(60373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ue={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,fe.l)(),{search:f,hash:g}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],m=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:he}),m]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Me,{className:n,children:(0,u.jsx)(Ie,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,De.Iw)(r),i=(0,Be.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,De.Iw)(r),i=(0,Be.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Be.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,De.Iw)(n),f=(0,De.gB)(n),{savePreferredVersionName:g}=(0,ze.J)(n),h=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...o],m=(0,Be.lO)(n)[0],b=t&&h.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=t&&h.length>1?void 0:$e(m).path;return h.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:b,to:y,items:h,isActive:r?()=>!1:void 0})}};function Ze(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ue[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function He(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ze,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ve(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{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)",children:"\u2190 Back to main menu"})})}function We(){const e=0===(0,w.L)().navbar.items.length,t=F();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ve,{onClick:()=>t.hide()}),t.content]})}function Ge(){const e=(0,N.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?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(We,{})}):null}const qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[qe.navbarHideable,!d&&qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ke,{onClick:i.toggle}),(0,u.jsx)(Ge,{})]})}var Qe=n(69690);const Xe="right";function Je(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function et(){const{toggle:e,shown:t}=(0,N.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({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",children:(0,u.jsx)(Je,{})})}const tt={colorModeToggle:"colorModeToggle_DEke"};function nt(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Qe.QW,{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}),children:(0,u.jsx)(Ze,{...e})},t)))})}function rt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function at(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Xe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(rt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(et,{}),(0,u.jsx)(q,{}),(0,u.jsx)(nt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(nt,{items:r}),(0,u.jsx)(W,{className:tt.colorModeToggle}),!a&&(0,u.jsx)(Me,{children:(0,u.jsx)(Ie,{})})]})})}function ot(){return(0,u.jsx)(Ye,{children:(0,u.jsx)(at,{})})}function it(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Q.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function st(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(it,{item:t})},t.href??t.to)}function lt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(st,{item:e},t)))})]})}function ct(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(lt,{column:e},t)))})}function ut(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function dt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(it,{item:t})}function pt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(dt,{item:e}),t.length!==n+1&&(0,u.jsx)(ut,{})]},n)))})})}function ft(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(ct,{columns:t}):(0,u.jsx)(pt,{links:t})}var gt=n(19965);const ht={footerLogoLink:"footerLogoLink_BH7S"};function mt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(gt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function bt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Q.Z,{href:t.href,className:ht.footerLogoLink,target:t.target,children:(0,u.jsx)(mt,{logo:t})}):(0,u.jsx)(mt,{logo:t})}function yt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function vt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function wt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(vt,{style:a,links:n&&n.length>0&&(0,u.jsx)(ft,{links:n}),logo:r&&(0,u.jsx)(bt,{logo:r}),copyright:t&&(0,u.jsx)(yt,{copyright:t})})}const kt=r.memo(wt),xt=(0,L.Qc)([D.S,k.pl,j.OC,ze.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(P.n2,{children:(0,u.jsx)(N.M,{children:(0,u.jsx)(O,{children:t})})})}]);function St(e){let{children:t}=e;return(0,u.jsx)(xt,{children:t})}var _t=n(92503);function Et(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(_t.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Qe.Cw,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Qe.aG,{error:t})})]})})})}const Ct={mainWrapper:"mainWrapper_z2l0"};function Tt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(St,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(ot,{}),(0,u.jsx)("div",{id:d,className:(0,a.Z)(m.k.wrapper.main,Ct.mainWrapper,r),children:(0,u.jsx)(o.Z,{fallback:e=>(0,u.jsx)(Et,{...e}),children:t})}),!n&&(0,u.jsx)(kt,{})]})}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(67294);var r=n(39960),a=n(44996),o=n(52263),i=n(86668),s=n(19965),l=n(85893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),g=n?"":t,h=s?.alt??g;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(67294);var r=n(35742),a=n(85893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},19965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(67294),a=n(86010),o=n(72389),i=n(92949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(85893);function c(e){let{className:t,children:n}=e;const c=(0,o.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(67294),a=n(10412),o=n(20469),i=n(91442),s=n(85893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function g(e){if(!a.Z.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function m(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?m:h;return(0,s.jsx)(r,{...n})}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>g});var r=n(67294),a=n(72389),o=n(50012),i=n(902),s=n(86668),l=n(85893);const c=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>m});var r=n(67294),a=n(10412),o=n(902),i=n(50012),s=n(86668),l=n(85893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.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!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(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||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.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:()=>v,L5:()=>b,Oh:()=>w});var r=n(67294),a=n(80143),o=n(29935),i=n(86668),s=n(53438),l=n(902),c=n(50012),u=n(85893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const g=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return(0,u.jsx)(g.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(m,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(g);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a._r)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??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:()=>c,b:()=>l});var r=n(67294),a=n(902),o=n(85893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(67294),a=n(902),o=n(85893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(67294),a=n(13102),o=n(87524),i=n(91980),s=n(86668),l=n(902),c=n(85893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)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:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(67294),a=n(902),o=n(85893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(67294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},66177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(67294),a=n(52263),o=n(91980);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(67294),a=n(10412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),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",unlistedBanner:"theme-unlisted-banner",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,{LM:()=>g,MN:()=>T,SN:()=>C,_F:()=>y,cE:()=>p,f:()=>w,jA:()=>h,lO:()=>S,oz:()=>_,s1:()=>x,vY:()=>E,xz:()=>f});var r=n(67294),a=n(16550),o=n(18790),i=n(80143),s=n(60373),l=n(74477),c=n(1116),u=n(67392),d=n(48596);const p=!!i._r;function f(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function g(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=g(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({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 m=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!1}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function _(e,t){const n=S(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 E(e,t){const n=S(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 C(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.H)(i),sidebarName:c,sidebarItems:u}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!g(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Ac:()=>c,Cw:()=>l,QW:()=>d});var r=n(67294),a=n(95999),o=n(18780);const i={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var s=n(85893);function l(e){return(0,s.jsx)("button",{type:"button",...e,children:(0,s.jsx)(a.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function c(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{className:i.errorBoundaryFallback,children:[(0,s.jsx)("p",{children:t.message}),(0,s.jsx)(l,{onClick:n})]})}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{className:i.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(52263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>l,Rb:()=>i,_X:()=>s});var r=n(67294),a=n(16550),o=n(902);function i(e){!function(e){const t=(0,a.k6)(),n=(0,o.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,a.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,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 a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>g});var r=n(67294),a=n(86010),o=n(35742),i=n(30226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(44996),c=n(82128),u=n(85893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function g(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(67294),a=n(20469),o=n(85893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children: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:()=>i,Ns:()=>s});var r=n(67294),a=n(723),o=n(52263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>h,OC:()=>u,RF:()=>f,o5:()=>g});var r=n(67294),a=n(10412),o=n(72389),i=n(20469),s=n(902),l=n(85893);const c=r.createContext(void 0);function u(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(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const p=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(p()),o=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function g(){const e=d(),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),a=(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,i.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function h(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"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 a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(80143),a=n(52263),o=n(60373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>c});var r=n(67294);const a="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(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 l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(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=i(t?.persistence);return null===n?l:{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),o({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),o({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 u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(52263),a=n(16550),o=n(18780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),a=n(16550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.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:()=>a});var r=n(52263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(67294),a=n(98022),o=n(44996),i=n(6278);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.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[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,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(a,o)}},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 a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(87462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;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("/")||[],s=e&&a(e),l=t&&a(t),c=s||l;if(e&&a(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?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var s=n(38776);function l(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,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!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 m(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,a=(-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,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,x=void 0===k?m:k,S=i.keyLength,_=void 0===S?6:S,E=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return E&&(o=u(o,E)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var A=g();function N(e){(0,r.Z)($,e),$.length=n.length,A.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(C(e.state))}function L(){R(C(v()))}var P=!1;function R(e){if(P)P=!1,N();else{A.confirmTransitionTo(e,"POP",x,(function(t){t?N({action:"POP",location:e}):function(e){var t=$.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(P=!0,M(a))}(e)}))}}var O=C(v()),I=[O.key];function F(e){return E+p(e)}function M(e){n.go(e)}var D=0;function B(e){1===(D+=e)&&1===e?(window.addEventListener(b,j),o&&window.addEventListener(y,L)):0===D&&(window.removeEventListener(b,j),o&&window.removeEventListener(y,L))}var z=!1;var $={length:n.length,action:"POP",location:O,createHref:F,push:function(e,t){var r="PUSH",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=F(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=I.indexOf($.location.key),c=I.slice(0,l+1);c.push(o.key),I=c,N({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=F(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=I.indexOf($.location.key);-1!==l&&(I[l]=o.key),N({action:r,location:o})}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=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var k="hashchange",x={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:l},slash:{encodePath:l,decodePath:l}};function S(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 E(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?m:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",y=x[c],v=y.encodePath,w=y.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var T=g();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var N=!1,j=null;function L(){var e,t,n=_(),r=v(n);if(n!==r)E(r);else{var a=C(),i=z.location;if(!N&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===p(a))return;j=null,function(e){if(N)N=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}(a)}}var P=_(),R=v(P);P!==R&&E(R);var O=C(),I=[p(O)];function F(e){t.go(e)}var M=0;function D(e){1===(M+=e)&&1===e?window.addEventListener(k,L):0===M&&window.removeEventListener(k,L)}var B=!1;var z={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(_()!==a){j=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(z.location)),i=I.slice(0,o+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);_()!==a&&(j=t,E(a));var o=I.indexOf(p(z.location));-1!==o&&(I[o]=t),A({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||(D(1),B=!0),function(){return B&&(B=!1,D(-1)),t()}},listen:function(e){var t=T.appendListener(e);return D(1),function(){D(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=g();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 m=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),y=p;function v(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[m],index:m,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,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,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(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),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={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},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var a=f(n);a&&a!==g&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),m=0;m<i.length;++m){var b=i[m];if(!(o[b]||r&&r[b]||h&&h[b]||s&&s[b])){var y=p(n,b);try{c(t,b,y)}catch(v){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=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,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},7439:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},57800:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,a;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 a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}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=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{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)*a(Math.random()*t,.1,.95)),t=a(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 a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[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===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},85795:()=>{Prism.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],attribute:{pattern:/\b'\w+/,alias:"attr-name"},keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}},57874:()=>{!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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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 a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},79016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",o="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(o),u=RegExp(l(a+" "+o+" "+i+" "+s)),d=l(o+" "+i+" "+s),p=l(a+" "+o+" "+s),f=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),g=r(/\((?:[^()]|<<self>>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,m=t(/<<0>>(?:\s*<<1>>)?/.source,[h,f]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,m]),y=/\[\s*(?:,\s*)*\]/.source,v=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,y]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[f,g,y]),k=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),x=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[k,b,y]),S={keyword:u,punctuation:/[<>()?,.:[\]]/},_=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,C=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[C]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,x]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,m]),lookbehind:!0,inside:S},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:S},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[v]),lookbehind:!0,inside:S},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[x,p,h]),inside:S}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[g]),lookbehind:!0,alias:"class-name",inside:S},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[x,b]),inside:S,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[x]),lookbehind:!0,inside:S,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,f]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(f),alias:"class-name",inside:S}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,m,h,x,u.source,g,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[m,g]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(x),greedy:!0,inside:S},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var T=E+"|"+_,A=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[T]),N=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[A]),2),j=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,L=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,N]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[j,L]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[j]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[N]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var P=/:[^}\r\n]+/.source,R=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[A]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[R,P]),I=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[T]),2),F=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,P]);function M(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,P]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:M(O,R)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[F]),lookbehind:!0,greedy:!0,inside:M(F,I)}],char:{pattern:RegExp(_),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},60397:()=>{!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!<!--)<(?:[^<>"']|"[^"]*"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(/<ID>/g,(function(){return t})),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)<ID>/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)<ID>/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])<ID>(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])<ID>/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(Prism)},81295:()=>{Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell},52503:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},96854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++a;var h=p.substring(0,g),m=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(g+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(m),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},58704:()=>{Prism.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside=Prism.languages.nix},13210:()=>{Prism.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},Prism.languages.pascal.asm.inside=Prism.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),Prism.languages.objectpascal=Prism.languages.pascal},80366:()=>{Prism.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:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},59385:()=>{!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism)},70767:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},30218:(e,t,n)=>{var r={"./prism-ada":85795,"./prism-bash":57874,"./prism-csharp":79016,"./prism-dot":60397,"./prism-haskell":81295,"./prism-java":52503,"./prism-nix":58704,"./prism-pascal":13210,"./prism-python":80366,"./prism-ruby":59385,"./prism-rust":70767};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=30218},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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:o,resetWarningCache:a};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),a=n(63840);function o(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 i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,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={},g={};function h(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new h(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){m[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=m.hasOwnProperty(t)?m[t]:null;(null!==a?0!==a.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,a,r)&&(n=null),r||null===a?function(e){return!!d.call(g,e)||!d.call(f,e)&&(p.test(e)?g[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!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(b,y);m[t]=new h(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(b,y);m[t]=new h(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(b,y);m[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var F,M=Object.assign;function D(e){if(void 0===F)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);F=t&&t[1]||""}return"\n"+F+e}var B=!1;function z(e,t){if(!e||B)return"";B=!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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s]){var l="\n"+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?D(e):""}function $(e){switch(e.tag){case 5:return D(e.type);case 16:return D("Lazy");case 13:return D("Suspense");case 19:return D("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function U(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 S:return"Fragment";case x:return"Portal";case E:return"Profiler";case _:return"StrictMode";case N:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function Z(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===_?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function V(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function W(e){e._valueTracker||(e._valueTracker=function(e){var t=V(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 a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.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 G(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=V(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function q(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 K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(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 Q(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Q(e,t);var n=H(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")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(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 ee(e,t,n){"number"===t&&q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(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 ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.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 ue(e,t)}))}:ue);function pe(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 fe={animationIterationCount:!0,aspectRatio:!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},ge=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function me(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){ge.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({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 ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(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}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,_e=null;function Ee(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?_e?_e.push(e):_e=[e]:Se=e}function Te(){if(Se){var e=Se,t=_e;if(_e=Se=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Ae(e,t){return e(t)}function Ne(){}var je=!1;function Le(e,t,n){if(je)return e(t,n);je=!0;try{return Ae(e,t,n)}finally{je=!1,(null!==Se||null!==_e)&&(Ne(),Te())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(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(o(231,t,typeof n));return n}var Re=!1;if(u)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Re=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ue){Re=!1}function Ie(e,t,n,r,a,o,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Fe=!1,Me=null,De=!1,Be=null,ze={onError:function(e){Fe=!0,Me=e}};function $e(e,t,n,r,a,o,i,s,l){Fe=!1,Me=null,Ie.apply(ze,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ze(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 He(e){if(Ue(e)!==e)throw Error(o(188))}function Ve(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?We(e):null}function We(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=We(e);if(null!==t)return t;e=e.sibling}return null}var Ge=a.unstable_scheduleCallback,qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Qe=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~a;0!==s?r=dt(s):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function gt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function mt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,xt,St,_t,Et,Ct=!1,Tt=[],At=null,Nt=null,jt=null,Lt=new Map,Pt=new Map,Rt=[],Ot="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 It(e,t){switch(e){case"focusin":case"focusout":At=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function Ft(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ze(n)))return e.blockedOn=t,void Et(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Dt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Bt(e,t,n){Dt(e)&&n.delete(t)}function zt(){Ct=!1,null!==At&&Dt(At)&&(At=null),null!==Nt&&Dt(Nt)&&(Nt=null),null!==jt&&Dt(jt)&&(jt=null),Lt.forEach(Bt),Pt.forEach(Bt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,zt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==At&&$t(At,e),null!==Nt&&$t(Nt,e),null!==jt&&$t(jt,e),Lt.forEach(t),Pt.forEach(t),n=0;n<Rt.length;n++)(r=Rt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Rt.shift()}var Zt=w.ReactCurrentBatchConfig,Ht=!0;function Vt(e,t,n,r){var a=vt,o=Zt.transition;Zt.transition=null;try{vt=1,Gt(e,t,n,r)}finally{vt=a,Zt.transition=o}}function Wt(e,t,n,r){var a=vt,o=Zt.transition;Zt.transition=null;try{vt=4,Gt(e,t,n,r)}finally{vt=a,Zt.transition=o}}function Gt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,qt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return At=Ft(At,e,t,n,r,a),!0;case"dragenter":return Nt=Ft(Nt,e,t,n,r,a),!0;case"mouseover":return jt=Ft(jt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Lt.set(o,Ft(Lt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Pt.set(o,Ft(Pt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var qt=null;function Kt(e,t,n,r){if(qt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ze(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Qt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Qt?Qt.value:Qt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(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 nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(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=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=M({},cn,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,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!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=an(fn),hn=an(M({},fn,{dataTransfer:0})),mn=an(M({},dn,{relatedTarget:0})),bn=an(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(M({},cn,{data:0})),kn={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"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function _n(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function En(){return _n}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(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:En,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),An=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),jn=an(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=M({},fn,{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}),Pn=an(Ln),Rn=[9,13,27,32],On=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Fn=u&&"TextEvent"in window&&!In,Mn=u&&(!On||In&&8<In&&11>=In),Dn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var Zn={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 Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Zn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ce(r),0<(t=Wr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Gn=null;function qn(e){Dr(e,0)}function Kn(e){if(G(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Qn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Qn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Wn&&(Wn.detachEvent("onpropertychange",nr),Gn=Wn=null)}function nr(e){if("value"===e.propertyName&&Kn(Gn)){var t=[];Vn(t,Gn,e,ke(e)),Le(qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Gn=n,(Wn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Gn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(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++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(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=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=q((e=t.contentWindow).document)}return t}function fr(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)}function gr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=ur(n,o);var i=ur(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,mr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==mr||mr!==q(r)||("selectionStart"in(r=mr)&&fr(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},yr&&lr(yr,r)||(yr=r,0<(r=Wr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=mr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},_r={};function Er(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in _r)return Sr[e]=n[t];return e}u&&(_r=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=Er("animationend"),Tr=Er("animationiteration"),Ar=Er("animationstart"),Nr=Er("transitionend"),jr=new Map,Lr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){jr.set(e,t),l(t,[e])}for(var Rr=0;Rr<Lr.length;Rr++){var Or=Lr[Rr];Pr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Pr(Cr,"onAnimationEnd"),Pr(Tr,"onAnimationIteration"),Pr(Ar,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(Nr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,c){if($e.apply(this,arguments),Fe){if(!Fe)throw Error(o(198));var u=Me;Fe=!1,Me=null,De||(De=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Dr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}}}if(De)throw e=Be,De=!1,Be=null,e}function Br(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||(Zr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),Zr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Fr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,zr("selectionchange",!1,t))}}function Zr(e,t,n,r){switch(Yt(t)){case 1:var a=Vt;break;case 4:a=Wt;break;default:a=Gt}n=a.bind(null,t,n,e),a=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=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 s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ya(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}Le((function(){var r=o,a=ke(n),i=[];e:{var s=jr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=mn;break;case"focusout":c="blur",l=mn;break;case"beforeblur":case"afterblur":l=mn;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":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Cr:case Tr:case Ar:l=bn;break;case Nr:l=jn;break;case"scroll":l=pn;break;case"wheel":l=Pn;break;case"copy":case"cut":case"paste":l=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=An}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,g=r;null!==g;){var h=(f=g).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Pe(g,p))&&u.push(Vr(g,h,f)))),d)break;g=g.return}0<u.length&&(s=new l(s,c,null,n,a),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!ya(c)&&!c[ga])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?ya(c):null)&&(c!==(d=Ue(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(u=An,h="onPointerLeave",p="onPointerEnter",g="pointer"),d=null==l?s:wa(l),f=null==c?s:wa(c),(s=new u(h,g+"leave",l,n,a)).target=d,s.relatedTarget=f,h=null,ya(a)===r&&((u=new u(p,g+"enter",c,n,a)).target=f,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,g=0,f=u=l;f;f=Gr(f))g++;for(f=0,h=p;h;h=Gr(h))f++;for(;0<g-f;)u=Gr(u),g--;for(;0<f-g;)p=Gr(p),f--;for(;g--;){if(u===p||null!==p&&u===p.alternate)break e;u=Gr(u),p=Gr(p)}u=null}else u=null;null!==l&&qr(i,s,l,u,!1),null!==c&&null!==d&&qr(i,d,c,u,!0)}if("select"===(l=(s=r?wa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var m=Yn;else if(Hn(s))if(Qn)m=ir;else{m=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(m=or);switch(m&&(m=m(e,r))?Vn(i,m,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(mr=b,br=r,yr=null);break;case"focusout":yr=br=mr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?zn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Qt=a)?Qt.value:Qt.textContent,Un=!0)),0<(b=Wr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Fn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(Bn=!0,Dn);case"textInput":return(e=t.data)===Dn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&zn(e,t)?(e=en(),Jt=Xt=Qt=null,Un=!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 Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Wr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Dr(i,t)}))}function Vr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Pe(e,n))&&r.unshift(Vr(e,o,a)),null!=(o=Pe(e,t))&&r.push(Vr(e,o,a))),e=e.return}return r}function Gr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Pe(n,o))&&i.unshift(Vr(n,l,s)):a||null!=(l=Pe(n,o))&&i.push(Vr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Qr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Qr(t),Qr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(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 da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ga="__reactContainer$"+da,ha="__reactEvents$"+da,ma="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ga]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ga])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function _a(e){return{current:e}}function Ea(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Ta={},Aa=_a(Ta),Na=_a(!1),ja=Ta;function La(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Pa(e){return null!=(e=e.childContextTypes)}function Ra(){Ea(Na),Ea(Aa)}function Oa(e,t,n){if(Aa.current!==Ta)throw Error(o(168));Ca(Aa,t),Ca(Na,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,Z(e)||"Unknown",a));return M({},n,r)}function Fa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,ja=Aa.current,Ca(Aa,e),Ca(Na,Na.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,ja),r.__reactInternalMemoizedMergedChildContext=e,Ea(Na),Ea(Aa),Ca(Aa,e)):Ea(Na),Ca(Na,n)}var Da=null,Ba=!1,za=!1;function $a(e){null===Da?Da=[e]:Da.push(e)}function Ua(){if(!za&&null!==Da){za=!0;var e=0,t=vt;try{var n=Da;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Da=null,Ba=!1}catch(a){throw null!==Da&&(Da=Da.slice(e+1)),Ge(Je,Ua),a}finally{vt=t,za=!1}}return null}var Za=[],Ha=0,Va=null,Wa=0,Ga=[],qa=0,Ka=null,Ya=1,Qa="";function Xa(e,t){Za[Ha++]=Wa,Za[Ha++]=Va,Va=e,Wa=t}function Ja(e,t,n){Ga[qa++]=Ya,Ga[qa++]=Qa,Ga[qa++]=Ka,Ka=e;var r=Ya;e=Qa;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Qa=o+e}else Ya=1<<o|n<<a|r,Qa=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Va;)Va=Za[--Ha],Za[Ha]=null,Wa=Za[--Ha],Za[Ha]=null;for(;e===Ka;)Ka=Ga[--qa],Ga[qa]=null,Qa=Ga[--qa],Ga[qa]=null,Ya=Ga[--qa],Ga[qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Pc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(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,no=e,ro=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Qa}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function co(e){if(ao){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ca(n.nextSibling);var r=no;t&&so(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return uo(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ca(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ca(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ca(e.nextSibling)}function go(){ro=no=null,ao=!1}function ho(e){null===oo?oo=[e]:oo.push(e)}var mo=w.ReactCurrentBatchConfig;function bo(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var yo=_a(null),vo=null,wo=null,ko=null;function xo(){ko=wo=vo=null}function So(e){var t=yo.current;Ea(yo),e._currentValue=t}function _o(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Eo(e,t){vo=e,ko=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(ko!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===vo)throw Error(o(308));wo=e,vo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function Ao(e){null===To?To=[e]:To.push(e)}function No(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ao(t)):(n.next=a.next,a.next=n),t.interleaved=n,jo(e,r)}function jo(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}var Lo=!1;function Po(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ro(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 Oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Io(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,jo(e,n)}return null===(a=r.interleaved)?(t.next=t,Ao(r)):(t.next=a.next,a.next=t),r.interleaved=t,jo(e,n)}function Fo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Mo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=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===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Do(e,t,n,r){var a=e.updateQueue;Lo=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?o=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=a.baseState;for(i=0,u=c=l=null,s=o;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,h=s;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(g=h.payload)){d=g.call(f,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p="function"==typeof(g=h.payload)?g.call(f,d,p):g))break e;d=M({},d,p);break e;case 2:Lo=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ml|=i,e.lanes=i,e.memoizedState=d}}function Bo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var zo=(new r.Component).refs;function $o(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Uo={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Fo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Fo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),a=Oo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Io(e,a,r))&&(rc(t,e,r,n),Fo(t,e,r))}};function Zo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,o))}function Ho(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=Pa(t)?ja:Aa.current,o=(r=null!=(r=t.contextTypes))?La(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Uo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Vo(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&&Uo.enqueueReplaceState(t,t.state,null)}function Wo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=zo,Po(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=Pa(t)?ja:Aa.current,a.context=La(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&($o(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Uo.enqueueReplaceState(a,a.state,null),Do(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Go(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(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===zo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function qo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ko(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}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 a(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function i(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):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Dc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===P&&Ko(o)===t.type)?((r=a(t,n.props)).ref=Go(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Go(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=Bc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Fc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Dc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Go(e,null,t),n.return=e,n;case x:return(t=Bc(t,e.mode,n)).return=e,t;case P:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Fc(t,e.mode,n,null)).return=e,t;qo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?c(e,t,n,r):null;case x:return n.key===a?u(e,t,n,r):null;case P:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);qo(e,n)}return null}function g(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case P:return g(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);qo(t,r)}return null}function h(a,o,s,l){for(var c=null,u=null,d=o,h=o=0,m=null;null!==d&&h<s.length;h++){d.index>h?(m=d,d=null):m=d.sibling;var b=f(a,d,s[h],l);if(null===b){null===d&&(d=m);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,h),null===u?c=b:u.sibling=b,u=b,d=m}if(h===s.length)return n(a,d),ao&&Xa(a,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(o=i(d,o,h),null===u?c=d:u.sibling=d,u=d);return ao&&Xa(a,h),c}for(d=r(a,d);h<s.length;h++)null!==(m=g(d,a,h,s[h],l))&&(e&&null!==m.alternate&&d.delete(null===m.key?h:m.key),o=i(m,o,h),null===u?c=m:u.sibling=m,u=m);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),c}function m(a,s,l,c){var u=I(l);if("function"!=typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,h=s,m=s=0,b=null,y=l.next();null!==h&&!y.done;m++,y=l.next()){h.index>m?(b=h,h=null):b=h.sibling;var v=f(a,h,y.value,c);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(a,h),s=i(v,s,m),null===d?u=v:d.sibling=v,d=v,h=b}if(y.done)return n(a,h),ao&&Xa(a,m),u;if(null===h){for(;!y.done;m++,y=l.next())null!==(y=p(a,y.value,c))&&(s=i(y,s,m),null===d?u=y:d.sibling=y,d=y);return ao&&Xa(a,m),u}for(h=r(a,h);!y.done;m++,y=l.next())null!==(y=g(h,a,m,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?m:y.key),s=i(y,s,m),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach((function(e){return t(a,e)})),ao&&Xa(a,m),u}return function e(r,o,i,l){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=o;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(o=a(u,i.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===P&&Ko(c)===u.type){n(r,u.sibling),(o=a(u,i.props)).ref=Go(r,u,i),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((o=Fc(i.props.children,r.mode,l,i.key)).return=r,r=o):((l=Ic(i.type,i.key,i.props,null,r.mode,l)).ref=Go(r,o,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Bc(i,r.mode,l)).return=r,r=o}return s(r);case P:return e(r,o,(u=i._init)(i._payload),l)}if(te(i))return h(r,o,i,l);if(I(i))return m(r,o,i,l);qo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Dc(i,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Qo=Yo(!0),Xo=Yo(!1),Jo={},ei=_a(Jo),ti=_a(Jo),ni=_a(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ea(ei),Ca(ei,t)}function oi(){Ea(ei),Ea(ti),Ea(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function si(e){ti.current===e&&(Ea(ei),Ea(ti))}var li=_a(0);function ci(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!=(128&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 ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,gi=0,hi=null,mi=null,bi=null,yi=!1,vi=!1,wi=0,ki=0;function xi(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function _i(e,t,n,r,a,i){if(gi=i,hi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),vi){i=0;do{if(vi=!1,wi=0,25<=i)throw Error(o(301));i+=1,bi=mi=null,t.updateQueue=null,pi.current=cs,e=n(r,a)}while(vi)}if(pi.current=is,t=null!==mi&&null!==mi.next,gi=0,bi=mi=hi=null,yi=!1,t)throw Error(o(300));return e}function Ei(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?hi.memoizedState=bi=e:bi=bi.next=e,bi}function Ti(){if(null===mi){var e=hi.alternate;e=null!==e?e.memoizedState:null}else e=mi.next;var t=null===bi?hi.memoizedState:bi.next;if(null!==t)bi=t,mi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(mi=e).memoizedState,baseState:mi.baseState,baseQueue:mi.baseQueue,queue:mi.queue,next:null},null===bi?hi.memoizedState=bi=e:bi=bi.next=e}return bi}function Ai(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=mi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((gi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,hi.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,hi.lanes|=i,Ml|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ji(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Li(){}function Pi(e,t){var n=hi,r=Ti(),a=t(),i=!sr(r.memoizedState,a);if(i&&(r.memoizedState=a,ws=!0),r=r.queue,Hi(Ii.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,Bi(9,Oi.bind(null,n,r,a,t),void 0,null),null===jl)throw Error(o(349));0!=(30&gi)||Ri(n,t,a)}return a}function Ri(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Fi(t)&&Mi(e)}function Ii(e,t,n){return n((function(){Fi(t)&&Mi(e)}))}function Fi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Mi(e){var t=jo(e,1);null!==t&&rc(t,e,1,-1)}function Di(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ai,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,hi,e),[t.memoizedState,e]}function Bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.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 zi(){return Ti().memoizedState}function $i(e,t,n,r){var a=Ci();hi.flags|=e,a.memoizedState=Bi(1|t,n,void 0,void 0===r?null:r)}function Ui(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==mi){var i=mi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=Bi(t,n,o,r))}hi.flags|=e,a.memoizedState=Bi(1|t,n,o,r)}function Zi(e,t){return $i(8390656,8,e,t)}function Hi(e,t){return Ui(2048,8,e,t)}function Vi(e,t){return Ui(4,2,e,t)}function Wi(e,t){return Ui(4,4,e,t)}function Gi(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 qi(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4,4,Gi.bind(null,t,e),n)}function Ki(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Qi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&gi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=ht(),hi.lanes|=n,Ml|=n,e.baseState=!0),t)}function Ji(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{vt=n,fi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=No(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(a.next=a,Ao(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=No(e,t,a,r))&&(rc(n,e,r,a=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===hi||null!==t&&t===hi}function as(e,t){vi=yi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var is={readContext:Co,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ss={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:Zi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Gi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,hi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Di,useDebugValue:Ki,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Di(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=hi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===jl)throw Error(o(349));0!=(30&gi)||Ri(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Zi(Ii.bind(null,r,i,e),[e]),r.flags|=2048,Bi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=jl.identifierPrefix;if(ao){var n=Qa;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:qi,useInsertionEffect:Vi,useLayoutEffect:Wi,useMemo:Qi,useReducer:Ni,useRef:zi,useState:function(){return Ni(Ai)},useDebugValue:Ki,useDeferredValue:function(e){return Xi(Ti(),mi.memoizedState,e)},useTransition:function(){return[Ni(Ai)[0],Ti().memoizedState]},useMutableSource:Li,useSyncExternalStore:Pi,useId:es,unstable_isNewReconciler:!1},cs={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:qi,useInsertionEffect:Vi,useLayoutEffect:Wi,useMemo:Qi,useReducer:ji,useRef:zi,useState:function(){return ji(Ai)},useDebugValue:Ki,useDeferredValue:function(e){var t=Ti();return null===mi?t.memoizedState=e:Xi(t,mi.memoizedState,e)},useTransition:function(){return[ji(Ai)[0],Ti().memoizedState]},useMutableSource:Li,useSyncExternalStore:Pi,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function gs(e,t,n){(n=Oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,Wl=r),ps(0,t)},n}function hs(e,t,n){(n=Oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Gl?Gl=new Set([this]):Gl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function ms(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oo(-1,1)).tag=2,Io(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var vs=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Qo(t,e.child,n,r)}function xs(e,t,n,r,a){n=n.render;var o=t.ref;return Eo(t,a),r=_i(e,t,n,r,o,a),n=Ei(),null===e||ws?(ao&&n&&eo(t),t.flags|=1,ks(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function Ss(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Rc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,_s(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Vs(e,t,a)}return t.flags|=1,(e=Oc(o,r)).ref=t.ref,e.return=t,t.child=e}function _s(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Vs(e,t,a);0!=(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,r,a)}function Es(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ol,Rl),Rl|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ol,Rl),Rl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ol,Rl),Rl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ol,Rl),Rl|=r;return ks(e,t,a,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,a){var o=Pa(n)?ja:Aa.current;return o=La(t,o),Eo(t,a),n=_i(e,t,n,r,o,a),r=Ei(),null===e||ws?(ao&&r&&eo(t),t.flags|=1,ks(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Vs(e,t,a))}function As(e,t,n,r,a){if(Pa(n)){var o=!0;Fa(t)}else o=!1;if(Eo(t,a),null===t.stateNode)Hs(e,t),Ho(t,n,r),Wo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Co(c):c=La(t,c=Pa(n)?ja:Aa.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&Vo(t,i,r,c),Lo=!1;var p=t.memoizedState;i.state=p,Do(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Na.current||Lo?("function"==typeof u&&($o(t,n,u,r),l=t.memoizedState),(s=Lo||Zo(t,n,s,r,p,l,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|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ro(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:bo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Co(l):l=La(t,l=Pa(n)?ja:Aa.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&Vo(t,i,r,l),Lo=!1,p=t.memoizedState,i.state=p,Do(t,r,i,a);var g=t.memoizedState;s!==d||p!==g||Na.current||Lo?("function"==typeof f&&($o(t,n,f,r),g=t.memoizedState),(c=Lo||Zo(t,n,c,r,p,g,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,g,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,g,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),i.props=r,i.state=g,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ns(e,t,n,r,o,a)}function Ns(e,t,n,r,a,o){Cs(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Vs(e,t,o);r=t.stateNode,vs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Qo(t,e.child,null,o),t.child=Qo(t,null,s,o)):ks(e,t,s,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function js(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),ai(e,t.containerInfo)}function Ls(e,t,n,r,a){return go(),ho(a),t.flags|=256,ks(e,t,n,r),t.child}var Ps,Rs,Os,Is,Fs={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ds(e,t,n){var r,a=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(li,1&i),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Fc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Fs,e):Bs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(i=Fc(i,a,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Qo(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Fs,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=ds(i=Error(o(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=jl)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,jo(e,a),rc(r,e,a,-1))}return mc(),zs(e,t,s,r=ds(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Ac.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ca(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Ga[qa++]=Ya,Ga[qa++]=Qa,Ga[qa++]=Ka,Ya=e.id,Qa=e.overflow,Ka=t),t=Bs(t,r.children),t.flags|=4096,t)}(e,t,l,a,r,i,n);if(s){s=a.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 0==(1&l)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Oc(r,s):(s=Fc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Fs,a}return e=(s=e.child).sibling,a=Oc(s,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Bs(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&ho(r),Qo(t,e.child,null,n),(e=Bs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $s(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),_o(e.return,t,n)}function Us(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Zs(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$s(e,n,t);else if(19===e.tag)$s(e,n,t);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(Ca(li,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Us(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ci(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Us(t,!0,n,null,o);break;case"together":Us(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ws(e,t){if(!ao)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 Gs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qs(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gs(t),null;case 1:case 17:return Pa(t.type)&&Ra(),Gs(t),null;case 3:return r=t.stateNode,oi(),Ea(Na),Ea(Aa),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Rs(e,t),Gs(t),null;case 5:si(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Os(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Gs(t),null}if(e=ri(ei.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=0!=(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Y(r,i),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Br("invalid",r);break;case"textarea":ae(r,i),Br("invalid",r)}for(var l in ye(n,i),a=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":W(r),J(r,i,!0);break;case"textarea":W(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[fa]=r,Ps(e,t,!1,!1),t.stateNode=e;e:{switch(l=ve(n,r),n){case"dialog":Br("cancel",e),Br("close",e),a=r;break;case"iframe":case"object":case"embed":Br("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],e);a=r;break;case"source":Br("error",e),a=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),a=r;break;case"details":Br("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),Br("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),Br("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Br("invalid",e)}for(i in ye(n,a),c=a)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?me(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Br("scroll",e):null!=u&&v(e,i,u,l))}switch(n){case"input":W(e),J(e,r,!1);break;case"textarea":W(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Gs(t),null;case 6:if(e&&null!=t.stateNode)Is(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Gs(t),null;case 13:if(Ea(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))fo(),go(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else go(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Gs(t),i=!1}else null!==oo&&(sc(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Il&&(Il=3):mc())),null!==t.updateQueue&&(t.flags|=4),Gs(t),null);case 4:return oi(),Rs(e,t),null===e&&Ur(t.stateNode.containerInfo),Gs(t),null;case 10:return So(t.type._context),Gs(t),null;case 19:if(Ea(li),null===(i=t.memoizedState))return Gs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Ws(i,!1);else{if(0!==Il||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Ws(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Qe()>Zl&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ws(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!ao)return Gs(t),null}else 2*Qe()-i.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Qe(),t.sibling=null,n=li.current,Ca(li,r?1&n|2:1&n),t):(Gs(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Rl)&&(Gs(t),6&t.subtreeFlags&&(t.flags|=8192)):Gs(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ks(e,t){switch(to(t),t.tag){case 1:return Pa(t.type)&&Ra(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),Ea(Na),Ea(Aa),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(Ea(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));go()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ea(li),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Ps=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}},Rs=function(){},Os=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ye(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Is=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ys=!1,Qs=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Ec(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){Ec(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&tl(t,n,o)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ha],delete t[ma],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,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=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)gl(e,t,n),n=n.sibling}function gl(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Qs||el(n,t);case 6:var r=dl,a=pl;dl=null,fl(e,t,n),pl=a,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),Ut(e)):la(dl,n.stateNode));break;case 4:r=dl,a=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Qs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&tl(n,t,i),a=a.next}while(a!==r)}fl(e,t,n);break;case 1:if(!Qs&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Ec(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Qs=(r=Qs)||null!==n.memoizedState,fl(e,t,n),Qs=r):fl(e,t,n);break;default:fl(e,t,n)}}function hl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ml(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));gl(i,s,a),dl=null,pl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){Ec(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ml(t,e),yl(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(m){Ec(e,e.return,m)}try{rl(5,e,e.return)}catch(m){Ec(e,e.return,m)}}break;case 1:ml(t,e),yl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(ml(t,e),yl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(m){Ec(e,e.return,m)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Q(a,i),ve(l,s);var u=ve(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?me(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,u)}switch(l){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var g=i.value;null!=g?ne(a,!!i.multiple,g,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(m){Ec(e,e.return,m)}}break;case 6:if(ml(t,e),yl(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(m){Ec(e,e.return,m)}}break;case 3:if(ml(t,e),yl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(m){Ec(e,e.return,m)}break;case 4:default:ml(t,e),yl(e);break;case 13:ml(t,e),yl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Ul=Qe())),4&r&&hl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Qs=(u=Qs)||d,ml(t,e),Qs=u):ml(t,e),yl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(g=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(m){Ec(r,n,m)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){xl(p);continue}}null!==g?(g.return=f,Js=g):xl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(m){Ec(e,e.return,m)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(m){Ec(e,e.return,m)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:ml(t,e),yl(e),4&r&&hl(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),ul(e,ll(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(o(161))}}catch(s){Ec(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vl(e,t,n){Js=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Js;){var a=Js,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Ys;if(!i){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Qs;s=Ys;var c=Qs;if(Ys=i,(Qs=l)&&!c)for(Js=a;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?Sl(a):null!==l?(l.return=i,Js=l):Sl(a);for(;null!==o;)Js=o,wl(o,t,n),o=o.sibling;Js=a,Ys=s,Qs=c}kl(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Js=o):kl(e)}}function kl(e){for(;null!==Js;){var t=Js;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Qs||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Qs)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Bo(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Bo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Qs||512&t.flags&&ol(t)}catch(f){Ec(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function xl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(l){Ec(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){Ec(t,a,l)}}var o=t.return;try{ol(t)}catch(l){Ec(t,o,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){Ec(t,i,l)}}}catch(l){Ec(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var _l,El=Math.ceil,Cl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,Al=w.ReactCurrentBatchConfig,Nl=0,jl=null,Ll=null,Pl=0,Rl=0,Ol=_a(0),Il=0,Fl=null,Ml=0,Dl=0,Bl=0,zl=null,$l=null,Ul=0,Zl=1/0,Hl=null,Vl=!1,Wl=null,Gl=null,ql=!1,Kl=null,Yl=0,Ql=0,Xl=null,Jl=-1,ec=0;function tc(){return 0!=(6&Nl)?Qe():-1!==Jl?Jl:Jl=Qe()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Nl)&&0!==Pl?Pl&-Pl:null!==mo.transition?(0===ec&&(ec=ht()),ec):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function rc(e,t,n,r){if(50<Ql)throw Ql=0,Xl=null,Error(o(185));bt(e,n,r),0!=(2&Nl)&&e===jl||(e===jl&&(0==(2&Nl)&&(Dl|=n),4===Il&&lc(e,Pl)),ac(e,r),1===n&&0===Nl&&0==(1&t.mode)&&(Zl=Qe()+500,Ba&&Ua()))}function ac(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),s=1<<i,l=a[i];-1===l?0!=(s&n)&&0==(s&r)||(a[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=pt(e,e===jl?Pl:0);if(0===r)null!==n&&qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&qe(n),1===t)0===e.tag?function(e){Ba=!0,$a(e)}(cc.bind(null,e)):$a(cc.bind(null,e)),ia((function(){0==(6&Nl)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=jc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!=(6&Nl))throw Error(o(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===jl?Pl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var a=Nl;Nl|=2;var i=hc();for(jl===e&&Pl===t||(Hl=null,Zl=Qe()+500,fc(e,t));;)try{vc();break}catch(l){gc(e,l)}xo(),Cl.current=i,Nl=a,null!==Ll?t=0:(jl=null,Pl=0,t=Il)}if(0!==t){if(2===t&&(0!==(a=gt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Fl,fc(e,0),lc(e,r),ac(e,Qe()),n;if(6===t)lc(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!sr(o(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=bc(e,r))&&(0!==(i=gt(e))&&(r=i,t=ic(e,i))),1===t))throw n=Fl,fc(e,0),lc(e,r),ac(e,Qe()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:xc(e,$l,Hl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Ul+500-Qe())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),t);break}xc(e,$l,Hl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>a&&(a=s),r&=~i}if(r=a,10<(r=(120>(r=Qe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*El(r/1960))-r)){e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),r);break}xc(e,$l,Hl);break;default:throw Error(o(329))}}}return ac(e,Qe()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=$l,$l=n,null!==t&&sc(t)),e}function sc(e){null===$l?$l=e:$l.push.apply($l,e)}function lc(e,t){for(t&=~Bl,t&=~Dl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Nl))throw Error(o(327));Sc();var t=pt(e,0);if(0==(1&t))return ac(e,Qe()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=gt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Fl,fc(e,0),lc(e,t),ac(e,Qe()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xc(e,$l,Hl),ac(e,Qe()),null}function uc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Zl=Qe()+500,Ba&&Ua())}}function dc(e){null!==Kl&&0===Kl.tag&&0==(6&Nl)&&Sc();var t=Nl;Nl|=1;var n=Al.transition,r=vt;try{if(Al.transition=null,vt=1,e)return e()}finally{vt=r,Al.transition=n,0==(6&(Nl=t))&&Ua()}}function pc(){Rl=Ol.current,Ea(Ol)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Ra();break;case 3:oi(),Ea(Na),Ea(Aa),di();break;case 5:si(r);break;case 4:oi();break;case 13:case 19:Ea(li);break;case 10:So(r.type._context);break;case 22:case 23:pc()}n=n.return}if(jl=e,Ll=e=Oc(e.current,null),Pl=Rl=t,Il=0,Fl=null,Bl=Dl=Ml=0,$l=zl=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function gc(e,t){for(;;){var n=Ll;try{if(xo(),pi.current=is,yi){for(var r=hi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}yi=!1}if(gi=0,bi=mi=hi=null,vi=!1,wi=0,Tl.current=null,null===n||null===n.return){Il=1,Fl=t,Ll=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Pl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var g=bs(s);if(null!==g){g.flags&=-257,ys(g,s,l,0,t),1&g.mode&&ms(i,u,t),c=u;var h=(t=g).updateQueue;if(null===h){var m=new Set;m.add(c),t.updateQueue=m}else h.add(c);break e}if(0==(1&t)){ms(i,u,t),mc();break e}c=Error(o(426))}else if(ao&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),ys(b,s,l,0,t),ho(us(c,l));break e}}i=c=us(c,l),4!==Il&&(Il=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,gs(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Gl||!Gl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,hs(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function hc(){var e=Cl.current;return Cl.current=is,null===e?is:e}function mc(){0!==Il&&3!==Il&&2!==Il||(Il=4),null===jl||0==(268435455&Ml)&&0==(268435455&Dl)||lc(jl,Pl)}function bc(e,t){var n=Nl;Nl|=2;var r=hc();for(jl===e&&Pl===t||(Hl=null,fc(e,t));;)try{yc();break}catch(a){gc(e,a)}if(xo(),Nl=n,Cl.current=r,null!==Ll)throw Error(o(261));return jl=null,Pl=0,Il}function yc(){for(;null!==Ll;)wc(Ll)}function vc(){for(;null!==Ll&&!Ke();)wc(Ll)}function wc(e){var t=_l(e.alternate,e,Rl);e.memoizedProps=e.pendingProps,null===t?kc(e):Ll=t,Tl.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=qs(n,t,Rl)))return void(Ll=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(Ll=n);if(null===e)return Il=6,void(Ll=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Il&&(Il=5)}function xc(e,t,n){var r=vt,a=Al.transition;try{Al.transition=null,vt=1,function(e,t,n,r){do{Sc()}while(null!==Kl);if(0!=(6&Nl))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===jl&&(Ll=jl=null,Pl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||ql||(ql=!0,jc(tt,(function(){return Sc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Al.transition,Al.transition=null;var s=vt;vt=1;var l=Nl;Nl|=4,Tl.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var g;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(g=p.firstChild);)f=p,p=g;for(;;){if(p===e)break t;if(f===n&&++u===a&&(l=s),f===i&&++d===r&&(c=s),null!==(g=p.nextSibling))break;f=(p=f).parentNode}p=g}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var h=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var m=h.memoizedProps,b=h.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?m:bo(t.type,m),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Ec(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}h=nl,nl=!1}(e,n),bl(n,e),gr(ta),Ht=!!ea,ta=ea=null,e.current=n,vl(n,e,a),Ye(),Nl=l,vt=s,Al.transition=i}else e.current=n;if(ql&&(ql=!1,Kl=e,Yl=a),i=e.pendingLanes,0===i&&(Gl=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),ac(e,Qe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Vl)throw Vl=!1,e=Wl,Wl=null,e;0!=(1&Yl)&&0!==e.tag&&Sc(),i=e.pendingLanes,0!=(1&i)?e===Xl?Ql++:(Ql=0,Xl=e):Ql=0,Ua()}(e,t,n,r)}finally{Al.transition=a,vt=r}return null}function Sc(){if(null!==Kl){var e=wt(Yl),t=Al.transition,n=vt;try{if(Al.transition=null,vt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Yl=0,0!=(6&Nl))throw Error(o(331));var a=Nl;for(Nl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(0!=(16&Js.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,g=d.return;if(il(d),d===u){Js=null;break}if(null!==f){f.return=g,Js=f;break}Js=g}}}var h=i.alternate;if(null!==h){var m=h.child;if(null!==m){h.child=null;do{var b=m.sibling;m.sibling=null,m=b}while(null!==m)}}Js=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(0!=(2048&(i=Js).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Js=y;break e}Js=i.return}}var v=e.current;for(Js=v;null!==Js;){var w=(s=Js).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Js=w;else e:for(s=v;null!==Js;){if(0!=(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(x){Ec(l,l.return,x)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Nl=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,Al.transition=t}}return!1}function _c(e,t,n){e=Io(e,t=gs(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),ac(e,t))}function Ec(e,t,n){if(3===e.tag)_c(e,e,n);else for(;null!==t;){if(3===t.tag){_c(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Gl||!Gl.has(r))){t=Io(t,e=hs(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),ac(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,jl===e&&(Pl&n)===n&&(4===Il||3===Il&&(130023424&Pl)===Pl&&500>Qe()-Ul?fc(e,0):Bl|=n),ac(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=jo(e,t))&&(bt(e,t,n),ac(e,n))}function Ac(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tc(e,n)}function jc(e,t){return Ge(e,t)}function Lc(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.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pc(e,t,n,r){return new Lc(e,t,n,r)}function Rc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Pc(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.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,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 Ic(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Rc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Fc(n.children,a,i,t);case _:s=8,a|=8;break;case E:return(e=Pc(12,n,t,2|a)).elementType=E,e.lanes=i,e;case N:return(e=Pc(13,n,t,a)).elementType=N,e.lanes=i,e;case j:return(e=Pc(19,n,t,a)).elementType=j,e.lanes=i,e;case R:return Mc(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case A:s=11;break e;case L:s=14;break e;case P:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pc(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Fc(e,t,n,r){return(e=Pc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Pc(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Dc(e,t,n){return(e=Pc(6,e,null,t)).lanes=n,e}function Bc(e,t,n){return(t=Pc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=mt(0),this.expirationTimes=mt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $c(e,t,n,r,a,o,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Po(o),e}function Uc(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Pa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Pa(n))return Ia(e,n,t)}return t}function Zc(e,t,n,r,a,o,i,s,l){return(e=$c(n,r,!0,e,0,o,0,s,l)).context=Uc(null),n=e.current,(o=Oo(r=tc(),a=nc(n))).callback=null!=t?t:null,Io(n,o,a),e.current.lanes=a,bt(e,a,r),ac(e,r),e}function Hc(e,t,n,r){var a=t.current,o=tc(),i=nc(a);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Io(a,t,i))&&(rc(e,a,i,o),Fo(e,a,i)),i}function Vc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Wc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Gc(e,t){Wc(e,t),(e=e.alternate)&&Wc(e,t)}_l=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:js(t),go();break;case 5:ii(t);break;case 1:Pa(t.type)&&Fa(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(yo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Ds(e,t,n):(Ca(li,1&li.current),null!==(e=Vs(e,t,n))?e.sibling:null);Ca(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Zs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,Es(e,t,n)}return Vs(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Wa,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var a=La(t,Aa.current);Eo(t,n),a=_i(null,t,r,e,a,n);var i=Ei();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pa(r)?(i=!0,Fa(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Po(t),a.updater=Uo,t.stateNode=a,a._reactInternals=t,Wo(t,r,e,n),t=Ns(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),ks(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Rc(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===L)return 14}return 2}(r),e=bo(r,e),a){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=As(null,t,r,e,n);break e;case 11:t=xs(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,bo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ts(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 1:return r=t.type,a=t.pendingProps,As(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 3:e:{if(js(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Ro(e,t),Do(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ls(e,t,r,n,a=us(Error(o(423)),t));break e}if(r!==a){t=Ls(e,t,r,n,a=us(Error(o(424)),t));break e}for(ro=ca(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(go(),r===a){t=Vs(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&co(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==i&&na(r,i)&&(t.flags|=32),Cs(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Ds(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Qo(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,xs(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ca(yo,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===a.children&&!Na.current){t=Vs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Oo(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),_o(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),_o(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Eo(t,n),r=r(a=Co(a)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return a=bo(r=t.type,t.pendingProps),Ss(e,t,r,a=bo(r.type,a),n);case 15:return _s(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:bo(r,a),Hs(e,t),t.tag=1,Pa(r)?(e=!0,Fa(t)):e=!1,Eo(t,n),Ho(t,r,a),Wo(t,r,a,n),Ns(null,t,r,!0,e,n);case 19:return Zs(e,t,n);case 22:return Es(e,t,n)}throw Error(o(156,t.tag))};var qc="function"==typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var s=a;a=function(){var e=Vc(i);s.call(e)}}Hc(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Vc(i);o.call(e)}}var i=Zc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ga]=i.current,Ur(8===e.nodeType?e.parentNode:e),dc(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var s=r;r=function(){var e=Vc(l);s.call(e)}}var l=$c(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ga]=l.current,Ur(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,a,r);return Vc(i)}Yc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Hc(e,t,null,null)},Yc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[ga]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=_t();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ac(t,Qe()),0==(6&Nl)&&(Zl=Qe()+500,Ua()))}break;case 13:dc((function(){var t=jo(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Gc(e,1)}},xt=function(e){if(13===e.tag){var t=jo(e,134217728);if(null!==t)rc(t,e,134217728,tc());Gc(e,134217728)}},St=function(e){if(13===e.tag){var t=nc(e),n=jo(e,t);if(null!==n)rc(n,e,t,tc());Gc(e,t)}},_t=function(){return vt},Et=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(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 a=ka(r);if(!a)throw Error(o(90));G(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ae=uc,Ne=dc;var tu={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Te,uc]},nu={findFiberByHostInstance:ya,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ve(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),ot=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Qc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Qc(e))throw Error(o(299));var n=!1,r="",a=qc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$c(e,1,!1,null,0,n,0,r,a),e[ga]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Kc(t)},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(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ve(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Qc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",s=qc;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Zc(t,null,e,1,null!=n?n:null,a,0,i,s),e[ga]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ga]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},20745:(e,t,n)=>{"use strict";var r=n(73935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},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,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],i.get(l.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();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(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:()=>V,ql:()=>J});var r=n(67294),a=n(45697),o=n.n(a),i=n(69590),s=n.n(i),l=n(41143),c=n.n(l),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,g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var m={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"]},y={type:["application/ld+json"]},v={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(m).map((function(e){return m[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=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=S(e,m.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},E=function(e){return S(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[m.BASE]})).map((function(e){return e[m.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=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 a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},N=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},j=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}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[m.NOSCRIPT,m.SCRIPT,m.STYLE],O=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,"'")},I=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 a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},D=function(e,t,n){switch(e){case m.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=F(n,a),[r.createElement(m.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=j(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var g=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=L(e.metaTags,v),o=L(t,b),i=L(n,y);return{priorityMethods:{toComponent:function(){return[].concat(M(m.META,a.priority),M(m.LINK,o.priority),M(m.SCRIPT,i.priority))},toString:function(){return D(m.META,a.priority,r)+" "+D(m.LINK,o.priority,r)+" "+D(m.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=g.priorityMethods,u=g.linkTags,d=g.metaTags,p=g.scriptTags}return{priority:f,base:D(m.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(m.LINK,u,r),meta:D(m.META,d,r),noscript:D(m.NOSCRIPT,o,r),script:D(m.SCRIPT,p,r),style:D(m.STYLE,i,r),title:D(m.TITLE,{title:l,titleAttributes:c},r)}},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?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z: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:{}}))},U=r.createContext({}),Z=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,V=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);V.canUseDOM=H,V.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},V.defaultProps={context:{}},V.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(m.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},G=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===a.indexOf(l)&&a.push(l);var u=o.indexOf(l);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;G(m.BODY,e.bodyAttributes),G(m.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),G(m.TITLE,t)}(u,d);var p={baseTag:W(m.BASE,n),linkTags:W(m.LINK,a),metaTags:W(m.META,o),noscriptTags:W(m.NOSCRIPT,i),scriptTags:W(m.SCRIPT,l),styleTags:W(m.STYLE,c)},f={},g={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(g[e]=p[e].oldTags)})),t&&t(),s(e,f,g)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];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,a=null,o=(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:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(m.LINK,["rel","href"],e),metaTags:A(m.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(m.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:A(m.SCRIPT,["src","innerHTML"],e),styleTags:A(m.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:N(e,"prioritizeSeoTags")});V.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){q(t,(function(){K=null}))})):(q(t),K=null)):B&&(a=B(o)),r(a)},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:Z.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!s()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case m.SCRIPT:case m.NOSCRIPT:return{innerHTML:t};case m.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,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case m.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case m.BODY:return p({},a,{bodyAttributes:p({},o)});case m.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),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,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Q),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case m.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case m.LINK:case m.META:case m.NOSCRIPT:case m.SCRIPT:case m.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().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,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=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,g=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=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 o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case m:case h:case l:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=m,t.Memo=h,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},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)===o},t.isLazy=function(e){return k(e)===m},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},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===o||e===d||e===s||e===i||e===f||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||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 a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}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 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 s=n(67294),l=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 a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.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 s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function g(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var g=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function m(){return h||(h=e(g.loader)),h.promise}return c.push(m),"function"==typeof g.webpack&&u.push((function(){if((0,g.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return m()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(g.loader),r._loadModule()})),m(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return m()};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(g.modules)&&g.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),g.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?s.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return g(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return g(p,e)};var m=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 s.Children.only(this.props.children)},t}(s.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)}))}o(m,"propTypes",{report:l.func.isRequired}),o(m,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=m,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:()=>s,f:()=>i});var r=n(16550),a=n(87462),o=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.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,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>u,rU:()=>m});var r=n(16550),a=n(75068),o=n(67294),i=n(99318),s=n(87462),l=n(63366),c=n(38776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.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},g=o.forwardRef;void 0===g&&(g=f);var h=g((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{a&&a(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!==g&&t||n,o.createElement("a",u)}));var m=g((function(e,t){var n=e.component,a=void 0===n?h:n,u=e.replace,m=e.to,b=e.innerRef,y=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(m,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},y,{href:l,navigate:function(){var t=d(m,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==g?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},y=o.forwardRef;void 0===y&&(y=b);var v=y((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,g=e.className,h=e.exact,v=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,_=e.to,E=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(_,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:x}):null,N=!!(v?v(A,n):A),j="function"==typeof g?g(N):g,L="function"==typeof S?S(N):S;N&&(j=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(" ")}(j,u),L=(0,s.Z)({},L,f));var P=(0,s.Z)({"aria-current":N&&a||null,className:j,style:L,to:i},C);return b!==y?P.ref=t||E:P.innerRef=E,o.createElement(m,P)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>_,F0:()=>v,LX:()=>S,TH:()=>R,k6:()=>P,rs:()=>j,s6:()=>y});var r=n(75068),a=n(67294),o=n(45697),i=n.n(o),s=n(99318),l=n(38776),c=n(87462),u=n(39658),d=n.n(u),p=(n(59864),n(63366)),f=(n(8679),1073741823),g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return g[e]=(g[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.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 a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:c}},m=function(e){var t=h();return t.displayName=e,t},b=m("Router-History"),y=m("Router"),v=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 a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;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=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:s,sensitive:c}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(y.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:u?a.createElement(u,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function A(e){return function(){(0,l.Z)(!1)}}function N(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var L=a.useContext;function P(){return L(b)}function R(){return L(y).location}},39658:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var g=e[i],h=n[2],m=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=g&&g!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,_=n[2]||u,E=b||y;r.push({name:m||o++,prefix:h||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":"[^"+l(_)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(o+=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=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(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()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(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 a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(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 g=l(n.delimiter||"/"),h=i.slice(-g.length)===g;return a||(i=(h?i.slice(0,-g.length):i)+"(?:"+g+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+g+"|$)",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=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},75251:(e,t,n)=>{"use strict";var r=n(67294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:s.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},72408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,m={};function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||g}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,h(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!_.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===o[a]&&(o[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function A(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 N(e,t,a,o,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===o?"."+A(l,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),N(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,o=""===o?".":o+":",k(e))for(var c=0;c<e.length;c++){var u=o+A(s=e[c],c);l+=N(s,t,a,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=N(s=s.value,t,a,u=o+A(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function j(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},R={transition:null},O={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:R,ReactCurrentOwner:S};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),o=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!_.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_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:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.2.0"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},85893:(e,t,n)=>{"use strict";e.exports=n(75251)},60053:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<a&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,g=!1,h=!1,m=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(m=!1,w(e),!h)if(null!==r(c))h=!0,R(x);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function x(e,n){h=!1,m&&(m=!1,y(C),C=-1),g=!0;var o=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!N());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&a(c),w(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),l=!1}return l}finally{p=null,f=o,g=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,_=!1,E=null,C=-1,T=5,A=-1;function N(){return!(t.unstable_now()-A<T)}function j(){if(null!==E){var e=t.unstable_now();A=e;var n=!0;try{n=E(!0,e)}finally{n?S():(_=!1,E=null)}}else _=!1}if("function"==typeof v)S=function(){v(j)};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,P=L.port2;L.port1.onmessage=j,S=function(){P.postMessage(null)}}else S=function(){b(j,0)};function R(e){E=e,_||(_=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}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(){h||g||(h=!0,R(x))},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"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,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:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(m?(y(C),C=-1):m=!0,O(k,o-i))):(e.sortIndex=s,n(c,e),h||g||(h=!0,R(x))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"mf",tagline:"blog and additional materials for courses at \u03c6",url:"https://blog.mfocko.xyz",baseUrl:"/",organizationName:"mfocko",projectName:"blog",trailingSlash:!0,onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",favicon:"img/favicon.ico",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:!1,blog:!1,theme:{customCss:["/home/runner/work/blog/blog/src/css/custom.scss","/home/runner/work/blog/blog/src/css/jetbrains_mono.css"]}}]],plugins:[["@docusaurus/plugin-content-docs",{id:"algorithms",path:"algorithms",routeBasePath:"algorithms",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-docs",{id:"c",path:"c",routeBasePath:"c",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-docs",{id:"cpp",path:"cpp",routeBasePath:"cpp",sidebarPath:"/home/runner/work/blog/blog/sidebars.js",showLastUpdateTime:!0,editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],["@docusaurus/plugin-content-blog",{id:"blog",routeBasePath:"blog",path:"./blog",feedOptions:{type:"all",description:"mf's blog"},editUrl:"https://github.com/mfocko/blog/tree/main",remarkPlugins:[null],rehypePlugins:[null]}],"docusaurus-plugin-sass",["@docusaurus/plugin-client-redirects",{}]],stylesheets:[{href:"https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css",type:"text/css",integrity:"sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM",crossorigin:"anonymous"}],themeConfig:{navbar:{title:"mf",items:[{type:"dropdown",label:"Additional FI MU materials",items:[{type:"doc",docId:"algorithms-intro",docsPluginId:"algorithms",label:"Algorithms"},{type:"doc",docId:"c-intro",docsPluginId:"c",label:"C"},{type:"doc",docId:"cpp-intro",docsPluginId:"cpp",label:"C++"}],position:"left"},{to:"contributions",label:"Contributions",position:"left"},{to:"talks",label:"Talks",position:"left"},{to:"blog",position:"right",label:"Blog"}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2023 Matej Focko.",links:[{title:"Git",items:[{label:"GitHub",href:"https://github.com/mfocko"},{label:"GitLab",href:"https://gitlab.com/mfocko"},{label:"Gitea (self-hosted)",href:"https://git.mfocko.xyz/mfocko"}]},{title:"Social #1",items:[{label:"LinkedIn",href:"https://www.linkedin.com/in/mfocko/"},{label:"Fosstodon",href:"https://fosstodon.org/@m4tt_314"},{label:"Hachyderm.io",href:"https://hachyderm.io/@m4tt_314"}]},{title:"Social #2",items:[{label:"Twitter",href:"https://twitter.com/m4tt_314"},{label:"Twitch",href:"https://twitch.tv/m4tt_314"},{label:"Ko-fi",href:"https://ko-fi.com/m4tt_314"}]}]},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"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["ada","bash","csharp","dot","haskell","java","nix","pascal","python","ruby","rust"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},mermaid:{options:{fontFamily:"Iosevka,'Iosevka Term','Cascadia Code','JetBrains Mono','Fira Code',monospace"},theme:{dark:"dark",light:"default"}},algolia:{appId:"0VXRFPR4QF",apiKey:"9d4d452117cfaaae3e51b9568e22aa16",indexName:"mfocko",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},markdown:{mermaid:!0,format:"mdx",mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}},themes:["@docusaurus/theme-mermaid"],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},scripts:[],headTags:[],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 a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},14965:(e,t,n)=>{"use strict";n.d(t,{y$:()=>J,p1:()=>C});var r=n(67294);function a(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=a(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}const o=function(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=a(e))&&(r&&(r+=" "),r+=t);return r};var i,s,l,c,u,d=Object.create,p=Object.defineProperty,f=Object.defineProperties,g=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,m=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,k=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&k(e,n,t[n]);if(b)for(var n of b(t))w.call(t,n)&&k(e,n,t[n]);return e},S=(e,t)=>f(e,h(t)),_=(e,t)=>{var n={};for(var r in e)v.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&w.call(e,r)&&(n[r]=e[r]);return n},E=(i={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(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 a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);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 a=e.classList;if(a.contains(t))return!0;if(a.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 a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],c=r.util.type(l);"Object"!==c||o[i(l)]?"Array"!==c||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},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 a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,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 g=0;g<f.length;++g){if(d&&d.cause==p+","+g)return;var h=f[g],m=h.inside,b=!!h.lookbehind,y=!!h.greedy,v=h.alias;if(y&&!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,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof a)){var E,C=1;if(y){if(!(E=o(k,S,e,b))||E.index>=e.length)break;var T=E.index,A=E.index+E[0].length,N=S;for(N+=x.value.length;T>=N;)N+=(x=x.next).value.length;if(S=N-=x.value.length,x.value instanceof a)continue;for(var j=x;j!==t.tail&&(N<A||"string"==typeof j.value);j=j.next)C++,N+=j.value.length;C--,_=e.slice(S,N),E.index-=S}else if(!(E=o(k,0,_,b)))continue;T=E.index;var L=E[0],P=_.slice(0,T),R=_.slice(T+L.length),O=S+_.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(P&&(I=l(t,I,P),S+=P.length),c(t,I,C),x=l(t,I,new a(p,m?r.tokenize(L,m):L,v,L)),R&&l(t,x,R),C>1){var F={cause:p+","+g,reach:O};i(e,t,n,x.prev,S,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function s(){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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={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(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return s||(0,i[m(i)[0]])((s={exports:{}}).exports,s),s.exports}),C=((e,t,n)=>(n=null!=e?d(y(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of m(t))v.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(E());C.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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},C.languages.markup.tag.inside["attr-value"].inside.entity=C.languages.markup.entity,C.languages.markup.doctype.inside["internal-subset"].inside=C.languages.markup,C.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(C.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:C.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:C.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},C.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(C.languages.markup.tag,"addAttribute",{value:function(e,t){C.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:C.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),C.languages.html=C.languages.markup,C.languages.mathml=C.languages.markup,C.languages.svg=C.languages.markup,C.languages.xml=C.languages.extend("markup",{}),C.languages.ssml=C.languages.xml,C.languages.atom=C.languages.xml,C.languages.rss=C.languages.xml,function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",a=(r=RegExp(r+"-"+r),{pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"});e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:r,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":a}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":a}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(C),C.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:/[{}[\];(),.:]/},C.languages.javascript=C.languages.extend("clike",{"class-name":[C.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}|\?\?=?|\?\.?|[~:]/}),C.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,C.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:C.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:C.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:C.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:C.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:C.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),C.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:C.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"}}),C.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),C.languages.markup&&(C.languages.markup.tag.addInlined("script","javascript"),C.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")),C.languages.js=C.languages.javascript,C.languages.actionscript=C.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),C.languages.actionscript["class-name"].alias="function",delete C.languages.actionscript.parameter,delete C.languages.actionscript["literal-property"],C.languages.markup&&C.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:C.languages.markup}}),c=/#(?!\{).+/,u={pattern:/#\{[^}]+\}/,alias:"variable"},(l=C).languages.coffeescript=l.languages.extend("javascript",{comment:c,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:u}}],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"}}),l.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:c,interpolation:u}}}),l.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:l.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:u}}]}),l.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete l.languages.coffeescript["template-string"],l.languages.coffee=l.languages.coffeescript,function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(C),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),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,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(C),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(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("\\[(?:[^[\\]\"']|"+t.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":[t,{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}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{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|RebeccaPurple|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:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(C),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\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})),o=/"(?:[^"\\\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"(?:"+a+"|"+o+")"}))),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(o),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}(C),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,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(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("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),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 a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(C),C.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:C.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+/},C.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 a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<a.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=a.indexOf(c.content)&&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}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),C.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,a=r.inside["interpolation-punctuation"],o=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 s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var o=0;o<n.length;o++){if(c>=d.length)return;var i,l,p,f,g,h,m,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(m=(h="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=h.substring(0,m),g=u[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(g,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,g),f=h.substring(m+i.length),g=[],l&&g.push(l),g.push(p),f&&(t(h=[f]),g.push.apply(g,h)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(g)),o+=g.length-1):b.content=g)):(m=b.content,Array.isArray(m)?t(m):t([m]))}}(l),new e.Token(i,l,"language-"+i,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 c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,s,c=n[r];"string"!=typeof c&&(o=c.content,Array.isArray(o)?"template-string"===c.type?(c=o[1],3===o.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(o[1]=l(i,s,c))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(C),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}(C),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(C),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(C),C.languages.n4js=C.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),C.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),C.languages.n4jsd=C.languages.n4js,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 a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(C),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:s(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=s(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=s(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\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:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(C),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(C),C.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},C.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=C.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(C),C.languages.c=C.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|[?:~]|[-+*/%&|^!=<>]=?/}),C.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),C.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},C.languages.c.string],char:C.languages.c.char,comment:C.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:C.languages.c}}}}),C.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 C.languages.c.boolean,C.languages.objectivec=C.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 C.languages.objectivec["class-name"],C.languages.objc=C.languages.objectivec,C.languages.reason=C.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/}),C.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 C.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(C),C.languages.go=C.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/}),C.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete C.languages.go["class-name"],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"])}(C),C.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:/[{}[\];(),.:]/},C.languages.python["string-interpolation"].inside.interpolation.inside.rest=C.languages.python,C.languages.py=C.languages.python;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>A,duotoneLight:()=>N,github:()=>j,jettwaveDark:()=>Z,jettwaveLight:()=>H,nightOwl:()=>L,nightOwlLight:()=>P,oceanicNext:()=>I,okaidia:()=>F,oneDark:()=>V,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>D,synthwave84:()=>B,ultramin:()=>z,vsDark:()=>$,vsLight:()=>U});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},A={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"}}]},N={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{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:"#896724"}}]},j={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"}}]},L={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},P={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},R="#c5a5c5",O="#8dc891",I={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:R}},{types:["attr-value"],style:{color:O}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:O}},{types:["punctuation"],style:{color:O}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:R}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},F={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},M={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},D={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},z={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},$={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},U={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},Z={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{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:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{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:"hsl(230, 8%, 24%)"}}]},G=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=x(x({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=S(x({},n),{backgroundColor:void 0}),r},q=/\r\n|\r|\n/,K=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)},Y=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},Q=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,c=t[i];const u=n[i][o];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=Y(c,u.type),u.alias&&(c=Y(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(q),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)K(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return K(s),l},X=({children:e,language:t,code:n,theme:a,prism:i})=>{const s=t.toLowerCase(),l=((e,t)=>{const[n,a]=(0,r.useState)(G(t,e)),o=(0,r.useRef)(),i=(0,r.useRef)();return(0,r.useEffect)((()=>{t===o.current&&e===i.current||(o.current=t,i.current=e,a(G(t,e)))}),[e,t]),n})(s,a),c=(e=>(0,r.useCallback)((t=>{var n=t,{className:r,style:a,line:i}=n,s=_(n,["className","style","line"]);const l=S(x({},s),{className:o("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=x(x({},l.style||{}),a)),l}),[e]))(l),u=(e=>{const t=(0,r.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,r.useCallback)((e=>{var n=e,{token:r,className:a,style:i}=n,s=_(n,["token","className","style"]);const l=S(x({},s),{className:o("token",...r.types,a),children:r.content,style:t(r)});return null!=i&&(l.style=x(x({},l.style||{}),i)),l}),[t])})(l),d=(({prism:e,code:t,grammar:n,language:a})=>{const o=(0,r.useRef)(e);return(0,r.useMemo)((()=>{if(null==n)return Q([t]);const e={code:t,grammar:n,language:a,tokens:[]};return o.current.hooks.run("before-tokenize",e),e.tokens=o.current.tokenize(t,n),o.current.hooks.run("after-tokenize",e),Q(e.tokens)}),[t,n,a])})({prism:i,language:s,code:n,grammar:i.languages[s]});return e({tokens:d,className:`prism-code language-${s}`,style:null!=l?l.root:{},getLineProps:c,getTokenProps:u})},J=e=>(0,r.createElement)(X,S(x({},e),{prism:e.prism||C,theme:e.theme||$,code:e.code,language:e.language}))},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/blog/-608":{"__comp":"a6aa9e1f","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"},{"content":"ab2721d4"},{"content":"bb882650"},{"content":"75cccf44"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"metadata":"a7098721"},"/blog/2023/08/02/copr/-69d":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"b5a32f14"},"/blog/aoc-2022/1st-week/-df4":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"dff2ebad"},"/blog/aoc-2022/2nd-week/-783":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"377f3aa1"},"/blog/aoc-2022/3rd-week/-7c5":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"f48be158"},"/blog/aoc-2022/4th-week/-1ac":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"3da4b779"},"/blog/aoc-2022/intro/-ada":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"51624505"},"/blog/archive/-22d":{"__comp":"9e4087bc","__context":{"plugin":"0220f5fc"},"archive":"4200b1a9"},"/blog/leetcode/sort-diagonally/-d97":{"__comp":"ccc49370","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","content":"cfa2b263"},"/blog/tags/-f23":{"__comp":"01a85c17","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","tags":"66d5ef6c"},"/blog/tags/\ud83c\udfed/-ffd":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"765ea78b","listMetadata":"b25fbc58"},"/blog/tags/admin/-d3a":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"a082abd3","listMetadata":"146d9b84"},"/blog/tags/advent-of-code-2022/-7bd":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"a80747a0","listMetadata":"62d847b3"},"/blog/tags/advent-of-code/-313":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"19d7c045","listMetadata":"8b1802c5"},"/blog/tags/copr/-959":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"b45dccf0","listMetadata":"3011a4c0"},"/blog/tags/cpp/-770":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"4edd2021","listMetadata":"4621632b"},"/blog/tags/iterators/-2eb":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"ff472cd9","listMetadata":"29694455"},"/blog/tags/leetcode/-e31":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"75cccf44"}],"tag":"86cd1460","listMetadata":"e89da83e"},"/blog/tags/red-hat/-a58":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"52f2a5bf","listMetadata":"d79dd549"},"/blog/tags/rust/-281":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"ab2721d4"},{"content":"bb882650"},{"content":"a6a48ea2"},{"content":"95f41f0b"},{"content":"d7f7fb17"}],"tag":"9287eafd","listMetadata":"0bfe45d5"},"/blog/tags/vps/-1b8":{"__comp":"6875c492","__context":{"plugin":"0220f5fc"},"sidebar":"95b96bb9","items":[{"content":"af8b72a7"}],"tag":"8c0e532b","listMetadata":"0608d96f"},"/contributions/-541":{"__comp":"22a175ec","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"},"/search/-c7b":{"__comp":"1a4e3797","__context":{"plugin":"b0291f37"}},"/talks/-819":{"__comp":"0fcbc6ca","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"},"/algorithms/-f04":{"__comp":"5e95c892","__context":{"plugin":"1a606400"}},"/algorithms/-d58":{"__comp":"a7bd4aaa","version":"6e3cbca1"},"/algorithms/tags/-bb8":{"__comp":"3720c009","tags":"97a42631"},"/algorithms/tags/applications/-b32":{"__comp":"df203c0f","tag":"e1d2ae23"},"/algorithms/tags/backtracking/-e2d":{"__comp":"df203c0f","tag":"eba2374c"},"/algorithms/tags/balanced-trees/-591":{"__comp":"df203c0f","tag":"d4b1e057"},"/algorithms/tags/bfs/-334":{"__comp":"df203c0f","tag":"947341b7"},"/algorithms/tags/bottom-up-dp/-9e5":{"__comp":"df203c0f","tag":"bc2d22bc"},"/algorithms/tags/c/-cc5":{"__comp":"df203c0f","tag":"0123bc76"},"/algorithms/tags/cpp/-f5b":{"__comp":"df203c0f","tag":"520f8175"},"/algorithms/tags/csharp/-7a9":{"__comp":"df203c0f","tag":"d57b4369"},"/algorithms/tags/dynamic-array/-00e":{"__comp":"df203c0f","tag":"9a3dc578"},"/algorithms/tags/dynamic-programming/-f82":{"__comp":"df203c0f","tag":"dd841e73"},"/algorithms/tags/exponential/-a74":{"__comp":"df203c0f","tag":"8e6bb954"},"/algorithms/tags/graphs/-d5b":{"__comp":"df203c0f","tag":"686a7a89"},"/algorithms/tags/greedy/-079":{"__comp":"df203c0f","tag":"b8cbf382"},"/algorithms/tags/hash-tables/-ae4":{"__comp":"df203c0f","tag":"d8f4410e"},"/algorithms/tags/iterative/-783":{"__comp":"df203c0f","tag":"16cbc838"},"/algorithms/tags/iterators/-1bc":{"__comp":"df203c0f","tag":"df0885f0"},"/algorithms/tags/java/-2b4":{"__comp":"df203c0f","tag":"976c4f3b"},"/algorithms/tags/karel/-79f":{"__comp":"df203c0f","tag":"bb984793"},"/algorithms/tags/postconditions/-a27":{"__comp":"df203c0f","tag":"34ab65f4"},"/algorithms/tags/python/-eb2":{"__comp":"df203c0f","tag":"8d31a880"},"/algorithms/tags/recursion/-2b0":{"__comp":"df203c0f","tag":"2b89902a"},"/algorithms/tags/red-black-trees/-9ca":{"__comp":"df203c0f","tag":"d255bd7f"},"/algorithms/tags/sorting/-7ca":{"__comp":"df203c0f","tag":"28d80ff8"},"/algorithms/tags/testing/-2af":{"__comp":"df203c0f","tag":"06c4a8fc"},"/algorithms/tags/time-complexity/-2d3":{"__comp":"df203c0f","tag":"a4c10cf4"},"/algorithms/tags/top-down-dp/-779":{"__comp":"df203c0f","tag":"c580b66a"},"/algorithms/-301":{"__comp":"a94703ab"},"/algorithms/-9b0":{"__comp":"17896441","content":"84d1e0d8"},"/algorithms/algorithms-correctness/postcondition-ambiguity/-c18":{"__comp":"17896441","content":"534d4833"},"/algorithms/category/algorithms-and-correctness/-ea2":{"__comp":"14eb3368","categoryGeneratedIndex":"d309b5b1"},"/algorithms/category/asymptotic-notation-and-time-complexity/-fba":{"__comp":"14eb3368","categoryGeneratedIndex":"decbf9d1"},"/algorithms/category/graphs/-a92":{"__comp":"14eb3368","categoryGeneratedIndex":"9df0e937"},"/algorithms/category/hash-tables/-ddd":{"__comp":"14eb3368","categoryGeneratedIndex":"2fcf0558"},"/algorithms/category/recursion/-61f":{"__comp":"14eb3368","categoryGeneratedIndex":"933b95b3"},"/algorithms/category/red-black-trees/-0c0":{"__comp":"14eb3368","categoryGeneratedIndex":"fb4361d3"},"/algorithms/graphs/bfs-tree/-2fb":{"__comp":"17896441","content":"354a7b72"},"/algorithms/graphs/iterative-and-iterators/-bfd":{"__comp":"17896441","content":"ddc7679f"},"/algorithms/hash-tables/breaking/-319":{"__comp":"17896441","content":"087808f1"},"/algorithms/hash-tables/breaking/mitigations/-4c2":{"__comp":"17896441","content":"15966941"},"/algorithms/hash-tables/breaking/python/-3d1":{"__comp":"17896441","content":"aa24fd5d"},"/algorithms/rb-trees/applications/-46a":{"__comp":"17896441","content":"0178f9ad"},"/algorithms/rb-trees/rules/-21a":{"__comp":"17896441","content":"ff82dde7"},"/algorithms/recursion/karel-1/-600":{"__comp":"17896441","content":"d1aceb2e"},"/algorithms/recursion/pyramid-slide-down/-947":{"__comp":"17896441","content":"5fe5d476"},"/algorithms/time-complexity/extend/-250":{"__comp":"17896441","content":"24fecc0a"},"/c/-dae":{"__comp":"5e95c892","__context":{"plugin":"5ca803d2"}},"/c/-fc8":{"__comp":"a7bd4aaa","version":"4e546705"},"/c/-1c4":{"__comp":"a94703ab"},"/c/-a0f":{"__comp":"17896441","content":"794ef108"},"/c/bonuses/seminar-03/-aaa":{"__comp":"17896441","content":"dead8108"},"/c/bonuses/seminar-04/-ffe":{"__comp":"17896441","content":"bc0c9d90"},"/c/bonuses/seminar-05-06/-4cd":{"__comp":"17896441","content":"d05e838c"},"/c/bonuses/seminar-08/-09a":{"__comp":"17896441","content":"595c7293"},"/c/bonuses/seminar-10/-b9e":{"__comp":"17896441","content":"1535ede8"},"/c/category/bonuses/-17e":{"__comp":"14eb3368","categoryGeneratedIndex":"48b268a6"},"/c/category/practice-exams/-009":{"__comp":"14eb3368","categoryGeneratedIndex":"962da50c"},"/c/mr/-4c5":{"__comp":"17896441","content":"b1288602"},"/c/pexam/cams/-a10":{"__comp":"17896441","content":"4f96b16e"},"/c/pexam/garbage_collect/-44e":{"__comp":"17896441","content":"1acf65cc"},"/cpp/-269":{"__comp":"5e95c892","__context":{"plugin":"6bc697d0"}},"/cpp/-187":{"__comp":"a7bd4aaa","version":"7e6d325b"},"/cpp/-102":{"__comp":"a94703ab"},"/cpp/-fcd":{"__comp":"17896441","content":"7052c0bc"},"/cpp/category/exceptions-and-raii/-cfa":{"__comp":"14eb3368","categoryGeneratedIndex":"e31003e9"},"/cpp/environment/-e0b":{"__comp":"17896441","content":"b9f7f5c4"},"/cpp/exceptions-and-raii/placeholders/-9b3":{"__comp":"17896441","content":"45c9e308"},"/-dfb":{"__comp":"c4f5d8e4","__context":{"plugin":"d675395f"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=97221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.2d5ce640.js.LICENSE.txt b/assets/js/main.a809bb25.js.LICENSE.txt similarity index 100% rename from assets/js/main.2d5ce640.js.LICENSE.txt rename to assets/js/main.a809bb25.js.LICENSE.txt diff --git a/assets/js/runtime~main.9b3960c4.js b/assets/js/runtime~main.9b3960c4.js deleted file mode 100644 index c4c240d..0000000 --- a/assets/js/runtime~main.9b3960c4.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,c,d,b={},f={};function t(e){var a=f[e];if(void 0!==a)return a.exports;var c=f[e]={exports:{}};return b[e].call(c.exports,c,c.exports,t),c.exports}t.m=b,e=[],t.O=(a,c,d,b)=>{if(!c){var f=1/0;for(i=0;i<e.length;i++){c=e[i][0],d=e[i][1],b=e[i][2];for(var r=!0,o=0;o<c.length;o++)(!1&b||f>=b)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(r=!1,b<f&&(f=b));if(r){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,d,b]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.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 b=Object.create(null);t.r(b);var f={};a=a||[null,c({}),c([]),c(c)];for(var r=2&d&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,t.d(b,f),b},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({59:"b1288602",146:"dff2ebad",354:"bc0c9d90",494:"1a606400",569:"ddc7679f",655:"9a3dc578",728:"686a7a89",822:"8c0e532b",866:"4200b1a9",1011:"377f3aa1",1050:"a7098721",1145:"947341b7",1171:"d7f7fb17",1235:"86cd1460",1353:"d1aceb2e",1378:"0220f5fc",1464:"97a42631",1475:"e1d2ae23",1492:"d4b1e057",1494:"16cbc838",1648:"48b268a6",1851:"0fcbc6ca",1885:"84d1e0d8",1960:"e31003e9",2125:"06c4a8fc",2177:"3da4b779",2210:"9df0e937",2264:"962da50c",2433:"b5a32f14",2445:"decbf9d1",2482:"dd841e73",2619:"5fe5d476",2741:"d675395f",3039:"765ea78b",3086:"cfa2b263",3089:"a6aa9e1f",3184:"7e6d325b",3220:"34ab65f4",3276:"6e3cbca1",3388:"29694455",3519:"4621632b",3561:"95b96bb9",3608:"9e4087bc",3618:"a6a48ea2",3707:"24fecc0a",3731:"51624505",3734:"0123bc76",3751:"3720c009",3803:"794ef108",3887:"933b95b3",4013:"01a85c17",4064:"f48be158",4195:"c4f5d8e4",4256:"75cccf44",4269:"0bfe45d5",4327:"4e546705",4343:"df0885f0",4368:"a94703ab",4382:"a4c10cf4",4562:"976c4f3b",4637:"19d7c045",5169:"d79dd549",5287:"6bc697d0",5376:"1535ede8",5430:"52f2a5bf",5521:"9287eafd",5634:"595c7293",5658:"af8b72a7",5775:"8e6bb954",5824:"a80747a0",5975:"4edd2021",6097:"b0291f37",6103:"ccc49370",6179:"d57b4369",6292:"d255bd7f",6306:"4f96b16e",6327:"fb4361d3",6342:"2b89902a",6435:"28d80ff8",6519:"bc2d22bc",6544:"d05e838c",6573:"c580b66a",6864:"bb984793",6890:"22a175ec",7084:"45c9e308",7438:"b8cbf382",7568:"0608d96f",7755:"ab2721d4",7918:"17896441",7920:"1a4e3797",7926:"3011a4c0",8091:"bb882650",8387:"eba2374c",8472:"ff82dde7",8480:"8b1802c5",8518:"a7bd4aaa",8520:"62d847b3",8529:"1acf65cc",8610:"6875c492",8643:"ff472cd9",8757:"e89da83e",8786:"a082abd3",8807:"dead8108",8908:"d309b5b1",9066:"8d31a880",9173:"5ca803d2",9179:"b9f7f5c4",9197:"b25fbc58",9228:"66d5ef6c",9300:"146d9b84",9385:"95f41f0b",9414:"354a7b72",9661:"5e95c892",9679:"b45dccf0",9731:"7052c0bc",9771:"534d4833",9817:"14eb3368",9898:"0178f9ad",9924:"df203c0f"}[e]||e)+"."+{59:"d1f59757",109:"d822e2a0",130:"9adcef89",132:"d647898f",146:"1cc2f99c",240:"8190aace",354:"c62d230e",494:"acf1b263",569:"34b4249c",655:"07cb1f6c",728:"f7132b93",822:"99e85b13",866:"3a444325",1011:"965374c1",1050:"ef506174",1145:"06e92a4d",1171:"b0d839de",1235:"2562aa3d",1325:"126c841a",1353:"53194f68",1378:"5b1b8f6e",1426:"e847ca7b",1464:"2b5ef8cd",1475:"a7e24da2",1492:"dcf46d42",1494:"63632cb6",1504:"c626eacd",1644:"15e1f8ff",1648:"91319502",1763:"98bf88d0",1772:"321bc53b",1851:"0506f58b",1885:"05d31058",1960:"3ae053c2",2125:"18eb9afc",2177:"c4673dc7",2183:"618b481a",2210:"88a0133a",2264:"ea10811e",2433:"b3a3f1ca",2445:"c170fe23",2482:"4a69402c",2619:"56958e9b",2661:"e691bc83",2693:"64c402f3",2696:"e61a0300",2700:"24d240c1",2741:"567b4609",3039:"d017fb4d",3076:"35f30829",3086:"19f0e411",3089:"b6f92241",3184:"dca18707",3220:"580faa9a",3276:"fa9cc87f",3343:"1f48b29f",3388:"a2e2c1d7",3519:"f101cb78",3561:"d5b5ac42",3608:"8d46b922",3618:"b092defb",3619:"ce647998",3707:"602fded1",3731:"58112ff9",3734:"5ca7d996",3751:"e9eaf9f1",3803:"316f10cc",3887:"05a0e2a2",4013:"9250c3bc",4064:"f126906d",4195:"48a7e2ee",4238:"61c33e40",4256:"61f0ccf1",4269:"58ce388b",4327:"2d75be34",4343:"72a19a1c",4368:"c0114cbe",4382:"38f4010f",4562:"763787ff",4637:"004afc43",4706:"7b6665b0",5169:"ee10504b",5269:"59fe4761",5287:"1bfc859a",5326:"c5ca7e9b",5376:"0df680e5",5430:"47167693",5521:"8cb8e3b6",5634:"3a396f62",5658:"d04e29e3",5775:"6a68f58c",5790:"1440c25f",5824:"b21945df",5943:"9c77168e",5975:"c1d4b1bd",6097:"5b91d377",6103:"5d9478a4",6179:"38858940",6255:"9b5f422e",6292:"aa5f778c",6306:"05a86290",6327:"7b58c634",6342:"467bd596",6435:"b8c94f5a",6519:"ebe82db6",6544:"c9e7502d",6573:"3684c421",6648:"4cdd8480",6864:"47b9211c",6890:"d1e2af50",6945:"04a6ca6a",6985:"5a048aa9",7084:"9e2ba609",7438:"9da8e17c",7568:"ee46e047",7755:"f9b0a580",7918:"d57f667a",7920:"4bafbff8",7926:"573f9325",7936:"fe0998ca",8016:"cb675faa",8091:"7074971b",8387:"56ada146",8472:"6a7a72b2",8480:"6f267f4c",8518:"9a546fe4",8520:"06e10519",8529:"6bab8119",8610:"194341fa",8643:"a09aa523",8757:"a63c019a",8786:"929adb6b",8807:"33f96b65",8894:"de4803df",8908:"b50fbce1",8955:"66b94ea5",9066:"21eb37fd",9138:"fc0b63fe",9173:"140c39b8",9179:"f4a2a82e",9197:"c6b468d1",9228:"fc107ca5",9300:"996dfbcb",9385:"92e0d371",9414:"19370e22",9661:"b9c79ca6",9679:"64c75733",9731:"7ea7b00f",9771:"1a69a7bd",9817:"4a9ef768",9893:"cacfe6a8",9898:"3a9b9184",9924:"3809dec2"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},t.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var f,r;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n<o.length;n++){var i=o[n];if(i.getAttribute("src")==e||i.getAttribute("data-webpack")=="fi:"+c){f=i;break}}f||(r=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,t.nc&&f.setAttribute("nonce",t.nc),f.setAttribute("data-webpack","fi:"+c),f.src=e),d[e]=[a];var u=(a,c)=>{f.onerror=f.onload=null,clearTimeout(l);var b=d[e];if(delete d[e],f.parentNode&&f.parentNode.removeChild(f),b&&b.forEach((e=>e(c))),a)return a(c)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),r&&document.head.appendChild(f)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.p="/",t.gca=function(e){return e={17896441:"7918",29694455:"3388",51624505:"3731",b1288602:"59",dff2ebad:"146",bc0c9d90:"354","1a606400":"494",ddc7679f:"569","9a3dc578":"655","686a7a89":"728","8c0e532b":"822","4200b1a9":"866","377f3aa1":"1011",a7098721:"1050","947341b7":"1145",d7f7fb17:"1171","86cd1460":"1235",d1aceb2e:"1353","0220f5fc":"1378","97a42631":"1464",e1d2ae23:"1475",d4b1e057:"1492","16cbc838":"1494","48b268a6":"1648","0fcbc6ca":"1851","84d1e0d8":"1885",e31003e9:"1960","06c4a8fc":"2125","3da4b779":"2177","9df0e937":"2210","962da50c":"2264",b5a32f14:"2433",decbf9d1:"2445",dd841e73:"2482","5fe5d476":"2619",d675395f:"2741","765ea78b":"3039",cfa2b263:"3086",a6aa9e1f:"3089","7e6d325b":"3184","34ab65f4":"3220","6e3cbca1":"3276","4621632b":"3519","95b96bb9":"3561","9e4087bc":"3608",a6a48ea2:"3618","24fecc0a":"3707","0123bc76":"3734","3720c009":"3751","794ef108":"3803","933b95b3":"3887","01a85c17":"4013",f48be158:"4064",c4f5d8e4:"4195","75cccf44":"4256","0bfe45d5":"4269","4e546705":"4327",df0885f0:"4343",a94703ab:"4368",a4c10cf4:"4382","976c4f3b":"4562","19d7c045":"4637",d79dd549:"5169","6bc697d0":"5287","1535ede8":"5376","52f2a5bf":"5430","9287eafd":"5521","595c7293":"5634",af8b72a7:"5658","8e6bb954":"5775",a80747a0:"5824","4edd2021":"5975",b0291f37:"6097",ccc49370:"6103",d57b4369:"6179",d255bd7f:"6292","4f96b16e":"6306",fb4361d3:"6327","2b89902a":"6342","28d80ff8":"6435",bc2d22bc:"6519",d05e838c:"6544",c580b66a:"6573",bb984793:"6864","22a175ec":"6890","45c9e308":"7084",b8cbf382:"7438","0608d96f":"7568",ab2721d4:"7755","1a4e3797":"7920","3011a4c0":"7926",bb882650:"8091",eba2374c:"8387",ff82dde7:"8472","8b1802c5":"8480",a7bd4aaa:"8518","62d847b3":"8520","1acf65cc":"8529","6875c492":"8610",ff472cd9:"8643",e89da83e:"8757",a082abd3:"8786",dead8108:"8807",d309b5b1:"8908","8d31a880":"9066","5ca803d2":"9173",b9f7f5c4:"9179",b25fbc58:"9197","66d5ef6c":"9228","146d9b84":"9300","95f41f0b":"9385","354a7b72":"9414","5e95c892":"9661",b45dccf0:"9679","7052c0bc":"9731","534d4833":"9771","14eb3368":"9817","0178f9ad":"9898",df203c0f:"9924"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var d=t.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>d=e[a]=[c,b]));c.push(d[2]=b);var f=t.p+t.u(a),r=new Error;t.l(f,(c=>{if(t.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+b+": "+f+")",r.name="ChunkLoadError",r.type=b,r.request=f,d[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var d,b,f=c[0],r=c[1],o=c[2],n=0;if(f.some((a=>0!==e[a]))){for(d in r)t.o(r,d)&&(t.m[d]=r[d]);if(o)var i=o(t)}for(a&&a(c);n<f.length;n++)b=f[n],t.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return t.O(i)},c=self.webpackChunkfi=self.webpackChunkfi||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.f17742ff.js b/assets/js/runtime~main.f17742ff.js new file mode 100644 index 0000000..38dafea --- /dev/null +++ b/assets/js/runtime~main.f17742ff.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,f,b={},d={};function t(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={exports:{}};return b[e].call(c.exports,c,c.exports,t),c.exports}t.m=b,e=[],t.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],b=e[i][2];for(var r=!0,o=0;o<c.length;o++)(!1&b||d>=b)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(r=!1,b<d&&(d=b));if(r){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);t.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,t.d(b,d),b},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({59:"b1288602",146:"dff2ebad",354:"bc0c9d90",494:"1a606400",569:"ddc7679f",655:"9a3dc578",728:"686a7a89",822:"8c0e532b",866:"4200b1a9",1011:"377f3aa1",1050:"a7098721",1145:"947341b7",1171:"d7f7fb17",1235:"86cd1460",1353:"d1aceb2e",1378:"0220f5fc",1464:"97a42631",1475:"e1d2ae23",1492:"d4b1e057",1494:"16cbc838",1648:"48b268a6",1851:"0fcbc6ca",1885:"84d1e0d8",1960:"e31003e9",2125:"06c4a8fc",2177:"3da4b779",2210:"9df0e937",2264:"962da50c",2433:"b5a32f14",2445:"decbf9d1",2482:"dd841e73",2619:"5fe5d476",2741:"d675395f",2997:"d8f4410e",3039:"765ea78b",3086:"cfa2b263",3089:"a6aa9e1f",3184:"7e6d325b",3220:"34ab65f4",3276:"6e3cbca1",3388:"29694455",3519:"4621632b",3561:"95b96bb9",3608:"9e4087bc",3618:"a6a48ea2",3707:"24fecc0a",3731:"087808f1",3734:"0123bc76",3751:"3720c009",3803:"794ef108",3887:"933b95b3",4013:"01a85c17",4064:"f48be158",4195:"c4f5d8e4",4256:"75cccf44",4269:"0bfe45d5",4327:"4e546705",4343:"df0885f0",4368:"a94703ab",4382:"a4c10cf4",4394:"51624505",4562:"976c4f3b",4637:"19d7c045",4638:"2fcf0558",5169:"d79dd549",5287:"6bc697d0",5376:"1535ede8",5430:"52f2a5bf",5521:"9287eafd",5634:"595c7293",5658:"af8b72a7",5775:"8e6bb954",5824:"a80747a0",5975:"4edd2021",6097:"b0291f37",6103:"ccc49370",6179:"d57b4369",6292:"d255bd7f",6306:"4f96b16e",6327:"fb4361d3",6342:"2b89902a",6435:"28d80ff8",6519:"bc2d22bc",6544:"d05e838c",6573:"c580b66a",6864:"bb984793",6890:"22a175ec",7084:"45c9e308",7257:"aa24fd5d",7438:"b8cbf382",7568:"0608d96f",7755:"ab2721d4",7918:"17896441",7920:"1a4e3797",7926:"3011a4c0",8058:"520f8175",8091:"bb882650",8326:"15966941",8387:"eba2374c",8472:"ff82dde7",8480:"8b1802c5",8518:"a7bd4aaa",8520:"62d847b3",8529:"1acf65cc",8610:"6875c492",8643:"ff472cd9",8757:"e89da83e",8786:"a082abd3",8807:"dead8108",8908:"d309b5b1",9066:"8d31a880",9173:"5ca803d2",9179:"b9f7f5c4",9197:"b25fbc58",9228:"66d5ef6c",9300:"146d9b84",9385:"95f41f0b",9414:"354a7b72",9661:"5e95c892",9679:"b45dccf0",9731:"7052c0bc",9771:"534d4833",9817:"14eb3368",9898:"0178f9ad",9924:"df203c0f"}[e]||e)+"."+{59:"9d3ae1e4",109:"192a1082",130:"aaabb811",132:"6eeb92f1",146:"2596a554",240:"962c2c3a",354:"22532279",494:"9499d809",569:"4b5bdacd",655:"07cb1f6c",728:"ebbeda14",822:"8df94607",866:"faadd2c9",1011:"4ebbc06f",1050:"33f429e4",1145:"06e92a4d",1171:"3796c0b9",1235:"f549d2c3",1325:"fc0073e5",1353:"3f8e795e",1378:"6bd42e59",1426:"5a43a299",1464:"f6ad4dc0",1475:"2bc6580d",1492:"c26d5bb6",1494:"eafc393a",1504:"972c6306",1644:"e1df3952",1648:"56c72f30",1763:"dd6ac9f1",1772:"7702e9c0",1851:"24ec8bc7",1885:"2391d00c",1960:"e9396e0a",2125:"18eb9afc",2177:"1354e52a",2183:"695e6dce",2210:"2c53d1aa",2264:"ea10811e",2433:"68cedca8",2445:"369aa5a6",2482:"9e9c9dbf",2619:"f7c213ae",2661:"adb036a5",2693:"86767de9",2696:"9c4ce6ae",2700:"eb54ab23",2741:"1f389aac",2997:"e8838bb3",3039:"29a37caf",3076:"0d102429",3086:"efd5103c",3089:"75141289",3184:"0dc3275f",3220:"5fa3179c",3276:"a0392349",3343:"c68ed9e0",3388:"5fa079ce",3519:"bd86e6e4",3561:"f1e9070e",3608:"b07604ed",3618:"7749d78c",3619:"169a66d1",3707:"0d18355b",3731:"0a5fb140",3734:"d7742152",3751:"f4cf5d33",3803:"ed8ed4b7",3887:"05a0e2a2",4013:"57ba4b21",4064:"5e2dd98c",4195:"5d3c1d6d",4238:"732f7e6d",4256:"b0cfb80e",4269:"143f3da4",4327:"40303d4d",4343:"2970a5ee",4368:"5939a7a6",4382:"e91bee7a",4394:"60fbe3b9",4562:"8c7c9f5c",4637:"fd298b3d",4638:"14a64e69",4706:"bf286a6c",5169:"0ed0fe01",5269:"a9818fb6",5287:"410760a1",5326:"480380dd",5376:"550c1ca8",5430:"839d7f40",5521:"7613dea7",5634:"4258c254",5658:"37a3aa6c",5775:"967c2127",5790:"a9566ed9",5824:"b21945df",5943:"ebdacf10",5975:"ba1a6e92",6097:"5b91d377",6103:"92d892f3",6179:"6f772ce2",6255:"4bb462ce",6292:"da5efa5d",6306:"072f92b8",6327:"7b58c634",6342:"cec021fa",6435:"b8c94f5a",6519:"36b6ca38",6544:"1b2f4a74",6573:"53c3dc84",6648:"7d3c04e0",6864:"0560af7f",6890:"ebe0aeb7",6945:"1665fd21",6985:"b22ddd47",7084:"57b8321c",7257:"a1be9355",7438:"b92ec171",7568:"a18c3650",7755:"6fad72ba",7918:"0840295c",7920:"4e3726f1",7926:"bfa0084e",7936:"da5208cb",8016:"f7e4e334",8058:"85515c7b",8091:"6eee4002",8326:"58ddb6d9",8387:"71f2685d",8472:"e3161817",8480:"408315a3",8518:"69e4c2b5",8520:"ea246a7d",8529:"33171995",8610:"d5bd7daa",8643:"a09aa523",8757:"1856d5b6",8786:"6458a62f",8807:"9d966504",8894:"bbb1746a",8908:"924b0302",8955:"88257d8a",9066:"d72d8191",9138:"6232b886",9173:"986e22d4",9179:"8dd00486",9197:"90e65bfc",9228:"fc107ca5",9300:"bdf83d64",9385:"b012cd5f",9414:"257f6430",9661:"ea0b11d7",9679:"7ab0cc2a",9731:"beae1b38",9771:"162e2ecd",9817:"8ed8ad48",9893:"04fdeb2a",9898:"568886e5",9924:"12cfbe9e"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},t.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var d,r;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n<o.length;n++){var i=o[n];if(i.getAttribute("src")==e||i.getAttribute("data-webpack")=="fi:"+c){d=i;break}}d||(r=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,t.nc&&d.setAttribute("nonce",t.nc),d.setAttribute("data-webpack","fi:"+c),d.src=e),f[e]=[a];var u=(a,c)=>{d.onerror=d.onload=null,clearTimeout(l);var b=f[e];if(delete f[e],d.parentNode&&d.parentNode.removeChild(d),b&&b.forEach((e=>e(c))),a)return a(c)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),r&&document.head.appendChild(d)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.p="/",t.gca=function(e){return e={15966941:"8326",17896441:"7918",29694455:"3388",51624505:"4394",b1288602:"59",dff2ebad:"146",bc0c9d90:"354","1a606400":"494",ddc7679f:"569","9a3dc578":"655","686a7a89":"728","8c0e532b":"822","4200b1a9":"866","377f3aa1":"1011",a7098721:"1050","947341b7":"1145",d7f7fb17:"1171","86cd1460":"1235",d1aceb2e:"1353","0220f5fc":"1378","97a42631":"1464",e1d2ae23:"1475",d4b1e057:"1492","16cbc838":"1494","48b268a6":"1648","0fcbc6ca":"1851","84d1e0d8":"1885",e31003e9:"1960","06c4a8fc":"2125","3da4b779":"2177","9df0e937":"2210","962da50c":"2264",b5a32f14:"2433",decbf9d1:"2445",dd841e73:"2482","5fe5d476":"2619",d675395f:"2741",d8f4410e:"2997","765ea78b":"3039",cfa2b263:"3086",a6aa9e1f:"3089","7e6d325b":"3184","34ab65f4":"3220","6e3cbca1":"3276","4621632b":"3519","95b96bb9":"3561","9e4087bc":"3608",a6a48ea2:"3618","24fecc0a":"3707","087808f1":"3731","0123bc76":"3734","3720c009":"3751","794ef108":"3803","933b95b3":"3887","01a85c17":"4013",f48be158:"4064",c4f5d8e4:"4195","75cccf44":"4256","0bfe45d5":"4269","4e546705":"4327",df0885f0:"4343",a94703ab:"4368",a4c10cf4:"4382","976c4f3b":"4562","19d7c045":"4637","2fcf0558":"4638",d79dd549:"5169","6bc697d0":"5287","1535ede8":"5376","52f2a5bf":"5430","9287eafd":"5521","595c7293":"5634",af8b72a7:"5658","8e6bb954":"5775",a80747a0:"5824","4edd2021":"5975",b0291f37:"6097",ccc49370:"6103",d57b4369:"6179",d255bd7f:"6292","4f96b16e":"6306",fb4361d3:"6327","2b89902a":"6342","28d80ff8":"6435",bc2d22bc:"6519",d05e838c:"6544",c580b66a:"6573",bb984793:"6864","22a175ec":"6890","45c9e308":"7084",aa24fd5d:"7257",b8cbf382:"7438","0608d96f":"7568",ab2721d4:"7755","1a4e3797":"7920","3011a4c0":"7926","520f8175":"8058",bb882650:"8091",eba2374c:"8387",ff82dde7:"8472","8b1802c5":"8480",a7bd4aaa:"8518","62d847b3":"8520","1acf65cc":"8529","6875c492":"8610",ff472cd9:"8643",e89da83e:"8757",a082abd3:"8786",dead8108:"8807",d309b5b1:"8908","8d31a880":"9066","5ca803d2":"9173",b9f7f5c4:"9179",b25fbc58:"9197","66d5ef6c":"9228","146d9b84":"9300","95f41f0b":"9385","354a7b72":"9414","5e95c892":"9661",b45dccf0:"9679","7052c0bc":"9731","534d4833":"9771","14eb3368":"9817","0178f9ad":"9898",df203c0f:"9924"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var f=t.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=t.p+t.u(a),r=new Error;t.l(d,(c=>{if(t.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",r.name="ChunkLoadError",r.type=b,r.request=d,f[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],r=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in r)t.o(r,f)&&(t.m[f]=r[f]);if(o)var i=o(t)}for(a&&a(c);n<d.length;n++)b=d[n],t.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return t.O(i)},c=self.webpackChunkfi=self.webpackChunkfi||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/blog/2023/08/02/copr/index.html b/blog/2023/08/02/copr/index.html index c448b7b..f81bd8e 100644 --- a/blog/2023/08/02/copr/index.html +++ b/blog/2023/08/02/copr/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h1 class="title_f1Hy" itemprop="headline">How can Copr help with broken dependencies</h1><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/aoc-2022/1st-week/index.html b/blog/aoc-2022/1st-week/index.html index 61c2fc2..e9ff838 100644 --- a/blog/aoc-2022/1st-week/index.html +++ b/blog/aoc-2022/1st-week/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving first week in Rust."><header><h1 class="title_f1Hy" itemprop="headline">1st week of Advent of Code '22 in Rust</h1><div class="container_mt6G margin-vert--md"><time datetime="2022-12-15T01:15:00.000Z" itemprop="datePublished">December 15, 2022</time> · <!-- -->13 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's go through the first week of <a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"><em>Advent of Code</em></a> in Rust.</p> diff --git a/blog/aoc-2022/2nd-week/index.html b/blog/aoc-2022/2nd-week/index.html index cdbe7e5..d50932d 100644 --- a/blog/aoc-2022/2nd-week/index.html +++ b/blog/aoc-2022/2nd-week/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving second week in Rust."><header><h1 class="title_f1Hy" itemprop="headline">2nd week of Advent of Code '22 in Rust</h1><div class="container_mt6G margin-vert--md"><time datetime="2022-12-25T23:15:00.000Z" itemprop="datePublished">December 25, 2022</time> · <!-- -->21 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's go through the second week of <a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"><em>Advent of Code</em></a> in Rust.</p> diff --git a/blog/aoc-2022/3rd-week/index.html b/blog/aoc-2022/3rd-week/index.html index 7d225e4..e3a5785 100644 --- a/blog/aoc-2022/3rd-week/index.html +++ b/blog/aoc-2022/3rd-week/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving third week in Rust."><header><h1 class="title_f1Hy" itemprop="headline">3rd week of Advent of Code '22 in Rust</h1><div class="container_mt6G margin-vert--md"><time datetime="2023-07-06T21:00:00.000Z" itemprop="datePublished">July 6, 2023</time> · <!-- -->12 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's go through the third week of <a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"><em>Advent of Code</em></a> in Rust.</p> diff --git a/blog/aoc-2022/4th-week/index.html b/blog/aoc-2022/4th-week/index.html index afd5ad0..964becf 100644 --- a/blog/aoc-2022/4th-week/index.html +++ b/blog/aoc-2022/4th-week/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving fourth week in Rust."><header><h1 class="title_f1Hy" itemprop="headline">4th week of Advent of Code '22 in Rust</h1><div class="container_mt6G margin-vert--md"><time datetime="2023-07-07T15:14:00.000Z" itemprop="datePublished">July 7, 2023</time> · <!-- -->16 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's go through the fourth week of <a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"><em>Advent of Code</em></a> in Rust.</p> diff --git a/blog/aoc-2022/intro/index.html b/blog/aoc-2022/intro/index.html index 216009c..a76ea62 100644 --- a/blog/aoc-2022/intro/index.html +++ b/blog/aoc-2022/intro/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Preparing for Advent of Code '22."><header><h1 class="title_f1Hy" itemprop="headline">Advent of Code '22 in Rust</h1><div class="container_mt6G margin-vert--md"><time datetime="2022-12-14T21:45:00.000Z" itemprop="datePublished">December 14, 2022</time> · <!-- -->9 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's talk about the preparations for this year's <a href="https://adventofcode.com" target="_blank" rel="noopener noreferrer"><em>Advent of Code</em></a>.</p> diff --git a/blog/archive/index.html b/blog/archive/index.html index bc96d3c..5457610 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><header class="hero hero--primary"><div class="container"><h1 class="hero__title">Archive</h1><p class="hero__subtitle">Archive</p></div></header><main><section class="margin-vert--lg"><div class="container"><div class="row"><div class="col col--4 margin-vert--lg"><h3 class="anchor anchorWithStickyNavbar_LWe7" id="2023">2023<a href="#2023" class="hash-link" aria-label="Direct link to 2023" title="Direct link to 2023">​</a></h3><ul><li><a href="/blog/leetcode/sort-diagonally/">March 4, 2023<!-- --> - <!-- -->Sort the matrix diagonally</a></li><li><a href="/blog/aoc-2022/3rd-week/">July 6, 2023<!-- --> - <!-- -->3rd week of Advent of Code '22 in Rust</a></li><li><a href="/blog/aoc-2022/4th-week/">July 7, 2023<!-- --> - <!-- -->4th week of Advent of Code '22 in Rust</a></li><li><a href="/blog/2023/08/02/copr/">August 2, 2023<!-- --> - <!-- -->How can Copr help with broken dependencies</a></li></ul></div><div class="col col--4 margin-vert--lg"><h3 class="anchor anchorWithStickyNavbar_LWe7" id="2022">2022<a href="#2022" class="hash-link" aria-label="Direct link to 2022" title="Direct link to 2022">​</a></h3><ul><li><a href="/blog/aoc-2022/intro/">December 14, 2022<!-- --> - <!-- -->Advent of Code '22 in Rust</a></li><li><a href="/blog/aoc-2022/1st-week/">December 15, 2022<!-- --> - <!-- -->1st week of Advent of Code '22 in Rust</a></li><li><a href="/blog/aoc-2022/2nd-week/">December 25, 2022<!-- --> - <!-- -->2nd week of Advent of Code '22 in Rust</a></li></ul></div></div></div></section></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/blog/index.html b/blog/index.html index b2421a2..aa93677 100644 --- a/blog/index.html +++ b/blog/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/leetcode/sort-diagonally/index.html b/blog/leetcode/sort-diagonally/index.html index 8103f1c..53a4b1a 100644 --- a/blog/leetcode/sort-diagonally/index.html +++ b/blog/leetcode/sort-diagonally/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Compiler assisted development."><header><h1 class="title_f1Hy" itemprop="headline">Sort the matrix diagonally</h1><div class="container_mt6G margin-vert--md"><time datetime="2023-03-04T23:15:00.000Z" itemprop="datePublished">March 4, 2023</time> · <!-- -->17 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div id="__blog-post-container" class="markdown" itemprop="articleBody"><p>Let's try to solve one of the LeetCode challenges in easy and hard mode at the diff --git a/blog/tags/admin/index.html b/blog/tags/admin/index.html index 6f04772..a9e6bba 100644 --- a/blog/tags/admin/index.html +++ b/blog/tags/admin/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "admin"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/tags/advent-of-code-2022/index.html b/blog/tags/advent-of-code-2022/index.html index 11f2099..dd7413a 100644 --- a/blog/tags/advent-of-code-2022/index.html +++ b/blog/tags/advent-of-code-2022/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>5 posts tagged with "advent-of-code-2022"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving fourth week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-07T15:14:00.000Z" itemprop="datePublished">July 7, 2023</time> · <!-- -->16 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the fourth week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 4th week of Advent of Code '22 in Rust" href="/blog/aoc-2022/4th-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving third week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-06T21:00:00.000Z" itemprop="datePublished">July 6, 2023</time> · <!-- -->12 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the third week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 3rd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/3rd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving second week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-25T23:15:00.000Z" itemprop="datePublished">December 25, 2022</time> · <!-- -->21 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the second week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 2nd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/2nd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving first week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/1st-week/">1st week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-15T01:15:00.000Z" itemprop="datePublished">December 15, 2022</time> · <!-- -->13 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the first week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 1st week of Advent of Code '22 in Rust" href="/blog/aoc-2022/1st-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Preparing for Advent of Code '22."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/intro/">Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-14T21:45:00.000Z" itemprop="datePublished">December 14, 2022</time> · <!-- -->9 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's talk about the preparations for this year's [<em>Advent of Code</em>].</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about Advent of Code '22 in Rust" href="/blog/aoc-2022/intro/"><b>Read More</b></a></div></footer></article><nav class="pagination-nav" aria-label="Blog list page navigation"></nav></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/blog/tags/advent-of-code/index.html b/blog/tags/advent-of-code/index.html index 36f18eb..09f4e5f 100644 --- a/blog/tags/advent-of-code/index.html +++ b/blog/tags/advent-of-code/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>5 posts tagged with "advent-of-code"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving fourth week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-07T15:14:00.000Z" itemprop="datePublished">July 7, 2023</time> · <!-- -->16 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the fourth week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 4th week of Advent of Code '22 in Rust" href="/blog/aoc-2022/4th-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving third week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-06T21:00:00.000Z" itemprop="datePublished">July 6, 2023</time> · <!-- -->12 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the third week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 3rd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/3rd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving second week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-25T23:15:00.000Z" itemprop="datePublished">December 25, 2022</time> · <!-- -->21 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the second week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 2nd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/2nd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving first week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/1st-week/">1st week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-15T01:15:00.000Z" itemprop="datePublished">December 15, 2022</time> · <!-- -->13 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the first week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 1st week of Advent of Code '22 in Rust" href="/blog/aoc-2022/1st-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Preparing for Advent of Code '22."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/intro/">Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-14T21:45:00.000Z" itemprop="datePublished">December 14, 2022</time> · <!-- -->9 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's talk about the preparations for this year's [<em>Advent of Code</em>].</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about Advent of Code '22 in Rust" href="/blog/aoc-2022/intro/"><b>Read More</b></a></div></footer></article><nav class="pagination-nav" aria-label="Blog list page navigation"></nav></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/blog/tags/copr/index.html b/blog/tags/copr/index.html index 892546f..7988eb8 100644 --- a/blog/tags/copr/index.html +++ b/blog/tags/copr/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "copr"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/tags/cpp/index.html b/blog/tags/cpp/index.html index ee6996f..59843dc 100644 --- a/blog/tags/cpp/index.html +++ b/blog/tags/cpp/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "cpp"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Compiler assisted development."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-03-04T23:15:00.000Z" itemprop="datePublished">March 4, 2023</time> · <!-- -->17 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's try to solve one of the LeetCode challenges in easy and hard mode at the diff --git a/blog/tags/index.html b/blog/tags/index.html index b033a8b..0f1592a 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><h1>Tags</h1><section class="margin-vert--lg"><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="A">A<a href="#A" class="hash-link" aria-label="Direct link to A" title="Direct link to A">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/admin/">admin<span>1</span></a></li><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/advent-of-code/">advent-of-code<span>5</span></a></li><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022<span>5</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="C">C<a href="#C" class="hash-link" aria-label="Direct link to C" title="Direct link to C">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/copr/">copr<span>1</span></a></li><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/cpp/">cpp<span>1</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="I">I<a href="#I" class="hash-link" aria-label="Direct link to I" title="Direct link to I">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/iterators/">iterators<span>1</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="L">L<a href="#L" class="hash-link" aria-label="Direct link to L" title="Direct link to L">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/leetcode/">leetcode<span>1</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="R">R<a href="#R" class="hash-link" aria-label="Direct link to R" title="Direct link to R">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/red-hat/">red-hat<span>1</span></a></li><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/rust/">rust<span>5</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="V">V<a href="#V" class="hash-link" aria-label="Direct link to V" title="Direct link to V">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/vps/">vps<span>1</span></a></li></ul><hr></article><article><h2 class="anchor anchorWithStickyNavbar_LWe7" id="�">�<a href="#�" class="hash-link" aria-label="Direct link to �" title="Direct link to �">​</a></h2><ul class="padding--none"><li class="tag_Nnez"><a class="tag_zVej tagWithCount_h2kH" href="/blog/tags/🏭/">🏭<span>1</span></a></li></ul><hr></article></section></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/blog/tags/iterators/index.html b/blog/tags/iterators/index.html index b98941c..52f159b 100644 --- a/blog/tags/iterators/index.html +++ b/blog/tags/iterators/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "iterators"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Compiler assisted development."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-03-04T23:15:00.000Z" itemprop="datePublished">March 4, 2023</time> · <!-- -->17 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's try to solve one of the LeetCode challenges in easy and hard mode at the diff --git a/blog/tags/leetcode/index.html b/blog/tags/leetcode/index.html index 432eeec..e4cf916 100644 --- a/blog/tags/leetcode/index.html +++ b/blog/tags/leetcode/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "leetcode"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Compiler assisted development."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-03-04T23:15:00.000Z" itemprop="datePublished">March 4, 2023</time> · <!-- -->17 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's try to solve one of the LeetCode challenges in easy and hard mode at the diff --git a/blog/tags/red-hat/index.html b/blog/tags/red-hat/index.html index 1d1c785..cbda3b3 100644 --- a/blog/tags/red-hat/index.html +++ b/blog/tags/red-hat/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "red-hat"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/tags/rust/index.html b/blog/tags/rust/index.html index 6e8d215..8fbcc6d 100644 --- a/blog/tags/rust/index.html +++ b/blog/tags/rust/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>5 posts tagged with "rust"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving fourth week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-07T15:14:00.000Z" itemprop="datePublished">July 7, 2023</time> · <!-- -->16 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the fourth week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 4th week of Advent of Code '22 in Rust" href="/blog/aoc-2022/4th-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving third week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-07-06T21:00:00.000Z" itemprop="datePublished">July 6, 2023</time> · <!-- -->12 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the third week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 3rd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/3rd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving second week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-25T23:15:00.000Z" itemprop="datePublished">December 25, 2022</time> · <!-- -->21 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the second week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 2nd week of Advent of Code '22 in Rust" href="/blog/aoc-2022/2nd-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Surviving first week in Rust."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/1st-week/">1st week of Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-15T01:15:00.000Z" itemprop="datePublished">December 15, 2022</time> · <!-- -->13 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's go through the first week of [<em>Advent of Code</em>] in Rust.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about 1st week of Advent of Code '22 in Rust" href="/blog/aoc-2022/1st-week/"><b>Read More</b></a></div></footer></article><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Preparing for Advent of Code '22."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/aoc-2022/intro/">Advent of Code '22 in Rust</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2022-12-14T21:45:00.000Z" itemprop="datePublished">December 14, 2022</time> · <!-- -->9 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. @mf</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>Let's talk about the preparations for this year's [<em>Advent of Code</em>].</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code/">advent-of-code</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/advent-of-code-2022/">advent-of-code-2022</a></li><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/rust/">rust</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about Advent of Code '22 in Rust" href="/blog/aoc-2022/intro/"><b>Read More</b></a></div></footer></article><nav class="pagination-nav" aria-label="Blog list page navigation"></nav></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/blog/tags/vps/index.html b/blog/tags/vps/index.html index 22ab369..11c5e66 100644 --- a/blog/tags/vps/index.html +++ b/blog/tags/vps/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "vps"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/blog/tags/🏭/index.html b/blog/tags/🏭/index.html index b045e8c..779201d 100644 --- a/blog/tags/🏭/index.html +++ b/blog/tags/🏭/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/4th-week/">4th week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/3rd-week/">3rd week of Advent of Code '22 in Rust</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/leetcode/sort-diagonally/">Sort the matrix diagonally</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/aoc-2022/2nd-week/">2nd week of Advent of Code '22 in Rust</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="https://schema.org/Blog"><header class="margin-bottom--xl"><h1>One post tagged with "🏭"</h1><a href="/blog/tags/">View All Tags</a></header><article class="margin-bottom--xl" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><meta itemprop="description" content="Copr comes to save you when maintainer doesn't care."><header><h2 class="title_f1Hy" itemprop="headline"><a itemprop="url" href="/blog/2023/08/02/copr/">How can Copr help with broken dependencies</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2023-08-02T00:00:00.000Z" itemprop="datePublished">August 2, 2023</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/mfocko.png" alt="Matej Focko" itemprop="image"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Matej Focko</span></a></div><small class="avatar__subtitle" itemprop="description">a.k.a. your opinionated admin</small></div></div></div></div></header><div class="markdown" itemprop="articleBody"><p>When you decide to run Fedora on your VPS, you might get screwed over by using diff --git a/c/bonuses/seminar-03/index.html b/c/bonuses/seminar-03/index.html index 9d43ccf..a50ae6d 100644 --- a/c/bonuses/seminar-03/index.html +++ b/c/bonuses/seminar-03/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/bonuses/"><span itemprop="name">Bonuses</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">3rd seminar</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>3rd seminar</h1></header><div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="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"></path></svg></span>caution</div><div class="admonitionContent_BuS1"><p>Deadline for the submission of the bonus is <strong>March 16th 24:00</strong>.</p></div></div> diff --git a/c/bonuses/seminar-04/index.html b/c/bonuses/seminar-04/index.html index e20c38e..20f0e1f 100644 --- a/c/bonuses/seminar-04/index.html +++ b/c/bonuses/seminar-04/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/bonuses/"><span itemprop="name">Bonuses</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">4th seminar</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>4th seminar</h1></header><div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="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"></path></svg></span>caution</div><div class="admonitionContent_BuS1"><p>Deadline for the submission of the bonus is <strong>March 23th 24:00</strong>.</p></div></div> diff --git a/c/bonuses/seminar-05-06/index.html b/c/bonuses/seminar-05-06/index.html index e1f88b5..2dea6b4 100644 --- a/c/bonuses/seminar-05-06/index.html +++ b/c/bonuses/seminar-05-06/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/bonuses/"><span itemprop="name">Bonuses</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">5th and 6th seminar</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>5th and 6th seminar</h1></header><p>For this bonus you can get at maximum 2.5 K₡.</p> @@ -114,6 +114,6 @@ which is encrypted character <code>H</code> using this method.</p> <p>For decrypting, reverse the steps.</p> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="submitting">Submitting<a href="#submitting" class="hash-link" aria-label="Direct link to Submitting" title="Direct link to Submitting">​</a></h2> <p>In case you have any questions, feel free to reach out to me.</p> -<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/05-06.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-04/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">4th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/bonuses/seminar-08/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">8th seminar</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#task-no-1-reverse-05-k" class="table-of-contents__link toc-highlight">Task no. 1: Reverse (0.5 K₡)</a></li><li><a href="#task-no-2-vigenère-05-k" class="table-of-contents__link toc-highlight">Task no. 2: Vigenère (0.5 K₡)</a></li><li><a href="#task-no-3-bit-madness-05-k" class="table-of-contents__link toc-highlight">Task no. 3: Bit madness (0.5 K₡)</a></li><li><a href="#task-no-4-all-combined-to-bmp-05-k" class="table-of-contents__link toc-highlight">Task no. 4: All combined to BMP (0.5 K₡)</a></li></ul></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/05-06.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-04/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">4th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/bonuses/seminar-08/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">8th seminar</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#task-no-1-reverse-05-k" class="table-of-contents__link toc-highlight">Task no. 1: Reverse (0.5 K₡)</a></li><li><a href="#task-no-2-vigenère-05-k" class="table-of-contents__link toc-highlight">Task no. 2: Vigenère (0.5 K₡)</a></li><li><a href="#task-no-3-bit-madness-05-k" class="table-of-contents__link toc-highlight">Task no. 3: Bit madness (0.5 K₡)</a></li><li><a href="#task-no-4-all-combined-to-bmp-05-k" class="table-of-contents__link toc-highlight">Task no. 4: All combined to BMP (0.5 K₡)</a></li></ul></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/c/bonuses/seminar-08/index.html b/c/bonuses/seminar-08/index.html index f2c2191..b834067 100644 --- a/c/bonuses/seminar-08/index.html +++ b/c/bonuses/seminar-08/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/bonuses/"><span itemprop="name">Bonuses</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">8th seminar</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>8th seminar bonus assignment</h1> @@ -94,6 +94,6 @@ Implementation and format of the pretty-print is totally up to you. :)</p> </blockquote> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="submitting">Submitting<a href="#submitting" class="hash-link" aria-label="Direct link to Submitting" title="Direct link to Submitting">​</a></h2> <p>In case you have any questions, feel free to reach out to me.</p> -<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/08.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-05-06/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">5th and 6th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/bonuses/seminar-10/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">10th seminar</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#warning" class="table-of-contents__link toc-highlight">Warning</a></li><li><a href="#testing" class="table-of-contents__link toc-highlight">Testing</a></li><li><a href="#task-no-1-counting-075-k" class="table-of-contents__link toc-highlight">Task no. 1: Counting (0.75 K₡)</a><ul><li><a href="#requirements" class="table-of-contents__link toc-highlight">Requirements</a></li><li><a href="#bonus-part-075-k" class="table-of-contents__link toc-highlight">Bonus part (0.75 K₡)</a></li></ul></li><li><a href="#task-no-2-weird-trees-1-k" class="table-of-contents__link toc-highlight">Task no. 2: Weird trees (1 K₡)</a></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/08.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-05-06/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">5th and 6th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/bonuses/seminar-10/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">10th seminar</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#warning" class="table-of-contents__link toc-highlight">Warning</a></li><li><a href="#testing" class="table-of-contents__link toc-highlight">Testing</a></li><li><a href="#task-no-1-counting-075-k" class="table-of-contents__link toc-highlight">Task no. 1: Counting (0.75 K₡)</a><ul><li><a href="#requirements" class="table-of-contents__link toc-highlight">Requirements</a></li><li><a href="#bonus-part-075-k" class="table-of-contents__link toc-highlight">Bonus part (0.75 K₡)</a></li></ul></li><li><a href="#task-no-2-weird-trees-1-k" class="table-of-contents__link toc-highlight">Task no. 2: Weird trees (1 K₡)</a></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/c/bonuses/seminar-10/index.html b/c/bonuses/seminar-10/index.html index 75bfa44..cc3601d 100644 --- a/c/bonuses/seminar-10/index.html +++ b/c/bonuses/seminar-10/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/bonuses/"><span itemprop="name">Bonuses</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">10th seminar</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>10th seminar</h1></header><p><a href="/files/c/bonuses/10.tar.gz" target="_blank" rel="noopener noreferrer">Source</a></p> @@ -136,6 +136,6 @@ it is a not requirement at all and you can still get all points for the bonus ;) </ul> <h2 class="anchor anchorWithStickyNavbar_LWe7" id="submitting">Submitting<a href="#submitting" class="hash-link" aria-label="Direct link to Submitting" title="Direct link to Submitting">​</a></h2> <p>In case you have any questions, feel free to reach out to me.</p> -<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/10.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-08/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">8th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/category/practice-exams/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Practice Exams</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#project" class="table-of-contents__link toc-highlight">Project</a><ul><li><a href="#summary-of-the-gameplay" class="table-of-contents__link toc-highlight">Summary of the gameplay</a></li></ul></li><li><a href="#suggested-workflow" class="table-of-contents__link toc-highlight">Suggested workflow</a></li><li><a href="#tasks" class="table-of-contents__link toc-highlight">Tasks</a></li><li><a href="#dictionary" class="table-of-contents__link toc-highlight">Dictionary</a></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/bonuses/10.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/bonuses/seminar-08/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">8th seminar</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/c/category/practice-exams/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Practice Exams</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#project" class="table-of-contents__link toc-highlight">Project</a><ul><li><a href="#summary-of-the-gameplay" class="table-of-contents__link toc-highlight">Summary of the gameplay</a></li></ul></li><li><a href="#suggested-workflow" class="table-of-contents__link toc-highlight">Suggested workflow</a></li><li><a href="#tasks" class="table-of-contents__link toc-highlight">Tasks</a></li><li><a href="#dictionary" class="table-of-contents__link toc-highlight">Dictionary</a></li><li><a href="#submitting" class="table-of-contents__link toc-highlight">Submitting</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/c/category/bonuses/index.html b/c/category/bonuses/index.html index c894630..ade465e 100644 --- a/c/category/bonuses/index.html +++ b/c/category/bonuses/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/c/category/bonuses/">Bonuses</a><button aria-label="Collapse sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-03/">3rd seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-04/">4th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-05-06/">5th and 6th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-08/">8th seminar</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/bonuses/seminar-10/">10th seminar</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Bonuses</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Bonuses</h1><p>Bonus assignments for Kontr Coins. diff --git a/c/category/practice-exams/index.html b/c/category/practice-exams/index.html index e878ec2..ecf5a35 100644 --- a/c/category/practice-exams/index.html +++ b/c/category/practice-exams/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Collapse sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/pexam/garbage_collect/">Practice exam B</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/pexam/cams/">Practice exam C</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Practice Exams</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Practice Exams</h1><p>Practice exams for training for the final exam. diff --git a/c/index.html b/c/index.html index 5e974a8..d06490d 100644 --- a/c/index.html +++ b/c/index.html @@ -14,10 +14,10 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> -<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><header><h1>Introduction</h1></header></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/00-intro.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/c/category/bonuses/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Bonuses</div></a></nav></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><header><h1>Introduction</h1></header></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/00-intro.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/c/category/bonuses/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Bonuses</div></a></nav></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/c/mr/index.html b/c/mr/index.html index 9686e5b..b1c8c5b 100644 --- a/c/mr/index.html +++ b/c/mr/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Expand sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Submitting merge requests</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Submitting merge requests for review</h1> @@ -87,6 +87,6 @@ For the sake of safety, do not continue without clean repository. Then with comm be <code>main</code> or <code>trunk</code>.</p> <div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">aisa$ git status</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Check if repository is clean</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># If you know, what is your default branch, you can skip next command.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">aisa$ git branch</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Find the default branch in the list; should be one of the `master`, `main` or</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># `trunk` and you should not have more than one of those.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># In case the list clears the terminal and you cannot see shell prompt, you can</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># press `q` to quit the pager.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">aisa$ git checkout master</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><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"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <hr> -<p>Adapted from: <a href="https://www.fi.muni.cz/~xlacko1/pb071/mr.html" target="_blank" rel="noopener noreferrer">https://www.fi.muni.cz/~xlacko1/pb071/mr.html</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/mr.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/pexam/cams/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Practice exam C</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#tutorial" class="table-of-contents__link toc-highlight">Tutorial</a><ul><li><a href="#step-1---starting-from-the-clean-repository" class="table-of-contents__link toc-highlight">Step #1 - Starting from the clean repository</a></li><li><a href="#step-2---create-new-branch" class="table-of-contents__link toc-highlight">Step #2 - Create new branch</a></li><li><a href="#step-3---do-the-assignment" class="table-of-contents__link toc-highlight">Step #3 - Do the assignment</a></li><li><a href="#step-4---commit-and-upload-the-changes-to-gitlab" class="table-of-contents__link toc-highlight">Step #4 - Commit and upload the changes to GitLab</a></li><li><a href="#step-5---creating-a-merge-request-manually" class="table-of-contents__link toc-highlight">Step #5 - Creating a merge request manually</a></li><li><a href="#step-6---set-assignees" class="table-of-contents__link toc-highlight">Step #6 - Set assignees</a></li><li><a href="#step-7---return-to-default-branch" class="table-of-contents__link toc-highlight">Step #7 - Return to default branch</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<p>Adapted from: <a href="https://www.fi.muni.cz/~xlacko1/pb071/mr.html" target="_blank" rel="noopener noreferrer">https://www.fi.muni.cz/~xlacko1/pb071/mr.html</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/c/mr.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/c/pexam/cams/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Practice exam C</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#tutorial" class="table-of-contents__link toc-highlight">Tutorial</a><ul><li><a href="#step-1---starting-from-the-clean-repository" class="table-of-contents__link toc-highlight">Step #1 - Starting from the clean repository</a></li><li><a href="#step-2---create-new-branch" class="table-of-contents__link toc-highlight">Step #2 - Create new branch</a></li><li><a href="#step-3---do-the-assignment" class="table-of-contents__link toc-highlight">Step #3 - Do the assignment</a></li><li><a href="#step-4---commit-and-upload-the-changes-to-gitlab" class="table-of-contents__link toc-highlight">Step #4 - Commit and upload the changes to GitLab</a></li><li><a href="#step-5---creating-a-merge-request-manually" class="table-of-contents__link toc-highlight">Step #5 - Creating a merge request manually</a></li><li><a href="#step-6---set-assignees" class="table-of-contents__link toc-highlight">Step #6 - Set assignees</a></li><li><a href="#step-7---return-to-default-branch" class="table-of-contents__link toc-highlight">Step #7 - Return to default branch</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/c/pexam/cams/index.html b/c/pexam/cams/index.html index 94d68a9..26932df 100644 --- a/c/pexam/cams/index.html +++ b/c/pexam/cams/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Collapse sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/pexam/garbage_collect/">Practice exam B</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/pexam/cams/">Practice exam C</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/practice-exams/"><span itemprop="name">Practice Exams</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Practice exam C</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Watching Cams</h1> diff --git a/c/pexam/garbage_collect/index.html b/c/pexam/garbage_collect/index.html index 5a1fc18..be2d63c 100644 --- a/c/pexam/garbage_collect/index.html +++ b/c/pexam/garbage_collect/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/c/category/bonuses/">Bonuses</a><button aria-label="Expand sidebar category 'Bonuses'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/c/category/practice-exams/">Practice Exams</a><button aria-label="Collapse sidebar category 'Practice Exams'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/c/pexam/garbage_collect/">Practice exam B</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/c/pexam/cams/">Practice exam C</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/c/mr/">Submitting merge requests</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/c/category/practice-exams/"><span itemprop="name">Practice Exams</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Practice exam B</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Garbage Collection</h1> diff --git a/contributions/index.html b/contributions/index.html index 962f05f..d63617b 100644 --- a/contributions/index.html +++ b/contributions/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container container--fluid margin-vert--lg"><h1>Contributions</h1><p>Many of my contributions to open-source projects.</p><div class="row"><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>tmt</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>The `tmt` tool provides a user-friendly way to work with tests. You can comfortably create new tests, safely and easily run tests across different environments, review test results, debug test code and enable tests in the CI using a consistent and concise config.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>Just a smallish contribution to the docs related to the changes implemented on the Packit side.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/teemtee/tmt" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Fedora Infrastructure Ansible</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Collection of Ansible playbooks that powers the Fedora Infrastructure.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have adjusted the groups in the Bodhi playbooks after Packit has been granted the privileges to propose updates without restrictions.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://pagure.io/fedora-infra/ansible" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Bodhi</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Bodhi is a web-system that facilitates the process of publishing updates for a Fedora-based software distribution.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have adjusted the client, so that it doesn't show secrets in terminal when you log in to the Bodhi via browser.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/fedora-infra/bodhi" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Gluetool Modules Collection</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Modules for <code>gluetool</code> — a command line centric framework usable for glueing modules into a pipeline.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><ul><li>I have proposed a possible implementation of git merging that was later on extended.</li><li>I have tried to help out with Copr module after they deprecated older version of their API.</li></ul></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://gitlab.com/testing-farm/gluetool-modules" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Pagure</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Pagure is a git-centered forge, python based using pygit2.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have added an API endpoint for reopening pull requests.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://pagure.io/pagure" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Copr</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>RPM build system - upstream for<!-- --> <a target="_blank" href="https://copr.fedorainfracloud.org/">Copr</a>.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><ul><li>Supporting external repositories for custom SRPM build method.</li><li>Allowing admins of Copr repositories to build without the need to ask for explicit <code>builder</code> permissions.</li></ul></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/fedora-copr/copr" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>python-gitlab</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>A python wrapper for the GitLab API.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have contributed support for the <code>merge_ref</code> on merge requests that hasn't been supported, yet it was present in the GitLab API.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/python-gitlab/python-gitlab" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>PatternFly React</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>A set of React components for the PatternFly project.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>When working on Packit Dashboard, I have spotted smaller bugs that were present in this project and fixed them upstream to provide better experience for our users.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/patternfly/patternfly-react" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Fira Code</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Free monospaced font with programming ligatures.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have set up a GitHub Action for building the font on each push to the default branch allowing users to install <i>bleeding edge</i> <!-- -->version of the font.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/tonsky/FiraCode" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>nixpkgs</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Nixpkgs is a collection of over 80,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>When I was trying out the nixpkgs, I have tried to bump .NET Core to the latest version. My changes haven't been accepted as they required bumping of multiple more packages that depended upon the .NET Core.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/NixOS/nixpkgs" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Darcula</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>A theme for Visual Studio Code based on Darcula theme from Jetbrains IDEs.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have contributed support for diff files, though the project doesn't seem to be live anymore, so it hasn't been accepted as of now.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/rokoroku/vscode-theme-darcula" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Packit</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>An open source project aiming to ease the integration of your project with Fedora Linux, CentOS Stream and other distributions.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>Have a look at my<!-- --> <a href="https://github.com/search?q=is%3Apr%20author%3Amfocko%20org%3Apackit&type=pullrequests" target="_blank">pull requests</a>.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/packit" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Snitch</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Language agnostic tool that collects TODOs in the source code and reports them as Issues.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><ul><li>Environment variable support for self-hosted GitLab instances</li><li>GitLab support</li></ul></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://github.com/tsoding/snitch" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div><div class="col col--12"><div class="card card_n_Wj"><div class="card__header"><h2>Karel the Robot</h2></div><div class="card__body"><div class="row"><div class="col col--6"><h6>Description</h6><p>Karel the robot is in general an educational programming language for beginners, created by <i>Richard E. Pattis</i>. This is implementation of <i>Karel the Robot</i> for<!-- --> <i>C programming language</i>.</p><p>This project is used for educational purposes at<!-- --> <a target="_blank" href="https://fei.tuke.sk">TUKE</a>.</p></div><div class="col col--6 contributionsContainer_vdAK"><h6>Contribution</h6><p>I have contributed some refactoring tips to the author of the library.</p></div></div></div><div class="card__footer"><div class="buttons_UAd1"><a href="https://git.kpi.fei.tuke.sk/kpi/karel-the-robot" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"></path></svg></span>See repository</a></div></div></div></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/cpp/category/exceptions-and-raii/index.html b/cpp/category/exceptions-and-raii/index.html index 8457733..338a13a 100644 --- a/cpp/category/exceptions-and-raii/index.html +++ b/cpp/category/exceptions-and-raii/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/cpp/category/exceptions-and-raii/">Exceptions and RAII</a><button aria-label="Collapse sidebar category 'Exceptions and RAII'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/cpp/exceptions-and-raii/placeholders/">Placeholders</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/environment/">Environment</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Exceptions and RAII</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Exceptions and RAII</h1><p>Materials related to the exceptions or RAII in C++. diff --git a/cpp/environment/index.html b/cpp/environment/index.html index be86924..b7595ed 100644 --- a/cpp/environment/index.html +++ b/cpp/environment/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/cpp/category/exceptions-and-raii/">Exceptions and RAII</a><button aria-label="Expand sidebar category 'Exceptions and RAII'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/cpp/environment/">Environment</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Environment</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Environment</h1></header><h2 class="anchor anchorWithStickyNavbar_LWe7" id="required-tools-per-os">Required tools per OS<a href="#required-tools-per-os" class="hash-link" aria-label="Direct link to Required tools per OS" title="Direct link to Required tools per OS">​</a></h2> diff --git a/cpp/exceptions-and-raii/placeholders/index.html b/cpp/exceptions-and-raii/placeholders/index.html index 2bab5dd..1ad373b 100644 --- a/cpp/exceptions-and-raii/placeholders/index.html +++ b/cpp/exceptions-and-raii/placeholders/index.html @@ -16,8 +16,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/cpp/category/exceptions-and-raii/">Exceptions and RAII</a><button aria-label="Collapse sidebar category 'Exceptions and RAII'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/cpp/exceptions-and-raii/placeholders/">Placeholders</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/environment/">Environment</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/cpp/category/exceptions-and-raii/"><span itemprop="name">Exceptions and RAII</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Placeholders</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Placeholders</h1></header><p>Here we will try to implement some placeholders that you can find in other diff --git a/cpp/index.html b/cpp/index.html index 700c158..f8fdebf 100644 --- a/cpp/index.html +++ b/cpp/index.html @@ -14,10 +14,10 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> -<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/cpp/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/cpp/category/exceptions-and-raii/">Exceptions and RAII</a><button aria-label="Expand sidebar category 'Exceptions and RAII'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/environment/">Environment</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><header><h1>Introduction</h1></header></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/cpp/00-intro.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-25T20:49:46.000Z">Nov 25, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/cpp/category/exceptions-and-raii/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Exceptions and RAII</div></a></nav></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> +<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/cpp/">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/cpp/category/exceptions-and-raii/">Exceptions and RAII</a><button aria-label="Expand sidebar category 'Exceptions and RAII'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cpp/environment/">Environment</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><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"></path><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"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><header><h1>Introduction</h1></header></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/mfocko/blog/tree/main/cpp/00-intro.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-11-28T18:38:59.000Z">Nov 28, 2023</time></b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href="/cpp/category/exceptions-and-raii/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Exceptions and RAII</div></a></nav></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> </body> </html> \ No newline at end of file diff --git a/files/algorithms/graphs/iterative-and-iterators.tar.bz2 b/files/algorithms/graphs/iterative-and-iterators.tar.bz2 index 78d3fb7da34274d0a065a129b266c8c707522805..3d33ce9894b9cbf6557a6ea5fd6c2bf1f5ca9dc8 100644 GIT binary patch delta 1924 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 Kg$WKCFyioW7F=%t delta 1931 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 Rjw=87yOJrwgoA?fU^vLuY6$=U diff --git a/files/algorithms/graphs/iterative-and-iterators.tar.gz b/files/algorithms/graphs/iterative-and-iterators.tar.gz index b58d41f732ebbd2cd5d5595898bce60263345449..a15fb30dc2fd773920977e3e8c7daa6c1f5e1aff 100644 GIT binary patch delta 1900 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 delta 1900 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 diff --git a/files/algorithms/hash-tables/breaking/benchmark.cpp b/files/algorithms/hash-tables/breaking/benchmark.cpp new file mode 100644 index 0000000..1c666c0 --- /dev/null +++ b/files/algorithms/hash-tables/breaking/benchmark.cpp @@ -0,0 +1,133 @@ +#include <bit> +#include <cassert> +#include <chrono> +#include <cstdint> +#include <functional> +#include <iostream> +#include <ranges> +#include <set> +#include <string> +#include <unordered_set> + +using elem_t = std::uint64_t; + +const elem_t N_ELEMENTS = 10000000; +#define LOOPS 10 + +template <typename T> struct strategy { + virtual std::string name() const = 0; + virtual T elements() = 0; + + template <typename C> void run(C &&s) { + using namespace std; + + cout << "\nBenchmarking:\t\t" << name() << '\n'; + + auto start = chrono::steady_clock::now(); + for (auto x : elements()) { + s.insert(x); + } + auto after_insertion = chrono::steady_clock::now(); + + auto insertion_time = + chrono::duration_cast<chrono::milliseconds>(after_insertion - start); + cout << "Insertion phase:\t" << insertion_time << "\n"; + + start = chrono::steady_clock::now(); + for (int i = 0; i < LOOPS; ++i) { + for (auto x : elements()) { + assert(s.contains(x)); + } + } + auto after_lookups = chrono::steady_clock::now(); + + auto lookup_time = + chrono::duration_cast<chrono::milliseconds>(after_lookups - start); + cout << "Lookup phase:\t\t" << lookup_time << "\n"; + } + + virtual ~strategy() = default; +}; + +using iota_t = + decltype(std::views::iota(static_cast<elem_t>(0), static_cast<elem_t>(0))); + +struct ascending_ordered_sequence : public strategy<iota_t> { + std::string name() const override { return "ordered sequence (ascending)"; } + iota_t elements() override { + return std::views::iota(static_cast<elem_t>(0), N_ELEMENTS); + } +}; + +static elem_t reverse(elem_t x) { return static_cast<elem_t>(N_ELEMENTS) - x; } +using reversed_iota_t = + decltype(std::views::iota(static_cast<elem_t>(0), static_cast<elem_t>(0)) | + std::views::transform(reverse)); + +struct descending_ordered_sequence : public strategy<reversed_iota_t> { + std::string name() const override { return "ordered sequence (descending)"; } + reversed_iota_t elements() override { + return std::views::iota(static_cast<elem_t>(1), N_ELEMENTS + 1) | + std::views::transform(reverse); + } +}; + +static elem_t attack(elem_t x) { return x << (5 + std::bit_width(x)); } +using attacked_iota_t = + decltype(std::views::iota(static_cast<elem_t>(0), static_cast<elem_t>(0)) | + std::views::transform(attack)); + +struct progressive_ascending_attack : public strategy<attacked_iota_t> { + std::string name() const override { + return "progressive sequence that self-heals on resize"; + } + attacked_iota_t elements() override { + return std::views::iota(static_cast<elem_t>(0), N_ELEMENTS) | + std::views::transform(attack); + } +}; + +using reversed_attacked_iota_t = + decltype(std::views::iota(static_cast<elem_t>(0), static_cast<elem_t>(0)) | + std::views::transform(reverse) | std::views::transform(attack)); + +struct progressive_descending_attack + : public strategy<reversed_attacked_iota_t> { + std::string name() const override { + return "progressive sequence that self-heals in the end"; + } + reversed_attacked_iota_t elements() override { + return std::views::iota(static_cast<elem_t>(1), N_ELEMENTS + 1) | + std::views::transform(reverse) | std::views::transform(attack); + } +}; + +static elem_t shift(elem_t x) { return x << 32; } +using shifted_iota_t = + decltype(std::views::iota(static_cast<elem_t>(0), static_cast<elem_t>(0)) | + std::views::transform(shift)); + +struct hard_attack : public strategy<shifted_iota_t> { + std::string name() const override { return "carefully chosen numbers"; } + shifted_iota_t elements() override { + return std::views::iota(static_cast<elem_t>(0), N_ELEMENTS) | + std::views::transform(shift); + } +}; + +template <typename C> void run_all(const std::string ¬e) { + std::cout << "\n«" << note << "»\n"; + + ascending_ordered_sequence{}.run(C{}); + descending_ordered_sequence{}.run(C{}); + progressive_ascending_attack{}.run(C{}); + progressive_descending_attack{}.run(C{}); + hard_attack{}.run(C{}); +} + +int main() { + run_all<std::unordered_set<elem_t>>("hash table"); + run_all<std::set<elem_t>>("red-black tree"); + + return 0; +} diff --git a/files/algorithms/hash-tables/breaking/benchmark.py b/files/algorithms/hash-tables/breaking/benchmark.py new file mode 100644 index 0000000..710ea24 --- /dev/null +++ b/files/algorithms/hash-tables/breaking/benchmark.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 + +from functools import cached_property +from time import monotonic_ns + +N_ELEMENTS = 10_000_000 +LOOPS = 10 + + +class Strategy: + def __init__(self, data_structure=set): + self._table = data_structure() + + @cached_property + def elements(self): + raise NotImplementedError("Implement for each strategy") + + @property + def name(self): + raise NotImplementedError("Implement for each strategy") + + def run(self): + print(f"\nBenchmarking:\t\t{self.name}") + + # Extract the elements here, so that the evaluation of them does not + # slow down the relevant part of benchmark + elements = self.elements + + # Insertion phase + start = monotonic_ns() + for x in elements: + self._table.add(x) + after_insertion = monotonic_ns() + + print(f"Insertion phase:\t{(after_insertion - start) / 1000000:.2f}ms") + + # Lookup phase + start = monotonic_ns() + for _ in range(LOOPS): + for x in elements: + assert x in self._table + after_lookups = monotonic_ns() + + print(f"Lookup phase:\t\t{(after_lookups - start) / 1000000:.2f}ms") + + +class AscendingOrderedSequence(Strategy): + @property + def name(self): + return "ordered sequence (ascending)" + + @cached_property + def elements(self): + return [x for x in range(N_ELEMENTS)] + + +class DescendingOrderedSequence(Strategy): + @property + def name(self): + return "ordered sequence (descending)" + + @cached_property + def elements(self): + return [x for x in reversed(range(N_ELEMENTS))] + + +class ProgressiveAttack(Strategy): + @staticmethod + def _break(n): + return n << max(5, n.bit_length()) + + +class ProgressiveAscendingAttack(ProgressiveAttack): + @property + def name(self): + return "progressive sequence that self-heals on resize" + + @cached_property + def elements(self): + return [self._break(x) for x in range(N_ELEMENTS)] + + +class ProgressiveDescendingAttack(ProgressiveAttack): + @property + def name(self): + return "progressive sequence that self-heals in the end" + + @cached_property + def elements(self): + return [self._break(x) for x in reversed(range(N_ELEMENTS))] + + +class HardAttack(Strategy): + @property + def name(self): + return "carefully chosen numbers" + + @cached_property + def elements(self): + return [x << 32 for x in range(N_ELEMENTS)] + + +STRATEGIES = [ + AscendingOrderedSequence, + DescendingOrderedSequence, + ProgressiveAscendingAttack, + ProgressiveDescendingAttack, + HardAttack, +] + + +def main(): + for strategy in STRATEGIES: + strategy().run() + + +if __name__ == "__main__": + main() diff --git a/files/algorithms/recursion/karel-1.tar.bz2 b/files/algorithms/recursion/karel-1.tar.bz2 index 9d83024f4d8f91e26b044d318dd5bb2c382ece77..f35cb5ba4f9a8181b38ea6f9ef41cdce4e20b103 100644 GIT binary patch literal 5876 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 KI8cy5iJBwU;>c_O literal 5882 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 Q6kq-><ce^iA^$VlU@X*+&j0`b diff --git a/files/algorithms/recursion/karel-1.tar.gz b/files/algorithms/recursion/karel-1.tar.gz index 2aceb38e2b172a649f422ac0fedb85add6427ab3..de3b34c15d316256b93fb3029fc0a004158478a6 100644 GIT binary patch delta 6266 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 QbdCvlZs?6ghmG}r0E;AiCIA2c delta 6207 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 diff --git a/files/algorithms/recursion/pyramid-slide-down.tar.bz2 b/files/algorithms/recursion/pyramid-slide-down.tar.bz2 index 5af44931559ddc6d82e1593663182417ac1ecffa..f5408d0d8628532dc82d15767b54c1c7f9c9b7ef 100644 GIT binary patch delta 1432 zcmV;J1!ww<42ld6LRx4!F+o`-Q&}cDKKzjmhJQ4m00000000004FCWYBp^Zpo|u?Q zd7&_xrqt8*O{mSNo}&=*Lus_qH9q6(JVlSqs;Zz?L`mJ3Z+~G$i>GpiW0;bO7A%N- ziQyDg6sb+m#+0J3c@{2MTE$YWQq;AIhiQVAyA#K2C0w>KRaRcaSfWZOkLCNTHioi9 zZhtByCoxEg7?C7>zlW$kf%lL4nyEfI8YQi7#+2hZtCCA`pWx<?>GZvCWT}FZi<C*y zP@#NPQmC<Vj20wfi<Ch{5kiS26iG!AD58oHMFkWk6h#zDD3p4K8<W1c`FH)_hM4Ei zqs8<LrZTgBk0JUFcKO8Yr#l@Lmhb0FSAP-jX*K?3r^(MsmX*(GflXnEXE-;RP7G6g zl$Ndg?7YgAR#?kZ$BS)@^73cGMw-=&_g!Bep1s`A<fNQK$n-jgQSU#@v4gb1k@X)@ zV>8-O?KUX&y}jXKVM23x*6JTNJ~UzMwUm+7n$W{0S5#k5pn81=3pBL(`#5;reSehS zx2JY5UAr#J)NIpC^j1XZ%Uo-3o1PQX&UrcYa^QoCVcvC@IZGYKabvt(qrAw$-dMq* zk(owjriF}(DA4j68kQC;WMpP!Y+S*apv<DiW(`ali<TBHYGBOR$gyJPr4}<VN-Snv z*s+4<rlv-M#tJqrV53u0V`D<brhi2m6lQ8JbT`fE(JbYd<hj}N42z!5oTXDoLq6qs zao>II(4&RBr^Gu$J`JCxWsXy`p*jh7K~uh&9y7*R>oq$L!y_TMPjT@0eSZuLiYU{6 zA;&-Q$XUcvSfeu{k1@trqQeMfmo3JI^2FXyT(NTF>ncYvvAEFOWMoleh=0i7!F|>V zv0OMsiZ>QD7A$W!mp2>D;*AP57%plsT(KXmM+!8eZ^+QWg9gQh@`hy$6g8q`p>s0D zjjTn@N+_dov7wO2qgo?lOA^#9Xlynp!BkZWqlltfgxg~yLxGu*sKK$RnVGzz<_(3* z8sL)U2LgqK69x@UO-#*A4S&Xl<6}a`#$d6jV#dZsh78IiW@cD^-w5;hZRhjaFHt-y z&-Pl?etQ?kh8y>q&o8?Fq*V4%X;+Ve$vosqvSb68M4(AzN#!$U(Ex}c04Nf#U@#v` z3&PSRL-@+l|4P2kc1JAwpGcTK!2M%crtTKYcl^(L|7V9k-davNMSlfD>cuZoFZ0$5 zy?(RyTc-Z_i?2;pYx=U8+TrWZLaI~ko>SzWpWZ)k=sEOe%_MjjJqKaTSYl#F#WtEx zhsZw}6Lfp4$&mDyJu014JSlpz@l>^=(Z6wEsR;Kz<Lof*>7&Y0)zx?yIoppg$YFHp zk}ijff$}zbB>0Mi)PFLG{W+ocp5fW_W^zeFbm-W;9He*-4rsiUB97CYBwiuEg;hu3 z&E7kIC5|Gq#ESA+uim>cdlgKwh6b>B;MLA#<v9rFR4jg19*p3)YabyfZW~F&DsoDy z;OPz}&C>Wu7&uNpZ41&>S!<PK=oJN`sw$LMk=AZF3ed<+(0^uWib|43J@Qy(-#H#b z%yh(;eYToG$R)H>+OD_BDpI1p=SX;nek7b_N&6jV%<~>`Q?JJ>+f}?iK6QA1jErt+ z8pSC7-{13MZ<Q*t^V&tL^bS*HuSH_2#y`;{c&2xpU8nbZCigLFRIJZ2+#ZnQaw?p% zmX3<66<e?``+w&nko9`_RQDYd5?p5o>Np(LIr+)b4s#MW2E+Alj-?5vn4ri^NK}%f zpyHBkDN-=?L6F?!dyDe7hfsRjb@Cer=4YsNIMSR=j6uF7B1?7CIs9)IeEId;b16w9 mNz57$?Ib@av2O#ocMj=U7c49xVn_drxgwk>NE00&egOb)`M#zA delta 1434 zcmV;L1!ek*42%p8LRx4!F+o`-Q(39!d^?d2hJOkG003wj00E%T007Vc0a8K)AZnhP zX{IWlniC1CZB0E*sMFes>KYFuHm9`GH2cr6@fJTus;Yrm5hre5Uhcw+9#an04F?iR zBv`T`@+X8*R8plkzbaCSz2sQAVQUpiwM$agDjlW@TI^2CSt{kRimI~qBE=F>M1RNb ztbf`X$q~4ykeo_HNW_UF?)-gW^bf#))YVDx(9tbxepII^(OlA7l>XO5e=nu&d!<Yi zlw6`tqJ<0Ms+C2Hlwh$V6kMVTD2fzGD56Rzkwp|xiYO?dD55B$QADHIIb7ZK%g?{> z{B*}0`g~sTl*U$X(cXEEE%TAtPAqiRTYtZeEnJ7x(rf%nPm_%*T2~uP3Tq5QIl;Wj zaAKR}q_uC~W#&|>vc_7TOj~ScmwtRCX{}hlZPoGW>)p`~YDvgD-j|Gc&r$vbj2=@4 zN7j91jL&gLxY(oE_jd(_g$dE<TgE<Yd}zblYbhhgn$W{0S5#k5pnAP03pBL(`+qoj z9etGFx2tw9UR{@E>o#eodMhGy<*qfi&Bhbe#P8#)p9CC}4&$u3&RFd`OC7@H9mYlu z;>HaOjLI`LG%RFMMu&N!sbONqMn+~v#mpI+49YBKVAR2=xnW}FrVP!Dixw_wQDZX% zqQ+&-ix@6yYGi0EV54H@3N<x0Hh(lMYGhHNMrNYtOMKp)GR}F9Yn`7k$hqz6%2hOU zv+Y-#9oOF73OHM~d_&3^@NE4{EOVWmE|Oi+RPLrnkn$Ef%}&Fx$jELJ-h4hEXTt*{ zGR20Q_BoDO|BhnJ6qYE=$fM3~EKy;EGRvOhc|_h&QDVdFDn-tNQ)79!%zwzD$05OT z+Sn$=aN!mx*s-`+vAo_~+;2CEG$_<yxv7GL{fanIr4xRJh71@sEH{)hC}5$j6D17F zFludbFl<pp8;!=MLn4i+jmDN1D5@4THw}s~RTV<0<S3S*HrU9};AUiMFl=gOW^X9D zgJE*UxDARV;84g>GBP$cHh(iVG&VFh8yXfiGX;%H7B(_8FlJFBGcv>c{3Frkx1-T$ zy+rV<KhbMd_}IQYFyFk^dA;}jLZ`NiO1yj)0GSyz4nRGOO9U1~A1Th=!GRDlfLI}Z zz;Gc=48s!>_)60MO1|HIM?Cu9NSHp*{exMi?iR~;{LiWXv%`<zT7OPjMFm6a#V=AX z^VSQ!p2POrs{d3)*QTnq{dr97aQ0`RRVnvRG4fAW?;p5yoOEW*BzPD-Ct=W7Vq!<d zHkwa|$Ui9)bbIT+A?hxAl{|DjDSEQ;RJEhizj0ux2=~78?J(`?qs&s(<Gc(UTaP%% zVRY(}E{BVO@-}*8_<xFo)G~?ux*_-;@!9ldb4fyVXxO|Q<aiDah`f~|k153@ULn7Q zRY&5@+&sUU$01qbMR(b+;JYz<6-=^*2C#V`)x^opa}mW*vH9G3bAsWle1xI6Z6_e9 z%_^&ds5uumOW`D7;W>TOFG*Epu2qwyR2GV;s!?6;vvI&yhJQkCgELH0RFX0ENnw|C z=69ZRswBJaw9*b?Eux;~b-qbbl@<58gTzDfB;_hk+Uq`Nob(Eveo0>Ht>N+XE5rMw zV{=H>DM$1EpQ96esa2Pv(k)-uIn9>66^g4E{}hqpnci}FPw4i|?t;{*S)OyWJweLm zRXOD?9W_=ew|`(?_s(ZA>-KP|?>c5AxXusOa5^e+;!dD(F(YtnKVJCps7*A*20~&& zq?IKHB$H`Mk%z7fhUYWhU!A->VeDzw%xoW_o}uG%r8yfIgM3Ovmg}Z-_+Bpg^Xs<e oQj$iKpfn-nBtJN@Zv(V;j@elkEG!{nNA(wSML1B9sRQSHJ2REL(*OVf diff --git a/files/algorithms/recursion/pyramid-slide-down.tar.gz b/files/algorithms/recursion/pyramid-slide-down.tar.gz index ef8265bff7af6495bf2e60afd846b63f3088e1e1..eb03455652cf48f16c2ae8cd5985a48f3dcbe719 100644 GIT binary patch delta 590 zcmV-U0<ry$3y%wsfCdcPGF($Xv4+tCe~p~K!v9UfCjS2tD6xDw^3Ue@nvg=mBpcIk zQDXg9&=I7!fiN3YrmEOgMuJgqa*6gPjZ}<V#!f*@$D^XsR$}_)OHEYxfN|q_(Rgf} zC|s*nUL|E!6BXJ<E}w6fH@aK6=u@|BDxh}f_@AS1b4cWu$S;v!BELj_|6gd}e}5l5 z|Ay_6{ym5P>6T0U?<G*;e`4gnGW{FZ=pXVh&RE`no;AxPF24cV%)PeU60C5<ufsmK zaJBpfWbLx{NOD-e9zKEo5&t9pS51)kAMropf5iWCH1NNRFya@J{V~8D{Le9r+Vg+Q z)rtST1ZvO!FJi{dyr}vDfSMHQe_thL(=eXF?_uJnekhnjh4`V}1zWNpP2gR)jJ(+U zykKuKg>m8ENx6}lT#{XcolFqo+S7AI<X(*+?qQ?p8Fz&l-gt`@`*_9Gy1k7LslN4L zaCT==II9ra9nQFP$yxbkUxPDcNH4O?g4iPnTsig%J1=#rQO*ZM%i<ryf7F{^v$AwP z8j)&L-sVs*Gi1HJ(lc{4C5rv{^R!OQzrmeBG2_W)F~9aZ)vrW>Q6@-{4ky2|btf-t z!>b~jHw<9(tPO=6Pw{?DzFte4j3@0fc3G1<kIF=s8Aq!$&s1yNFXgFjy(=!Q&DqA< zK6g61R)%_2DH9ua3bF3oJS8<%Pwbp%>qJ{8+B(tJiMCDz0)apv5C{YUfj}S-2m}Iw cKp+qZ1OkCTAP@)y0^!m47q(sn=>Sjw0IWhLe*gdg delta 589 zcmV-T0<!&&3yuqrfChBiadq81v4+tCe{Jej{%;yK@&A`ViRH_Ye>TV0gcK4c*_eil z66?Q$jv&1agxRPvRmH9{5{!D2OSCs>q+;AMb_!xT9u<|g64NhVYNEmij2q93#$)3| z;aauwDk-a)sL(cY`Fyjy(cQvDpSopJ0ku2F{~UdrLn6OKeu?}N`6crE|3U-*fBWG1 zH*Ame?>YQWw_M_XFM$&O6C?kX>EF0U|B#1q#_|UAtXU>;`3=x!?zQEXV1*-o9rn3} ztK~N!YnQc0lEeD-@Co#f_#g4VYJ$Z7i2o7)BmS48f&X2E5x<!1j{)xBe~w|)p8s2} zPW<mBP<#G=5i@q?Mb#Go)TB`Ve=0GXhVcx34--H2L%|#>#1HK**pdZl0`J0Q<i+0S z1$&bzj0^ux%8k_IlI$YvWP%Xao}Mcr_i6-j4;xL-xGT)?##^k|$1ASZ?QMKW^{o$s zvpb8zS%uK<aK@!e&dN9Y8k{LZdXZ%o#2!K5%CT42d8t#4ay}qh7XKKgf8O+(m8J91 zh*YEUHivqdA?xjxo|&sDQS8T`r*&%n4ektz8BZ>Y`L*AvekBTwGC_)TIQf;WJ9$|f zUKQEAVF06NZ7Ae;iuY^s^;+6wJZYD)%bMJIR3^I2I9jE7rds2EDNl9lU2$n`&NkNe zxzpLTGSsU|nb^2fh;`>KJE^I9V&_C#C)zsE)`_-Gv~?m72m}IwKp+qZ1OkCTAP@)y b0)apv5C{YUfj}S-2#?0UdlOv508jt`5AZBd diff --git a/files/algorithms/time-complexity/extend.tar.bz2 b/files/algorithms/time-complexity/extend.tar.bz2 index 604a9ed5a3e5bbe2a31ab589d819b46b1152f0f8..6162dd801665c49e73ce27048da2cee5f3cfedb1 100644 GIT binary patch delta 3892 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 CbV1$# delta 3898 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 ILrEGFJP$h|UjP6A diff --git a/files/algorithms/time-complexity/extend.tar.gz b/files/algorithms/time-complexity/extend.tar.gz index 34baac048c2a53b50ab9846191a0bd7240496eb8..94bac6a4cdbc1b90696275819c66a0c4458c275b 100644 GIT binary patch literal 3913 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 XKJ}?jed<%6_C5U{_T}T10H6Q>eH^BW literal 3916 zcmV-S53}$eiwFP!000001MOXHbK5o&&S(7!RGn$##G(ii;7e?$*Enr1H)$`^m%F*S z>11e;vN)kh4@ui`&-w4S04WLtMTw#mn{o-ym>{qOu#0DxyO4I|eM-I19Z#Y#N#m<Y z>PMmCM(LAX78Qy?2)kmFVt$WJlV5os)t+ENb(K(4RkbH7rkI*fkh;@V)Re0vbz+2` z#8+YH#r1S<H2Juye@~0+pU2MS481}B8z3lQ<a+48$;`R*PGWBo#qJ+R1K#6&$oc~3 z%nMG2_)fdi@5mj!Gw#eg>&_njk<pzkp@TlwH7R%Thx0DC+*KMepLz6B9{W}P@Pa^^ z;j}^^>AXHBb!kP;SvGE&6aEa>Sa*P;Q}>79)SmT{M|Pxy7oq*u%l+!I#;8ud4qa zTqpjhB-iJ=nq#&8>neqMq5rxH`fq5e-s}H;l;iI{T?FXbixb#+&{jnqA}^dot{<MC z41fRa$B{KeAfnK9f++M(hG8`P?&aY4tJnWL{p~;Re?Wi}^#1o(@7|uG;b=Vmw|+Vv zzy9qt`t@IL5LWPb{KL<H=iw|(FJFwuH#axRjjlxT`S=a9JN_gY1Lc@e!c$`y4P(Vk z-65M}G(vAY*cB)BTy%DexT(7K|D3NEX$sL56+KlC252<OANkEs1MdY`wD-=rm%KnY z>tYMN@!fQGGBkASG999s=bz8glcA=Xa63TPzIXE~`gAf>6;(z2A5gLjP{3t~KvrRL zvV<88fXo)3lf3v8_~FN8gxI$2G4Ev@o+IBq8FIE@^hw|(Nq##-Y3zi_G>R`yhRMVU zyr&r90~ALoNCOzo`U7@DV14=l8!u(7zkG8%&MJfB%P6=#2SH8!0Ic2D_zeDBwxMzK z5jK;Lap}Zf2;#Vm{4j<2N92$o_&0)4K>$L9H<RHw7xdh!jtWlLJuVnwcZ*eJ)OAY> z0bGl9-OT*dTdYV^HH99Iz$_>f&2MZAZir@9Z%SnBhOamUQ-|2UkrPg4QG7DI@Le~6 zX<)}SOo!+ec*mxp0OF@nn2x5-g&#oUx2F#5fa^Qxl=1ui-M5G6+kbfJtJv|w1pO3+ z5o>uHCEoQ%hgE;{<BXWy{N0&+gzE*6fvhK9K6>K+37lfWft3j%WBVlrA;CIx839(j zMnWoaFUq9>`$X*y`&v8psfZD(ZN$FOq21Tpv2TjIZ*I2xc87MKv|?WuErhOawEKFO zbf30kU(|hlGu_v_r29rY_C?*-H`9H+OS*5iV_(#LeKXzHyQKS8EB1+~`(!iSCtcEg zyI_BOp1W9QOI<9j#>F~o?_${;H6{V6WmSw-sAE&B+z3Rhx?afebS7lWdT<%H^R2M9 z;5@HqB5A<9PCLVVJI@M}1vc_}W9E(S?7Uvpt}G<^=4(QazBx~is><fM=R!Qg?&Nqz zdRWjsC!MX5E{y(@X4;C1Gt;G?YE)H-0e8ew3=?S}W1_*WW-C+&<+BxwNuDS+7kpW{ zOOagNMp_VNvk4%?h6%8#Du$MCrUti`f(g4d728H-;zl8aGPk9=_Tanys=C{grM6VB zv89tO!c}vjFmqR&E6m(A5pP7QX6CeT*E^t8TY2l8^|`a&(4rL1dIy-_%2&^r*ETYz zg{$5H=8d)Hw5o5+fNIUmX+`}Sm{Y(;W=rvDRt1BqfslD!CyK7+bxl>wwnkLPmXeP_ zt$aM3*Kw&wplgC_yG!Qtw7R?QQu9e_%%|Jld=k1)ki4EL2-UU9jY!qZd=j%eO4Kgi zBbLCrwUPNGc6ZEYyJ(N93v}f5rp!~VJ3GH5){`t?Ro|Gw)SH>liuyG%pI|O+d+v?u z;BQh=c%y{bC#&#A2{WzRd8344#WD(ilTcgHt->26Fs(%jU$so!0Owk#ywTUy-Nv#d zr8Slmw=$yY;fN^(Ty%qJ3K1%KhuX;5G;=AE2Nxo)J02-ek7aEkHQFLSx0#|~)m8}R zHi(c@8&m*rYk+_>WE$XE9FD-XH*92N5fsrB&1|V8hOVe!;dGlhFEA<_9QF|g2X*0t zQw38blJS`e328FSj2f6}tzc$q8JyUa;|ptsSey4X!Wt-cSFon7#hNB#jW)xYwjtIu zLm}oIYwYYv(*bN$u|dKZIw(~rhAMP0I2ekG+a3>K3h;q3xTlQa-J0*JO%Q{;%EmVp z!X_3d%XrgeyqPt4(_7&UliYssN`^D0eT!Pr*$8sj#GS$1k^?FUJGzWHqZ#J(4KYV_ zc*hr*gFQFR0&}b*#~gUwCfO2m2KXGLz!i8NnpI$q62-6zJc^WM%n=!LRt@GzyW<?3 z8!}$uNYhMJtQDQjUa3Uy4CYAPF<F5fB4f_1!JPcuhDV{c$+tJdoCY4ct#Ql|jh~J& zOGgx_8#(CUhO`8oX4u@(B@nL@7*SPnV`8&As;C*LiH%B>WzbO>baoBsXgknZxh>-r z4mF)<Vy)<G1iHnC+z$^rx)yX)2A$OmbhO2RQHD5PH4H_^*_jT7YJR)}7DwCeu!wMI z@xk=GipBN?Q5j=K<-1jC4akgEAk&T9c<~B{7QsZU6`jpMW_2f8SaLoofyIzPW;X+w zu_4GH{$#FGjx#VNsx`N4>@xs8w`{tRyKq}rHXWi6+n8G~9jq5M3e16>V;?qUR<A@^ zMx9wfUENpu%y#E{dTzaVCBvF!h_#}#5$Xu-PTXMDotqZuF)N=hsx`2aAKVOfAV?u_ zV8?`uz=4=W;6Tjn0|#P?fdetbz=0TI;83D0qt2?JuI^h7Rx8v|H8*FxlAVQ6ORN>0 zjZjDR?nDmOTGUw;)YW~gEkC#!>ZmG)4(xn(5js#@gboyMA39J?3>~N@h7J^qp+kwX zj5@o5y1LJU?RKa$b92Tk9BYQIinXG%5$X)JJF&x(BWwvgb_I2HpZ>`YZiqT|+G`i6 z)4_$;<|lHL>WYTvM{?B2j+M7LlcT1ZjlqxJC<G^L{QOi7Tu6IyU?);8fS3JCuHo{~ z=^sn;e*%^kvBLzQ)%ib~Y0ygkk8T=${?C1sKL6)0l>d_(vaV<UoCWYI`U_?MH2qSl zESLRF_-Xo0RGH)b&GBiP)+2MgziB;9zZ)oVyvLb5O}`K*bG*OFJ5BR-WRCYYU#IC; zwq%a?H$|uE_p~IA_c$x(eiLydxjo)QoR)6R-sax4baM7K-KH}cHn~7|oMDrXTDNPD zI=AM2(`lCbz>hPXW;-u=|1xN{^O5&2X{IxIGJ;XuI!|V`DSWIMGWVMlBfHa&IVq-P zP_?&tFfBu>y-j`TOty<?1b3J1vf3Oz?mU<KNNte>`Y2Lc9ypstP=p<2v#eHv&gHR4 z>w7$TEDxNzA_8kSsVi&Z?k*;+R8DjrQ_{)<=c$MQ+fAOz8h~{%Lq$Fzc~luH51f=D zo*wQfDP=XnI+>0luklf(qdag1ihLB)HUp*6F-&K2Pvqr2s@#(YPB#$|wWD;CHQ?%G zqKO=NKdMBNht4e#Ft(%Ik~QZhoy;n!9LYVVtdfULBoQFCqePO`5bI_NiM+^1l|u5+ zStBCEc9u1=24!8&7s>NK+}kkllT?}Pe1a!yfB%VMjY_}&q*K!W{?ombul;ZmT!F3+ z=Mb0;2ZN&ZI7!{JC<>I>%W`AjpUG{pAD*+e!FA-j2!;crGWp=dv2**u5B>CMmSH6I zr05w`4iPgFaKkPKgY37c{3&`0edy!_{rvm8cL%&N>tZGL(yKT;;`g8PUy6$3(M#7! z9h5zCv}m0~S78dxs@Ud$mGaYDshO<-n%L!N@OddeuE&)9b`?wQxyYZ$Ir(b&bJN)K z7E}jEMaOa(eBMM7bDp1-`Er_Vp&z>5ryB0j-Cfp?UY-c6SuT{)@&`iug2m_gXwMcq zSG)Xa3@@V=JI2;52<{l+w#%(u+8Mks9&}|O$fv?cBbI6;%XIwg*#H{<b{6~I6#e3H zHA!dQe8q^b7~Rag5QU!SdalChFP+%AV4diDPLM|E%!3uM=W~*5ISD$R!2A3q$iX`v z^D5(*Q-W<lH%@|*tI5PmlIc}|qIf<dw1-hTAM%h5nT<4cf}|KKg0;pse&Vq?#{;nY zDJ+^<H%aE%IJ?-7l5W-P4db@7H@O;x-pvO=Ez4^9-F&;|4bPBvfL<VMWJ6^jV?*SY zAoiRfh$ah*aaf)}*zDYvFy0meEH^^qF`7Dl;JIv5^C_IvLl@pf6yM66^4+Ml*YmlS zTP1O^M}vy^V7w(8d3lx0*6P+_E-Y?F>-Tk)7;5=r<9xLgTnt3JmL||mE^nV!j5cRd zFt&#%1Ax5a3zFy0j|NMHyyR7Q8C`y9`&GpZe_%AKTT|xMu6bM4bSCj+#d4u{gE#pU zY}C{FYmvWO;d0Cd$ytE==g;MV>OjnwU413TlSAYm9Ly(PE|E##Iq{cqS7fK+OZ`-3 zU%o(*;=kFKm}5=+M+nB1_z%eX`0pM{<4A9?+;-$vV=@CFK3lxLbDNjhxKc~$9WDfY zU^k9rAM-6ljlL5=Z&G$L74)l@Cj2=RP2n1z2OjbQ@4^Es<b*Ez(~Bc7VPkpMUVNL* zm;>nrne$iYllsMcCD)Zt^J_j=6fP$6L+<}(OX5!D)}e1j2CuV7vm$`kg@2GBsPTnl zjsoW&+zck6sqY1DvWn+ClFc|?%0QD?x3cVCa*v)Lf_X8UjID4kxhRv|xql780uSMq zuW<q)n*$Pr%@ZCMX|wq6E&mVOQ=yuN7VnoX<S-8u*sD$mIkG|h1VvXV8}$ruoQZL~ zePrBJR#QJt(uKsPWvp!`s~Rbkrl^rc7|jU)XtBqJyJYCfhF&g@^`UlCAq38smVr3K z4n?rmC9X)|d)G}0R_8DURbJ0Egxs-L(l3B+rrwS##o;`TkwlP%1L@338GHGYljzci zPy`4gdH$8*dSQjx%tE{#+#W88%Gr2QV7`+;ZVA3FqHC~~B|rgAFV+c{)7;Gb$*c;< zLd-EAz21g43X&>o{((DZ$^4kZPiNvLC)v`Rkjrls3)vboS5JDiK{&INO%d-o6l$5< zHrlH2eaeEB%=oU^oE)l*e#HXU2R}!B%+i;>^rbI-=}TYw(wDyUr7wNyOJDlZm%j9+ aFMa7tU;5IQzVv0^%l`oiz2RK|pa1}kCa&86 diff --git a/files/c/bonuses/03.tar.bz2 b/files/c/bonuses/03.tar.bz2 index 7d80677d006a70c9d9ed0b99f55844ea3abe0936..386986506b4cf99df5aedfe8052db0c178d2c23e 100644 GIT binary patch literal 2647 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 FWDp%O6kh-U literal 2638 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 diff --git a/files/c/bonuses/03.tar.gz b/files/c/bonuses/03.tar.gz index f36ca2facaaf5b23daf0927689ed590ae1b80555..2e199206316bd3a98eef9f54fe727db501a28483 100644 GIT binary patch delta 2246 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 UfC36A;7h~*0H6CBk^oQu03&@(9RL6T delta 2245 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 TKmi35@TK8@Oo@sK08jt`0Jv2n diff --git a/files/c/bonuses/04.tar.bz2 b/files/c/bonuses/04.tar.bz2 index 1322c6b5571a889d531c1e3e9c6bd19fb373e2f0..5479e38611bfc0c6c994e516026ef8f44b5b4c0b 100644 GIT binary patch literal 2531 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 literal 2531 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 diff --git a/files/c/bonuses/04.tar.gz b/files/c/bonuses/04.tar.gz index de638d27e2e257edac6892630ca9f1d95836c45b..2f5a6e2795e7f1a53e175328b5fff2b65313893e 100644 GIT binary patch literal 2499 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 N{0A4%kK+JP00069>Q4Xw literal 2500 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 OuJ9KnX%VCVPyhhENb2DL diff --git a/files/c/bonuses/05-06.tar.bz2 b/files/c/bonuses/05-06.tar.bz2 index 401b486e69ef3ad8d9d17802cbd5823daf166ecd..1e559cb559ef6b25ae377d55e1d0a07fca4c9276 100644 GIT binary patch delta 3434 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 M$rRy2LnAID5ClwJy8r+H delta 3434 zcmV-w4VCh@9JU-0LRx4!F+o`-Q(50B2o(Sdu8|QQe;|;c0hoJsyL)rjLB!}fpyCvW zC;$Ke00001q9LiKnMR(I(<UaS)YDBgXa<i^00x6V0002WOcN@8g&KJwpa1{>00000 z00w|*HBZQaA)pL^05kx^8W;!+gFrF?pd{3h5vEhnnMaiU6nQ6+siR<{$~{Jd)Otpq zq3Rxpf6y9f>Hy#Ypfn8t4K&CAG-;3lqb3LpKmY|v5D)?YMw*zKYDP61Q%$HeXv|YU z14AdM06ftA`cJj>A^#V{6(~Ssh6^A8vFmM^a=^Mhv5a~~dSj+4(HbUC+p-HvB}E{l z2n+&RQ4t6RZo}?<h_Q{Qv{t;hrBzkClEGKee|y*lo)Iy&x)DTVo#<YSSz_R!7}Wut zLO?16Dl8y`5d~C-9j31C@iB-O1s!Jjy#n|mDpHH6f5pPg6n}I3loXHBr`|oL1}LgI z$8CN}Z>lOo9vx_@{+Ksigj}>8owQ1xsPYhw*r)`_1a&1M9J)u>)l?2DRYIy~KEJiv zfBnyAIyg&jk_Xf(NpUA*vG3vfzr(lT_`BnaTAgV<)gr1Xf~Y|d1Y{yGSh7S#g1}e? z%iKGK5`I%;$|6de0kWy(kTryuB!+p92fX`le@`F6(Ivh=GxFPx1oL*KmUl_l<oh#o z6yLpy;|x6UCj?Q>8r0|YH!L^x7cAN?e@-kJqgEp#k((!X2Bj$*%+sFLd9-d=_Aa`d zK920)M~6|!ave$lKth<n5rQD813=LOzWqUfU|6RzpwBU^lT(nVV>eR9j{Qp;TzgqM z%tneR%(HTh78s2*SZJdpaDKk)sA^F~l>4oX3$Pn<Q?WFbl{e}BezIBAVAYzJEOBDx zlLju2Mb<ctT-9g6+4jRxy-3P^QoFmKcSDO#4&~9YMDB7IaTzloeUsG!WPftajPO>L zCJrs5d4o~4;%bN0`(FQVc8|kmFU|C?S$KM@$vGdE!EwQQ?afJeuQ!#etmc8ZR|EC} zS=~r&c?Y6`)EcjF)RBzL3!vica*WMG*Up6W?V^oCgQ3T1d*BT7sOzu2Is#(dbr>*a zWN3_vuvLJdimEIHQB@U+s((EZh<~wAJ-(poh4?$EN9q?*TtUHXxB=W|v-H}UX;oyQ zX{xG~SL&Gq9l4AK5i{;KfVDLiNqSzw+!R>1EofK@MGzS<fteT#Inu}&2>O{Zp%9T2 z0UHJtW*gEbri@mlu_@So)tr}Stz;Zw3klZHvc_Rd1t+y@@F`WyG=Dt^5!BD}c-!_c z^s~~}<GuDzJigBcdNit9N^dPMGqAndG9*qL!Tyl|PT^!VM+jGrI)t9D1~5cNWrSBi zOVbijDN2w(lu;A6_6x}`B!_h>dVMooF-%Mp5d{_~pbm~xN58}8wZ^G`u4{*4FowYh zL!9X_2-&9t@jVvG7?ZaI4}VZXR2K-<DUt1TuarVXzRhVdg9I=(IGBPaZcJF*n;J^7 zVv7`2UR}K{vhgAzcouH-V8z;{G-S?364<b3;^vh$aKK%$_!Oos%^NN#p4Lb67f`az z<G<swl~VK<Ln3CwFA5lBL@RRuCL$ws&}DQ}LP$v=5k(;Lyu$~3+JDMENkc@Fe0=Yp z+4JEWDl$)&E8lps2%tr`&+`ZGI4q<Gx&QzX3<4n(INB@3;dNX)-Bn5bSh1O&WtubR zAF9q9EtF##uEwyBE%mD|3*qvychzT|#Z2jyXz3W(y)DIB3%2_s4F5OcYHY3<ZeVV& zYG9lq`J1p_WJ<+2Mt}IzD^*3e;aTey8K%xrjq;3*jN2`gXxcD~RGYFX#7TS#x@St{ zscT~xnEkgA==ivI-YFyx#DK}CyC(gD`=^F#NtlQmT`fw5P%vVIIv5ymP9R~-OQeDK z{2o7}#2xM48L4#Y*E8lK(*G5To{qWGCn)E5+N>ROv(fdOeqv4|k|PA!{|(seuL&oA zk7if!&4Sf2C8@>H2TU4e;p|QN|IRZuo?U;Pjr?1ja8rHtf3mCU={ioz;BvN=7JbUd z>bAm&6i7-t(h^Ds4EyR}4`N(LKrR}A@R?pG%@v5^lcoki3aPH|YIEN^c>AT3@dg-w z-B9T(7Ta~rJMdm%;Db`$9*#}vMhMt!RgHd2GS+wOO&t5}hRy_*m_#^fvCoz`7bFCr zPAHMeYTQX!K>$)9<JbeEN>5m%;W}e2F~d)5**#8E)ohNqo~mN0*y9mF1r;1uDwrpZ zVKkJ?t*H6}9w;kNwV+$2Y7Z=fbw^Wwy=P@?^s9FH`EH5alDT(r%dZZ9Bcsy<o6;M) zJP>aEKFlI^X6or6<cd*Vdpf79hBZAOokWzQOY7v`Gj4bKX7KiK+xb4fmvDOeo174H z+lmZHmz4CvCzX!oy-zw<max~y;m2QZinp+tep$bK+O8fxTYQ7Dj@&#J;oUxe`l(4p zQc)AHd!T{ta0K^*&EV8B$55GsZL01XbGL(Ctl6{7UAPm#brl+g6-!d9(j+|f`d$)< z$ZkWsodO>$=l=Ola^E%l;SV7AK*y0Z3xv|RqahA5hA{l!-zP}a{uGUjDfHv`cn$~j zz1QWHs?}?7M#fH1msaWF`dA}>jBXNRNM`*OM<`Fxnr712rHT8VTu0C1$;@D;ys1rI zsr1xMdH#LAzhB;Z<83+;WG(KI`WQ-7h6VT3FZ9<lYI{Z!k-g2Fe_KV;K*D)vYc7p) ze2_1gup6x}7GqhkXzgw$iYn=uGfSxWGg6-!QmRAiy7x(9h&^p0y~O(!e4Y%Xc+m*K zj99KB1q8?;kVt0+dXpOo9Df3Tiw=0nIjTU~DHc*rMr*HiNObLW-7usp(!t=Ui*HA1 zF?5GVl;m1cRJEYNIDf3kY00L{&l^48^%?OV2RB&SSf{<S42q#~nuZHlF)0ekFkLRi zf?!~X*s{u?V!-&0*T1K4&3#P-84+QTq`Zn-SenAH)X=~N@ZjI##eXcQzy2p*dkCFV zuqS(LN5*<Lj`FE0l|sr%u_U`RyR~(Vixp(GDv3&xXrzT&<GnG-II#QKeb)&2abb(B z?@>liIG-crorJMTQiZA^@@;v@a81b%CC3Dk>g<mg?IS+kA$FH#Azyz1(gspRO|Jc^ z3PTi;t>oNU*6$nfl7D^`5<T;Y+L5wJ4?bNWo=u8-o+=koUQ$XY(6MOtryqX_J^rPm zlWb{&?n+3c_|=#@iDXkC8ST<UzjtH9L4+|$Kce@OW)IhS3h!94h0?>!W@1EAVc|ff z0+f=4B$QGv`gq0JBrEn&QGb4k_#&s0elk-edy(o(yPo8$JAZyXUoV#EFkj)Uhx3hz zCl^%p&a#gkscG|UCUc3CUZUios`n!5^cb#5N+%azRaI6)F_zuQwY?pxd`nyK3U&5( zA)-bH7bywkkivROV+qmM4m`*6_vH0_vKX^=EG~xeZ*bySE56*^+?5-NKIeCIQYgd0 zu5?h-u$3O9kAF#fb}VM%IhgyLMRsjJWjdB*#$NV5Ni8FTiW*Ym5}5CkkuL2W#~$YK zjFGx&$M&mhZvyPtcXe6SBQ*xe%A*lw7BNd$mr~^=$#s`X57m1WB)lYU6IZ3>u$y@# zog*0wnlVhO5~(68g{W0vl_ttuYZ*auFpL&P2_=Rih<}$+WLQR4NV7~VxUOj@MJH63 z?*2>2+MTgR^d9u?KN%^5d%fW6VAr~Ei8iQ<aNm|A79e*|3=P-}woD|HMLG-=dmLTx zcIA=TqjT4cN>Mhw9Gjv~vlHo(De!#}9G^9HJT?y0hS{n|ZgMP?^LswKBV*Ad$sZbD zj3DtxdVh+MMMR}8J`LXw^=x{TBQ4QVp(RNy=Hj@(Qc6YyQjo&d*=Yv3V7?5I|E1Jp zV;Kylh|+q;7#}xMN$nhb@v@(+Jw;M1Rc9iYTNUqXNol?5(j;^_bA-mDdOlj>&*Zy4 zYLZEZD7ME)L22#9lfAy17hNz}K8rJ8PXc00>VG`Uvd<M=`FYu}R;`%+D{Y2NwIOkB z1=T4YH|*Ruq@9k}n}I!SowSl}WGp)rGTAVkCe%(j5iF84jlSQBhC^Ls7%sF-B&WV^ za+P9HLwP5ChVK`yU9rmZmP}T#)fW~~sF}#-Z!Kgt<0ew1qNLqqmMT!Dn{S2*HIg-I zEq^3lY%Lr7t#w8%TakdGSxPD!p=DT>TN)QiQ53-qRv$t&=V5P_ts<!v-l9`ADJZhb zDMcQ{nMrljr75}QnL<g^-7Mpl@xbCbFiWJQlrf`{ODI^DQq8Erq6$|+POV7z6pD%! zhDo-JFuF-`gYatC+op;qyx>o7SDNf?Jb#JV*kLElgZc?dQfVHCt<X&-t;r`WB7f|A zd=Z+2>rzUVB-bO<?t@o)3o=vEN1HiH;%Ld%!X&ewA$G#c4|aBafRD|QDv^~T9SVgH z0YlNTa^nPbi`^HAEbe563b@UgAn2T+-8$-^QXlOl<;qD&J$xV3vm`(GW8Nqy{|k$` MBAh5lZ<K@zfYG8;PXGV_ diff --git a/files/c/bonuses/05-06.tar.gz b/files/c/bonuses/05-06.tar.gz index dd9c5c4a8f2e3bf866c8f75cc537a2f390ef87cc..a815cc7c65ce45cd01c6c6cf0bb707cf2b56eb6b 100644 GIT binary patch delta 3484 zcmV;N4P)}38=xD1ABzY80000000Zq?>2})463%ZwMGwi$;KYu>c%3X~WLd$?u-FL4 z@twKDX`}{}2#IL1<2%RibKm2>*sbc;hLDIM&N3&eoCwohUHw&eZQVd+ceAp$CAa81 z)-+tted>Mi9^5lkfcAEF@U^<XTjlSo`}_PA|J>Q#djOArT6L#Z-QTV}s8nlvJCz5d za^FC*$ag*J5c0tBEsHt%e7dc@Th#v#C2ayb-=7$kG4UsThrRa=hw0_lN>^=k+NAch zvc9(VkeoX9Tc&wLv#p^q@*V0KwzW1Dt!0;i0P0lGmNo~r<-41M$#i|qWnNkBoOfkK zCD8D6%%7Tn=uqA$@_A1>YAS>?!z{`NruiNnm~4&edY?sa%fLY%{T;}<B@=2`C@00` zG1u#-SfLN*4SR49Oe6<tFi>bRHB9D^YwB2rHFDRCAt}o(>35|s_vKFOw9!<${l+nA zNj>=l6p>A8jYy{plVq^n61CS=&d#MKskhJ9*9dukNPHIr6Nim_6HJYd-yqU-YBC|q zc1T^8Ijib9wly+ui0h9=fSKvP5R0L5Wb=YKj_m*&u3k9xtEN;}Nh!v{8*a&_>*+5> zmS3&HKx&#e{DbFEvN>fswLC*Bt*<fDWvK4QG-;`?<)kXF4cDh8fc165Ci0Uf&<9>L zVqQOgSkJ!BhG0`@B`%1M_xhHcb{nsyo<jO^x7Sypy{q)wo&K?M+ErxeSfADK&6`li zttoRRhU*$vY?EwV?2s+x#N}#Ox-l%n#=^7JXxA@L#43pT=c>}@68chGZS>XNaijC1 z8qe^xz4iWy`|K9?jL$d6!uVgU*7no!f4j1Oy;H>hFF_9tOEZ0)krEHkC5Vn;%X7`U znX;$jmx(5bDg)a#=Ne68kZyAzQefNKL+*KuoVUTfj>}inStsT4m2K$oitoU4w;n%U zBaca!dA?&osJvp1%XAV*fiCQQ<y#v1FZ3guODLJzhUG!@_H5#fS$g0GxgHzZn2f1^ zO9qTtL~|I0n2N%Njy>UH3~TCpWJ(=6VIb-$X$%wXLJ%=r(mroCF;q|3#CC2VarmZA zEZYOgC=X(+t)cJ@GEC#dp`jAL@|hqZeeh<c;C)U?e}_#S<}%CU`IgwjnIRhp2W4*% zLtqZja%?D2zzfwz2wQ8~80`IVFhv=E61od%owp&T^|ilw@Z5S#dY$7A4#2m;-f@m+ zyd{8&(?46gjdt+Yfn%^Ck;hDX=OV0k>;_lwikb!o5H0|=s{*b!rXKS6s4~TEh0er! zxWsdOwvm?hj0`CxFk*w|&b8q(uAYl)r4h7JPzzA>Va$x0@P4tD$S|WMpC_q*Wn_s% z*a2o~&dt;lnlLhg{A7`-NzpQ4lLt41Lax6F`(GO)X8rHKSbG>#K%O!T)bKR6Y8vio zWD21iWEAFoZ9sm9ZN~NEraccTg7cL0g0ZlSkxW>3gh?>Fo7|i=>atD4f=(B5<`pB? zwxeVD=fWugrGhQm78EMfoQ~;#fWewmlP@sU0J{4$ZR>Z^DPA>T6Mhva!UE$7b_AKB z_=C|dBB6k6dV_yqhgerGCK`?U&8$9Gk~2nb6nas(cCf$KV2<cSuCHk@*U&eUPIQIB zn8W(Ph_sn)kmcMfHoQCg+l(dZEW;8LtMU0wF^aScY%vD(Z5v}^;Ua5)3|4p<Ym99= z8oZ1#hI@K<V+=-oZDSl59tP#4H&IQ4jpOSp^7YV$ta*(MaFj%yenBy46w&4pI<Wm< z2NLcK2BRBShK_$)V0I=PV|H*(mpmcjk9EFBsy}eyR15oR!V=)5oXHToX0o9tMpN*D zSR&%PwxKF89LPtOj?5^34HA#faI_1Igi$bg<l&>;Yj7^G432+j`;M3?NWNmv0roY$ zL3We|LWQRw92%|I8#r9raM%$^|Jv}zL2-k}UR*4pUsgq--Yu}^MAeykio(J38hk3m zAJrC6jR+XCPJ)797j<6~%I0ODJA_*ll{Ru8mV9J^Xkovw0GUyL_daTvOfydS;U+P7 zy&|eaUPpz_K5z6q2nGU|*|Bu=$q79xY*}mz;dY@w*s)alh!LzFlyIA7<56lK?|r|P ztj3O7r-|gpT{j3txTOhUFc5foe0px1FY%SrbJKV!mesMt=rMb6n5jV$X9H1yug^=O znz)7gsEoP#BPA?<VoZ9=I?BT}FhH7Z1);_DO|E8q7<s-W)cg)=(@%?<E7zj2?QNjE z<*U$iOq@*rsg>wrH%v$qZWu;idpfnj26*_z=6KD%n^N`@^T(>C>tfrzdwu|u{YbsK zbi!D|cE9%R+t;V~{&)QO=2(3Hi~r~Df2-Bv{`X7JLt|)v>1;^);L!b(=&m++TinZj zGxxI3ip$61^6?WdA9HM|xHc@V4VSq#%rT?l!mqgS`$`vnAF;^d?(Xy5-Q7=JQe49o z*KptGHQYVbWW@zqae=nP1sYi0L;j`4;tK5hCUO5KzEAzx=2-mw|4OyGlfM6}?(P-$ ze_w*)?|(vnthyP((I)jJP}kE9n}3fJA{qbUz4+>8a0MSk!AfzP{?8=g|MAZwKFb`7 z@BerAcGLb}tLzp2|3zr|?|<LrtKRZ?uiugy?U<{?e}@C&F?fid<78cR^F!Ngm2CSS zw1x3z=9XM1FQNk+ABlAh|6p)SeD@d2DXg8awBj9qlBz1*UO5{7!wcRQj>8Zq4q+e} z^wK8Nh!+mh0*Uw}5q~!mu!4}vIuZDgj+LYHdcURC%O&N*lxh4|JU_Y{WB>=!k?rA| zKdn+Ia3lI$ArO7Lmc*I|gS^0L#fYK9SUDjDB=i)uSMDnKLoOv;JoWsDH%mwIvG|Ql z40>jNOG?NA087X6kyMIcC1o5*$C504L`=ZMCE*{^QMR!6@7>{zEFVkK@!7>$v)ME? zjZ*jhV(EFKaJn;9l4Kd$n$U$DvV8eUJv+;upW8rcu31wNEV$-@z03<yTBp6sw3N_Z z1DlGlhd5?tLZ&|||HfH<{<HFPf+g5sWXPO<yDPPiJFUgbHD;!1<JxqZP30sBV3u#f zKQco`891d@KBqRzDd%%KY?f8&=JVp~jW>pvg6#En<D_?qhMYeF$`&(bZ#JY?`Mk|e z6Z!BZm#4bDUpwTFpZ@ys(WA%ZG7c%1A3u8Z<6l1=*7mon{1F?|Z8ES83@<;ZrA}ji zVF+-I|FFJCOlFO|ap<op-uUL?#mrSw82Vy+i%*+^Gdv+i62gFoNAhwow*kzRXYleo zfB}C$d9pt55|NZY3~sAJ2Y54Y(-Dw>l|zj=gGk4%J7P`7v?Sm#s2w$W>40{kG@G6N zMW@@G3rJb39smYJ<Zn{>a8TKR=b^@bpSy|Y9zLs8d=9j@WpJ3_(K%0r+@_2Pji7Xb zE{8W1rv5`B-dDFXowy}|7V-)T9PV%^2iXc7(rj>%pNFvaGEvDZqoS*z((Z<;tE>tu z*gb6(aB&z5(d}oa0!X`;y^}_}zRJ3BXahZlDIgEF`E$tIxltYp!`<gkmJNA-CYnYD zSjmL_N`m0I8s=eQIV*|fyaU2GdM{p72-&MRH}{PLj^JP?8-d6P;q0}{+3QmGNUAF< zAgJ+utMMJHaWpl)DmCsOi+igaH|6bB@!U;32mE;`p4qx(=Ca5R4l;EW;q+Bw6+@`z z#nNneVNnty+RZLDFO?PH3}VlJIn=Tt3~pHF?$6}(@H3vpH~P89mz)GYpV#L;OX71Z z&hT>|;qx(bxjvn}6NjHfcPuz{Hu}<~f@k~FDRatE$&gVqBz24$lZ8ZBGrVrpmA2BI zI|(f)9A>w@B-^c1zsI^*38vC|={NO_)F7v7qus^#OQrYJG#CtBlo?ll;a#bBQ9mgy zm!I>*#wGj7VzD_1HcxJ%z`sx$7soxhw0v?*3CDD#qQuz~!Ediy^4aCd+2v(v*-Vy) zK5>BfT{^pv)Os%Zj4YIrYTHxSVBsMHUj8LZr6to!8mNJCvX3R1txE>>%;}=@Vyku5 z>y?&^&6yHKq%GC!zm;--1MOfkT_VQjosjx0xOkZz8-<2M|I#O~#K*gL2+qk5=)T>! zJil;viqZ4ynSHjqbDTbEoo0sUyQKaM9l|nzvW@u3OM-)4@tiLS!2VJWkY!aR4lCCw z?pCZULd?s*gY9g5k!y0GnfP8cpeH*KWnUI83-B<mtLZRNWAk=@nge`9odF&3DBw^_ zw<me<1;*U$)Kq%vCn|7I6F@m=UbP-%6o?4gWgM`{JU0(6;(@-MOt547`ctv;!=SjQ zpc!XVL}_^3X6@@-i|t(GrXi?h-nsW<5rc#k90=IifT{adH{ViMe@hWLhmeOIDzx9# zTyJZ4)Kf`TKG`CF^n@*J$5A4P8<n(TL5qkaJ8^GD3zu*}6YWB#7Pru(WNncXP1u;* zqiv0t(_<gJ-k5qP)NR}9lxi&BNIUI1L~-R!uLs57iKK?>hLIwBW$6w4`_yHv#OjH^ z1LcQ_rTM0LvbW*n9INLNU!q0-^0q^|{K!A_)?}6RwLdEXER$^wCX;^+2My@kq5lK_ K5U!vAcmM$E6!{MT delta 3481 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 H0C)fZ@<iG6 diff --git a/files/c/bonuses/08.tar.bz2 b/files/c/bonuses/08.tar.bz2 index 96beb2c1825b6bb2967d606e0635c6da9e01f28f..6b9cec15b478cb0cc4d940f770b4bbfaf3db3b94 100644 GIT binary patch delta 73144 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%0AQQzxTGVk@WjrM*IWY_IH&_>&L(%0D0sRn;Pv&|m`y2Yz0PB2G@ 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 K6eJw-hT1@jHK+Cf delta 73096 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�#V&EP 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%0A3PMuOwi-rO#YK0D{H2URew#A_dVehpG(#FlUwo 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 O_`8xR!i0m@R<a<^=kB}! diff --git a/files/c/bonuses/08.tar.gz b/files/c/bonuses/08.tar.gz index db2ef5ff71c346c9a55b9564d0f4940f187e10b5..93b72b992f6b7bd7942c436524aab63aade8c34f 100644 GIT binary patch delta 74740 zcmXtfcT^KwAML$*uh;-9NEa2U(xg`fQ2_zz9i&MUkWOfG6#=D1rAjCwy@T|YNEZ+S z1PBlULTDjC2muljl6ijbt@qEYvu2&M=geMf&YZn}`@Anb6JL7fqa2XY@%&$O%$-%j z*?4rrUQc32)|&lTKnB_SM1NiFe#7~j<-YZTgd@xR>N9UDex(W{>7Rn>8!h~5+yEw8 z-oDy0f}lvqkEEh^_Gkw<C=MV-9u4Il5LNS|GMGHT3H2y9f8mWE}i58Y_!XaNG~ zV_i@`fR?&`#C{3LxKKOlrS70GYLo#x?zD$9qMjrUwGe6a{7vrwZeQjyK1f3yo5L@O z0T!NR?o1r|9p&?>Meet@wS>|Kn!JG-HG4^BL2ean$T?a~eNJMKfOn4GkpPcq6|5{b zr2N2>^~C<jhIW6S>6%&rwPV^`3?pXm(`cl6ZvM6bkbU^w$1)-{sE?tz<J!QF$ZA3l zJb4oDLqQS_PsbQ7&PExjOwN$_(>^vWyOg@4tUF#gKr_jEr0FKSe;}i~kPZ$qmt%Ta zjQG`~sME}b-uQe)=&mNPS9z(ArNLhbo9aFa(u^`Yck*E|8^|N@h(LFgchq3g2AWEa z?>4+_Nch{XSr}&hR2@$)TxZVBRgDhXNWi27)SmjOTS;+}Q|BP5=)cv@G&rQdVD710 zr$Wv)jiB&e@=?>NnWtXxN@0dt6uouniQeGI+%av<Il9(5{+k%*MuhuD>ebWIfBU39 zIxWo0y?<iJg!*NIwZ9MDQOB;$%3d%;P8AY4-<6pff100lX~Cn$5opTdj|Jgvsozga z0dAPSb`Pnj{a2m5`6Ym&V;=}%d}rP1pyqYQYu$f6(diL*4#gi^cu{i!LHbJfBruLg zM?$)+$1Ii8WLz=J3mR@GXkCx*zdF7ywkz09ogp~2mK~1l!3mD<URsikBatEsIWD49 z*`g+B`)zFNkx{vIAfa&mI2D=ShwB4?jI+rCourXvKN|bG<HmEv767u7zjOtQgVfD? z^Glh0%tq-X{m{8@kC2KZ3or3^5kJ%itR(th1=Qbv;r@5cB*a;I5Nkv(jSk0sCY&4w za98{npt=r2aTZ_&PT8R*M0AeBzOx~s{TD%8l%-?JwVLQAWmVg%p4bhKFo18Y#kb|N z6@-Y}UB&oy1mAm^Z~!}!MudvH70nJIz#4o(<kn{oh#cD&eAxZ`z5)Ms0fRDLBdymh z#6>2|vkC@XF^8f@ja41{Hq{({y-Y-xKfJV<>(JtIl#^uXqc-n#{~QG}%^;2KK~cw* zBndmxOL+~?j+O;J_*xjCmfK%ra~2a6-E3VNG2V5!XuHT=LG6z4vxmjK3+0wP2tN@# zxOlhlbGOEMFwFe+{iC=Q0T|*U3)2t0*HwQ^SjX`gFe4&!W1lr?z?rC8myf{2iC^Wq zlxeH)Kp-QSoO%3f%@HvQ*;^0yC+kEstR^BrDRO?wO1&fF2sm2G?2vnk4&C?biE3YE zvNe#*Gr?XOC}5Fz%pQ<JX#|Oj$6=u-8;kBO)1W0O0rI<4aIPkrmbl)c$ta!8(MYl; z=2J>!9{Mp}&h|0!OVAZzOZOdD?f^P*zOa`%7L+z#uK{0eAZjcK2<}7_pCG1f=?}*) zJLIpOL<62o_S)PN5I-2IN!JYw^&?tP5dsR4n)@e?M4<W~U&f`4_Y^SI2;R#;Q2fIp z$V2RxGA>9_06J4@kX+c0U#8xXt8%`~5F8`r(ZHjfh>l|rrMeE(tOjqScu@vV!u6Tp z17$=GuIm`wHDrRTIHOfi9D>bY08_QVg=3(}p&5r_SK-)OWP)ATV}wx>=s4ls0U~m* zr5Md0u14YhTJ}>Ox^bCm8rjvs&}7_n`$3-puzzS_SZ;z#pTOFcCQWQrc45E7*oA%w z4L|1<IRER<YStJrN<KPx^-0(<1Gis;I%uAw>YP0Ka_9UULqHL?UoSTeOdHPlKktAG zMg`R#hhzJ`q|uH>RTy4WCa~~M(_nBEzv409DD!IVENP=_oy<EP_7UaJ92rvMEoapY zl~qr;Z@i4F3_1uHLtv9IYhmh<`s(0sOZ@1e9p-O6fu%&0Dqj2Wvk@jZr)h}AW^Jja zLunXXZ2N95petjywgl92G>p!Lce3Sk!vT2KhSd!L17u0%P~!kZ{kh7cgsO)AfHsfy z;~YH4>RCPG`&5}OzgmZG#+3_ry<xYRwAafOWYJ;&0B)|w9<0uxpAHox686A_+6!xd z9wNT7-;@4E52U1np~MAxSSWJ?rJBEB&UEZ2%s17Vyh$emL6T=IQNd!@A7gYNLzCpx zl3WArxjm2i$jb?(qpo}!sJI+~gvyd!Bkf&3i^M`w6|2w@YOU42sUXP%3N20bR2!cg zA$?CKSQwQSK2MPIXWdAAK8aLpuon3>KPS<Nu<sA3;tj4<K3hENpA(!rKq->-;dcLE zYP?wE?avKpPP{AZdR0=8ZEdJ9>UH&PB!{F(TCIEid5GMiL}}$+%LgOJVQJ@oA6ko? z^thMchF)?odG(f*?hBk>2&ST2ttGUrXL4P?E3p>X$TeJ26#Oj@@A+cc@cd~F%KdKY zsAn0c^EC;rr-V<YGCWM|*gWcWuFT}1JBdcAv9Htt0@S15GgDu;+f~Pn$C`wxFB0^2 z3-NcNnF3l@9Qte^*G|#A?yF+@=I@-yJ2<_sK@B-WX5x61=Dd&4q?Xjtfa{erqq-^e zVGD<Hiv!bCSMC@DI`Z-@$rG6xE4K80m4)<Cv2>!~kr8frINzC1CSPuOA9pWFkS`dW zCsq$c+Lj7x(0OJp`Hp`u<oo3x;0<Hn+Z1sFi-uYUNbT%%q^|dVKS}-^S0?1_qEm?3 zyrv1PPZA8$bd`oH@!<;@BE!1D*R=Wly4&sfW04!@J1!V!){N{_eRy$gC7|n~Zfo^r z&eX93^Nx$65QV6Tfr>-?$n(ETv$iH5RowRmQeCFrJ<V+z$w><Nj4VSwB29uHbH1R$ zk}62gJ>L72kdQk?2FVrS@bLhyK}0a(oMpR>k*RiZ1m$Z}+UJ>e$aN#Mgd$;WUG6TN zQ;>UI)UedwDYAuDruv9eTyWN1)Ft-SLaz76FqfX87D=J1j~eq3o-1Zbo*$a_Op{80 zO9;P`(&Z(o-Y=PgFVUp2VvCnQnKJ$Z2OQ1>51a3{Y(ZWQYaZN>-JV6%Pg5b!HlxC; z(WY1M_^_t)51~Q}FC(ux`-aOxD`&M~+b^!F{8)CaG{=A{oI1<j1ADmaUcW#7NO6bl z4Gq@MrCmTd-Q7(&k-jsVnnRosx))ajWcg7QQI@zH=iCJ+N>9D~crq#9EUNkLZHQVc z&zho8Y*$uno+H&t)UbU;g;Ohv&0w(B?Ip1FIwQ+do20pw_~Y|ABhH4ff&$kvVf^sI zHKsS(E8$*o2>h@<Y}YIP;ecppllWisDmy8e>$=4U61vq0Tjjr}f=tEVe}u%#14d%_ z_S2<_gb~n+type6^DqDY$(x`0p-@`3<lUL+_6wBCqqU$bSIzEiIseygYvH%@I|JSB zJcUJOoz3{ObGgygG|pd~lyi0C74LbdRa=}(yk_6UiA=|1hvLm-T~`}InGLbeE<>-e z1a#x1!r$FX*ZQTmHfUF$b|s`)7vO3-DPOOOEb(vs&YNVG*2Rr{shr;Ir}drdP~L2q z{g{JorBEL&<Lr`HSh+qDj7}2J;A8)|j};lf9Vo4iWsRlu)(7@@K_4>^T0T}t4h*kg z_3F{1_Mee;mIWf&P?u8zt7B;^D;?hL!+&q5hE#NDyWLpi7^yaf1dfT616G@fiTF<5 zx+3VuPh$!rqrczT7Z%vLXNKwdd;;f%k#<pyu!q^d);!?9xHr>m0?yT;)vQunk~QY^ zX6p^Bn)bi`x9j_(Y_TEIpnkp<qG8`-s8G3_I01_jNO5+OfgK4k{X4de)OV!hiWh72 z#B^)C!_rob#f!3n&cyCm0G|XJY+ikr6CNQ|dWr~e__LTf{_t&2%O7EmdsK5tPC1q* ze+;DmrZP$`>w_Y)#A*WWy9CU8Rj0k4LJ73MQt_?c@kLo5uG=eVRTb##EGkZ!n41%J zBJZ0lr`xWyMcLWrtJWi?XHs+?`CeF~&o^~>cRTI}I*PBa2PRM-0y`aZ758Y)iv3e^ zioWf12k)s?J2?wXsXb2UCDhI*Z#CnvvGTk_a;CqlhYjp(TM4nEDST933w2Jf%6GaI zE8H_@I<U>N-!{sPX?udQx`Td}>Jox-%X{tKa;x5TQv<uUQe(s}9EB6+Eg|0NI~`oT zXQoopQqpL}X2Y`ppq;N+O$QWPtQ5ELI9H3Wd5uuJCCtu^QeW}Wod|o(;GciQLeS;6 zyxh=&Dt2K5H@DVzdl|Fs?4p5WXYTv!Vs;b}hNNrr(JQ{)#Sts+Bn&)?Uuw<1Hs@ua z@D@x176ge%lWIKr6kz>@&Q+N6F>rW00iTuS903_O)AIwwjbXl~6=(HjW=fF_qub^S zRoS;8^MfW!A;@wuiY#p%FsNv|lk%@^wIoK--gA0dyIAv@EKw}Oy<Rj}j&A|y6n@X3 z#s-psv7gU@9a;>1*4un-3|ph>c;%&kgOBhQLwJe9zg?Tww`GZCX6IzCu5FvOZx;r< zX-gh&+5`fziel>M9QeL%fLgM?ej~KM=3e%NZ`tJow#B+jX5u~xyQXa;E!eNSzQE{w z`G4=-o-B=y&bf59&m^l&-Ka1qHE8Rx!B5XvRqJ>BvN_)w-ql1|P)r`Qf1<_=H+7b^ zEEheO@ywdLqp-$9&+P?zm+O#qbbhz8$)jdWUk8A3hZIjJ>V>vezTdx|?!l!n-JZ}P z)!gy6OM$k3Q(M9*P_;?iv^~V#YhcPjo5wUV^O-59rqG)#lR(Ehq$_C=on2LXKH$0| z2B=@bV;svXDnoBRemrDtZ=e81C1ls!k(w|k`m_(r>dE{xFRvTA*X@+P(DH2LYt#qy zY&|eECz0MF^RuZQbNI;{r*<cC3cu)i)W?%O(#Q)I`l{V->F#;cArhV5V4(~ddrY#l zHP|rd`h*vwHAg?YD-#uR-TT#-jc-Enl`m5zhrQ4R&%SmRFHyptm(K)5ShYoWEmmv~ zxJ`Z4#}{|DOJ`5FP_*{EjJ~n;trc{IzpnvUgLZ5_z!pB8Kkj1f57c#&fgF<L7P(YJ z@2$h%RozQ{s3`3Cu-ryJZu2d6iKO73C&|y!R;%AHiYh6}AT-NnWN<gMUAIO-s`B)3 zH6u!eCTA`hUG{^tvEyGWXLrQCHY_cCS&2{O{#+c-N%r#@4T7jO#d&>lB*f2ZRCNJ8 z#*WV^m(68$L(@!d^gUSfe{&-?${<Jl>t}zhz61aHO!GE7LPFa^^-qB#A&l`R0k6P& ztO+59=9;TE6>r09U3fskVTgWB<BaLnQ*4Zl{i;o^AJ2f(v|a0J4h*Wkbw=F;SGF)E zS7moUJd~4MU2{&_%)OXm+y1dFffo%--eeV7UqSTQ(+n~ZmgN|mGdG+eiV5-Csh;Xy zOYb(%2<xNNlDmTbeLCt}m?O5Y<7>VvlsR)Y;e&W7%0?x`sq)@Zn5~ywAD=yzk@BH+ zMx$v1MJWiJuzc*0(u>i0UJ`{YV@oXgXEHQhKNbJ^l+tx!8TiT|UG`gL(&QfSl#6~Y zIKWF{{c)(+gOS`1p||Akno^3PGdUrF?g;&hu;7#dE9(r*!p3{K#|IuAgn6OK-0Z5= zVT~=5)uOa{0cp!$j4pO`c)h~zn4Ac<XBwXLBq38a#aet}FIZJF_TXj~PUUyn#uuDX zF+L!~N$Fl_-by@qRco}QZ6N`em}T*L{uHYBAur-12KP5Uyra8sAHJWDH|{dBKefd@ z<fayCa=xJEujJeJdS9c5Ta&11i;p~<Poit(Ugcf*Y!{R=d~LYS=;LJXjJ2uLtobi{ z7qRBf0JdQrPfLjzTBm?t-s*XkqUPP*^~Vo<d)RKtu;1_JpubM5tKOkK1WFqP!0iA4 z7|0o=&ww)~abZjQ()yjkZR5iRxaFXyNndKdRmIwmDwZBwpe@YdQpGeFe^*pc`1k<q zpvl?yIOxqNIil^ULHE{UixD%+?ea|5>sL&(lYWVMn(@5F1nM=N@J-JZs|8q<)bF?I zCMC>|rL6f@+*QOwRb!_CX-PVB_r=%FYrpMRgXJCggQ^=e+BS!mlgkV8Uk}GC+g2&~ zpAO1#+`3|~S6lw7JeMIk$I5-J6g9aaNfD>KX@B!MJWc8Gy#0?CDdo>Tg#>$vWqDWL zx&9ri8+d3NXlfaMBwFtpH%a3Oy*(DZFEtQcWh1%6JMBw)A!J%%01W>X(4MrM<Mrj4 z*!?kxNA3FOd1lqaUtK3RV&tJdtRd4A?_`~q+&d?e#Cj*2B6##Rn+*d>UKER!@fY#L zpT#S{tL;}$Ib}~qi(UxOnRKg<tlE1Ml&>dsGgB_=v>H?)H1Mt?B^jLOy78-sEnw-T z^!pjbGc9^u*M3&NTcQ9f0oM*#zfH|A<$lav|MCmoE&EECeISA}Mk7iS&!5Pgyz{}j za$(zso_D0|Aq~MY%uu*SM{GvNF6V{T<yna5t+c=2s600&JNRB*_kVNv)mM!To#t!C z-=nvoY-?ylPV@8Wn)<Zt+xX4wQIoX*n{`~I-ofF-m+W&<q#L~eW;zEaM;({y+APtJ zD=cq9We&bIJyXLX0_a&TvR9<P6*J0Uzdu{TbC&4)Qfy`9`CyrC!AF(_la@B5ifFFw z+oKe8?4hF!Yh(nodnUR#u+yCZ=62+7*MNx7LFON!>mzju&zaB}`tBaMF`0RhQc7<B z2$D;n>@<;&6kr!@>*!#TQ=!B;FjT0P$T)%SwPcxW(~eQm_EjJ!EHzUgh)$%;ff2+S z24K1WodFIq{va4}ECcM0X~i7^MZDDAKbjk<kq*|b23s;gW5i+;NYIu)1%JXsgc9!` zgJKT(L!jms+IAm^2ybS-i209*0U;Zx3jke{7<KaD1h_6m*W3XcK{7DU$Y1NVY$pU} z#q2N|DX2xG2+jZ3KxzgN-Sd5Sm?smv%oAiY>Ap@~b#8NrL-&j!Oa&~(PJPikhf(ms zH2R>L4gP;)l)b|zQ0d6mvc&#Nh}(SnalxM})KjyBk#*z(Fw46Zj~GUlbcSEY5=b2y z%!e?+^v+%CsaAnQf)*2y8Ldt2J$7cuM&COTu)7vXIb6z*q7AA4@1?$jQ2JpW!%@Ih zfJ&zT#Ap!b9=Z*}v(W<IK~>=^sz1OqN6vka1$%5fMq2!1Px#WoG4&-dOsF=r5!9IF z0De;zLDdcl*Z|!D+p;a+Zy`0hyg7eE4}%54{Ja#T#x_n9j-*2O!2}0Nv?Kw{a`Zc9 z62+sKOQp*jxhDYSKK&2v<_PU}dsg^KTXgq9;Yk!S#;>eq$uD=qh0yZ2^thbC^zKG+ zhPK3f7~Jo|LYU2wi9tYi?QkaWVQ{EOEm(DyJe$X6lnTGn0orWsir15QR{q%!`MEFH zE-q@Bg&0-wYaL$tz<`8S@bY05Z8mz-k)the){cLq3@c~U?G9NhJ2hz@Hg_i{CF^A4 zbC<r;r{_h7y~=QRFpL}RVZU;JO8BQ{YBHDIDE&uZn0&5XFi6y5A^=7?X-OQCUaAY$ z$1EQ{3Ag`a!hD5-CmKkwGZaGxYF7{AlfZ!@=L3on{V;<DLK!E>j(iW$acG3B2`tpM zsDTtO3>dm=cLVIGWB@|7v>!nK4=DK$fk=$y&VF6)p!4s&-iv48p(n&eLk2+kV-n2( z4nqXL5fQ+S;c%=XX8E}Cj5ZMbx}sBtU7M9-pO}tNGr(D6{a1cCYfgnCQYv?NeH!@l zyizSQi1JAKL_?!clnfEDjJr(Uvli`NSt5HZScnkn7JgsDqwwmCCckFIyQ^0ZP6t<F zdz(@FFUr(ht>BzO#C}8EXItA0az5c9&cl-e6usG*=oi2DacQ3+U}+5kA(RygxX@P3 zM0`ebI{q=4Uo#ey*IB}&<a7NN`$ir92nD=n$H`m;L@v*7pg~|W@-V!{J|YsFU^eYz z(#oFTH7ku%!OI|JElk-<flPG?Z1^&U)Vf@!<hw!~6kL+TN!Ap;Y)avout3-F0Vi0T zun{{y|5Pt?E=c2xPs;qdlqI1M?@U~CbgTrj$I!=BXhaxwI+|>}XyK2`#PX~tXG2Zi z*KFjIZ)<DGkUK)AI@e4|tV9(rMugJuL(4?`#901*u>(}oP%;lkX2h@{`8A@LdqcSD z_Z`uN=lqmy<O!MnY#XEPP~hu&Seug1zMzTSJr^fMb|F`hMd$5U)0z@tGF3W0>{F`0 z2xX;EX+uV>@UEE*-3acnl0n*AzH~T<vgQFWaVF{-d&Tbx|GB-Je?E5SkG-ls;V}_g z8+A4R`L$Cw@-JSdyv$XUnr{u3Att9l-#s(R`QzQXk!Wi{``<l#jn66+NLo$*&L2o^ z<9-S>XO)bcM@0EAzVj-BaEx&X{LQTq%u#cww3z$)^R=!KYUB5#!&fSPy{ZEI6fg;W ztyei=f`g(n5XkS7yQ|4uTWZ($)|Ovd@aw5JD)sjcR&rc;d!wh$7e>&eOSJ$YF0a#g z--l&ccM_v2J{UoEYKoz4pVj>2++ouruh&xl<KY4-Npe#NK`y>Q;SyhmzR_=_=>Cyc z9PagVGOX7FTR)bP<en&^bk9(h59J(;Z6^Z~lJ^2VIBK0I)x0th7Zn3S@^)Wd^rS^9 zk%#W`-dadMDnk^p;N~QDN&4uB&M!ujZLq=+d22(*cP^zLje3&9FSnQ?&LJS`_VH87 zY`Q?uWsSyXx`GT}6KFb+pIFJv5<Tui74?YtzOhTm+z{oM^wS<GiY(bCZJj#S$;rH! zd99)~?1`!ESNpu=OhO~0lXZd*oZ;sy(T-n{k35=Vl56wTec^53G@7p3-(R+lzHy*I zU!^{KgHP3J7bi-IMH4@NTZh|Rs$O|w@d7q<$F;-w{5Y-_K@;N>j+W*ZEXvC*G+epQ z@2o772rc9*NzTMs3Sygg)c!sBTx5$>ol_y+JP>N7<ZA*)dw%d}I3V45!5>D2HOz(O zO?q5>o>ZNM)glL_r>@Z4QYpOl=Mc}1o#i!r(Hp7ud@sZ;QRWplweVLG7T|Uab^R%` z8%T~?zp?p)_y5sIVIwt5T@&f8<q|_e4C~ZQK4Ab7*lgE%V`_NWW(<|yl`@)7?k|Dx zRTNO4CNUW6OiLE~r1ZbyXaUOhE%;KL8Gq~*b>TjADs#}BDKnKtJ~5?*(L}GQES2Q< z(4ED<F*_?XI}OWanYZm6m^)%-0fYF`G?S4pl2Z~gPjS!RHGA@tq?=})>p8A=TN>pt zfeJsE26XL3pn}G^{s&CYHecsYTs46+DcWw>$nT-_hLg%04aN7b*t{XbNG_!NBmJ81 zKFc-!t5sRjVOhVqqiMc)KjB{6Yj2~#30~)@%e!_;mJ5sgm80W1%I9>V+6|6VNz1AQ zR}vL{<dt47_zD<mR!lSf%lvw=_UH={ZGc05b+kWWhJdc6XypekjvaA~q}mp+gjZgm zRlklvM4lYR_UyBSVOetzVJ+awdahCQ@2kO4Et(;v)F%h+k&HnWJ|+Z7MV5vVBimI$ zI>}w&&k8P7`{Ykmtt*;{XIEgFI+lmSd;GuBD$t=j^C<TMCN-dPUujhEsX6deEG?5T zzZ&fwMp<#kn4|}tz8JF}&e;8LDkJ&yWq+<`o11pf!tR2XNJf6Y>=fCZ<n*Lq{U-}g z++791l=<Mzp_&zAGLJ)J0Y%1M!mo(=$XETM(KXm#!BZ~dY9gm^3P$3kBQV-7G6+SG zBn2+^f$KIhIeU%j_7cb?Wnd*3p5WFWskC|hNlrF&<#O$Yz~GZ7B<0trrP%q-Fa4zv z12uMK&(X)FxH%=WFX(J$dbDaTUw`R!sT3$Xj#W8&<hNNTJKk0CPsOYuoXf_=e^O8` zp`<d?^Vi0<#N++M@%8tNX6o$Rr7ETK4JwJoE$@2;1)tTIW{45}+klgoq+9ZAHC^C4 z!Ffwq!|av!MuL?)h<=I2E4a3nlopy!=#TY6CEu(0NlnkH`=@6d*;Y<xr-W#99;R$; zxcdRU580ld9}A0ic+5JpeB1tsqK2Y(-i$AwQG6i>(sa|sv~)dw_NPIicx8ZfZ>5Jb zj!<jzYgIMRHyA#8%mJ_y@h_h3)3Mz*@-DPUGrxCyAS~N!@RW+2b<*oK!+QL(XzUMJ zkX4_PdbF8H*2fT!xwEf{7M#mrHbiZ91?kk9pyl4-UoEi0Yn(gk=0v4^XELIILu_$U zrvF`0Ht^lZ)1d%+_S^uEWb~*kb|(4(UWaFQ%)w(UqdOiq3RL|m!hQHdqSdqaFs0lk zhjia3@c+02NBlj?73<$VV_l%0%=n+z6B+LDQy^uo(Fn2YH+E(FtJJ^Ll$MgZ1LQ4p z?paiNZb#We*QPs@op_~63ohKBd#B|Ohm*!&FzqaD4yMVN;#ucT(ad;K%s({_9)_nX zRnm^f`qHkB0bixK+y54l2_`1>q6mp|%4}9+9S^%b$9kHgRU(<8MifoW$VPB;k7?<s z4tWh8N9%Dmg@<8aY}x?rxK|1l@g(yfO*XL>QB3Up(24XjXj6B0Y1v@i_k#@&*RF<# z;vQzqmrLWcmA&z%S9g15d#-cF$JwkXVaHFN?ZXg&K6|jf_F%E(vvhMqY`L_!vX|6= zKWG1-|EeUL(7?%6f%p*JGV;_zF2Sc<!o@MZXK$|OW@YHf^2)C@9%=>3@x^mTl)^<~ zEiJ#U{S<Mk`68p<aX)=hQ28A}56WUFV3*$5c9t=Rmf~z^Hk*`zKugJKo4CO<KAE8z z$p}lpSF(6cy1T^bqmq+xilxaDvD@120Dtcklv4WnE?e#D$g@<bws#-$p-Yms6@NS& zjb@{e6c{mx$Hpl2pg!m}=J*chvXD?s$f?GQUsU+S)N$?2-zTw}DhZ=sl~yC$!>0LJ zq0gln#gCRO?#E@lCtYRcpjKw0l0r56HzOwiEJc!j@yd^o^Y}!XmCL|O$838~++RVk zTcSqeMGs-dD7dFEjH;c3eScZmItQM0bb3IUG|+K5RHa|LdgPIDXKNuToL4KATS&Ag z0Fphnz#^Y{zo7r*WRH|ONN-Yu$k-$DYUW|(ms_*pUNB+giYV^U(@2{aIS&Yf29p5m zZrqwnu=#}%xYM=5J9c{2EF(+t$s_A-t<>c^6YNK{({UpRLLD^%Bretb_5u%opB(f% zE9A<tYu&YiYL9dX++s#5U7LwoIj?ot6~BidJZJpr3)uCmKZR`1F&W5s#48PGTVoPi z38bW3pjN^R5q%`xD7<*3!s<pffH_`FkM{x<>FjZch4bd3Jb{t+Ze=E-5bH9%{LX8` zf-fwuRuI*T$@Znbi*x{tdLEdv(ZTxTigq#4F7B~p`It$nPi1|W11&SNQ9;r>0gHIO zrR4m%au7Z&VZYj{bi1WhGG{Mybfllq%JCw|Izk~|*}+&npr#3RC2khrOT2e1htvG& zBsEwm8+29RZ9d#;W%Kjx*vAeZ61y*(wDTaf{#`KOe^)qtd##-@DLr!o>X?Qp`Epbp z-bQpENMz~&-;Gh}R)yU<N$vbwnEA6&4>_0S0NHq%rnb1Ko%t}S?oskCzNekdYWK!k zp0UH@kKeqS^vEj(d`b=ge{sJ;)P=BI_t9SWz}{NF-~Fq~t-`48rTtvC<l^V%Y=w2X zwF)E6wt?4f!{6cgVpv2Ql?@IGk{e#geEsu_QIDi;FDp_^&$j33WS;RRi#8RXx&2S& z1uWPiCp{vZnP`bBlx$;nZ`v=iP}BW+`bl|j1GY0|XHfQ^dDg%*pc%WBOVK>JCz(HV z88N-W(|i<7>Qy9XgK|5a0`O1h$PJ4{b2Fn+AlqV*eW@?;GIzsackQkw28`SrS%0`A z7cc9Y{y4n0M#fy*`~qx5JGeOq&OJy}YF~LCMcPxOV|JDsl|-U>9`LjJEF}pO=8mW3 zO8&rCm%~NV9|IMOvKe+PthB67C7sK@_zouTpmTKK-rl<Fr^>iivE#@lUn3T6t(ZrA z;s;J%73s$Oud`~#I4V7T#?~tQBJOPT{N-Aa%pyEnlPtx1%kcsKJ3W@f-v37CAQfHB z?6c^a-rEE5!@QZp>aimH#ju+r*B!Z(l@YI`>!3ZBC^g_!)=YecJ|>DBLf*x8OSXhd zUz^4*U3ddOxHM|an}cUrkNfmIuIx<UwcdxrR;Q*$tPyqtj2C{YJq`_;JCk;8?ulzN zs`@NGm+(@PC3)l9tkoa8stYFNbkb*p1}~4@NNYVK!ul>cf-w++d6^DxyqhALhZGh} zBjbsBXh8rO*Z-0-GOMM+%IHz_u|aZ=k!5SD*qm-iWuii?IpRu)c^?G$k&~35{`&I$ zT+i}?@AKJEar`a$%`<4mH&(u^5b0~VnVBJpUq`5}H2wp!q`}4bK=P(_YhJfBO(-)1 zrNh-nSXo7rT<viX>5fb7w}7JKSf^SE*3DW|02C^z?HrX(xhSPDa)A9BOga)7eL_i9 zSZ;vaE#P^+eP+F-WKyc5uX7O$R`c9?o__i0qjpE(dh7s$F$-762Mj`NAMQX00LOsu zU9uJqlG1rZdroD$>l)iFafLygG{){)Xf|lw6jL_)MM%Hlv@lFb=rX$<?WSMH0Z|61 zmgkKC+`mWIJ|FRgek5ucpi0~p{J(o#+QY3;SLI^YdmXj#|BdOd54BOg6K=R}U}2Yf z=n<|R6R)oXMhrBJJx0*?O+Nn;8Yolv<~*0BS7t*?=}14U)SnTslhtgA?keLF!X`C* z3~nzjFL2BY2YP?J^L6@F9&DtQTbB%QS`P57X#Np??Gr+{;$g%L1b=gF+&!_ss?EVy z2N9_Vzs(vdG3+<!W^PEki`a|jDKuket+`$LNBCne>rL>9!>C<&;T^+zjAHrZDaK(4 z5Y?$R*C!W-|6yz+cMW6XdGMlhSC~##d8?ti{x669h1N#zxY8ZHg)FIIH2?@lGU6T6 zXXeGCd{6=K_x@B2BOZ$QqcE1xxepnn4F8R1c0W{ZByDnBPckuqUU1TW2pMX0%egeH zC{(k@I9(z`wgdf;1BDHw{P;%!h0r9~R7JhS8!OKLHSXdh7W&6SKd{F5x=K%{`F}Y{ zJW?W(6Kv-kLd)R_(Q&2#S~W13ljzUg{z?i_2$TDlGeW#v5@PGEE?2XmEIL^7vr@rm zWOw=v?B(^){C7`zB;*n@ts16d=N2VN+y88ou~t)FQ%VTF-e!opyM}Z2R=vg)iP(!b z5I_B!1N*)Y-wPeycZO+nFQzE2-tmpAP>u>+2)zvQaXLs~jyygA@Uwo?14NEz_tvP` zZ!q6`T6Rh;4smAR;Y#Dv3q+1H2c^gfeo3bjpI70<(-%p$`-Ur_sj(=Ew^E!qLQicB zL;5bqH52m~zqRIkKhgajYfsmo^c~MXhUog?N>&Bs8r=0_sgS7ar4ZcT7BN(T+Kz@L z{^IuE9up<%X}#&d-#ak5a8t}euPA=!)>nd9QU5C;N!r>~lnM$qV8&96@qE8hsFrsF z;2Bx--INagtk9riofBljaXQJ8A=%c-PKvxvPb%2fH6OM<VVf^p-}~LYjG{a43aFiE zqRavq6sHp%Um9`1Nvy-<_`ZE})M=+24yr&YT<<-6^cA444m;H6^{SH;<!E6El=^aB zWMf#k{L|4`VA1ZAEsnv01*@=H8t=5v{Z|~M4EBUhYB$w90unkmV^dqR`e7-XXXCu{ z-+|nSsVKV{ha$fyjW2^=*}v<+%dTWZ`i-cJ8v6`6oSiKb_bUyaz|Xi2_Fth!RP#dM zJawe)L#nb`ZC)#cx24tY>|@a%!*QLYPH#x$Cv>}gK$EiL+M72@|K-*w9YR|&AqUvH zppxZf{S4^6BF-I1>OBebzg1FWBtoxo^V}(Q&%D<vrk;l)?PI<#h6RSCvfa}KHXv`w zJ+LK?!ro8c7f|m3y~|wj&=rbv=EGL*9P=@Q!M1l}7fvt9E;gvc=7f{<i3T>c>CL<7 z?Nn~#g4}T_BZNe@RFxlrX1V6DUMf2^;LCd<G5GcQt?p$;3?ky>ChJc=-Vy;Q;lF_~ zud$%6^2<?+QY||yawh!4%ANYaQ;3qg(ymn|GI)(Rwt~38sWi-ZztAGE@b+4|J?y|< zCi`=Q=0IEENwsVJwk*<?d$j@YDM20a>N{RP(COF?eU!E-g&lAA(OmjMaEF|8)SIgx z<z#;GF6XgLZnAr{el^|yMCp~x*5eQa;e)BuOtM|S!oDjPMKk0u>{l{SkEZPhb&g$d zlR{9dU(5s_d$JGv+bD1e)HOCeU1^~Mfgo9m89j9<h^pvY+SQESKlx24U3P>NyF30@ zto6FR>mBHvJa-QQc;|8voe<Xn>5JiWrsv=qgqD@T>Ahm|C+>$aJ^rN}+-lWd<AOTj zMJ{{c3(1!qHF=h(Za_-D5{rh1S7uByU1PW-e6@g!Ke5v8-8##ev^cYzVZLZN?9TFO zmBp5%?~u+Lk9E#ja$lXZ{=8rx#TEceUK*hz^VA_B(h@#W(B8(IA>j+iE#eZe_X7MX zdHl3Pbhz$mbpfu-#=!Rp(Rx6}W14cv*!2(atTTOvShRuU0TI11TI!<@>^41imcV^x z@1U*e_0%a@vBb`O!}S|<Wn{@j{bcRWL^w`WtFzDleW5}519uW$&@(uYOMpK|dc9`d zzTVujaibFJ*?2Ih`z0`9V&KJfa>vqa^={S}xvd6WFt&U$7FoZLTknmI3Gf4r!{^7z zJKub)imUa2`}Z}5g%9nQthK=CVjq$B8cX2%<XPU`^G`2RRFVy*+e*7D8kgTPs<k!e z0l7^#U!n47bu+Fmz1|QKuz%J9{?jCTkhG1CiE{B<%Huen>859nDK&V5-8u}teiQ_s zFY?PVLU;bWeJ}GO&%G@b`c&;Xw2Fw?u($C2RRRb|e_7Un!IGBY>yMsC;K~mdl3$I+ zt0QLBrP%%7D|&@Q3%-KVhcZVy^W`?hrc?w{pJ-%<Cc)y<uF@adVjw1yqAXoi8@6KI zxlgzK7RLU;hkOXa|Mbr+2^l<Ec`<P$JA6sGNrVj&5*2;Cf4qS}*Du0*zb3I$mJKjx zy<P+H#w1w0k(QL4a9gwY-)WuoN*aICvPk9IM|oblruQH1(AWlrLnvnHft^B{1NSq2 zZij1P&{ITP-cm^lsqQD8|8I!n7xLdnH(AGyS78iy$H>D~G+J`;_dGw;XD_-Gf0WYG z_~AAiWmL;uq+|^q=|wo0#8XEPf&$x{9s^$&1{0f%78jbZPnMF)MzUG!?L+G)#?g9h zZdN!lE%tL=$9=`@M#b&cT9GA{&y<;mzosg(N|Y0(<>c}v|K0e<A0N_;Wi$lyma0{H znoovU`y7jfJUjaH-AtfrY3>iy9e&|ziJDQg>0TBJ?&ZchA%^aFWH7hzc`5t%2f#7s zW8wjddMW;4egSaJhB979%d~slFGA!GMX_k+2^pL}_yjXDXUUBt7`Nw!$t0#@%Zhvb zvkgu2PFsWvxOo+Jx_Ey)^5DJ|eN}j7ILR>2A8M-Kc7VB870?iT;=?DQkDMJjw93&F z-Pq)@7%im6;qhO6F?o}--2c>&fzLvtP4?$)7))IcRo#o|OZmReR^%%ya#ya7r02>@ zcs>_J#>}Xv_;0x~+2uQmBBzNvV_d52)j4tS)s-@VkNWJyq0n2J3}KDW?tDzHZ1l0{ zqZSTWFcs-R@a?+aQW7^(!Sl=d;?|TUUcWKUAZeWaOJ3}Lsl;Dwtf|4=fTfD$!w&Pe z*RT9cRoa%>eR5?uDVRHOb3W4lnFk*tRy@5_`D~lEJxl)nQ&f0mTdGCqnxUQV)@u4j z!S<{Ju?fv9@mOdVX|c2J;UD;2Nsr4@<wEglxHa9qR{Kis7-7#}LZ!4aShN_|dpjG2 z9~zmuGhF!0vs(A!iszS4b^!Z@#GQY~i%%U_n)Ns=VK5ysCj<%gxbod9sQpf_orPbQ zc)xEHDsj}mVy$`6pHP^FGYyIrKS!MN)@Yypx2Vd4CMj51&#*kc<(HWqTo?Re`~WY& zw%4qG<4j$?_{f{c480+`W3bLDLym3g`h448(bJNH4K%fW>#$z6bl^wjln#)~F>X}y z#Eox!V&#=O?~SK?(9X9qniZmtCc71p8iu29=c(A}v)a-Bt?y1b51(~oiBS3R`=?B9 ze7^Q4<>6_sMf2wys+JI4r^p_3Y%af)0?K-*8Gr7D%-_&JRh$mS$5~SfyP&p}|Agp# zL28=)P%LFI6(15IBL{rbhhzy?>E-k(spd&qHu>1KOZ_Rs^h#{q*BMMbyt|4eGglRn z3L{FJ!K6<AZWk`B9#Yj#YB=FDxf;U2;^XEAMK;vE91VnhtY=!z2RlaZ|NJ&KpZ5JG z7CLe_CKQcIhDjFTjoD%po_GD+9s1i3_QuG_!;`MRC7`H^1$=cgU%&%7LwBTO9T6A* zr4p>v(}%^Y1LqS>HDb12PWjo2+1A``s~%6jQ>yXDPU!WS{jzOjd3|`EIw8lJCWdI$ z3)&Ch9&}M~a}B;O)!}H(xp+elit3My;0@fX`dyu9-?z+kT*tI`EZ)>OlvLlU`KM4* zCwqsd?`7sH1vq0GYM<;Fs+wNjG<6yOO|!b{ef@DWcF8SP*AkiuWh*5I5(FO|y^3t! zBE(=x$X(r2^|_{m_gSzEoFt$9D>82rVZl6W9sbPMX#MGSOcVN~Vv*>X8DQdLR_m26 zHcRcC<ECJ8nL$G6z-kMV88P;a-G4SQ$18_b>MFWGFwPj;nOA}yc1{g=D=A`67fiVl z>>>fVx%ya>XZ&B~^_tluwb3ua)n>J~vl^6|)CKa3<kkEan1{Q#s7V}kcq^GY_p)oD z>dXaQ)7#>UG0#&XZMo0N0P7#<ySv51!e(?>+LR^sRnW6A`-h6Q_u@jOUmp0G;`Umj z><8}w`?y<!Q6E0(mpk3M5u~IAyx__-FCH-W%}Lo{xY}EfUIWqr8M~{ND+LZ7TRxdz zeo+n1LR{f$iueDVLCHZp+}|9oUzRQZ&hKW<QM6sMO%Nq-^xKVwH8}L8j1{r(u6+Ik z9wZITn{&(MX;ohy-rIfC0=XGhYkQc>Q}cuboXhby&`vq=Z3_~36Qi5nI8jow!c`h) zTh(v|ota;g6YwYgl8LU`xcej0U)PE(-5o^zofKRn?F_k|zs-YST`9xIF=#yzEp>?q z9yY(?uIz@n*R!|$klPBEYxLME>M<p49r|n-)}H<o75n1Hk$gf#n|=FteUgvuO#Gby zq%-$}P3KP4aaA^%*`9d;_gctz{#WhEf&U2}5Y~cBRL`qse&lfS%N6rsh1UhQNTCQ` z8BU}d0?i9>u0fa5fbzzRXa0?F{9amO*)_hLhdwFL-#RwCwEAFu!`5iuZi|7f9)^Te zrzH{>dDLqlclegwLL1<{!44*owURkNiMZtO3Not<H9uQ@=L#`;&c_kB?!_E`$dAM{ zHZ%9-W6IICM$<a4hhv+rDsn%b^B`2U6+L@1L@dvplYGl=((?i8J#3q~Uw2>(Gs?*x zC*kWhMlD9%KMLRd-!Yc95Af70BaCO2$0iNR@>Yb!wC6eRPL%?Z=A*N!;ts$W42H(< z*_si|jnvcWe?{{-|Dq~>^0}3Yn+<{!W~YccRd;E!+XPRI)9pyQ;Mv0MstBDQS5?)E z5$?UEm~oMvb~ao;q3mAYeruKuw}FGC^HBwhMEBW2?%j*xw*!Q5elvnK(V1|Gn+`ho zpzW7CzHdvtjkk+Qb+3V!_;tXKl_TBYmm8$}#hpTp%l;ov&G?B|(f=#va9>K(O@5n8 zyt?VP)_ov%;-#!=WZ!g<{#UTV@59(x-sT+dVL;w~K+@RJ4BD<)EUamWd;R?BKWz#c zwUvb(hu^Rd!g*h|)!k{+{{=}3ZO}{JlT>JaTrli%yCXs!3t3oxo$$>YXh~<A-y_J+ zs|=;7l>49;1b)pN1!JX60@=lNz&+OTH%r9SwmTn=5F`1_TCmANNt15P9W%oBNmlK~ z69lgJv2bDod6!Ek%2?6cvA?Ow?X2r~uvEm04z`!i#yxM_**Wm;Tj1SFo6c5dOSH$o zAtvRs@{>7LiEWfcpI9Pb@_hFx63G&A%}|>wL*U=+_@d_KmlwI|^}e%H@tVb>Pr$5> zMSCMehNWkqwuqRsY1DJqs>w6ZM*hGn!WSeR1&z-z&ouZmsB;8`=7$y?=Ehz>S65Fm z<gXW(I>NrDc1I^-g#*?nekx^Q>@8o7roU;zYCN_M;AX0LqkA6!ncrSr%9)TJDV9nQ zu{2rNja##$St-g}W>)n*6|nQlRBloE<hG1dEBV@vb5VPL*y2cgF=ynN#}1=;Hu(i! z3BTyRHpk~yvKu~3z=xnW;#Y;I<Cyr$R+Ekc9WP3ylxfHrmzB@E^KT5)a~tEGDy`-_ zTzCA`^hAJ>t2-k={h0|z_G$Yk_8*(=(zn%T%luW?<bA4b&rm8a1S!%TO1My+{a=Na za!c&&tV{E<=dqv1HTH+MmpnrmGN+s;A_@k?p~zor7QO;SwzER`9eE=L`3<c$Mb})9 z>uyJ6+qSPvr@W!UQ)MCSly3jWD#J57+q4HG)$z3H?ZYzQ*Ol~*(F53U`;&U#ncy!6 zdsZ=m=@(Q#S*iv;#U!TCyVuoTzz~j}($7rt=wD{O2J=;)jDO0$ENS-?VOaA_ef4p` zuGj%Zv0Cl|QKIs}U@#*ryAOVHS*4t_&DUE$((2b*=R$JGw0TawC+8&L#XF&+=kag& zTt}|#s?DJI0iSA7aic{seOt24fVISV^2d2<8L01jkrz2RgOEFmVclonJrdIHiWxnO z=}>F!z^?Dx4RwC_cW#dzM{{$kMU~RtEwWzX>zB#ZZT<FKxqtd5>AY7%*&_#Z9GkgG zwgmSfrETE3kLb?A3hq#L^|ODr(N+!7vmC{OnVkFy7~1V$@^h+q(5$GQQLM`d$a}&L zS2<ZBY&dFSh$GA_N_)Qq!v*uwKO`tHqY|!W$AiO7UY#<~3;ua$dJb}K^hE}u*-1(+ z-Xx}^rbMc@!ghLQRMkz^e~~>mc5yPup(F*Dc`ulq{w2dAYWR)6x><A<rMTaGCrCpr zY*G!_ge@Njq?m+h2Z%&SvRq(CoqN3I8Z2GWVT^GxX?tS^<5AVW`6PJVXSOd2^DU$O zVxW8(r`|brD}HXyAC4UsyZamL`8%5LO`mlH9&|X?T#4u{To1dF{R8hEHQ9UqG5&5z z(?4$JM;>*Yq{hY+9Fio+<;RAq_}KeVfeqCO*yI$BUac>THiT4~P+?Sc;rvk4Q$K+@ zp5nEy@z~oK0W}CM6v-cbT)AOi<mZ#BJBm>x$iBE{(|xReU~>7Y79X0o2vXOGzGrA{ zG<mw0oEzOLu(JLlYHFb^ita!&%nM`2WGgx28L#)o%Qtpb*CJ(Xb8-|F{YqXJabSVe zPIJ+Pv6zMTn}}Om;qA?rL}kwB^-T*qmM9n{B*&P{Wpt8WHzg?lZrGI}3(9G-e-R}< z<?7Gdn>&_e?Q#HK-v*oRZav?AhK8N|_kj^qEaP3`F-w$;oZdznX`M1aehO2{FVgg5 zkx1!VlU0;*d#V~fhI$)+DHnIV8d;aBpkW9sEesPe5p5c|^1Y+F8}(TqTo~?BrY8ga zoua`-9r+v&(8ZrUy&8C~jnVrvilv@EHq@F!NwKoyn@eU2N54y6JI7W2*uQ*yzdcqB z$l@_2@4{|qJ<xh4F>J|LUH4!!W73)^QBFph<ZFo5QhLwVUTV}sd)K~*Any(4Nu5Kj zS+m1jCH+>4=8<Av7^@>E0*t!MLl=%G^gBJpL=+6s;`4ETVqDSmqg@L44m@NKE%)2+ zX)??Hm-b5ZjLzlF`23q4l&uS01&sojh!z;A$vkNO6LYI2@izEtx^brdr^%*B1?Orr zbDQ7%_1`yZiugK<*V#*xKE>ZROH9nmZCyW$Hf7KLeu6+;RXzRhdGUWLlmd&qS17m7 z{Q*$F1ay{!-pB2v^s=)=ZPO@~FU#l^a5btw7u|f~BI7>)?POGHDmDmi_iGSMUJJ-E z#DytnTJs`}QZ_~kd*_xT{e#+bVtY4KV+RMv58Zfrs`$24nxVBVz7~i)8)kk=VJs4~ z<!9FbgHhl!6dA5ebe5=~aix$BHh{dBivayZ3T62p64XyZT4L*1D@%4)Dxi$<xBydo z_BDlzQJWPScI@~+yRhYvI=&6R;lz?;Nc1M|sKRqZEyC7e#<Q4VIB7u&e=lgEoynQ3 znMv5H*s?HRtXd>S+LWGkjF)Y81MY*n#tE;RF++#Z#Rp7QPfyId03LeKiYEjJm#VD@ z4mXMqqvP7=<a{(-HDXo8H!5k^S8<i_XYpOiv7I8=Oho2xP3_qwT*)vUDPDq_xBq$I zY%|q=7}o4*kr_H~pt!ZYertDWF7niL%oB6P;L932N4ylwE|C=0m{m%Tfnqq9am?fO z-c@|FwPlNNbA%pbsig&6*RE$hcBVWL>uDi%$*O;J3cq`tE4QnxIY$~Yust3n({SAs zP)9y_giKnB+2x8ptwv%XsFWpOq_Dr92xi_uX<Ia0_8jC-z3F+@hS9s2`-5P&lZabt z6qhS_{q*H$!K3$=KL3jS)o@9+;nPnu-Lz+)tlgf*Y3ZJw9x^k&r5)?4C#wA@77P#C zWh|}a?Bc(YJ2n_mB!!)>{KG0Ft?JO4Ko3)BsDHnEJN3u==+yiwQy`1lnsuu_w($HQ zM@n*X;;;o(OMM6k3MOPvRp~dsGPZ9I-W>lvvIMqr@WEObPe3NPdHt$52&UEs?jzjj zhPvwDbP_n~a^lMzWU7EJS5{V5*1+P{^ZFpTNys@d+L|nZU@oZsee&kSNaPg*amO;} z1cbuJhCmCx7{Fkc?&cTf4P)b6k%^W9aW2uR;D>V`KJ0@gc8ES@Oca79kC6i2dxTRF zQMsw$j!KB<9DL|s?7t^u0^qD=S9OB8mPrFO=_<k?puF!rS!Ld!z$ZEW&mR5Qk*c@> zoQrkoVQQ|M$o;AFfykx)%rKCGp$^{dyTfEq0mt!y4`6LatG7vJ#_0SK?EyN4^V<Qq zCd0&22d^87M8c_#@BVbr%yO3cc|>II)6~$odlb3>UO*|4G#wdBO)m5d&axQrIaBy< zPAC&`Hu)+@&I29FcGc-Oz!RE4YS`lcgQ)GGGA-_<W;>2wKZ5?jVRn*1K*uA83f}F% zC3Vs|MFEf>fL99;9B`Ri_z%w~;M<@>fmv`cSCh$E;J*Tf>Q`MzcL%;Qp$2M1Ch?Y> z;R(n*2LG*SU_L#;AtRWf{~NfW?tI*U1jhux#Bn7O7|gkZUeByFPi5mvwTVX@qa*0~ zP~cNm7I_Th1pWsL)vLPjeVTUq(9wATLIMBxC;*NI9e!TT(7Xg@^^x<z|I5J=%vowy zlJIA=bL1!TI{1I*-kykQ@teW-<kg)NoM?i_OaHr@PvM~FM=?RD1Gszw_SkP2){nL~ zdooLFLE!)J^p#;zMP1v10wM}ZHv-Zr-6$bQOLupTbk6}1kd|%`>F$o9ySqoayBTKY z<9Xlr`Tm_B>pFX%b+3J$YsG!<-D|4<Ss|0@=EoXfaxZyL1^l0f?p2S*+mU#9J_tB6 z2=w%tQ^MseQ6xiO2LJy$0ER>&jgHO$F@*Gn*|;9k;6KpZ8=9V5?E(`2b=)pf6}vSK zGUl$oFYEsRfhtr%R<vzmXR5x=Clc-O!NjSMKWTOWxat3F7rDk(4+ugL_je5R_=t>4 zDAwE)xKLbJ!6|YKK>n|z*YSO*375q=k^OX;5Cr7x31?_i?@fir1ywQ<i%1ak$RV-W zgM|KrBf)sc#x9eWkDyy5(zHgtk{=Za5|H8xl%~OxsQQ~9gq)tQxP+L6xQnK_?k{}Y z$AvuA6L%r&{Qrr1>AYLu>iX~zbZ=a9ld)uQ0XMpXgKmNI6Qp5miS_xNI%e<Ym=8L+ z7mDl#^oe`=6X}HTxdE9fQXo%_AY(|&<E7ez?*WF_=i-!`S>?#h@H+%>nzR#!(?qq1 zD#g|EZ?Q!vhT_v5Nz;AYcX!<1+sKd#AbK9ix`ab<!PiKD-EtGreTjr_Ttgs{fUkax zQ5*8K*ZwI|?<<fZw{R*`;2MELRPz)&yAZ_b)5P+%Dc@5pUd;m;PoJKgob0lT41YQx z$V(%n%Lxq91N5dpp_TrG76f`IZfXXG!^Jr)pWHPL!26qEkgm|(9b~V~e^$6fj$gvF z!vDX0CmiYmMKbNIz@h&&KzJPf*BBU!1QfcO&LIL%c+{Y26kwOJubDmO-1UFx>mv-k zKZYTDdYg~{@U@(wc+~)rs-8mAa93WWy*@_z?c1PFa8`|){yT)_LUfJX7io*|Vo$4- z)TePX%Z+U^JBJ6)?F6-OBQdwZ{ci-!8e=JZUQu%Q)ed*Q8^7K()#MGN6-$IYJru}h znhpJVMZnyid3=_x38nIK*`FFS0_N=I7v@QKVD>=g!||{@g3|`d52_!kao-xfji9W4 z=o5CPmrpx}fLon4kO{Mwl=t-R3Og)n*x?V$(YQ_WI2=&sWhByxKR=_|yOT(*MSVa+ z=pKL*8;Tt+0xX&C-);jp#q?&H>_aGqU)_kh99-kJDXXWc|Fw#ekjHs*cld|L!UKLC z3Z#cX^m%tGl=Y3g+*iGzuMg%$WU5K#m33C#&J!}g*hWWj`WZK+idv<&p;}x?zJ-=q zS=fY3b6)c~c#c3LqB*n|G^SE`UZ|mLWuSVIuorK`(yH!aSzf%kA!E+r)0_IPDWq0g zyy#n!s9ixuikJwq#p=6n+w|L+=QBMbz~Geo(2BTS7M?{jP(ufcYPVWjX%c}2<SXZn zikiB&p(W&Nk))MOZsfjeaP#@IaYh~;RH1b_QWlvc*4X$ZI2MO4gZX@(q5%A0GTxBI zvG42(n&qbyx>4=!{Yo&e$gWX1+l<*Q$zT3v+;V(6Pw8pT!&DghV2wPEHLyLf6d2+$ zn+*MH3Oo0p8=t+(-r~PX7Za4ZHJK#Pd>sv@n?A&$@cFYAd*Wirud{Zy$|m`WZCKAy z_QC4JlU1V^F~~7K>jay67kYe{BznFWOL?pBGwsk+-pW2)$nOKMbXOfTY|*-c9A!&D z#XX=cfp!Wd@h9s23QQr_Ep&iI-Kts34AfbE4{>2bbS+rdcsnR+wj=I&*Y3J1?%lpJ zAUD2Ma;IJFs<!Nqk#*YP&sWsXtG(cOr^ZjH)6%#+|Mis6w*6v|RKB?(Yw_Q86aR`T z?R-rZaBtZQo{XdU3<%*)Arvc4=e_mMDP4T1pi8#r=?~l|?KYNWIzWzH`^w#Aq{URc zkl#iSs$wE9xxt^cOBj0^|L!zV$*z6P@ob8gE38rivWJrJu+4b25t?a0tJs2AY}Ax2 ziBK+mc%Vqg8cc$vlHti1I4S1OwOBdW-cFwfUZ%Ath^&@=Zdn3lh?m`la!^uztNgrC zYDX!YAiNkmW762B1?0)^3@i*7HZBLGl7xF?t!DT8rCA1n^|X(s1K`1y5iQ7G3}uSt z6?5G-v|Es8j$KIspAwejdvA61roKF3sy1=og9(u!SmsH_$EwwuY5Dras-w~A=$^V$ zgzk8b&phkFqlND@QE`;=3g>2KsWRO629GMz*K|F{YYe;ru(W~q&SncLAilkA=M)Y6 zzI%844omK1XA_T_R1s<Qhj+`-1_ZEw+4)8e>4FzQYH+HiCO|!vsiZ<~)f?9F_GI@j zm5}@UTj6M<2EpDru4w(LYXo{$1d`chJs(~^reC`>8K`U_SLm8=E8E$n99*?jdOg=g zoyn0qGS>uL#-3n!fKui~j1HHTk6KF~Cza;Si`w@t=|uZxQZ;;b5FTo)kLq_DMcs|0 z3$@!=R?7<&c86@V-oU+j3?WE7)w$;wM_e6Y9abOGu77=%%o(f;t=cV#wptPJ-dxBa z&}t>fxRu?(W#EPqQnKi{9ux=i@31`#bfAeEiURS@L%&#TM^d=lmLmrJ42ub%LcZ%_ zg7P>}Epzpj&+F%6VPl#uK3Q2yT8h`^-DBC*s~Z)EPTMJPs%`rklLNfPD3Qinc$JJ2 z@@h5Kupyo~OGN7+**s8QB%X#VFukzW<@zjL<|gV?dq0is@`l{N$aaKZkLa=1;ULLH z3ve(<Z9D3i>t+_s$TQ!e@hkV^dpNMq3uy=|PSO78Ri3dJD}#>Qq4y)(<}my-xshsf zslF(_os;F=D$sB!NzKH)(qtz|Y|-ZOlg|+F*<@bl)@7(T`_!Gn>s*nd{dm3j23mOT z+eGc7XC(+v!sV!25u_fDsi?k<h;%hr1}5AhjqWb0Y7FN0&&r(}c(et4Y!j+@#ZspK z_#*wbg~iC0ozF@r#455}whFM8fi~N#IWkp33Ubq{uB-FtEv3YpiAXp<|A~g1V>iEZ z1jm$<Yw|ESb(--UCIQc4f!zhj=@6D%x9sORqjhOz;nUaW;BmE+a}`ZH!0pC?B4|Ez z+opymi}wLh61Pn{=lQK*S3)`dwA#n5=C;IfFv)p1`HUFnlq`driymFdVGnM57=7}x zDPgm&J`K+!4@5+?D*gf7`^~GQ;qD<$u;ujSxPaN-&NU7tLO^6;)$1Y8VexX{B$`sz zXkEKzIQ&+G%gr@)0|$9`FeM3qjNHs`QxA8|9V$yb#vi{b1}ml-HUk%LD(cGA+zibz z_jtraP6{|O8S!x4X0JIk0TbhH>5L&)q@xckejm7V>`z`}h^}1(!+zdGm$K_M9<{sS zwHO#!-;ZCqR77AddR|Nj&$}Jg@hEuZ-1ZYxB#S72@PE$CH~LmW?GNCp-W-vFySyDa zB1o36;mBz*dpVn=C6LZ{)5)>sy*1=iVY!lYuv5ILD>CUdG(aSbyy}i>cPP*&z*Omc z`v-f}U6iu@%Z^WV9o+n8!y~IO!DlX!(*&YxG2C^NrQ}d$*&`}Xzf+uilXx&LPD&Wt zaG9W3a~}DF*NFUP@Go$a#g;mM(T@`x#h4+a5S3KW)MhrziBs@3v+i{KQph#aRj)yg zEML=Jto8hNQ^PiKO^#Arh>M4C<#~>n@Y<1v)qIPjquAa4p_vfSRJ{gAyV><?_q%D% zI0XxhY!-pO@_E_>@q}=MzfMgH38G`*vJy*SGI5AREz(oZS_Uc?IvbZTJj#5TpUMGY z4NyYJ^>tKS8egfX_|`v-I=d4ez<#V!b+n|)%Pymqsr;o;u}z&HUAKa8i~aPmybn9O zAmeHNDdeHCGlFBByk-5E=y0s1VpzF<S=<ReDoNIUuTrKojIDT7<+o<#CT`DX{WVUE zVVF(WrCDox6NqEj*{34V+$^cCTNV?zTJqo1n!;Y0sP0;-#}v<aFp-hScNJBJ-*tO% z09Q*<Ycg57-p;3YA%tU?mnz3(GPTQ9rIQb@Tijb)kNT5t9vcx$F?l&O1_?q{W=#_s z9|yH?ydGicMW;(ws%2<y5ElM&+5V=McBA{5$U}ZGz*VsJV}H7Y;Lyi=KQkfPFzs?d zV{jO!#oahJ(D9Ard3{Yncg}W>E=BX<J}X+cGu*aZpEo4^<yQzp?%=~|62B3z>!;~j zvWBEIA*<<Gf{^h>tBW!dx(qGga*p0cZR-_<ns@gazvPNl((?V%P9JSt`_h?4O8b3- z-;$FT&`II<bXdQ8WvQ7#3=q=|@;eR7q_8gyPZWc8@6N_R;Y9u-m#YMYYeF|$zLMoF zwI*0nltMRu?IOZ+FX>^jdn0@<(}2Iezu`>@wzXDy=Y<$(hiUmPAs;SJ<;`;a#~jW- zR!%g(7l_88*y3XfUyi*|UaVo~y643*fJp$CvIOeQj;`G-fKrX?0^9A5*J+e6b_8i= zjc?xRE#P{;ynjPc#%H4xx9vC8w`#QAmaTOy!p+(b&n6`Co3`jZRRT-PA{!z2lz<Ck z`NfS9_r=cb16_-~hwRTQ{%gSH>tHT?Rt#b{yQFW@b2|*Zgw<SY$oBernA>SK0ynp1 zw>w8k<vmAj<BF-53K{xT@l*!R;8gP`jU@*Py`$i>n7pY(%B1|AKLnz9{TT}1nxPl8 zc9&F`8R{Puh)zN5F1{*P{ytp?K7S9xSl3BJghgzn!d^Gb+}R~P$zN!<nM@on;uYKb z)F}>YNP<W`tnFW}Wsk)CGXV2>0^8NA+(lBkj04)WYW3!3A!T>QzA-DKYhYLKZQ!-l zT*j^MkYNdk!tkMcz|%`$Hc__ZRI$a|ekDTLoBYwUZ@S^J_7v9At?Q<|+<k2{eAUwr z%S2o><5QQyQ%}lBQ*ehu3YtAsk9Opi`{`;U$A7b3Y>E3FgOtItGtHU6{;Ro)Cg(jx zBcS?p%Y|i%@Yv1wW+sdlqh2W1cc6z7Ybu1YaNd0}5j~rWDI@=CSy-7IanY8gOxaed zw|!i~E>Bq`<H)Geur!etwu_n9QI(PK5D_+}UvCt3{qYt&0Z6G2VVtH<A*O>2u#Z`5 z+)QBS+x*d@cVpqV_@_YY;aJ4STT$=cUu)uE-kfm{!HZRHW+0=*Os|ZEv*|X5!QIz; zwY0&|5ZsI?mLa?v(JS^%=A<Gg)nFg)LCM~q1nvH^C4`!~9q?0%Jo<JPCYFRG=m;Mq z?gVN^BbRZj+vYt$H$JBOM5iK%HJI5Z&DYAa#nO4~yDTh&X<#^(-?L4!>;PIZw8Src z^-Gazi(+lFqfc)qUVwZm-@!MDsV>?c*gO2;vPKbGZq9fwCr*}l1_wg%*NUbYO1STq zQswmkfjng95s3@c*EYB1i*`TpLJfx8ubwl%MeQiZml!~UA??8S?zoWjwr#3V&wUKR z<)QSe`x!4XfDOz$96<BLQ%G<gDK2nq70iVVh-mbef%)?9Po@jNsnE+kxZZ99IhTcX z2+AZ=+)Xa2XQlU*VoJC>vnYENT;8gEmFqO9rO%?N&13a;$KW!lEAJ3;(@~Xs<?&i4 z_2NN<pl@Yq4;JFi0C72D5p@^Q-#Yf*l*A-S2{-|mt_M2b2oB>ov~3Q1gqSmmwDu!# zYAQ&KwzffHKAUTu`xj7PQPe0Oq2W-&sRt=nlqi`}f;XSl+eT9fSMRpHk@s;|)N0(j z4j1wTFRMWlh4Cr;%q~V2DF;-Gl>-d>A@_T8M<l`&!j()WYTIYN&RV1i9^F^P{P{k< z01#b?PI>sC-^5x6m2;C^V-hDfXmXUON)MC+8Qq-4iZoSZG&kEH@R|r5V|Ls4O!bU* zKdh$xT{<ykD<EnScAa~OSIiom-&`J#UFABzST}n$6V5iBH)v!#PRe&=u3gu+axb+M zW}+xqFE%<>$l>kVbWx<~;h42-{q=EJ2UtGVfsMo@@Vm2qtUfAJ(}EHoj0<NC)!Ou> zx2ToA@d+!jB?8SMgEONI5~$(X4H&zaO~1=bJP*Fkf2lT^_%p?Arywsk&(8YxIYutC z=hiXZH6`RGKQ~K>T>NgIC@?7)w^^d_C@#_5lf`QNW634IPCd{5^7z53=>5%)kHDxF z82Kro+y_cUxhQmG$nEUBS?U!6p?tOIighriAg8mv&9X+SYSO#U`MaH|j@ji#1&c7O z9U17<1knRq>V$+O`9ZQTs_$HlT5o#s=;&EJt*+KXdwo9e$_lwW%+$Z8I31}z`BdXv zL^cAxE7;tp*Uzlw{pnzPO>`pX0<>P9gX(vD=$7AHW;Qi1wlAc{$%7ycT~!|RNmQ|j zz?r%Rp7xFE&l)t{x03^Bqwel^mPZh$owfu?zyPuTv*loR)M>S}62<!d9HD5^;9@-1 zeLWZ7_P9Th+t+<_`x;j41jWZXA9Ws0UBTJbUwN2`?!S=EvNbZf^mnxby3qf1hR6Vo zo9i&|ZCh`ny-txhE{|w@+@`;$-ppzzXW8>O-dvJ#YgBLS9<@(sbFlaZE|;FCeUZBP zd03D>;*q<aY7#`smf3tb*Ioc*LU%Srlq-C5_cs+EGKFrwELZmWwrghhuHx(ndzp_9 z{BCRG8)M6?>)vU?vwHgf)*vQI^V$s>4$S*hR)bnoCs}M~Mb~u*<lT4eZVfUoa*FhV z`yg=lrA&e)Y{u)=U3tSS!`6|EdpiZY)Jn(4PKWL(f>cAd$15KBu=>>txti)YD$qH6 zAukU0sC~Yg?uLDv8PDNlwR0vi7wI7Es_sci5=-Rg{qOOM$8kFVvERg1TTUD#Y&%)y zqG~_)O<NbN5OxQ46XtVu&Nkd6vH1!YeR>1P>*n9I9A4=1Q!RNI%q{cZz%K^V=E}h3 zeqrfq+z{TI<CNPm0Tp4Wf10pgtPl_~r!{6<b+j1m+)6GX{@x%6bG9IObo{TgNi(bV z_U=qfudzxHCm5h@f!-gBD~iO@=v9yQ$~CYE&>xLGTrUV0bcMa4PDGOvdsGa4J3qx# zu#yQG-m#o6S4wKR9y*j)X3i+_3#rUnUSzNCDzm04+BaNqvtaaQj&Hx*tXg!GpEtH$ ztM=%Pj1qD_xXcqhrAXvewK`V7^S;<u3W0{c{%t=_We22Nj^oMr5RU4IIU3Iddw3XT zhziL^Aso8IEiqXhC-F(-G(yQgr+<y(p9v5TxvvI~ADLu9e6&iom=LP;w#V&*ejw4C z>m90Q@T#M=>kij?QQrL>oXdnx;N!>Q;k6^C>YxoX#PhTZHUQqTs>MT!04JyNoqz}z zwdXOF0f+r%mJoG;<+a<Txm1IO2Nn+aTlW;&tbtS-z5Y^;H}{B+{GsO+ZTlUY`%el1 ztU^NglcQD&&8($2A?0$3EaNMEAa-n@17X^<P5yR=Hc`d>W%(x+gTi96)$1*zcI$W- zn_Nq*4ER-bO#$QZRHCC`<3QBfttO1iuVgkGkX@K}-<qJ)X}+##zpiHJGxT!Ufrn#z z7{rv=sPAPB=Z{nn=l^1vCOmFEoXjhT0)&j0SIS{?bt@Bh&1>Ikyl4Cxj#B@sS&0z+ z_1dVKD5ekEEeIW9EDCu_6g(2T&6|B>vn{$a+1;8Q>)t8nL)rk(DOfZS@we@uTrw)4 z@o4kxC(zE~s@~tKHy#y`H7rBda<onbL0X&5HRG`;GJmr_%n^L$v8tChX?K4JdDvJn zV1tsuXX0X%i^;`oyh6)T#=xrE`P7GeBM#~!&X!yc!x((+$vZipOC;a$u$8*W@Xgw& zemuI@O&7S5HYc0DIylQs<w!L;v}XZIqQDoE7H;C61ve*57L=jszh1L>EVfeb&++=^ z439{nb@R-(8Wv<UsmcVQB$Ps7Z@O{_GAd0^F*fb|__hxe5}GMsmWOSTK2+=t#Y=i5 z!*zBy+x%IlzK1bZ?9maON-=J9yK8ndA6Iply(SH{Mh;2qftXdF;^lB0rX~QEIwCEk z@Ums5I$IzGEFZa$Xm@%<mKsk}3)&A;@*&HB_i!_1ji^?G3%^~2Fqw{&;Mf<dBWLFp zyT|O-cm@C3NskFUJo+|1@-_h1i)2`d!Oiw2eWhA!F(Q69mH%*njdmJplqC&o(!_Az z=M|&gJ^{KMv*coDsbo~idH@%)9+70QxN$Yk(7!E$pV&0u_|P_R;OA9LX1F+OBVSTm zp-<RcbO#gE3__W%^}Beiv(h?zw4Ku8?TY&DnJhajUb&yQVq%r~-CjEPnK#I_GrGm~ zCHKzRNN;m(d-i4jbjglmll#mSD4d8R>v2g1d~~Sg1Ui^VMfEs(4J=R4`t<SWkll!5 z5;zB&R`ih>=!&_?bPBnUfg8b}2QhFG3>O^jqR7HsiD!=wl~v~ujtdq=E&%vnoL~)Q zlmf{(_UpjX(JK^wi|BOXyr}ZT0zYm4T`2N%epv;NPwq{Bp16Y8#?b3~TTRclk+bY3 z;nRo1jxmejJh^Z7z~<UG^yu2V_?jQeZF8M6Egm1Ho<w1~QBJaQ)HBz`q^$mGvuMme zFOJ4yF3t-(LtsT@HP9rVs;=-d$*uvi$g&>wI_FY-wANC;t8^NNL+OE8YoRxC;2XO} zuhTiVaJsJGhi=i^HerEV8IE{pD<bFzlP3HA`RbC&ApMLmAXIjdtaS?(<}26mZR?Ji zZW&d4$WMbW>J?294d^+Zz3G+=Sg_oSb(Wm6VqG*fNgnqg#A$1%-FzIT4XioaBQRN7 zqo}8!AJ1&tg;(9WA0akx9mE*dHev8tWlCQ^8COI*1L03~eeQzJLpp5r<vY{s73z){ z+BV+qYVj$+boHnArCu52I<g!l=2bPAJcTEBqwCq*CS0RV9`mH@#wt#PU9%S^Ymm{T z-Tx{^kXn9;sN0>zIa8=~XD%(#b(P=sB*Z8Jc6A+fdc5b8Z*1<Jb@?^84=1tdv?8!N z#F2tBgX<V^5@eh8z-sBPZvL)9+(QY<T>x>oyLkY9f0$I3NwD*^9-efwN?J38%V*r* zuf5?u@w%_;bKoCu+uz#Oy7Ft^jIwy1UoIbW6MBW#-!_|bKY13@P=GycU(FiiEW>=| zp-NA&qFJK*0P3<Pn*gg#lg-mX69n~^Sf!Wj2kN#jIh2AruWm;3LXwatM>c0aYFVOo z4TJ%v*Fi(!KECrN`XS^F8|d)|@fO-!+O^;<ZCBI$6XoDq5puX(XQzzt8la)N|FEC$ z?#;5PM|~c4lM?^e$TeZ$eX=)Pn4*i5Y!2j&&?DtAn1KzXrWHU`;P=96hBbL7)oUQ% z>&+p%Zt>kndz09LM~fCUAH_N@L0$V6YT#tyx-N`jfyeGkm07ppuTl<0P`Jq1UF|A{ zbntA(Ic-#hA3gHX(P+N?R(7A1?NsFYaR@}E=;fDCw%vjgHRkK#dB#z0aNav`#v5`y z3>BLVU>k=DwHU(Q&MoA#{9W6->h*_+Ww`Ypjq9;iRGM09bJDN4^SH!JOk^_E0Fir? za*6u{{RN}W@}tVk5s?}0Zuxhw8m{l^4K|se<_bEl=CUb`et1R$czx;!bGQ1)S9Ho- z#7A%ksu2OV{spx0tqSh)^GYWjXM&2~kFI;uetrcFWRx}+Q)w`bg~SE$a!o^h#g*}x zu-IMcr?&gDVFR-HD&q=O!KA2P0Q=jN;9Y2ot+n-4;=6BT`Ox1G_k_xh26CUqx%7uR zA$ucldE!qMS}Cn{-b+d`y<0=fRnb}kKA*U(ZJXFf2^A_*FPb?T+UDGKpBfw(Te^4$ znP^N)9#kZ&?DmZFRFGS^xyf~@FsH4_xeE98gR2P)O@p4ld4E;C$<S68_;bR-(k!xa za302zAJT5^vD`YcFKN`8W;z+Xk9GjjUGL~i8QpcDQnk1^j+`raqug*ak3oy!`CNj7 zXbCtCv!m5J1_z!jO)wmFak<IGoqZa;H65Bc!XLWPg-KSyz)5N`9HN{TdEsLt={HA7 z>>0<SoMYX#DcK_dWR@0y_tmEb^I31F?Kl!~@P0=AFiUwOuj)o$RK&{U-aOk23zKBX z7nvVZmX~`uCiu!&UWmb-nSKT-0FMc~n%uxZlqct8p%7&sqktnB^tt33D;ghs-J&89 z;k7k%I2XK_Yg}|SA1uht#p7-Od03tpc4Ls*wpQ~RDMRZ%5TXZ;C`qrP#;bB+o$pMz z{5VQ!)t>qzJVJ+VT8T=TV#?a6?b_46F6NkwqIuoB;Vr)BH`@#lgA0R}uFVIrwF=92 zJzIsc8-4ST6dE;cr+kry)1t5#+Dd{|bjpbIG%?qw+H!za`J<;?%CJ}#vhyrGy20q) z5h=^BzHCsjx(w)%O1rz++<;PfEvJOBC>Qt+Caw%jpn^0CvD_sP&hMuWL^M{*+3&6O zj}vmH$1}~2OL@TEBR(Jmvw8sr)rh8*kM?&g^GKV9tx%2!#YS$C?l3H|WTGzk(IyK$ z{-F?WDI3;wLeZu3refB0<jhRX;g^jh5nM<{iBF<v3*cFhqI;bf9Bx<y?_;UK6><b= z`?#;}=9l@jul$Db^B+!eYE3Uu!%ni2&+mT!z8U^Y<i6r$cQTYC6GU<!P}fZh>r+Xu zUAVDL3rg9DBN}oCf>GTHu8>ayeCiL<V@((C3y3XfH6Oeby|)EWV;g>I$jPkD9d{(Q zc<|c+N$f_WCe*L(x|nsZLe8!pcG*QmBv+5+L9eTj0v6qQIGRRC)z0AXVrjnVENq=6 zr^Ue*!{W<}GB@avpS@Z}XhYVJKC{KuuL<GBC2|My6k3=@A>=&ISyJAfJyGRxdzH?I zvdIM;&O2T}9+R!I`6QuK{9`1h*m!L%H2W)ncVc+1uu;2H5*$q8b`kLxiZ7t*>DC+L z#f)%${Fli&(wD%@bA8DfnYDj*Yz6u`cpS{YMb~<TsQGBoji8ZP4AAm0d^9Y`ayf2g z&NYjJhaAdyUrgkfsORmAH2y1SVvb_;o<FHnpDX&<HZ-!Mvv~qQ4i5(2)DJ|~PSgPj zYb2hdRi`JIu=aEhQ7^`3m7<|R7YgRLf<ScCNbqD}4k4jH^KGC`jja{(-}0j<a>^ar z9LjdvE?$p_pz%;<Y(@-HG)2E|Wj`#Vqk2GeZ}-OC;9$Xe(@IuhW6Dq2IzC}eS%w|a zFdnHZkK%sP7wKSEZSMkJKf8{JL%?T_LeJ~s7$lZbr@qN)V4mD0<k&xZIlODD%i804 zb+>Rb9!wnli_-nFVI6A>$8MvY3gUB>f~&=Wy(wmt#Ldv&>i9i$2&WexM1?0N2EXfC z?N1l&K634K8!Uf4N^$=XC6+ZdT!pA}Vvrm)xDRx~jBClYZrO@Mp@IO1zyMgU`#04x zqMS`fau_TZM+3m*N=l$}T(@qcPu<fx5v{y$1QKn|{b!na2S;RAU~|dovpv0KNh5nN z=8=sA%N5a&5A70Y%~9H`|7Pd9`P)}=2hUI4TSfjgCyd8yPt|M{@7T}^4^%NVi{p~= zh<Y!CN}EjW;iAslc3<TK;f5lfdKH_;eT2u4zTvl7WeD#i!+vb?@CpHB{yN>mqyBAm zSELVx0;8IZJ)^T#X5(XwP^3>{No(nHr$btB;_9t^kUdrKKBLzxrnnUL>hvuRnnT*O zG&;d@y-2lUhP#pJRP~gM#2Yt8;N{wd0b6R8K@o<O?Xu0fS<4Y%m|;1((3sW`9OkPT z{Yp|iZTioEmT+Q{H?2q&L<+kJ!PT(JZFNbj`qD9Txlk)}7EYQu24C;Gd80&`e0`Cd zVx+DVu`-M4RaG(e)7{Et-*rsVB-+*Z@W)d%DY<StC^o?(Sn=f7O2Tx=gSEA9$atn7 zr|ObSK7w1Len$Y%TjJNgzxD}AjBfVmTP5h0xRWX`iDM9{JnvShc;n6Me93BGI;6Pt z(HFtNk4Jd@U~-acdU_Q>re2Lm+%vg1a%^xzY=lM<GSoG3$aww@>cSIs$(3HNNo!lk zl+o3X15I*-A8fr6tiHBeaIv=^erMuN?BqAF-fqH^N$vu;1g2Y^=KuWb1U$9cGY1<i zXV`9)h*Mp<*NOP}Uh+CNpz|v&pQoj1Wy|aSM8R*e^S+qD5pEXc6Yx_&_E!w+GO>R3 zp}$!W^EJHGu;Kn0B7he>J6PbtKk%-|sQ4D}RSW%0*MA*G>FL%-9+R=&8EDd7S16OJ zx=j;8L=6M93IrYv%q3g?e!FO@uuRkNQHu21ZV_uUoh}vf$&a+r-)wsOb3=Tk+3t(= z=ctMF*CaJr>?Hf$(g``Zl*#;m`o|fB#AEnw|IwLYdyG~+jpS-M7|aOn&P6+xR{jMM zGm2M`e&clA8!N_Xg&S3%F$&c~OH+|lIv@%y4Wib###uo?TyBQ?bvf3P2Fs)v(i645 z%LJ0}+rWtAy>5omx1J8Y9uzy-?pPG2Exb{z7NZZw%pM{z!l@TMSC>vjyKPd;DmaVJ zgW11=F2$`#-*@iR&Vbyw)gmBz-7jRRspS|L--yF+buG{84%40^9SA7iv#+5lou+rx z;dy=>lD*`Anz>3V8FajAjhfTnL>9k1ljJ?d=8YS|*lH3@iZB!HC=(k^fHLboyW>V% z$omC_N<4$sUx2L%!)szMmeMI{J+^2Gf9$Ys@TQ_LyJ;k6x^O?s?-P`YN%M)@PB}u? zzciwNj_GQyF_(*quI<`s4)vNS)-^+-tQiR}ODed4@A~`J{qMa{?C8YZx-L6VOYLuy z{9~Cv?JTZ42geqEXs6CGui6_xCF~@QK5s;3e^{uy8?RB_KRi)ct1K|)G}K+lypsA1 z#EM6c?|~(y9j2cpZao|XpmWA4s@sI`D|?5OI?W1gTgT`>W3NFyOF_^E=@;|DCZGYY z#6&UxIhr$;QJ+(D+)ORIV`2*rsB$wqDZT{OJEl*;H{08uFFGh5XQ}BwvWjYTSRBt4 zJgaRHPr0IN3s3nfJj+}fLaZQL14pwk^}Ct*`JD!Zg+jaYZSO(TEpjkEm+Ldv&-8qq zr9ecJv|1smeh+6(sR1S`a`D_l;|pWxApMXEu#e<us<}mw{KHUH{P@9>n60PdqzYx^ zdqW<36tkQV=1X?D0B%r9-5%w~Tz^pxv}t$7e<u}A($8vl7&_7_7)L1n8q?~Of}#mi z<No!J%0cD(G?s^ynU>zZNWOJkwna^>Tn5#qVF`T2Xmihr4AY@&J_LH-7sb<?1<^Ra z16ty-s9u}jbad#SEX==5Ht0*L-ST(0<AmAXew8At{EMsZ-{brk=6$pBnC+2BOF*dW zJQc_aHBM-3c-B~Dp3eK0(_isD+Go1<x4+i)2Kft(@!JMt+Qm|#nJ`n)cEafK^jFp} z#=CQ#QQ4ksx!EJ8d+4cIA%0kqMXEMr6G+15T{ZJW3sjPf?k-HNldoT(pbt`ijG)~P zWA@=PI};+y(s6mY;NL&&H0Kg=_ATE`C3EI7((^}$7R~W*YIE@~lafPe<AJg+i+}vD z!CJf@Q)p7VXR*86dcVH@o}GwlQ0gi5>YBGh^CBTi+(X<VYU_KBxTp~o2e>;t${YBF zq|1t=hsqZyGT?<06LS!JZ@<ne_8X4xstpiiPh*UlL&2jD=fkj`;(HrTOD*^;Nz+^q zsPZO_ks5(x`mmh^)QVxJ1#8u!l6{(*r{?(*$=7%MOU&?a>(TSgcmKuTCDXkqnv$nZ zoTJPeRfI~^2W28B&4!JxQ}7W2XaKPOYtyU#<JsI<_^b?)aa&BVm{i9i<X^YW*zYs} zaJ<qd=c83HhD7X;oXn>@*B6gJI6gI14DkcG|3LTgw7nAU1H>``zjVZCp}#TnBI8s^ z>ly=4h+v_jJR!rZl?N7%#9;$(av?4+<Xp^{Lur@Te`8X<Amv?((q}M}&rtxFy3ISc zXdsjC$ddJPmQW-PUWXy(e5(E&E`8aLbn}m)yoxaf1<L$X!hcvUm=XuuF21+=#3q_a ziR#!%E939kit;}3ZQQneMCR+kG+q*~)Oe)x4=N+DY?+(yLGG6~;MRwnWeQT<?|h#k zdK#}KN>Bph8%X;PH6Ko#0rVxH13fRwqcS67|HT4)y<mQ5hLiWFapm97hwo~Vyq(VQ zl@R$!i|fcSVKr;**B@{*qhFO_2ZZR4<Ey(M9LQ?v9Vin~8kPmcK8lk+2q7srxFFa~ zL+(1Z(>6ghk1I}@cdsU_c1)thN-K(|8InZpPjIXb4OOA~9L<OK(}yO&!6|EP<D9H5 zzxF_(IoF5MmhUO`337Z3(Q2a&K7KC|4M!NDl;Kk8>u(KQ=h(Q9n(s0(e+k}17AAs? z@B5B+=U2W;r8jel5ebtrUBjJ?%FuBwez^q^nWZZH)Y4;v{ic2YB_m+e@oo;)Xhirq zMA2fB#e^vmf+WxTkUG8!xY3fKhJL7_iJJj)gi96L2?Xx5FzI=cx7|FnfGASkk0TSh zw)nbMhC(8~tN+f_`8P_v?sX<JL+pzf)W=l_F?FfQxNJr(jY9n~B2#n9=D2!4{7;9^ zI1AHwaVo7vzCXG`%<@8byjTr-hLnsUq#P$w!3wBcUN0>DTx9YCsJra96aA)3{WcCe z{X$JZ`trwbiX@F9sdH&I%0ey?JhMh=)PKzH8O{vt(K|rJqto63AuUpLzi9r{nY{PP zM*sbin<&POzO2UW)rFy2@5s6xCg$BpR%PDpQXn<`?gMJwZreo0dF(g|v``YX2K`La zO+oyfwZoP6V!;&MA3zX(Hq?_OX`K`2OeFg2bTaq1lEcU~)uaQ4DmG||W=+iJziu8u z5X!dnAfHdo$`{X)Z+@YT{QmO8K&Pe3c*cSQNyZPUFJ;uv?u3L#y+~2Mn^J~;pv|YA z>Yt*npxQ9hc`eX+HpJmYPH*jaJ2XxFh+wZm<7=&|PdbF6OaLP{&Y;-Qlaq(Lv*4P| zHvJXlf8{Sb;;tp^6#UTa>L6&6jb6&@?FFOJ1_I#wzn93NZglj<uAS$fjzTdEnbjaD z0zFA=>rrN41CD(<tTvp^hFy=6b8WGdLwVQE-v)o(URV^+q6_M@7~P&XUabM+n#wT) zDqrJKM&cY@1_6wpOdpI}I*Vs5GKoryP#?b_@`BDHP6uBxBy+5BOJ|q5>1d-LnukgG zaXn{uzX6=lC6BCLWyB|O7MdLAwD)7d?CDG!@TJA$_$u(8?G(Cgjt8c)uLdu?C6;0A zJG1GScL$19w^d#lHllkcx_))pM6}s{C0%<!cWz&JZUCG^ds?3_#BRagK?%qMjac~< zg+Z@20);C3oc6uKkX)}`q)Pww-poH-$L&Ws8ybD5_$8PdjmA)e0;%~!*E{EMhYe<` z;s286EtB;vOG8kp)GNVP5^o{sDjVIvuaX|~LVl8tsX{g~opX_%_52$Bf)Z}ab2E`o z_=_WPGVA~v&qvT%WXPgIwA$F~9Swn|KUi4L4$)^2<I%{24<rvK)8y<3cEH0uZb71A z;3Wr&7d^8i3frfcJhypWE!5d`v;A7xg}f!DvtThAAJe@L!X}5&b3LPlt={oUA!K^o zxH@djpe44+Vtz+Wv?HX^wZT>`vG^KOV=a%Y|4YEL==4!+f3|fR=LdBq6MdY$!$g<j z@Vz<96$$1XXOwt(|2H5(qfm7`EqF>_m~c}L<IJOyG51>v_1XCne2H7a^Pda>#=uun zf=?9l1MB&#hgXLe*LIHVfL)LPQkVaacz+EpN;<($z7Qcb_t@$Mw-<y2);-D?8F)S; ztHS{A3;*->TuNqqn};Ol{0HEb@caZV&#M<2&$RLP*2RdkURh!zheC476=vQ&5L@$g zPuC)h$pXJ<N6?Smf`Zw$T6QguD2@)!#$V(Av94ddR-_YleU>;2)oo<ymU>skD9u7% zwD|f!a3WNIlm|nQ!H}@|i&rHHU;G@y?r1Imijn(4Co~*M<v9I*cdu>YN=4YeI#t#1 z8yPqMu+@>~$SHAghav68fdA0mpEmU0o(;TT*zRK9dgi#sp)bdHv?jLw;vjn-m4>vZ z7@6^B>WZP!1@~bd(@ai;)C-?|cgK3kRaPx{DQDQ2C+Q3PAp1$o%DIk0iQwBpcoT~N zC}U<+bOAC|zrg{I=qy*Y7!PJefRwly0Uqy*?|ads=TYL{jY$~KqblOft1$;u;CU!5 z(wx4=DEx7QPyCqj4vRe6@jYylH@D{}2W+2Y?TRH)a;46Q$(^I$zkL@a*(-fGx#5E` zsLmv#|EyclJcg!~jPm>DIc6??CpV7{@N<aIfo#YmP6*3?Hdig|J`6dDM}&~D44>gQ z!unYkLpa|%kYFJOt3pnlk%D?q_!;5-D*<S>y8oc3c*R`IJv}h>uT<|*qV2-nN5L#8 za`QmaVqPXy>P?Oa08jtr$x3#iTXIHfs*UIGLaim+p{8=lL;6Rs|6Z16$HyE%j@I_} zzLYZUTX<=$Qsvp9>6N+_zg8RMgwM6Zf|06RQ^)p+aXAa7szkk0f-Nu{vM$opdruGB zF^}B~cdsz$@h>nU-_^H-GW*JL8;&5Cv<nmTvtG_F;-0U)b?Ouz4JvH6bx%HO>p4mL z^o!JXio#CZqIx;a6KBWv^J+iv@(<UnXDB{Vhn?xOeP*KfEc%@H9(i%AcDwWDYSq~# zG^$?$ABQG=)$&HaTYiuxme0xnp}T6{ThxAhy^Hmv$$ynS-<|*L<2~Iczn`J0FhcbA z0?+;3jr}&q`Nl_$F1slM>U&6>4*%^x6Wzrq!!2fgM>t)Np1*22`)Vh#6cBrSR{ot( z)2Ay!;H$UZhys~o93eL0SM7k0+NRn%3F<w>p9AGl3qywCP&rEVqi4_K1%I8}Ie>+? zf<72Nd|J35T8jy1Seji3n#$e%wJjq0rXWLOz#-HEX63HN0Z8iN6!P{~2;Zr^*?iBY zqD<o|VCvU?hyCw~R7}BA!3uPn&6N^NU@#Kwnx{xi|LAAI8b%$@(kcDk|Cz+~)mlVc zaY9H317tyFU-|tGJK`4zD}xZzS_tjCo$5>V8in<I>@FE5#^;36vPAVo&j_+nP*+&S z1+-vG-@~O<VOdi8`98J~i=|M$gU-~nWf#4nBp%{~(Io@z!u#6!I!&PcC(3M0OwS@= zoljpquv^#h*Nm?6jGE|gbjo1v`C$9M0XYGKgV98;{MonfxtPt&469IPtejIV3xB=r zWud;)keA$PT}!0X%o*jR_}AsFnnyC#^+%QZx%HzEV$?EqhNb7)HJhv6tfYyb9m`1k zhg<ghLDEi<qsN9H;;YTT3c-b+=!bG$(F}T;6kXe1J>_3ftvRv*w)VfUe~gUw;mie? z6d(&`RdQU_Z%@myiwuSP|4v)mEn}fr3!J>kcpUfv;txcxurFFB*`vk%ZkWyZ`Q&Bg zxlWh!KjqDby}vX;2|Ps%gdbf0?ia}heV_?o%55T~Qpf2#2N?$T0-)~kw>HFl;9P<6 zc@plcH-8iZHOSs^8&H2v&Y$wk=Y6#|$1^J|Fp`QN-}9g~Xasdi^<T7pLoweD&BXem z_fGcV(rE9?rC!)`vog9mE_WC46WNlEiS^y$t!lHY!-(f1eo9TBHCIH2A4Ba&;|a|c zR$X3OJs<3cjD_|*TL64M$h4V*@Ans@ITElvB4wf*$8415`M$+Mtz_f;8{%KGhIJF6 zbN|diLw}QAA(yv4Q`+uzod5S7etV*wKT=9w?dO;4pK9Y=HU%DcyDp(<FoI9<W*_HK z%I+Nc+%O{VM0s8tXBoFQsW6YM5Os9)8c7}r+I!n06W(c=HjMzh+P0BAlf}5H_+-3` zqpV)5__(OB9cz*2g;>sT(Q+SLz&}iSAv)9|80$}|4OUg>q$`mnPA-<fi?RsL;<gfO zt?#okAOG|xKkBZ&9pl9C<r+ti83r-7R&NgLN>aXi)_%S3Ut)@4=kP3rc+&qB<ybuO z@{e3~+|P>fIiL~1@oDGC&SS;@4&L?SDVTm=JRtK1ckwx8kCy0^y0dwqKkX+J8STGm zjB1~fP$cHXm0h1FtMe4>U16aZ>L7WwUwGyo@K_{r{AjLs<&mZ6`<TknVTF@XQPrWR z#tT#dRb9p=7)Fu7@)f^6N~o~+6lj8pO61Ufe9KRw`AW|K)Ky}za_8urUj?~+_U-OC z#(%4N0eL~ucJ)jd(<N7lXWfIi8;1RJvphIO-dPW7n(_Nf@jnrEw-=s+Ow+P|y5sf$ zJ`as{kCdChih4zQ$Dfj)+I6Tu+Pue*`gi*+@w4C^L-TjBuc~6gsOY7|tqpIR=bg0U zvu@a8jnt3oyns_HW<<(Ep2TG{%Yp#f;#y}63dS=g<{DWk3sNG_L_oIjohRX=p(o|y z*0&G7Z9M9_L0zJTUSX9bNobOD{AQ*MjN(`fC|$|)nDp4c{`CY+zd=xfPi{n8Jtyiv zp?O)SNZ`gf(`kQa+^tu&qIr>+j`C6@87yk#_ahncNCLdqGA_1GSRq|aqD+KC=0zt@ zEGjzVYkv;|0W1b2*R$uh%Ace_&xH*B&<uHVx>;IZ-D0p^Fnzr!iANeQ*)%s#n#7*u zbncqo#&a`#tc<g$xrr3&Cgl_Pb5y`F656DooX~2nU)Fi$3FSR=0*y7O%bj#i$@P;& z+{Id}`vL`PqDl8(5_St@`YH=B2Iue;UnG*iL2FUYcR!)$jhZdphST%2O(F)}Z8Xnc z$jW6GM%xA+PVYDCkC%Oyes{o95;<FG#eK$_eSsaBJZ#|ub>>AY#qQv={uY#FfeoC= z?7yN?9sU!(82sh%U=+=;@69#EZ<_Ys^X&LHE2sd^!x2jR`f>NMBWAMY7TY5?{5(&& z6B=Z>yI^s(T;m#YpOw&G-DX8qiQ*AEIp?t-Di!8Sw@0-ONujB|&i>$9Ov|-lS^AVe z+v97&4^O-uoxvjbm4rc9#$bUT-!Hrk_{qMWilzKkOkFeRFuCmU68skC4Z|qju4KHp z+yIJxw=fe)SrVb9NAXmmtGF7Ip#?92SV9a010cFH{t}^P5;)I4*bKg!k`eZg*PMMM z-f+6JZBjIyT7iGh<XN<J6CZx2e`W1|ZAFku^b6$Pf3Ogv?Y`p6?*8tB;IBUm>eFsm z&(;ID6wZlf(qg^N7GAFp_<bt3;U9r9C(QyPOe9JIl%YSt{(a?C$y3hlqJM8jeV{uJ z)`m{J=L;`Hj0qML_szrn*JW?jB3I*7Qt1>(P<rfx<61ODgMP}~P~6&;uU66cqRM-G zYRAVw%Pf~RMtd&nc`NbxSrckYfnI-VWw2iqTd00vCX-UYyI4HDS1uSYVDe>CG?icg zXY%^QIg9e+;4qamrA5z74_LWyTObAUwk}J3DX8|)yHm$WnwK!Gx!tT)rN^7&=ZT2K z$SFtINk;E9(U|`sZI0hFy8gm_<Hof&O5FA+xBX?y|Ga9Up-nGp-u;R7iRgKkVlp`Y z9TNZSrW30BQD@rmT@gQ)HB&;nw!#Pv;QX1N_N+BecBbL&J45d`oHO?S+yfoHCaWH> zB-r+Naj?>^()?Pup6!$jmc6Zs4B!u`N&m@yt^hB=&Bo!UQr;fcd=?h2#K3(YB3)q5 z(FLg#4wEAJXWg{Gzo|N&A7Y^S(Hd|pEuM6>y%H1-g@ub#v5ep{;8nwFtXrN`dSd7; zClfVU26i}8Q?(-&r3co*idUbS0@q`!{LNLrj5vt-&F^#IDznWd$dW|#M*cE80+}yt z#A;O#_j@8LqyK#}*t8N5c|VY+_i5u!=#G_sGWqWpUDe3fyt?R|a{MVsQaMKJ4JDkN zG_lqSv1`U1j}fVzfOXd$xfl1QmO$s<9+Y^<GMYNPWjTB`2H!b**os@|D0(MUDm|-9 zcg?;e)#eJ$gHhi0;UzsrHr9v5QF#wa?ieiL=_pA|fl|9V6ntLt1AcACZm-rg2AkN# zTiZqZ1XuZ?y-k($?c6XU#<O?STHNSRRF6p&5xgEd>55zW?cBe=-fhsSGy(>4-WG=q zjxvApH}C@SX+XuwlMmy+Ydm3(zZYCkpkdFyaliVc$Z{uWUZdGS)4<5pe>+ofIJ_5g zr?qB9xS*?d%$D=xgoV6byav_%-_%Aa?iukrqO?xU@cF7qH(y45cA6_JHOc-ycIlqd z=8M~kLq+LkjyzHV0yQSFIc;E_XLddkXEy6Noz<vwHcH3QsP9`yK3Ot`{b@-mi&c-s z$ACIcBeX-vtc%5hjM=n8hYL4}sv!vHN~L);6q_{EgIp(Kiv@M=%1H3W3ZL{#&t>K9 z?yFA=2d)P!atCjI=wKOFEwAq}lko(LhOqY=GCAt>8Pl>AeEV8i^~nsdWOQc5xi{1- z+I--9-U%aPkgkfTpY1rC(2VAE64@=0_;|%ysmwx!Gl`I>UpTygnnBT4Y_4AX4ILi% z!ZtmVE)Ms)VA4NMEv-zT+%H!MGY%0NC4Xc_B`I!o74Y%r=X+ZgqGE%4PBi?6&J(yn z@8X+B7GF@ZeK%O<GUWi!p+;25_Lu1Oz)cr2zmBZiE#nJ$6)BPMz`vE;xqPg*kIEQq z^!<cr_!cgbKZgr0)Lk)22oW%~1gMmUjCy#B<lHA6(>MGcNne=eOuODWhd-~#hJCIX zqZHnQLe1)uC~A-e_BUT#j$vQtL1MJJM;x~-7>enWTI&nZ9OwXM%ZBh&$h23X?X5M2 z3y!c{yB?JS;46Qfo6z4fnk0FNI@aUin3#29N&8BVi-J?P!12ZWgQpAnOKr}t%VDCZ zicq|Zl|6>==!2-1JYitr%R*qi)W(w39%g)lP;#e8-7B>Rs8gcg^LI~I9)O=?k^gu* zct>H4uEun)|H=@Uk?6fn5_O+g2zC6?vnzt{M1C!_bNCU|onSw?rS>8tKjHYxWkb>5 zEIP9f@>rNxdWw1?a~5=kW(Pg_R28~5H6Pb!-TT69B`QtXk~aK+4~gqbQP-K>gOI=C z(rdl@)J+{jza+>FobFxtQF~MT4?mw~^JV@4eF%FC#vPdgPUOvh5DAaQXGg1`^9G{I zChT=%Her>)c1lo4FGo3Y{z$n~OLA>FDrZ?1o3rVY$Gni-YRzW<NQM&wMDjVJOX`aS zQgG+?|Dp@8tT4x;KaZ!mv%sIo|3Er!Y#8Cfb))@06GwXe^9H8bZBjq$+|3hHo9(o4 z<rIZTBaG4&7}?q_<N9^1CguQ9OOZFve4$eKw&tBot%YEQm7R2+Y;&H#{*!d!y1Q(` zZ>PJQ1MFv(r@r=vcQRm9(bR`Ob^OQiS4k6OTtfCjevLH)yll1$$0clD5${O1ujiG2 zR3K!PDTaGZR>2<jRr9DTJIxdCdEb3Z;qyf|&_}SY0yWk9y;1q$&z|dxP=|3*eO@&7 zcb#K#B?Fx(k$@z8Z&2`Gk+5KJ&G1!TyimJGLE|+bMO#y$F%}Ib-gL=4SmVwNDT(2w zPF1R34cAJkbl)$F_SFopA)b5WC?cD{ZOwZvye*mFkE4Pj_DK>J@Pe0uFnHlNF-Gr? z0-Fx?EkHgffhEtt`FB;!q{uFrNiypwHO^aJRUx*megT-c=AkD20TRmy?=K65$WkqE zVjMfRK=77VE4bhE)oy_XJ%Xe2zARlG+Z6hz&A$mI3OCX83t{tbtYQ^99TO|C8=c$t zwYz(UVwFgB%0vFLaUz&311a~6%y;8dENpuD1CZvKRhlfF@?&uKIEFl%f_^Yj3X5?g z+Q`dS?wbg<a>V)~Xp3PO{Jl;<kgIeOH9vyFsUDN@jV?Y`S6sf+V8iGbkj}g(llN9} zz0rHdg%818p!NG>Q~?>SL7TJh-#3u0Ul6q`!psMu?AHSnKc2blEA}DRjO1wZndQRq z^?;l~6rw+9O<XUVg$f@TX<KT*lX;c*ixyRRCqgpr`o)Cy5~|orgUIsN2?Zhl4{Jb_ zzvBkDbpUE=P6h-u8ZWTgH7QQ~x0wG4nX*=tp14bttgz8=`YMk7U~R*lgI)d5pLm-E z96y`@;0{CpcL4j;pY^|eocpGLCBRS>^8EO3_=g;SJg4zjZQq`1wL?pTzDIumFZt*B zpDY!S$3K3%A<ghux>z|yBL{n3dl=rJFj$bm*IQs9Vy+bualU~cikPi6;!7zuZLo;Y zziMb~*DupvCEESzkby7#QSb(4@H(WD)e)y%lO9eAEZ0Mj7X%|_B!rIh3?}QwExtAS z?ygUN{cTL6p>R;PsE-rpn-U>+b3UK(!!8b!7Im<l!}fFy!Iw1Wk2GDI$Kh<<0RlFa z_yo(gZlx-zCwa@hI#`Te=$D$0n9SG!u#*svB4JP2A8FLwnB;=|*Rez{ooYE;WFiT5 zt|+vxaKF5zlnONsvAEb7HI|!ovd2K+A&!E7V$a@<RDZ{yR?g>lq;VSw5(c7TvDZ#M zJ!1q6U%FFId<{1u>DZ+HAOS3{Zzu}6yL2Rk`HpkPtwls2Kvicx>0Q-QIa4Kp?Q0%S zZUEBpx-ALUQOVK6Apj^t3dz>U1a^%k{3i;I0Px%2aS~693D<!1+PlFGL7PnKy8>u` zf+u2Pk(i$o4YIt($x5fd8~(t{y;PE*AsO@bHwyH28E#d^%}#8AUb|z*!dMg@FyNDs zFa+G?;jx&*4@msm>_^^d81NLnX?p+!>D>#ZC$U;9nZ22Mv&D>+@aY$)5datdgiUjt zh>sx<PkXSAkbuvuPu*~jR*%0k18-e_G1LTO_>#n6K@LAxMj_~uOEd4>6?}`h*zQXh zl*45<73?=xpNh|%nn;%XXW#dDLEtI^h}>#`4K$lBv&;UkS^$oGy-dj<Q9r+vm2BV} z4&EIBfn*v891Cu{+!EWp<IrS?f;mk4LJ{x=Ez~ucxIzzrn7so$5B*JlCz$(x7WRMI zOp|h|7ekrf8h(2iz#jiSm&bYvK^8|i;JhM{8fE>}M_q}l2tZmH7ykyBNSWjd026xH zsGejV=YhLq6zW0|UI~_;IenWm!fSww0Q9#5KkXP(=l$RBWP0&&>tM|-TB}SHGFVcq zmO@a&4-&kcb~#myT3y+;vTKKbEEXLOfp^k=U^BH=$lAm0h4C|yq(w95aU3@FCu|PW zHf;|q0kwA=2MF=S^+ruqU<;BLEnOW(3L?CGI32fiX#hDuSa9c?opT7d%}tHO1J1Wt z--bQiDk0#3Cj(%!7czszOnKndf$n=*q?e6-w1Ebr06Wh4lp7@+p<QQx_@#{X-sM_T zhNcG!-01R}Z>Mk!af<1()73f}e;xtSE`9}<b=7yx(a#zT=^eB6k6_iUh^N^<!<KrW zVSQP}zic>1YXU0D?XPdN87ySs=ZZ&ic{aV^xxEcQdSrMkC%X)&50&0%)XL!7bKMpf zBMpKAX077VWGq>NkK8nWvO=y470<En^||{|^qKJ)lyS1U=8vmR38!UZv1#ap^lJ?d z5CD1blA6V^!D1pdS=q97mhO2Kh+56md*s28nsi`IC{6D6<Ha+fn<rn&h{b%5N>d_) ze8KwqL3IJBD!dGX$MaK2h<0DYU4%5E-%;yoD2T8>V=>8XM&5CMMk?#oo)WOVQU+V3 zvI*X7|74tRvj2COCsaGNZaM>q0S-Wz5fnBpHrc1uOKxD$_9N?)e5s?53Jvy)?H%`5 zf!MCDA>h2i(MNHB^SXhJaCg^AhVwI=!pR@sjjTDJM)bvDO92G6w<qVz)X{l_YBt;c zyqe$9#Ctj2T0@?H5KEb6e7<_kZ+uvxKX}0tU_QMg7F5IB@IzBFdGax~0O#t82t6Ee zmwzX#-2M*VFcRLKVXH=4HX~ZS&?%G0<2DyJ6Ob_%yxasNkg+V9iSwMI+*f9JX%DI+ zVEJI#5~@5E2D_K=YbcLSn};Q<@z-jbpIO6;e=kI(aBlX0Ka>>TLHdQBsCU;bxH~U1 zE3`_UK4LSdy;Fbrt}U2GF_}aw1j62Q3Rn2S`xY_=wHm-=PXIdsT2NObu-7Vkw-H3% zY@G%&_*?djz>OVh<naz1`ufxU-*G-18!;W-6^NbRI*l4_RH%&upLE5SzI39W#p5|C zPrmuPBmy>n6r!~r{`q_;QVlRq$LR8r(}qDOI{j!G_y)WvFI~g;5y~(p%JW;>q4b{5 zkG9r7a8ULUaQ1PWXhR^fSdwdaQF}=8Qiz2kP#P3D;F83HVL3UOr;14zABNt>U5YBx z0=O9k;wIv|Q2;mNhk!k()GCoA^SPNdaYxD?279A_uMTE{nAYg4DK|zDG+~4{Q8^J7 zADm>yI&{hv_ggr}e5RCPU@Hc)wC!5}Xy|zD$0!_UYx5kPyf$dUmcRM1o>LqZ%^eKp z2^U_V`>Kc(p2(LX(<OZQ`S_Flv#`INu=oF7LwGsrT900(Dq)>LVy3y>i$rn0U$P$e z7EBp`P&{FB<8R)MVD7G%2eaiA<L}YwUt}QK@j=)M7~qufrTLwn9&QCDdEOM~4X~X5 z;>GVdjGLFIQl{BMfTI+qkALF9)H;3Wi}kDef9IFr@WU$uYB-7e;8BiA49hr9b}5%` z9HR+mNitVwD*`1_p}{Qa)eB`pgdU~;Ph>rRrG_*3L{L%UA>?ORx~8**l=wB^#9BWC zYNZT)StgIF@hSP-AK(LEyM~ms4L*2VjDI=;%QG&=4;c7mM-X6FkOBKQ_=^skU;ndt zT}BH66f3JM<Q|y{=fpt>xSPHOI;nApkus&g*7LsEQs(@XD*xGzAGjf7suuS)z8O$| zvdteUZ#9cV_noMmXn!lipkRF#Y_k&lviyl=>%mmsplcU!8i!+^_Ew&+6Z|X>d%QTz z0Z<rKG_onC6~XT_!gIhbC&a;#|4QU0%M`#$2vS~~_{+b`i__{X=jsv?aQlUN@>HrP zdY{eB(mMkF{awx!aGni6UDt3?0u0)J_vKHx4C!zbu>L^z(<@fT<!{aE`TVTXepgR| z1OY2eO(WU*xB+V^ye=sHZGl&xW}Ou01;|kS!DD1OiwEKVj=J0j4&dqFfavFh%0v+G zE|*D8%#kqzic{U4Jk1vWYPBomdw(+NZ*57JC10=rT&R))2bDy9?eFsU{7NZ*<F5{l zwj)F%;{Gh>7`_<j{O$r7&<g+e;CbMyYHb<qu=(t&A^5iWfi?WnA@nDT1}K9CCs?+a zPROo5L>=}(3tV)A`YtO7H?cm`iFDX6v=>_dn4Wqs2Tig1kP%)0eC-nAKw1XqC{XHP zn%^I^asVD-%yp1Pm&WCyml2nL=Y=GaCy`iWZpQ{T8RTR6#v-b#Lr{&O7$h_}YVKXP zRS7|4zJCBv6S56GX~<TfvcRAeeFZk@-?DrOQTxBd5*;(xW92wm7NcG$th4ad5&ss6 z=>bup7?qh3X4d#^2%(-yBY!W6NdGrLvdAqWJBt2K890h?1X$hd<qP(ILIKE5bb5b( z7)ucFMCZ8ddqi_iB@tMmXB+x-Yd_x|)?J~VH}ws_x0oEPaC7K&DM74Nhba8URWbRX zNjVC0w=ExPIzPJoaN>&-K;yYPMk#@xq-;{VH;_X9M=E?SaT)mDc~?adD!fzTh>P8E zwLD&1{z!nhG(R~BIvfLk><P2e(anW816m5s?*VS={yWaGz0T8K^s4n=ssC5^&|BPa zm|RQ9R<BwnL&9+2Zh#-lxwySuEBg_{`3s>qEXpauP9TIk9s{Z=noc@HDTf9Q&%YQ3 zP6r?tbkUB;5%Y61p(z_`8sNX<NBN#04ukz8u)p*$Z!u|glRR60A7}w9V!pF(hbzOB z;DOzH_r-efClEjd;A+g0>BhPE_8*0hSk9%b|1PypeRX_U7jHRmskk!E@;NygOyNZT z@BXiEzQ>=iQxsFk=Fu<}itDO=*YwQkZNVu5l+yNBE|2jh(UqGc0}UNPfHwjliNa7p z9<vg#O9{4`1EOeu+1KztJEp=O8Uw8D;Lm4nu)m5r^rlCb5h_uvY`z9gRPa+d^J1{D zhX)6Z0MS_GyYI2h!_8R>1)D-K=ZBecnR&CV$BS_((DmBiY$qPAbeiBXYaZcJhtB;U zPw`h?`|~<%#?;?m7_76QGIuRXd%0y~U!Q#Naan<?&Fs5>uLc@17sv2h<{W@Ug2N3` zdWU^S!MfiEuYRh`a8E?Hm5z__+~ytrWGVnCnMwTNb6*ipz@?9UI3MBuu`CYbe7S{0 z(uV53ix)sC=9^_Z@@{@?&}>MnNVIbIoK3%$1)YfF#kzWf8XT~7#55Bfn5em#(#=jY zuZGrBq%`t>`L*uj(TG_J<TLDlI$D3|V8D69_!-dGEf;6$hT3&i@(Fm64!1o~&>)rM z9HT<OY6h6omzm){qjo$$-IKXQ5Q@8;L<1Q4`OCR1KE6lhP#-@iBn~yhuIKHiN@Wo6 z$1%R!{qGj|7XlHXk9Yfv5-qh()759DuUP@O3ppx(%t0(<IuCdJkxUA9j*kW<l#}u+ z;g$}0O?!Ja06PjWh-`rMX;-P|(bX9@qrFWiQZS!yv_+ci_h0*L+O9j!p-~{H!KU{~ z{<%Q}jyX|Wopp?+?1=P737@@Yt6jhvECSRmJsGK>3mYwim1TZ$cBEh)H;>IX3-LkP z;`V%hTerzh0~|brLB`LrM0Ct?PIJ@{6BAhC-f<Sols4eRq$)RgqyhU#cLFe-gA1w0 z%eOldfb&(F;HRvmjO1{u0m#7UzS6<#xgl@V>Q-d(=UlD|oI8-{Xu+&Z13|n#nlE1z zIO)2t|5Yf$*DEF}vjupq8rb<_@Yy^Y*k+Y~gXxb5FVH&_UZ4u=ZAFL#Q$&z}eP@K7 zb6>2LL<w;Mzzz%`9_-m;Q;ISGygT7iG!(`USe`l`;SmZdiSimCIKbM>;SBn?TH|K6 zDKQb1Ed{hF>IO_W<|J`-I{j_1t`#uesdBUoBZmy)`Q6)pRiLAOW3`M^hK(bFc*X92 zKNJzCynu*`Cm#s?pHVDC3~SyQajaqhCs6$Tr_RKnN~?rwokMraXkxhJm{*~A`$IYc z4S=a@M}PuY<R>-<E_iuEA!C<_DRjsRSmRUC3lCV*YJ+7Tf10_!Vun2rG_318uni@$ zSO5moOmu|=f%$Wng|8|&dI$A7TkUFpi6u>VaETqyC3WCXh*OEd7FR%+_7y57in9m! z<%U!aH9Zi#fiU1;Mc~paDvuXS2q?sVNYG|I-_!SHkk0sbRJ$PruX7#$A`EcFl7csh z;v-?`KunN|p#a3I45Zl}00NG3rL<HJF{aDPR=4FTXAg-o%?zazFkOg2%4=AE+*ISs zc^*o8Q=wmHJk?++_b4<<ifBrQ%{ZElvg9WDca(z;O4S9XEVD27e@nT-2b_UD9z51R zvH-|Z0Rk-ppoCYJBLDoKwm=IEIGYwF%X5HKIKsbN=mtLT1ONp24Q+T@gLBzgCtnsU zN<sLhbb5fezK!Hp15~FkFV^>elp?xuH@=@|!UeGPzPKxC0ePx}si~(D053Zu=(t^| z+q`yDEt~}bc1~77C=uu_nj`^+3~MS8G(4Q;z(`o%J2c(OiT{~82E^x8=vc7?J9tta zoDYaaq@n>TFy+dVMuCJHKWjel4qdmh&7@^WWr^jykbluKEt`(pidtHKA<1eW(Xnn3 zK#1R#wIFoec@5#FhdaQXwR`RU1n5<7awa`}@o+izLjg4w9WtSXKNGi0+FXNWRPkhi zfb%<K_el;g2u}ST9D5rc5B7JLuXWw-kjrebaJs;o4wu_&Z?*3t_*({_bpGS-w)?1C zx%550gqI!;WM*jh^6-Cu@p6Sd%f34Q(X{)OOACl!zkj?+p{aD^8NZ)?m9m~M{R3<L z9Os*szxz3lI_EQ@0zv!D!ki->N(P<{fDBWgUrX^O{7<l<8xNtD{`4N~3jh6SjYJvn zlcnz55`M5xsOcBty$pOY&Ro0KhmO00nyE%xwLC%BeC8a{>n4JKfYhS94+tNIE`C9& z#QjTg@0Gtq{^zqnvk)mt7XWE`is4pD5XBi!2dTr90Vvx_5n4 ?1y`Y`2!u%GjOz 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 delta 74719 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%0AsSt2ziZW%+N4N-Si{5ybL-IYYL=}Vcf{js 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%0AOVaPpO*m6Nz~NpS7<UO( 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 diff --git a/files/c/bonuses/10.tar.bz2 b/files/c/bonuses/10.tar.bz2 index 61f2b59f1e112c11ebb17f6a507a00def74c3c57..40ebcd9dddfebe1ca2ce8e326697b613f28a2f99 100644 GIT binary patch literal 234820 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%0D2L>0^RFt8m~gu8zVmu1LFu66Su%T_ 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∓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%0Ai@8yJ=$Ik0u+i_ji-j5pU2_ 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 literal 234836 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%0ALLL48&4L+gC=Pf2X`X#w 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�wHnB+ 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:dT#u>-`U^qh0zX>xwU$8F5r&Ib?Yr&;{nxs!Nji zYGUGf8f7oRFu}nOO}sy;RnH5l@1FIFzH1b@6V$BgJQPnbWl80{SaAn=+vtP*zmT$v zCeHNhtP%%Vy0v5obicc_Oi;b3LlWa;9Z?!q9lw0TZ>eR6&|GMkosyrVf~@H}b|shY z+(dp(*<&#?*0<6<T`JA0{UKJ}g)|LBx2?`%t72&raOO&kH`@8Ihi8lf!N~qk30zuL zvrNT}y*xFv=7n9IJ8$D3;A6v%wS|tm?SqjP>94F^Cx&CTW}i-)j!e-i6I{QX6KPB4 zlCuy4#bk}`zAsgV6@_v<JW?)C=c+wfrx8icX`h)LUYh`=Jd^3AW+$&e`#dTZnBgJ^ zJ*c3u`Aaq34dtmD?jURRDR=&ro!M5%e`wLqdVN`E4^IDY(LOc0(dI9{tnY$dXLL2W zb*@ABvG84Z5dC^Z4>pWvB*yI#j;OPkvUxWpZyOAOq|1{?0B%>NrCq8Cas@h)+*aOX z`+4LNjvj-U$^6ZmsySc6NSx8-8$6a+2BQ%9f9~h=5ZLrrHa&YBBXh~5K;;)vH$u@Z zy&2ao3wqb^0uTt>jqHjt5d|tS{d}_;jNLMRyg{F=(~4asw(9V?W4s09)mzJ0^7r*e zQrwLzi$iYzoz0+g$L#hG__7UZ1uU)%0qQQ7h{}LOash%<(uhO<M4_lQ9`ieLV8G-p z2LWB@7eKBA+2-#Ra;Gk6-;0O#({7}KKJWoBQptVG5={>uMs^T;K5ttyHxEt^4}D$x zU6%H6yIIpVnb9qiNm2iP$EX`yFGu>8RCz7Ea#aF!p<(~x3<>Ak>`x2(f?L-GnrnA^ zS>1D8Qu2s^gU<*6LI53C+41!Xi_=7v5)fc#5&~hU3KjW5<^D6`tv(Eoqx7$(fQBcD zLjs=F638+7apig14ZzhQ-@4?*kc28<ft@ve5%|n8i>MK*E894PSJ=7gUU{U3r8*zg z0>jj4|Dwzda&2|&(%3+A&dM_WqJhmJtsm=DeBk{G_-MY;s5-z1WV45`_x}=iM<1_) z*layDC4xE+Mltr+u2aCRJ4sOdOizDuZ*%2nBpy9$xM9soBIxn+6z^MO?9mf{6mOZZ z6dT=BC(JH^7o992yNG=U-ab0LBFNig2dm~bA2qAfKXH4F^h|1`EC`q_Wz1$R&P0}< zjXhi&p{Z{;zf5!lZk2R7m6?G?%e#fC4NU$d9uu49>Qoc-FC>4NA%ANh^(4Eo!XTY> z0>|b(v*c+@QCmTZmHu;+a$?ft|91aEIgq-#?V?Ne-MQ_iEFCVDIk||ZvXf`A`z54% zh%_>&Q_nqjQyJ?%>2b#<6puq+Y$IYDx0JtI?_IRAM^hQ_xx5xYLVQz3sxD(sT(+^D z!UmU@dwTz#TLzmqB^Q2^&*i?$l-qQSqy<f%m2Kaj!JQ&Y?#X6l<C6CKJh|U4QsE9& zo*!SYu<t3$p)QD}fvJNJANF~#g~^F2Z?sCuMSV$`AnbO;18TqQS3||&l3?loY<ku9 z^&D-rXR&%WExt7-5i@<?$1N)t`Nn7!*Q)bv-tdSo;LOJvdFG<2wTgho?7q{5m#$K8 zfAfyaPyNgNvpdyM6t->ku0C7QXHH%JpWrq*5_av%))v9)aN?kd?0q8!A{;o<|0A8i z8R|F#%a>UVx7HuplKOzRahrH&svg^1%7id-kP&PEN!KmWeniRV?6ZEMCV5k|DDT$* zJ3z$0?f#1P8bx6-);q%Z`f<ke?qMu#9VV|D@X24E^dX>qi-@_HUdU(uD)d%Mhe@TH zn(~k^3(mA9M(;x}C}k2T;b~0$k<@~!k17ms7z}%Tk4Y^P^df@8OE+Jt?=ZX<hTkC^ z|LQq=4yTky+_T$qa9tgq*7~KVa(m8$YK2gFB51ZZAz>c>xL%t<w6Z5kI`d6N!}l+K zqFy;Yj{ZUI((_X3>dI`d-Pv5-`>ELXdMEy!=#_djz+uAN603qQ-VSwffGVkh(8bqb z6o&31FTMW8{4iUlsn(*2Rr^t>-e#RMEp%-IQ^cmbpnUmISGN~$h2CD-3+?H?x%9}P zVBNjLi{V+}Pz(;IdS26Igm~I%G7^6laY%u}3(-jy%j)b`;EAXS<S8UPH97+sm^6!~ zPtVJq%YcKrdXq%a%t9R+v`C=0Lbk%Yo{Gft@78GRMuCWPq5bGEY8D(=u4C^x*+1*P zic=>}WM-_+k3{X*-^Jm=h`bkCnZKK1b%`3!1CN!KG$RJGUm)@1rp-NfjMk*t?1&s8 z2?n@u257^#o;&OIiK8a#;4gb{G_zEaw$e>n^x@+Go&z5=`X`~t;WAyuvmnRv6Y_gV z9fIvQ{Fu<EEZ+5EO3}!00IFnz1$Ab1<*Agxnhn{_hN$|N+{VgNxg3*mmLQVpZ%Eo{ zo3`-LmYpU@u@iHgdZDPmeUjloQs-FHzh^Y{dJE8UzpG-{FA3bSbbSD=7K1ox@jrq) zF1)7KAuxo@B0=;9vYCvs@>~&<;XS(bvVRIdw@VfR8S5q;vFldaF)Ay-*R<nR+|u;T z0q*_CN)cyo{9G^@&WeZD{+&5b2>`I0`~mgaj#`RLWXRRZwNyO2&|PQgOT=^=HdL{S zY9&ZDBc4T|0QPqJiksL!H>jDLg{OkWNK;J!_SKCO!k@nuyQ3-1=6m0*BMNUirbu_W zTWW_;zm{V?)1AK$exRB4eW?w+Ugt)>LH$?(F%FO2ETgVk>j}L!He9%Ail?BKH%6J- zwTE}36EmYVe}#|YT~FmnK7@sTwYbAg`6ZooGBtf46XP+ii<+m@{r8Pmv(ztBv|WT| zi8ppqKb(@yRfW+xUCq-&sw>~j9^;aQWqGWzk;tZEqoL9JpW%x&7P%d!VddNTK;f^# z3<AM)3(h}ux>0wp@&Z2RYk|=Cc~FXzH6kmYyW9s&e(39z8U@^)Dyy59{@|ic*?xqe zZP?s+ymEc8z|Tc<$1>B%m1o~~wvU8-j3R~UV-M;%Jv$fg2em4^6RPg}v;P7Xg>)a4 zeCut4l)_6{^~(T1;H-Eoe+t5~4E~x))w0=58Ewqxg;Zm)mOXXcE~s$l$ZF0mzz7-v zZiFE<(Ud7+W;nO^(ar{@-oSPfD<-_0!ZoYx!#|rRW4am|yg`*?Dd>)aV+P9~y{M~* zKJ*f-f?h({QjwWbjdZH{JyL~R+6{;&foD<AFCY7pUa;ASa3<Dos@vgRDy*4d!pNR; zoOXId%;<E*LhSJO^Xo-E%ZfCFoP=GE?ZCD|L7k{oKC%P(X@xQSQA5F+hFU#y49wn| z8P4lN?{RgTxOFlADLuZU`g02RxTJ>FJA;6x#{Dq_t_kNiKZ0fs5mpdq(`7Nhl_NPT zO@9WsphtQJ3cA$qI6!L6ui0MCooCQ8{Zl0@b7J06uDUG?{^=2ka;|6J_`9!n0yPIY zr{fFjy-Vq{rNu!VUjhYNQ7WRsCT)XBBpKSS6wEZ6?J9{<OF$#G+PO(&2zDwf3@mUi zPJw7;loF7ZeBJ>$x(6mGJJM>E4YOY|yP4`X@bP&5+dEVLrvCp%6?H}it%C|)`?l8e ze}udFI`ZFU7E|k3H}7L(-K%(50vbd3#inKcSo3K+;Pa&MHmXLaXS_&dU7HYo%2^V; zDsJQdzK&4<BQ}nzEqQKk+N?NAP{RF^R`Lw!em&|4JO1wqMJ0<&_B28mkIvIfDl6&I zxgnha8`ZYov3WD5?O6|w3Rwy-Y@P=t9IS$Smaz)K?l^REi0pv|1G13&pzT^+s0kPE zNPJm-rOjF|h<}R_BoX2@q|8yi$|hEJ6c<1VpzR^<i&$LeJHf?|0m&!M>~6eEF1ZT{ zF<GM&=4_jE+L@Iuja|t)=`}p57M>BxS%vs4)H*kugjr@BlsVJxnpZR_Ynf3|3>;i) zEA%c?&pB>UxV%DFsxe$Hu8WQN4!fg%p6#@hD2t+N!7k|H%<E6(#+OD{cSGInSgxx@ zVEL|tr_(;haFb9V1r1p^i#|w8fyqcsv{tr{+>`grWB2%DU0<belWMO)g?A+&kM>mN zYxpkI5(nfi#b&k@zCKLTSS%r&jU|-?pXjn`nT8fv>H!M7(MU@G`fo0|nuC(au-cs` zv^sYUMJLe7Z=aD8Z{IDH+IaOc9qU-Dl$4Oeo+LJSXfvS}UEl1b>dZEyY*1VGeS)&F zAlS=!TM9XUPX)+o5G5|_CNn}e3Z~}>^w3$1Bk~xCR7~oKf$oG0_sEKI?q!A5X>|jk zuas(Z)C{JMt9~?x@oE6&!iS9o#wDh2EmttpdJ)LVXoJ+%yZm*1YT*N5gSU3&$;Uxu z+<5xF_i=hJY!BACT_%2_g42heoT?ILq>u)(`nL$TqslBoSh8-oPSlq4CSqYXvv~@S z6Jpl>nq5_x^{Gru=n?A<!rU%leZA-%7@f>$@C3#p5vhHUz85KOQ}gYS6hKdu1G><O z^=v?R2=oY>Xf}malUdR(stw5$7zEYNNy{B<1TwP;n+?BG=DlBq<lRd!)~BQMJW%m_ zC%?+nToSYH^!R;L?u|riEEjb`;UjSl4EdABfZO=Tij&3I!37*BldG7H3IptT1)0Zy zo=Wav>bk&<)KDy<gO=~m{fkw^cj#5~OZk}KXakNl8aN_AO|FP2qKT^~W7bad+N~^x zo>a1TRRMGmc{n?`yq&Uvq6Sxd>H*8jS|jdvPX&@UC_3@<W$qonzG!f~2@kKBmr{PL z^RlD2nF^srQpUDQg{XBbmp54kG>rs5T1!DOZ?Sv^2S?`CFD42Q(KGe6NFLoA*$x!t ziz$52Wj|DII0N~qERTY>LfLpN<i7Q=QAayLo2I%Dc#;dVG>*fqfG(U$CqD0=loyTw zA3mWF1R>w*yA7rVNHFRhCX-I9+b*}J5o1n}C0Bq&>o%5!_lM*BZ*)CYBseYb4oE+@ zR6JtR8B+;S^$)1;tCl`R(6J3CX4TPL3*27RreVk9FxL_z{EqN8sle!Rc!evYAY#^C zo=N-pN{W=!(9hlR(`UpR7}8{i?w{WkFKy)zbYzTekTe>tV4PzT*vNPQ>EjL<5%?7t z7Vo+UDn=6$d*s~%7FYbt@eZd<zC!nbX&aJU`sa<#E{61lX;B+0bEPTpxiwm@$NuK4 z27Y?DqKuZmS=RRF?#z?*3TcXUxeR}W#eoQ7rkY^o7mfqPOz@e&MK&N9c$i=(T7xGz z!Dy>}46%-QST>r+kbnzohM?y}41Ra&30~rZ70J8BUuQn8*X~iwa3(ds%7<HB^;O=y zV*Jor`>vv7>CQqO4KukzQ`I6Jog?ovja{;5>T-5!SnIdA-Wss}%meN7bqaw|he4TW zOe-jTUc@C{UeTs>+OwYV?ls$vj@BZ7DK1^Nuc$G96~f%z8)`|_Wyx~{Wtm0|=(j93 zF+ltYI$MKEg^!l$d(#2hLsRAb;K<nH4~?i8-l+hGM(v-*y5X7nbsS?*LK%ZaSZ+ZO zCm3U5-vKBcC*S7yDuVgtwV}vZ0Adz(c9^mhhsQx1O1w2ZS`;Wly86)dY_MzlPsU7x z{~*9H|GYyQmgXDzf9JD5hgI7TIL&E;z8o`x)I^836Ql~+0*g;-nShAVYZkF9W$;wR z>4r|Wi5iSY=T|e)W^i&DtQs!+8h!*ge~zwY2$3*2>J&=q@~*%E$+3uwln{d-0Jz5U zywMrgpg(2*zuW+H5ZIm{OUizon&{H4X=MPDjT`DDZg=;q*q)tXE?MX4Tok<78px{P zwleCaXWxBY%JV-ki&nY6t61{ydV`{PMDq7|Fjxb=vxPAB<=#QkKy8Vw{%OI_V|}8Q zckGOVZ4?^Stkg4WTx$eS#2KyeXU~wogkpz*AMD`h?g7W9;hzS6@aiWNg$zHdp8D<0 zh|s|{$f4LJ_<DsA*I>y{(x<Q}Bl3@&{O@yRp*$F$Bu_mY4gxU!nSAl8_U!nimVtDh z1irsk%4*VrTSUXe(%ql?Bqy1W2nj{O3Pd1(s;yVYR%mASJ<I1y{LRe_FOVCV&4M$! z^PIlHitmk;w;N&?&#yYyRKVXAK7|?uvSv<rwKsg#JaO%a+?NFqY>l6@w5jq#$UgjV z=T?DLo<NOY#pmpD=0S6OXebz2WJ7>)DF9*IcEn_1lY+u=@nsmc`Q|uwRH<?5FCkWn zP{Ch+3a7v)E{r}^MS(8U;LDs&wM`?2XNw5W&Q~RQ?~N^LkLa;|@{v!8D`P3&l{Yk_ z45s88Z6k#W^dQZk;0amoA|mVK2Tk$a=w_>sR7+H94mx`9^5F8f)^a5m#XxJ=*teJg z()m4~9teZx>xkdCW!;y^m3;Hk{@<V}ZCA%fg_lW8#nmC&N1T&fzNw63PO;;zTz01q zF6|!+_~KvAX-%S#+&g>dfPJ7k<eI8fV*8y1QpCo0V8lQrj>NPpF^~D|#WI{CS6!-D zab_AKF1(myp!oBB%k(Ga9`TQdH(>~5a);A!rzdUO4QoV@0&cUT>ks1d|8$r^Kjm6y zuS{~h-d#R4d6jiX01T5_Lue4}KxdllcK|%kVxq(k2v2wrAkI@G$2op_P>8fOY`w`- zLVjx6N=)FjM8%jS;v$zSBfPUh&5oSDEgQ(JC|eoU(?@HX?Lx}!r4=)%`?1l9P*|&4 z=SzOL4*9J=!5W`Xn|Ba4;&nmh+b7e*D??5@*2$Fkv?-a(3lc7R?X@dJ#ZbFgA0k3l zj;q{97Kx}Uq7RMQSsq~wml9%RoO^2}f>jFYYA?;sQ65W~=DI?rZDP5K878ugYe)P_ z4eG2cW;C=<V95fX5I1<-U~iOEQwtT;z|(5CK7wb9oMCF1WwPK5)5)=^vxGK(vx;A_ zBS3fNbWRz~u}QBp6d&-tJ9sQq-r}g9Q82Ik`Kh)|Pi*O?;7R!hsg8}ZbaNSXWWEHL zfppqD4p%`ex~%&}uTCcRreK|k@fyYC?Kw0b?KX>5K?EI%!cE9`n@I~sm6)9>zFO~= zXA0RJpl6@LTHCy=3d>5c(iS}@E0tp^g?bzlKh^KZi=#GI1vD{i;PMq7KUE0D{jxGN zZ2En$rm!2Lw#OB8=I)xJzad@mztP~PM<jX_U|aA8Lf)`IkDe^9jjXRczMTnqR_r}J z?r$OrpY));MQ&aDRoOk9Ev`D9y2UC5rVid%rh1=N5mBi!saudRhfp{F>!(4GA@?ez zHRKPde<DShhp5J(CAFc<57|<0h5oT-9sR7gL<?jpUqydM=EChctX1u;crOJ!_=HwA znpP9l|0%dq{Oa^5(H@iyoW$$Md|nmxg5JdfUwM)D<y??Va7<bfov2Q#+Tpnjr!YZP z9)WVUM?}LIzu#6~Gn1q3X)gJJFh;6sh}N*d=|=U=Im~>LFLfPU%NUa$?~P|lkH^bu zLi!(UY+yA_O?h&f-@i*`w&Gm{BeIAoD}e{H+$}$F!BQ0?JlNT=v!+=1>Bp0K!&t5s z8swnkYUyym<5h>tR8>B&8k{0U(fBX~4h}uAKmj=G{hjx^B&khfbS6i?gT><7JvAS| zZ857{hy)GFHl}l(T*ZQD%V;pX*U6FgPRK+t3cQ)f$V3kWc1$8!2W|?|>VMC0O^(8y zUJ!!Ud&1)6^pu(RNL*VfA{Mno-x7nrOOcTY!Y>&;`yltq%{s5z4^dqbh)&@tFR%CE zD;d!IQe3UhOnYlsb=F296Ckxt0_XMd$4y31si%U2T+Q=`Pu8O4&f?q-hB7#vk2iRR zMUaLaAr1ydwsPPLr25l;oV*}Zcby%An6n@Ia^a_jwcaX_Wtusu7p4?;`f5CnENX;M zdl4}!iNvJH5qdb}Afs#UtCBSLq9Cb5vTGgcg5W8=nMou`qs3)L^M1Y?IkKmT)c{G8 z=Q>s8Mfq_SsppF&Pp5lLn1Q0bnx);LV+pP$5ki77Ycpyu@nSlWQdY6@h-A|967H`G zJ<F3H+Iu$YES;puNd0Qc3d#INz8h5~M0)K7pKAaTX-`wrX)H$7U(x(KGBK!+x)UUP zBJ9+JFV(#0K+v2b4*-WXR7Gj|>Nz8~fU)!5P1){Q$%sI~Rh#acZV<u#@~e3NSOyDM znp^e>8!tYAGBM89o{TiXLp#jK98pLaCaD2dVo&YT&ZEJlQ|P94j@8+dgmeMx33+eo zBqE0ePdVT>t-bbK2)cVbf=VHP(ubQebc3HAJ|gm8aA^uV$p>+#<f|AndDgWg@!T5o z8#o_eM4%!<LiMNB+&9SbFmTWx!QiR#Hd4vk6ClDj>qtU3kCtY+M$=j+DjSN^5Z4vJ z3H!_|+KxVVVcB5DqOWazbx!aW2RH8CiY^`FvJmPMc30er{%EqVq3zYZ%+G$vp(AC7 zI*jh*%T&CvUR#tlOP@YHQ(No}IUQp8)lNx@_>OY;IBj7@wTR`d1;Qe6JZI8kB?XaG z4D+Q(=T)i)^0E>tB|OyTE;KRmYi{~3%m>5x7Yn|d{yU>_mEpd>P405>WAVG<dN>nA zZ5W&;R&~ujS|W9y5^OHunv7d;=ds9%s@|xtHkTtdROcpSWAw8+4OCaexyd~VIJBoG zyY6o3zj*~-JbSw={65Aq*sMo2SmU2F&J}3T;sgf|*1xq#;ZyS_L)aqFIjN^8geYFK z6K<M#I4y%E#hZPYMPna(;BMpT5`B0IU#|0q2da~{>J?U7au<bc;VC>Chmc|uw9Gt) zgyYh7-akIV*tIH+kUbmUz!H(Z$<DEc`ydmsm+&{7u$%TA4nAV%kUe{5TW}mE7M&gB z#`H*!GYE;63jW--|F<~H7}$S9o$z8deMZiexo=s!h>Qow8UkEKD=>KPCs1rv=}>c% zly`8-v;iJ;*v!K5$`ddp!hLEH0ws23SCtw0dqOC6<hJd0R8Z1!S|+G0vR8cep6l9_ zJyyF>l+30fCWcr2+;yUrA;~_BvLYTJ6{Qd+f0%0mIEmS@kcw~Tn>5Ti(1|%9YCotK zd<|1}T`%a%-S%&G%s7)qoDk(=KgQ-&lP4N;m3ye2z3w7}UXh6zs%uqJYAEM&6Y*x5 z{QNIkXY7wJa^PoQfz|AkEMbp((YwEU-(pD$@hv__b5>Q(J6e{hA(*?C`^vEjWOLkb zG8|oE@1Rl#M%N2gCz(VZ;BuH_rV`QqQP%(NTf2>FLxb<ZXt##g`m+t@={%>-o{2o< zY~bj3@M(6cMg8b{eFz;KONPJ|D1qg45l2<YK!)AqIObV18Bk_{B#10Ygh?$N9&)i? z;nNMLoEJ%r3?k`@l^kxUeuOE$z3U|#5)ZVU1WXLBCg3%{AbYVFJ?~vGizeL#e4Wds zMfJ9mzs8WKifQ3r(Zs%i*nC7+?mAboxxask4WW$AS|M#H%Q^HjcC$uS@ln8YbIons zHjf)S7eA#BXOQ~SEOzgGPOIU=rv_jU)ffgUdws%1XeuCJl;B)12}(h%5@cZ0_DX>v z1dWNIP--L`!U9N=V9*g$G^D|zFFu5}Km-$Ox8ZT>u0&R?gda<E=+?-@aStQak4g>D z782td!Ku1(>oB#(Vu6A>hWg!q3WSGPbd;4v4!yqqoj|dbi+>P3+Q>zu4xDxix;R&N zbhhQ7a?GxaAfYinmxVMO#0lAqwBP;Ranri7*m9*?sjRW)G_<(aolS})o=u^+aQTmz ztc2<ZxP)^RJ*4LC9I9Y(T<Q1W_z(9OgK@G@iY}z3jT5e<fn2X+I>kf+av%`J&4@WB ztbP3LHT`n3;ANVH_Hw6CzV#VNqE|d)0ID%{9_Us1s)<}aLa24x)~fXk+vTi@@@F~< zKwQ3ecICla9$+5ll_atOqnNtAuB#%QiOdEB&bxkY=2l0+Y0AmNU~!JWx0ko#M~U>< z#cYDA%)8RCZwM57PkXCE)tiJ<l?m_MP@{aoseG+Ye{~j|)?;G@{neoEF-<8sCfIi> zRD>a<fR+$ei>xr8o~<mw;Rx`zfffoH+zi3+CE)1BavPr|Yq~xr<*|>$b)~GUW8%@t zyw%*_@>?@S)kZ98TAUiohx!yla#f(AogCXmtB1>!&OdjX<|rM@q=Xk-#q7#m_ZeoD z(!=v-ExAu!Ev|J!9WN*%0>Y>)5r~<jRB_!Imc4;2i2vKF=bm6p1GzCQucTc3#>`JC z*tp9m3ceL3xnpP$2q8{jiW5M;BAJR%lGfgv+k&#M8@AM?W;_U3=ucpM%I2A;lQFf> zH<22kK%zK2AAIm^155www2_g#1;R^Aabp8J9V(jchfkcMXxS0SdaD^)WAp82px^|e z{6FJkSZwqgR;(bigrLCqS<!aveLX)bdEf_ByRBZZRovnWKmxd9HDeJ43Kj&sW*|Ye zy56i_3V@qq6BbF$ORG#!>0HZjBu+sCsi1Z6C}V7N&<7wNS!2I#V#BKkd7ib<i&C@w z=5)Ia+Qf<v>zg7^(n9+Pk+?Rd1kr|P?zW(N4Qzp<IWF2@fn{FvQJAY{k_D?b4~|~O z;zjB^5z`!jWs*S#EhxttTucfnhow|H!U7B#nhYSpme{~Wb`{k_QW2ISl}=zl6g7#S zZgX{d4$#Fkt++43n$>#cOB_{a{RKYK-8asi)u2JTiji3o`ot^)8bfcY4v?CH{}B&T z7VV~Lt}^$C7AKgw#_@LcIR_0?gDmgz3MpE8z<L}|7-A4SlQ>>lKDqDkT-8EsGMSK3 zR~uXgl-0>mWWxj=4aT5Q84hL*ITTLclG_1nvpmyu0XyK0g20=hts;(jPT9o;NWyii zzk91H^iA2Y-Ch%c(Y`fY#Ew5S2G)|w<Or@vhj7Wt4lT{g*lOT>ZBalfdV}NA%bb=` z&$9gu_3)n%+Ax#q(CXkIefWmQg1o`3{RoPVs8LO)bn8`6uxbPnnf^kODQen~vybsI z{_Fh4-Cfk5m!QE9#AKT4>d0$-Ej^@>c7XjmHhG#gICD9T?@;GAx2|{d@c^VX>_yvL zhMhPE)XDjGs)g{9iRh`B;z95xSJU44EO(>D`iqE+`=qtdJ%PrGoES(YYIOlKY=BM_ zs)6sonD(#gymub<n<bL>>Nt6zVP24%st%92lzNCfl$-m(&nhO_*6YqmRou`Unj=gj zCV|U7MHw1qL5YOvZpv-c7-h1OwYsbD%yeu!<pvqio3PwmVppjy<on0>Q~b{|i}AXg z7ca8ErmB?%9;N7ri8pK!<0l@n7DXgwJPTqnbh1V#993NcJ<VWduqE1a$vHM81osYd zBgkq>!n2*0!-Vkpi=T`_@3WC}h{9LnJ6qBj-W%HqjQVVNl&I9NQFJVsE)J=Eb7o+f zWVaN50KOu{QlE=O#ykMI7?L_{LCFY%;bk*@;S6dxl_B4*MVUEN4MvwvfSjhL4^HtZ z&WeC+VaX$kf>O~Ot`J>>X*uw4<GNvnNgUJPcxWsyX(Rh_E}t**S{Havj3NTPUQ+6@ zSC(%0YJP`myZZdaL0>jw%-vq$6d{VG(+A~^4eK}ZL4j|Zch0bX_~{`>4V7j;!M>?+ zuPD5HKCx+_nWm(A*w}M0bvK;coEL5Gr;a;oBCU~{?(<!gub5wxZ&M7Q?S1qCHLd${ zOhx6h*$*?EDs!Am-EN-ObL^9ssyL=@;^1!Cq|~wj&%+!0q<U0qas3vFoDEvwg)uh# z(q2nwO@tPjCSe%i9}qhPO}CWxk*<?;J0(V-D&8j8gm8ia)rPG|kaoE>$)ZI)W96yp zdc0LwIjD($u)5wz)R--AOF*pCvXiqvmwtY0-6e!?NUt}W*)OY-Yfx5mV@OvFt;pI7 zF_xRQi*p04q<u_h>rMP2^u;r#N6aXZy5D<oH(FHveVTA&JZUOEoUPHNN9)J*o}A(1 zeTE!y1A#G%DF7)q>`deb(PQHSlx|8fQdaDzE@B?->tGWff-N99-vC{2{<PNchZqO; ze;`5T^PbuSJz?$)4WV@EA~gG-Bfi-UC=DpoXOB=b*gIlcn4KJsnyId-&CpEC)Ps@* z_5?*Iv#wNTq3-I6UA+d{{HNM37#ABTob~m+Y%@nfEUWMGqf{<NE)$uoSGR*vI6F{5 zZtTCnedVNZp@i?2s)Z@1K&zKf;kEf9FCBy5<4S#H%Uh^6^8Dm5L|FeH!_~DJ52}wt zyX74V$4CJT(;<O-UN|@uv$0#Pi>bLfe>U*lY7#p?eK)JfMbglm*XpG}qXB5Yc}4#) ztg_tejAjFSr^{8rGwop;IDhQwoSuOX;Jo(9M4RW^1H1mAI-q?%@QSNO*^od$B+>qU zATX0VIt>VT==AXXgQrnh#EJ*m)O{qqXB47q%*i<7{XTu+-aChp(1GX^s!{~L`-m+} zY4nPnK;8m9gI?s{CA)Qky0ebSFTVSmmn;ASRp`Q9Gog}&N@od)kr+<>J%(}Y#@!Xb zD@HK;{xoG<-{~IRR-h_H%*&p}@8X=bHS2a$4v@gD`wX6!*F~GWINy9&d|Z9g>1=NK zb)#UTSos}`P~?6&9^TP!;fupO9zX1&V!dKAqg0$Qk(4bll`uX_z|#+mS<g4aooXt9 zodt`^rzo~{!zXAUS|EBqg9dwlg;T4^1Z9sy_PW$yt|HlR9BLB1_$87qH@!k2G0hvP zNBha)9S<GHG)5_^DzkQz-pvcW<BBSB;uiJ1IEO<i9sB|EKALl-CR4@ymG3dxii0o7 znXE^P%tip+|AH+!5E34-_n~}2WEPIpzs_-$>A&V@4vb9*7E$`_F`FVMWW!AtE1S9T z0{Bk+(<!0Gp177tRCAe4L2{U^M(TQ@W~{rCe@7V>%ySRr-QF)kEwJV&#K>Ja=^*na z{e6%(`>VyP8zk0`NUW!bG0%H6mM2`4T97&&%KakWQSd3w^FQ40xV1cYJ~K)HgT=kh zeOY~%3d3~x4n67sJV1PXf!uZI3c0!EJp8;6k;9B2tX4MHZD?=nT5i9)27dUUy2q9i z&g<b`6V1W^0nY#e!QGk*>tq_ZlQFKaxFvyxfpjr80MQ;ObuBSKhAp?HfT?D-db8AM z&>6Gz%<cM4u-d%u_UGWsNMSiO$-3{R6I#rjjEt)kV3dP+MXY~G0V)H_u~3w5`sHhR zi)4DgZW=N3M(WC{-{v8<TQ2K6(>&{wk-4HI-Xabx!JQohxCUSt36mf+;iwLFc&b+T zQX5}2>~6mpKCMlL0m;Czywr<4S1YvfJOGa)fDpoM{5>=XFx<oXP$v^3wezkQD-+J8 z`RI_@2&SkT+aJJ}<LDUtN&`#wKV?eUF97kcsWShJPS`YOZWb$~tih(D1)M1vVOG@# z)cU5kc2rD!32<HBE~~zB9Y%Fk4s1AEclW{-&H$22EzpHVIb;k)Py{N9&iEi*5ZD%N z+uC=ivt^P46%Gynh&;RnZ}DN}v;pt>tPZZ5Ut1C*y`9O5!CXQ^2y#oc_y*cXr*+ml zQHZW>X`g-@C_}4X_G0^AG~9X_;~z;?H!Q@daaiDsfG09(a*W4F<l|>b!Bow|ipwq_ z{_NtS``J0WS2mYBZ0!2WzxH*5>lO;9tfWfQO%y*7WOF$7;k4q?yfI!l_s-zA-R2&E zRc!&dds7iH=figd;D!sl+luLzI>!o=ij$*w?fG61<%Xvj`GtzK&PE*T$TFu4fRIOn ztw)=7vIv&B61SV@iF-zPRIiQ5Wp*o>8m|VdstGk0($#db)HRaf-&ynYZ_hJaXL_zD zrHF;Th+qkhFQ9|R)*L^KXO{17SZ$n$VX9^LTAUo5bG?_Sm8+JBZ?dMEI%dn>1gy$Q zPAAMPV*gBhpU<3_|8YEDq-ZDh>c_l-Q;CB|qon`7He7hlb&u93m~D{dHCr;*=<YNy z-C#F@)I!64Pywu{e{e^$(x2z8r*sN#n&*O(OA~8!EF(dVD9yTlkSFQBMV2y>CilIK zkBE@=rF}I~;+NOE!|_zo$MVIzDLb(w@Sw@|&La%iV}0C*`mJ%k7=??+GvDlh;g|7h z=}0I^xlTM<SM)yIVbsu458es+0ym%c*U$%ePj8~Y41N-91lfezyld1ISpCCY!zASv z2T=8T?+ai|r_wKQ9Tz~27Gc&40O7$-Jw@RteLK!~Z%VcZm!1&kj>5ybupaC$=X2km z)Wm|F3iqGrg@Oe^KO5)v@#REedlSW{ndurN;y3_r6%uCuisrirvno>UJ<_L6CuL(m zMh;6Le)<1A5jvh?9w7)Sa<l#DD~_{M+~s>H&e{#sj7Bf~gc)F9%os%=!Vf+Hn{Tq~ zl)B^um~cXa^-b6_zIspvt+?EnNN5=jp4%^8tJSo=j<26dkC~$nuAZ-nz)Wg5KWekT zGw1b4ZObeG6ZPQej(_!DJI6uDkR9$Wm1CAdlKdT2=39*u@t^7|T|T0o3HGrx-#}=V ziez^qwTj~ng40X5YWw7fYq-A=VHqYM=t3)k0Ek^j3F5}S5pnpMd{&kxJRyj`mI?u@ z!g<u7A@f!(;{~et^XY74V#D|GQBXBHUg3We|H0>vqvGpjFzz5>|4C5&h^$HU#>bLn zl4uz_dR&FOsO{c;k@$04ovU;1SoO=3%Om8L^McjKQkP^mWs4pURF)Mr{h6kwy=;vC zcJTSl?$U@+Mq66relK1<6h&Og0pQ+P{LHX+G)6#0I}_*(d^3OjOmrAE(x5I_oq(;A z`oKL+<M7-XNjNzDRI4@D*wJ0Ld_Gp>Jh=XZP*m=cU}E(8QPjn|(mhx?C)Msr&|CX6 znH0nH%`-2dK(WX?2Uyp#XDdW#<SoIzgweG2d@llht=hS!tT#$s$(Y&a<VdlamkF9| zPvd{eJC8m_cvEs`9pax~9Om+3h_^aGcS-|93t^MKG4Er(IXTA%S`$AvZ0VGkjH*DX zk+6RWt5}T%!nTx?dEDd9j>seFhSMzb7x7r&6C?c9Jeyq4-$wH<*IyF(9kd2@hiCu7 zD6aO|T@}jAAe4}PpBow-Y|7t2C5_y6YK>+4ZDdZxzJk|SV1_sDV^S!p&9-=+D-C1i zWv8IeZ}j+wEW60xM@uew*6uj2Xwg_v{;K2;Ys8tS^m2T)KMo?ykcJ)QD1>`W3%aHj zxWVJevkUrn?@(^HOHC!(!rhLr@q5~A?C6A!z88noce(wU&H!7sK;4&~P3mJBM{93U z{1R{@wv63?>3*Sja6ihYTF*-8aZ4x!ECia1sKy)Z^8i0`vLMuJzPg}~D{!#fEMM~~ z!mO8mq1!FDLUD#S>7NRNI%YoYyePBT`c2&2wS8_$Dfh23q}@i$KKc^BMNhr*N%?+~ z_ayZdAf-6sfzUCTL+du<D)nWTT|a^5;l1nmS>gXp!uTIo|EY^JFr%v=?F9CmR6N<( z6Q3x0>aeB43<3lC-Q!l8)0m`}u?vH5VE_QAY%s|a#6`cY@(87@c-p{YfKHK^@D}_X zyklK4hoIt-_7nFHGoKRtw!(d<&{g+EA}U4Kcq4SVjEsw%)5z-3=8x%QmIBPTfivnn z;6~?>AoiXmuD(tWkP%t)joCcLSj${9*gR#v13q_$WAAeEC$`ZNC8fE!hIF}}6%*+C zK9SFjioQ<y!q?lH{O$e!1$IaFXuVYQc}OdmBQho}F|+|?5vhJ=QHlieV6=^c=6$+O zeC-;9g*(B|5;4D}W4k2M&i&X<@CX2>Ir`fAc5kn6{0kui6_2iN|MzwlsHX;;pt}6o zh-Lbeuc(A0VDyfY+BNb)mGu1g(xM>-+-0FgmwzO-4R>(}<8hd!Cf4!k%zlW9nYb$1 zIoQB}iK*+>JS5aTLDZM;JNm?_>*6M19B@l40;#F}LSh?-?Fu*5AyASF<!^U@H!o<N zPYsY|B$bAi!Ol#3(k9i<eg6D=$!izSKu=Bw`2XL{SbT>Dctv0bZJ9l+OSb^GSSEiG z;(0(?i#5Wz@9vHXwhZ7PAt&)s+LoR>#@U6b4}F7MabxHL-BAy--4pAU$-`6kcx`dG zh&U0#dg2drOH>U!ZdUM+f13&cE|FLZ$O2sgsr<T4IcMx|YxSR>QpfJ5MtLa^D*2*p z%#GQp_R1T|_;5P?@?S;H7ywe!H|xV*CC^bL!3TXb3wP{Q3U;SOz89o%5QFxDRoQZB zMLcerClv-BLY=0P<$0NG-vmc^O1^#UXn<)Z?m{1Q!M~Tfvm=YWoUWSEQ>)qMxi@7d zh`r!(aaiiRno}zA$eM810INPJ1OqIz8Ax^Qpbe+j4hy45)C1A8@Qk)D_2$z<4GGI7 zYa^`EY6Q;?p%0q@2eztY(i$sD!^GM6_Y%X708LI@8@pq?HS$xbRm9E^^{AusP6q$O zj;}|RC*I_uAU_z_X9Im@0U3E1N4ZD!_6Dr~vR2-}GpLCN^5&lZwxg&&S{^hF4oUL= z*``#IhLV<#P{!612Wz{UadcO^o7c1V`DziWgfFrl@M4-X+9;i}3W{coVo!bxc<RvU zZo!UMizA%MCRdQHIi=IWU%OZ@rc~5ekJ<!|PhiOkGM_tRaXCRsHO7-*#DKO+*GoOp zHJkFZE2;1~3J}YSyoghG#>;DPr4CH<PTL5i?U?~7(K=_YQzxgbFJ9pLju13K)8lEo zL6!X{L5~8yuRx~L@4ne<9QD74^DB;{)EQ>hwTC!@N$o4aoBX+RUB!_90-2OvyQZf- zwtd1bMhp6{rnpTpR1*!12&rSW?XIL1HLY%vr2-%qA+Gh5P_1bt<~9<WJnWK?bADqm zwKFzsqGiBuiLIQkNbo+$Nz$f@f`2;6BLGSWp9+DDNs9&+&R(<ptfdD!<LpSJ<>FnN z@u8PTwIjRO@q1DOwySdfMe8Z@oUwz>%{$^>Ip481;cV5m^eSpY9PI>_jc2bXYnKJV z!qzwE_$!tiEu$qZOE<L#v}ZkLb9rC?Lt<m!`_mM5kNQ60h9sgTO#oGe42o|MOWM$= z_D|6eKqOXG$uS6HVQB~kG4z%Mw+TUPu@yb^8yK8n#+c4emW2ywKs7NtpH~R2=<(^l zI8n}gc8yW<a#4e-7-pl*&wWqHagVt&dy$zoh~J@$J>EL3st$EpK6iw;*HJo2id=PR z-~n*tPafy)#!a!M2VTMRextStiLDL0OM<HD(|-Od*CHE@35UU}xQ74MjVj$V>N<@B zN8;ko7a$0~xc^F&@|qYP$gRYJ_i%kpR2PAFUlRWj0TN@ni=rKe>-IXwhT?p*q%Yu% zh!`UP84$c(@z*Y`7$7X5AI)wuSc0TLFYBn$?Hqd>oi?M=fHwxClM{W%;MjO`kzYAJ zU6;2{YPA)DDxX+lGjVzSYbH01(jx7nY7`=?<dxWUX`Ye3&A+*cj7vFRhXZcUUZ3X_ z>tDbxCn$Po2cJ_!%$|{HHWrvyrwYC{X&xJ`%{nk#8Xsks%Ng-RvVI+h5Si-`7y`l> z!Wilg(3b51{^h@$U4#Gt=qAv*vSfUJZ<O8GK-u2KShd`>KWHvc`K+fFl7Z@Vf$zj1 zf3R{fi2WEhSzPGfp3G@3#O%<G0L(}dD^7bqhr?w|q=Ke*ByGmyAM$b_R()uI*gP~w z<a_Z%DkiHVSBRtX#I1HQvie0Wdt=SkbNTdJ*r2%oD<%J;iNh-YeG#+VsIhlepU-oB zH4UY6I?}z7-4M_feY~1pA2q6^O?t@E1;XAg834tDYK_bqBHGg%PNk#)<%Ba5k3x+h zP^hso9SdezGa><ly$n5d^$%@C+Ay;*zN5IaJbq?<H4@8O>${zu4$&}X!v|Ha=O9hT zAd<2fcSK?#mj3g{>q^RlIqWaRSNxUVS3CXPRZJDkT)@5DhdS{hPsQ~-F0On#&CK`3 zPWX4$J+An)i||*&COc*!7RGyPF+;;ya#~*3<7rLFT=gB1h|b;chB#Ap9X7tYir<;n z+!7AuN~qy<OD&W4VLPkAhkM=q?&xWI3NDU0e&-VKg{YDq77c85pkRI9x1p5cS-l1g z1~ub5e-!m#IEss{CCI!q-brT}T(|Q7`3~+{DAuzdJ=^3!^Kw`m%Lv|e0{fQ2gsFpE z@&~qq4XTFkn|nmqs-th+O;fK=>$!kaFxqsf%Z&5MNI`sH;*}@b+-2zo*l$R$M{ag| zO#Y^{P2BBUkR{s`k2EXmpd+dVll}Ry^rHi|Lo}L~S(rR0RxH7vKQhv9gv9qX(1gK( z)%E=Y9mzjUcI5kN;=8qn*>s;-hxg~)m*7q+VVLmAgTtY%KqSl{C+D&_Y_)ug@mAh3 z1$wgv%VN8Jt+NWM0v;w6(&oK-(d?8cA`iBK)%mh1K8s}rDEt(B_lK2tj1)wTp7%6A zKEh?p+Cqe>iq|*xn3diqTX0X1uUXn=Eg6tUS$&)qQB^3<&uU>;bu>?Hj(F59Bj3M} zI2=;d3H?Z57d8lO8V!i+01Gn{zQg-KHYk<6@E9O1nnI|>2pCCpg@iB^Y1l8aLSUq) zf-`S$Q4V>zbl<}{KZHMq02&eee}Bw7&u9w=Fd=Pb$A4nyTAufRK@|5UHMa)pkE1;P zLr6jp2ykvH3s=?Hn|7qBWiw5_&^9%&yXv?ME0i=fczstd9!Rd4u<TkyB*s_)qYxNX zP{cPKN@CT4kSuP5&rST~UJIm*U~t7}E3~dg@Wt7R1XErRfW(*)m)ZFCwFpfZvxgyW z9Zb|wHKuv|^6+B8aP(#Yq7P9QBDVDjBLmI~iGWPhmzQ*QcSj{7_sIxo3bOs~h%Ex0 zcYvqVvJb3*_*6%ZztDs$o98bb(fZmSGZFtuo8K~^a&5aW%hTlIN!&CF%&wIrkG)J% zICL3T9e?bGfGk+f`UIU*_IeR9f1p9&aTn^EOU2s@(^5$c&q7(8rcav1cgqOm%+9M* zj&oALO+rk(14x?<)DaEB1;OaIv?h<MZ_pUm@JFsGb_^G8gyV-|XZVgw?ke!+vYxBY zUCxz91)lA*VQf^&hsu!7+P0a8{f`|S<b0jyU4!MWMyC$uoSlb%G5T-vNr3e%CBlP_ zxr9E862-dovv{khF062X_n4hW9u7r(^QusOJPb(=KMmMvCKZP799@J;mv2@4cgkk8 zh~=~4DmZWWG2PfkMAbh2jzrhaPaDZ>!&2wsJb3ca$4hvV9v{)BK88wyr|n6?Y7cgn z^W5Y9L;1b1?nRh@r&zp3R<OrDx3dG67(JZunD`8}ci~?}K|$?U_IQnF^CXjCzYKRk z{{#nuLqY<v{k9~?kZd`Xkl$kOb&h(5g>UOWEjIW|&Thq)OC-%UA+$F3&`-<e#@ss7 zuu9b-ns}^p3U{k9e$6T4U2bcrLJCe+C*FuEEa=R?<HJe1pn;4-vK3Qtr1s}3(&eW# z#@Db{U&_n9d)U~UjSU=(+SVT8dl(D^4?J1&?#DtLz7A7Z5i9B&&~^e7hU0B7{8ucs zFLB%Unlz<4b8l_TMJd}3QJ*5yg4gw{KWj4*I6Dm1X85nZT8rnB<!kY2s;5yp3iG;6 zFTBnvR#!z-U!SnuD^kXKOir7@0cpwVoMj5NgW4bwTx)ep44ekt9R#3s`#=vB^(p*n zPNTea*uX^*s+kwHR0*#^$a`8U_If^wo9F_0)dT_J!1UY6l1&4CN2a{qaa_NHnk!pz z-M^g^erUT=Y~}Fg6TGo<%SN>Cggzmmdb_q`DRXzmE%HpUGaKvD>4kk8Q}n3a%VFt* zQEza$c>lLLDy1H$@Wa5S`<92bj}j%SskIGe(~))Bzc^!LeQqNn?`6SlKdhe)Y0!s^ z%L-*%M@k9h$Q97Vom>8AfEW}%*6QxfXSzfLOEG@k6)7~fg>2?HY?S}W(R3*YfL8Rp zwoUe%jW|pnCF8{6mGt5!N;1FuA3SJ!<#(SIg};8k#Y*w0GvYVOYPKYm%J9pvbZD@% zC}UKwnI@*$8B+qqMmly=tG>EfV~=~z*hLs!9|cje3A3X-rYd%{&pP36(+xn<U5@rh zm*QPa)TfmT`gw4**^aXeQ7XVSUQ&nMW-k8aVgU!NnU@3pUgSIBT5QjWxM)%6YUc># z=_)f%A^xwXN7(UW`$D=#zD|JyyH*?!>*n2&Y|Qy@Z~h<b-p)5AG;q@1Sx;7z158rJ zD&_AW+}y<tR0)l<qm>d>Un9*NtMA|CLwEPvQC-4E5^SWV@OyR^!HCQ7f@%i+A=F5f zp%%9x--$N?-Hx<7hg!az!$$6^j}x>NQ=~WXzG&P=4V^&`hc&yMY&}S0l7E*zF=v>> zM;1nUPgaMrex@3|*1&cB8A9U)dqH0F_l~{te`j0%3yuag{i=hsMAiIq=877~FsG+% zwQ2C}nOSdfjx2g*wMg_DY0mHuPce|L&^nDCtCDb4qIH^gp%ERH%uB96JFk-q`jR9~ zH@~rhJ~Q~o<w1YFkDBzdnIEc_NvO=QbYbxu@v;)&N5uD=yTCRKw=Eg~8($+}M!^=y z_<G1$=+l>`Cx85%`R?rBb!Ds?097y;D+1C)x#k?eU~eMLpyH!R_w*vym9^hMYr!F0 z@DL~!U`E{xcr`a9k8}5sSEg+f6hpT294-rwySa-O&P~0REVK<TI?H+N@56E)-kvDw zir5>8ePZOfXI*qYzu1Z-zv1HbF@)_k;e$2c*LFDrAvV6DZD+u)-et2n;<gy@S=>Vg zdWKpE6F%G)qSQhFMy;XVeQ9x}#rX*GewehX>>YAC(lMf`M(GA68MRi|cbV|2%FgFM z>Ah9GBErujs?4Fx%0EQ@>g$x3mps$W_h{zJy^<x75Lp8EolE&(m44qL|2{v~G@HAD zXPB}{s=n`%gsUSbmGW|1m{5~5Qt}+Bk5a(LyYHrGlXx6qVjL_+g~FA*)iBm1A9ygv zp)obrIh3OMS+uo!kL4B7?W$alRO!(BP8_(BD6{oDXgpI4j-7YTt!vc{6y7#ubJcIB zB2;>bqTrhgcuOZ?Z6;&WgpcgAq+{1(ZQ2#KLJ+-UWZR?39xM|7W=E}5KI2Kuoazj` z$*@_W_-#l1WuNYR4`&9PV2vv;Q|*_D^Z~G>v|5MT8#gI)0;AM_BY9E#e{vy8<dxCH z?Ya@6#f6CF#!)c9?ECFhe7}O=V6&OX>CfG0m||>q5Vx$sbJ39N{6c5$?|F58p2$;0 z`w2aq--I=OCe{i4i~#kc5ihER%Jd?-kM7K0EZJTnOsTwopPmaIc5V)ytHfRnZ>E-J z{(O~2kiX(!Xy34^89<E?38=+f)@Eb&qW<&0N<5gyfVgL<CU0rcx>a{{pZRObXfo0= z$4j2k@@MhSYwO}(<SF}=NQON51-m?)W#k%CVv1~kZc;;F_owwi7qUDFJTI*z`6xWA zJf3`CNszyFFOl9>77u2GT=rTW2C#X!!z?=we7t`$0jF^t`SwkW>LY5=cTZkl5wehY zbTKe7JQHxu6Q~3?cZuQ1-!iQ)OE<mfsQ&}a@h211X#x9dC#;vSvds*dtoXebGS{eU zU^B6MM{q@&Z&$4enHitr=N1OI&Ox)!ZCh*7EnE>pZ6CB~JY4UjW%f|wa076~D(U{O z?J5&DHW0bnDJKFUo&y$~*OBU}u3gp6KfO0TTQ!@Nd0|UpoFaWSA8U~I@5b%P`1cn- zl}-B?G}pFfK`dU{%6*G5|BTQS9H#6RiX=vA9uM8?Lf_6))5(2ImPA;wFP{D3N7@_z za3{7qFt8E_r*TTuxr8(D=BFuvB4&oP_r46lT1>_gnh;>iApuUu=cpoc%>0~6wRrle z^f#N4*mG!A`pVu*e~l$BjDd>%1Jl>yDIvLE9OQ!1qi9rK)XMawl~ofP_-V>b7Cbm` zXhkjuV}iwESWDPEqNMP>yQ_5;Z<2LGFA-t$9J&Am<l`SOx!0a79o=74(<kuGLOAG; z`g`&2Ad+xDfAT>j_SxqF;1Lrzse7Z)M#xRTuKPHnX=0!kroE!BhBfWSOm7q3dM-jt zg0=!;tv~O4`4xo6P)>~e7~@08Fy}(3n0@Eh>rF(HFz*mz<O>*-+`aI0-j~BM-^6bh zUgP}SYZ$7e?|DejoZz*{F%ygY_H0X&9SzSy2&Bqc^KDHe^A2|#ou^>H_ACh<zPT$& zQ#BSbCd(x96CpfyD`gPv^I0i%lYYmhk?sP?=r7qfc$986Fq(tmx$}Vh*QA|k$d$G= z3p@h1>x##EFs9;MUN%Sf)6QOJ3(tPsKi{2$5R<;~5>={_8{b@fF2T0t7l7&CHI()z z%ZvK9NU8V03&aO3Z#>ENE3PIZe{|d_E-8eNZm}j=J%>9rnX8e*9v9A73B67?KKtcc z`ugmN>NcQlfw4i`XSm>^#(@#tsO=$pX&LynXdpl2UG~QO@9{8$Pjm07)d3nep4mSq zsj3l;7LF|U5(1iV)k2of-5Lw>TuQJ5WR(@-2^}H@Z}t4;543rwZ4s~~5X+ebzq}hs zplukWqjfDUybESdD%<S%f#8qUbNg3&&Y_KK>g$iZPG4UM*Ws<Ik9KwNOz8Rl>69jv zF3f7t;N(#LBZ{!wZluv0Lx475zTzerH~EFs#vh2jLVy5xd6!8G`_!}jd0XZZ2Hivd zjd*4OcLl)UlAhbPW?ptS_ya`wGt<a<Ka%)JQs+I52^MKGupTB*)PY5;J^X1E=eL?U z#}>uXl!V_~fkw-SFKvkvmo@$@JD(WSX%2k3>5V`u-F-e0PW;7=Dv1u85oAC=rYk4T zN_IQg)W(pAgoX5Y?o+fk`jkZ=Uqf}W!w0Eb!|sosuO1^<ILgx$lX5hUBHcusApd2` zcd&Akh=*qjIs6x{MwhaxX1`QkGePXf!TpCW1Qb@eWSR417MVk2iiF6^m)%3mUek2U zn*as|pQnocvS<VVEQA_h_yG5AUDfy%;gJNlD_m%(+&hfOi<o7u?u!<<w3ThEB9m+v zMWC&|A1KlK{<>C`xb-B<_k{@dmwzUY78i!5ip5KyH<BIeuII`{AG{(}duK#D3TiO< ztwL%x?63W2SjjyXi^2Go>(*s546q8*Pt3C=NS*}BZ^PF<`$RSbO&MizQ_vO<c&-?i zm**q$C;v6(QU6MvN`$q8&f6NQYL1y#<J|KO?HW+QSyGFyc{8n7#c766pb0eEH?IZL z4lNk*P+&}r$9Ev5=U0aoP*@z;Tn$w8sXncA5_xHk(a6;w)+8^jUJtiFGqt<?HafS9 zFvifSzt-Xt7)!Xe_;S8Pq6m3vZT1r#ixiqoQ$n4J6l*u(DE1mWZrH8?2*9kPOYu38 zt$>00j?A;;EVT)HU#VxLVasJAHJVz!Sbj_3eKAtvr9m+J;go4uylOb*(`hzk4pO*d z?4HV&y(e{x7Vh8ww{kq#<{h}l{4pw`V4WaC@T0~4UkU1JZWh<pMWh+p<~&a<?xQxL z1$d8jG87^jm+FBhV*5G(Pe8E09Awmv{otCh8ey_XtUE<yDEqmU_%!b)jz2_BU_7X4 zFoo1M3-)0TK~yX(;>>DT^Q!Xl--;zw5uO0&v9q(#V8(wB;@U)1TN2zYEUjwsfe-aI z6_&WeK1~O1GW7EP-v~NY2@|Jci%nps`Wl%dHP~=kw`uIE-vcZ#0QkkKD)H*@)Ilw^ zO8Ya{LD2_$JILG2&WeXL3pH~;Fo^_Fa#pH8c9?XeRyXl<bd)5Ta|nL34d2WIvY!@W zZqF4GtIjdr)*B|}^u{B6r@=?zPq=3gxW<=WrNeW_>c%hbkVk<k#V8ZloR0KtA?Pm( z;yCAYSXZb+51?9@2O$wR?f64cp9JYejr7Opg`@56Nm%m62$_^}3M8e)J%n>fj||5f zzN{Wu$AP1i8;JzIJY%6`n1weZ*{`X-KBS8};KXxHg9Z$>51OrmYvOguC$36#_7A|( z=}Oc+PTcjz&{-AwR!fVyO_&Ha_q9LyBDUOxHj(_Wi|-lmEY;E~Zr`~K`lfT%=<sKH z&CSM_&Fn!DXM`*LQ!IRkoOu5b@<Xog&)6?scmt_z0U0HKtNki<ACWp5nv|yDuGDME z(X04NK2`;;*eCiRc~4lSh3_01R=eM>z{<nO3TwR89#zUPUfw_R<@L<%e!@H*@Om}D zhB%;+0AL4jR)zqrM_}QAE)ZZpg;)}gg+!Bacg(E+g}m<9qrOtA#&}~4Ox!KgXS$Ho zBm%5Vag6y)Gs}8gm&m9NCQ8(#%Y9H0#ws6!v;RJ<iVkv>)d~iAG*=5qSG0+H>orVS zqT^u#+YmS?+usi{b;75Pa6j>n0UAe#k>&L`1cD6L$lI3Oh<g*S%jA07DhRJffA%ck z(j3k!_$8o+V`6)*xjkdO0y}!&s!#`bo)LJ8D0RD3ksM_#f9qJJ#R3uh`qui|!V>Ka zv91bU6+Nxz9AD=BsW&lT-W!l?V*&Fc0kjmGQpNM3@Ft7XqY0zGA%*qt;l%aInE;Qr z%+Z;(xw<5#C2#6z-|AS8A4Y4rxn0wB*{IC2r`hpZ-f(xH8}DqoaQ|p!I&VZb#p>{# zN_fwScjDlmSHM)FL^r;aUxnlA8FVoGbEO`<-Te<MMzw=g&PEq&O{bxf?b&{0r|f6J zz(HLQC2T0!+vc9dgbA`&pVo|xMaeh~D&1qNH-|~RH0E~9m#y?m*87(FsZcR4<vfL) z2_1vlZj%%NjIJWHx7c2JxZ?jeErfrE15`$@zR@oV5gC4Frn#at&^q@kVs)Vz66~YH z$nME12Kg$t7^bfOh6kkD=x^i_`|o7d{fYdtH0&8j|AWP?KPqzlMV<MEa-tmOk$by# zETF$nn(f|>lSJ*k@{#95;AQG|#w<;Z>1xKNbkm3_7EHoZAl$xql@&+hF7At<`7qrq z!_-wB^hxw8=IFuDGd`1(<`}cTvP@M=z28z&>nDrU(8LP9FgKxI2t`ziR(7PvJJ}ue zDxF#oGuzVNDVq%4FEy$jeX#AdKfa#Qb5ZNMdaA~s0d!8KUa;0fyZB%1h-kJ_pPCy7 zsU`?2f~7yL?Vmrq&WETgpmBgOKz<0bKE9Nq+H*`u@4P=QvKdoTmEv#+s>Zb4w!Mn3 zU+>8p4c^+xPXeJRSzv2I5w<FIiGiCXIK*+e^K*=fi_r-E0bKRj!V>Il>ZY4*`x{4{ zr``(5^a>--ZmxIgyj9ejyWxEX@YNB;ByIe3vp;9%#nVT9!Ut&PSR!d=xi?lZUpoZm z<I4n^WLWF$0_FSNTI)3um+(u}a;LJNCM-pD5b0V}2Kk#Usk?QsXG$1;eM-oN|D)+3 zj1Yj<sd<JcGyw(xJstj>jdLQ*id3P8iQb(Fb0j?@Trx1u#H6Z_ucbUNn+ehOLldQ8 z2|q&t0$B=CrsRSig=o4~bRb)W1Ijvq{)`bF5l7GO4r=pgItRB6WJqkEGx=nzQ~b<u zd*E5V!RaL}u#cI_SNeeeOV$AgZ-$eaeG&STy03*qv97|natE6xEIQejSaP`IRtwuQ ztGqM=R$;d-e=PL$vXw=gttxi}72uOj+eJG_{&zlEhn!Ml*1AQmwpaUc;wfEj&L;hu z_-SuTaprbKKtF)%P#zS$j*X5cTkZIqX3tJQXz+n@Mgi8TNk3bJD}2t_;I&rLes|iW zqFgq+8tvl5Ql!*}6zYX9H;ZisQAPJ$3Op`-yl2duT7#24v2h2#iaO65+L%V$NP`(= z?qKVUY#>0lgE;#<hQQip7Fh5XGrj<iw)_a3696H3>xh6z^Idc8Nf45$Q>gy-MCT>f zdOt;R;Y1Gy^{BA*O3|-Q5IK}i(8!I#vi(;6*Z+u(BJyTph5>NlyFx*Cd22<=g3nK^ z8b7W+`xF4+2EBC%++J{iPoimh)?N2IvME3a4KeFi{iWzSj1n~FP1qlFcD>~nQ2+!1 zrV2YtOZeVGo!A<WvaIHJ(T`3JEviBQwVTs!TyzRAS+YswaBMK$)Ztr$WNG7LK>Dh& z{_MY&4;Sz5icF{%DRKQfXn)yoBpqti(-i4!8O-;@a~S7yfEW@z&!=RhitUgQh|0P@ zCl8-xK9O(q5r+w$GEb$@xL(%?Ff$(h@%|@aFp4m)^JwCvpuPNuGQ-YWqn1Sj=7vqx z%1*INvEAffNB!R0CvnI?kjeSee#UA(^NbGVpt*rF2&mRC)W9}Ly4*GYi=Ne-QKl~D z%Hj0F=Am?4P;Jxg!Tj<Ejdf-x%$p?Fi$6%Fs6w_@W8T)?PUk=N^_?2T>Q|E$fd@^Q zr|Gvk*7ycbIgtR=nVIdQ0%fi1RfZy=D<1P|&XDK?)Bt?r%i5aLiF^6XL=P%yj=%0o zTbCiDlm?8O$7RMxCz$PA4|jr5Gd)Ji<Kj+|z%TA4;B_7@!h|=1z-MT`4=T(6HfjJk z5P|>(n--_>FNvoqy@-!_)<`X3XfRyV4B^3;aDe=BtqxFG#EDax;@sb=1B|!Z;bqwS zt|HdU;ptr5E4-`P>VNFVg}*}wQ-%ezv`Mrn(g>O+Ug`>6cu`^CQ)CbCKp^c?VyVrB zmyy6a`{a1}WzK%<4Yw~&Mj$(*&Yhg;0$$%%K->tJDsSq7+TfF!LhAPsd3<0f37HjQ z)Hx=d6SN|(!cOMzX&@T;LI5QSEQZjV5`l2wY?I}HMCRbt`*DoFod#_)OHPO^4IyCC z%638r!hD|h$VeHJE$V6qx*?f>{Qkg?U2GfReCd;mh@GyAl;8BQw*BeY#elqi;lz~8 zukL|!&6p|85sWx9M$qxf)A3wcPfn`z+W(TTcOKTA5ELcE+^w}S!yUPds$>z5Rcdkh zB0_v}!WKZ*92bX#eo-sU-utEhL&;xy=L4SLwyg< =8cFz~s(3=l2vmG)2&^p*Bf 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�e@mQ{udjPh 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∓d3%nzaR8u61ssRbspCt%5Gilg33^S!@+|Mrv*0F%pImJ&BZV4>p5nH6 z&dM6Nr#cD4)E|D@8`JOSW1g;Ri6M0gDhZGCM9A>^;wxMhB7XyU5op&5DrB>ONfjTx zUk(+EbKhhprrgj;EJ>dOekf2VDAsiDn1~5N`SjP^{$#xE%_k_PHnT8KiD^<Tl!LN4 z6#*+YKb>dpESzJZ|G>h%up<|TVsI^X6u>{~h7T~Hc#eZ0dU}ta7zIxxMAZ$hWRQ`b zsY+0ciVE&w!72@tQAnXtg`RDzt(OlG{~70_wV*zz^<XaCxGk4_%eUm>_V^`#O6)G< z8#M^`TUd=34>Q=LMdgZAu!smKS~HX0qc2)t1;3e}Y@1bX?xrn}Hqqp%<yH_e|7S-k zE`{(`6Bg)MygI&4v4ml!N}pU7g^Z;MS1sXYv1+=jKBc?7%9y6q8#Tg$NW@~0y+EUr zoTb*LIL4kZoS_2DPrMIk4&~T2vDN<P6@wtB=xa?WEAp^fYSg0p;iLF!vbKjG=*`}! zewgT!Jq^!XXYxr2{qBSF-Xdo`TmH0Cnc<Q#1x@>)Rg8-+H;4<x8UIOK7*HXS2~0_l zlR+d-5?V|(CRldYvbd)xr;cye!STLtan#y+BB~09^4csE$zLyf_5;Rxc^9nO0()Sy zVH`4ck1U||`hx-B7x6{0>=4kzO{uT6*iEht8|Yukh<*J5o4~ldOut-b!1)7#gYQ&F zWmb(}&<+;nGgs$FThG<rZAub?2L_;*?7)ariF)=cT3)th2tBq)VzY^>J1KvRWo=_Z zBQVW}(Y3}V?8c$lgSY6L6x@0AgU+^F?vU#06;%WUR^jl3GJVi3%R7E7B(B@F*%T$r z4T|Y(-UT{V&$#k}iTBfh^$FfME;8loEAYXt(2hmAWsZ48Q-K}F2=vURMGn8B$Um*} zAj<_9(_kk+I?UX_j>11}92X!dN!V7_jY0{SE4c(0z&_3Q53KmL$MQ0zokY5(`RS$h zyU;&AV(BMJQ11hoOc-`__YX-+=O!)gNE`7jz%}nBKtGsb2L!q6!Fy*K{?p>R+{6j} zSU2ILwihioInpa<4*%w+yWPl|d#OfjX5-#PDc&NJ;6g5GnfwW-g9P6LlT#%j&-RP1 z(_j4Rs<tWq19R6(?xD$V`47-GLuz?Hwp0XT^MI!N!P8pPq}%<{7@L235MAJ>%NBXa z0!YN3sjJK4pnikQuNS`m?Isv99xi8l4ise8AJ<!~3(6mkDv<bXySMyLLiikBrOt7L zZ}W{q$5DHyxTY(2y!M)^EHR!YVa_pKdJn(O8;lk-fFoi`4MC-j9ziXW3(`@=T7rw; zWU@jwp}0n^N?0xjpsHqriUdh=c<&qyY6JTUNdEhW1}2q;s6NUiZdI^F2pNi?FF<=Q z%s8JTpCtfb5S~A!ohd;Zg7{0p{k0sD1lO%BF=Bv#Dikt_|7<O8rBzTRSIinGf0~KH z!dKAx$6$TgLcKpk#Dybfh;*btjcW0T(k?TNHiKNFFuJk%_Dl2sFXfAAG*V1Q!u($O z&Prd@AH|tgV|xugPp4~DXjgAUG7Jc6JIJ+H*e04b`}{;T*YG*A?o0__ANIinhcjsu zaBJ-h^Rm;Gy7Uz`yqletD_C1*Uj-I{a6djRFW<^lu79CKYRZ+TcYU%+&IHW}=<RY8 z$!#L+Iyyu?IK9=#<0&fCo&g)Niln5f%hy|XhT@s455!&({v)-~eG(2a>)V(O&5oVg znpIfrY5(D}J_gwsweR%fsx0esnc#U2-8n_+n4pUH=H5!7JX?G|k{}NfY`#jVvBx4) zD{OT?lLxL&pFcfRLuXa_65o-MsoUsV*A#25=a5sqiK_+pK=dR(2mqQq>I{{?iMuNy zoX@iZ3Swk{%vLcSIydj7f0*@cvfQSl%3?C-cT+D`uhj32y?rR(eJ28zY}^j{H0`|q zdsXa_e#Sr<&}4qop~Wp!g#mZmvmA!Rv}}<rsfR`9kb3clAl7kWysOiAK31VA7zOVf z`9;>YU>I_?kYXI%5a2oeD(IlQ8hMMJHX9)<3fcs-M6J28I(yCPN%9j9oK2fs|1biK zmGMzQb6Gt!WAlm_+X!tsy%em56Pqwfc8B(OlXwv#bJ=ITqc*z`c(nP(C1P+)$hA#n zL3HnVH_P*qm1O%#z$DKb@<f!peC^T?(xpn-jGm%h7>kM<i<_^QV96U*MZ3*&XCO9C z6}`S8FS!poNelb;E3AWP2TY;ur9^6OAqc?`mE^HDzE@I_))j@wT5P&d!#>?v8g<FD zpU?68jA}oa5$klG-W`IU8iGk6HPkT*h)oO(;nK=%zRORpV1nTvsgtaa3lZ9o4G91; zc6A4D_yhc<`F40tM_$KHJ{b5;8dJOrHK$rtAP4kr3A%lH|JZcVWeCZL<$x`CG>9kz z=mMF>A?3%ps3p(-ojTzH&o;4Oo5pa-tKgC+H+|fh>0qhZ{_r}-ldm{8<)KVl7!&BS zs1+uL8|0p^?d8qG+W0AzBF+GP5F9WnW1dOj_*z0u`qHp+$|0VlSP%UbR7hJ0CcYLb zNstF#senRJq8Co)Z3|`C2Pa01;+xymfB`SwH5Z8c?arm=H0&2iyn0S(pylS5P9o~7 z1+DZCXogXiOjH-{dI|P=kIAVy>qZ%gX;&rC^9~|0)OT_F)ptgFdqH;LW;D=eiH0(t zWfKbCh$RL$kvWkt=;B+~^iC$o`Ph_VV6ePFdjHQled$MM`5dPK18L*9x{0@9QnjF) zqK!Ec2-_MhGzyOM)Rgcy0C8~gFFYP|P6OUz%sk8qOK_E5a52wik{POw(?K)(pyW3$ zVV~nVBNPLf1Cq7zTR6+Km8QhA>~3Rr_tPhAXi|3ac?mT|w+-<}ik2UsJMcnmxos`7 zu{3uSRxdWOZz6drPbfqj&+vg3gb2yHLz)-m#Mn+FZoBRQ+!<-V-yc83Ta3s!r|k&< zDT}JJK}VHY_JjqtwhY%W(PxKfFaTB*Y5KD&>vUIprf9<2Mve&Ahw5Z24dX7|B*<B> z@53YcK~Gt(A1EwU!Jo!P-zm52JdhGLJICK+0L{j|BR_775;0iS_iG?&xQ|=1)@G;| z#qY9>4zjCJZ+vl`{q#1ctY@(N&&Rwb{tBV4UmnLhk1G@no>DiBeMiKfgTx{sthM|$ zGYo>|lq~tVV|Y8?WR#G-Q4P<7dvMBiPLVqCv$?=)zy!WuK6&~;>DD@_!s=!l$_)H_ z#TH0p=ST--`Vf)Kzh<k<xL8~52|h%ijBSeW!9}D+HxbKX{DP-0n(OGfLZCTOT%{5H zj@vm-nwA3MMVVG+EXG!iWBGrbR@-mU0{H15OlA+N1UFPNI$rK9aHekd)f>?+VpyL9 zigo3kNF%3<x-3XzVm<qMx~Y=h$ltl70RhCG|DHXTGx{&fA4eAt7p1E0bp^I0K09E9 z7>J4x%__8z%-v<vJslfA4Vp4#>*PNGe7<VsI5!HtKRfg6(xq%E9W$~ozWmxJ@}gdL z{lk349dzLYMlx{$Byb0IZSXA_q{v;@X#s>9`HFWIT(Vx@FQ*{)E|qLy01qX>E}k40 zXMD}$IRM#86~LDEc>!c1BicF_W&>34IIi385d#T!q}KDl30+h1FYocZ8>F0kqXoTE z&ACxPmS+10iU=?$_@=QsN#ugr?^(<{R0IRN^07HUw1s|Yl44OsHiM80^44y*;Hp|= zo3<=89{{Fzz=qxR2O63ZuMS({L@bl~?Cea6h)Xhd>z{mmf#ko3r$D3UuN_dX(XCuJ z{zk~{<zjDmE>rYTAADZActN{bGP`uOf|el|Q)#TgjaB*d{|JLOtwMX}mS#mdP4-tV zxe69n6tXp<Ax2IUVkVR3I$(!<{sQf@gOACVWtvfiO+L2Td)wu?J&XOptu8^ZtR)w> zfGGHqVLYu2Ca-6gU}C9Qa&N<Sn;Etbc?qa}5AQtA=8%*SrqdLbmyPq!);e_XIr>0$ z8c*htmBY?p74g@Sz~F%?xQDW}ci*0YEW`vlfdy%L^HLpJ1!v)XVMP#Y{`3f~2!gYy zePgW83U+C{VsF%>RvX+Lqj}pA_|5WnNUJB*x<6mi!A9j%44l?3{le1OO__(0^N)Bw zjbo(ev}1EdgvSPUw42^C;YGhgsr`e%*G8hmU~5l^ezVfb(=kjUxABw021IU|Owor< zR9V%*PifVk8tmwDuTIYpUyGO?onsKHkx*(e3)5dVksbjyDpd#?&G|E~ZQMcLDe9qC z7aKu%;hZ)<+onf?@+uOqZ}pQRxv)V>p|`O?+`ia0yuZAgZ0R4E1AKjypNGNX)@Y*% zFt^w29wyDr`VO)y?8+oaU@DQit<9HD{L6|Kw+7<3x~Zv2Cscy2ZLa)$QlD3E0}11I zqz@9v>lp(v<i2aLI88?ce5>q1Ki0SG?MOQ+Uh`|xYJbVumIh0*$KHqEv-rf;jrC*z zNkF#05;J{~a_3c+_uyqsRaB$C`K!_qnS3KVaO<kzwS+MU8eAXp?GU#__wo0oBNy1M zedVF)ESD=~s5p>vJ2oLMi6_|GFlX~*6K8Db$f&O(SKAhVUWnyXXuqGXOc=-0<_YhR zU+cZnt>-UiFZv#B7QKGmc8fyT{;2uOC6g@2y;E~29k+*q*}KH)#nWF7A4R^9sY!}P zlju=_@|N|L!iJRWEVk~RQQM^@YpyZJ+<T5KACX@gd?G6R^99L;P)&uOKlB9aTDd@f zWat7~YY`v?GM7XgRv8j8I2lf<`;pe|HyK<rhW`IZ^zlD9mt+>&N_nx>tW49kDEiBp zXz<?}z?7c3Wv=`nJTLoS(P~d<6Wj%x?biI5@L2<01l=P&mYUHi*6xIKbE1dzSbS^< z+P{Ebgf3jrF4+j}osX>EXCic+!PJ}s(JnP-nd#<^DT%IcO=%(MTZhdtceu)U&hDIL z?Wu#0wc(&XD1siRBNIltr2|$gbWA)IS}0y11o9Gb;~(tFbrlONY1-L()pKyqcuWa= zH%;bUselm1!ZmD@w6v&C5MZ#RD=M5Z_X)uou(0Np{^i3rj3HH4j?FM^dKU~;nchwP zmjGb7Q1Fm84kcr4_I~zT%VY85Wvj*UT5D%0B;L|w7u7@15o6`E4{P&&39g0+aFP`K ze=@62$&wEBsjeKbh6F&g@}HJ64}TP6L9yeFmYc7YSR|#+`kYPrv>)E~*le6;S<`;F zq2a{>#J6v`_-6*@Q8&h57)~ph$^ClZE0wTW4;T0c9!(9SSKw6TXvU4tj}nA!E-(C1 zT^hTpAwLn73*yNF6~jNyR(xr9xayLKl_=Rf($vPhID?l!a_wJcDjd4nEA=V)+A(4R zPsaveMPa<FvNORU3md=tc3^bMK_vt8)tT4KfSrXTk89Q{7vVgvEjw@$(sP1y@rHeZ z4iyZYd%}9cz{F#uT^r2n{@=qGmd7w;(jj3Ocj*r0Gy{U$HfM}UuV$3(YX9HbDkU=t z-#v=E9rSEO6M2afu<v_2%g}80yuvE8Yd3wa*~kwZ2n^6=<9+QsufbSULR@Q-_q~!n zvfq8Kw;O(ThIBgV5){8>vB6N9x+|T0kG}JE%kX;OZ%^awu%}d>aeR~0S3ZvS@9O%v z$5=zA7F`ju)MP2!@uHp>43xlA(%H2j_{4}MDB!T7rH9-x$0|eQn)Wd<xn|rO+t`%! zy~f3R!pC?{c*%(jthp(yB1KJzP-Q2a=`Q&Newyt~la~B`xx<jpf2-eg=JV9&r*5;I zzRvB>Yk3a4jnpm6O4twRI2r&+U_ab~iBieAtZOUF-)HXIBqJh%2qO<3USES1%I0un z*#A9nwd87HmJSXmK%etbSC*Q3xnP3pQeIWwZM**38YS5m;$`-T*R0;i*(JpT2xp}X zxT=!v*F`6W`IXOmY6KU=5bXtW+-^hJTe&OF@DYTZ(i$e)n9b9Y7nKyJ=^a*8d}jOA zrtfj+6>ZV-&6lP)#+*Q<r(BPz0!NfbtOO#Mu@=GbqJtE?V|!Ldn{*>$o^*tA0t>5d z6M%kz(n2LU(C+IQMyG??59h~egp4XOyQ~Mo9UY53zWl8-rup;))6<Lt!9vW#TS9D^ z$W!XqKnlmcIQ~sO1N=8lw*}vYLF-X5Kcmt*EK50YHo0tPk8}JT;@hTo4(98YdIwjB z#;%V0484(*$`^GZ10{~k-zKYMMRD6&6+u~Z+*6YuG`ec&8+LvTCY9>^>MU5_i-!tv z(GszP+0IEIM(qpFHWrS0J4V0ZlZ7K0P)#XeK()?Q7g4T*BD|qG$IM;!==-C=0yU<^ z*#nG)*M5Xudxzm5kJ^x-08D!a3Fft2E(H`&JmSWx*Q3X5(lkHhU__CsR<Q8rxNFbs zcbw5l4)n)}NqWVx@54Shjc~=0v!HDHw7n4hqqxaX#3Zs(!MZ1|HH<(!F^}1fb78la z+mH+JOPw4p@_H-;HS=QTlkIJxJujD;QO}WOLNa6&75MxBoic&TMHhHff#8RxmD^hz z5@_1CUYZ$J+bTU<tcNf!a-H!1o}d%KcabmuOQ5Yeuh4vlIB>Ga(%-TcLSfB(k?wk& zb{j-N&)`TEx*dZ;u^1Qs;O9%}bD0uz4C0+=_6KX49q?3vIu#t%b8)WPfV$Qf>8zPW ziV}UoRnlajE!1loRcsy6TF01WlxZJF@yA#`zx6%1CUI(&9)SNThO}7yFQp-1ta98O z9Uc1*9eD9y#NUM%$H#yi-|@wk$0td!N|j&~3V<{AEnEFhMLs|MKE3Yg#GFa!67Qge zyrZCzX1;F1SvMpX8PNe}fuyD|f<7PXV+3BLkjfQc7@?{@(IdoKOj9`1To;P_N9tW@ zc1~&LJPG*tj#I?a&yLG^`C}~YchdZ1?Bu|Y)Sr6&xDPR2)kPD{)H_-`-L+Riv5*!k z;ixf>CT0Zvfr7EU{T5e}ctjB{0x|roIcoYN)bd)?F~tTz8>#YQ;)RGKRG%_-SJ)R` znR6%j;YJglgxpxlo{b@NV&O!vD?CXFEhHC#PUY!;e4rkj<nVmv?9J%^)z{hi2y{tb zY(XijbO&!Xq1hrZiqeJNXPo`tzLG90#4q*5_V_PDzq&(AC~(AFB|J8{oKoD;7sKXV z9Wr4__p+t#(IWa0|GhhT5~vw+&x~RIVw2pa$1hW<K;G*k>0Ce;m2Bx1AMd$N9WY>1 zpy{~yaWI?0dDU*XYj3LF0|L<CKAc4QoqO1nnXaO2Z-wg>M%c<*3qh`<m8sK|4bt?f zQp(n=CK`VsT$Lxb{0ZST9q7a?d;iXtxEM*`TP`B?460#jhwq1K$*m4Ht(teu0|An0 zWKnD(Qbci?@jT3c!Mhuq5G0820&w#i@f;95eG~V>u6%AXIkXrS3NXYOMPoqrIg`)# z_buC!MMhLu_ej6zt?`0*(|sIvnYl?L|3>5s-Py$kxCjILLBN@FItD)8M!kMjm>@Ei z!}B(#?q*Y$uVQj4yV7<r^hXAzHu2f>aDC{sdo*aNZ>H4nJ~_vKz;;c$+$Mrmzp8ED z)Sq0|%?yIgTWcuN$+#boz{E2uc|i;^>JF)>71Jpvg_TCb>nyPx#z#RoLsJ$eI(V8+ zaS4D<&*-q=;8lmp2>Oq2!F~|?a~H>w@RBIZJ-$;*XZm!1;8}cWAuI9_^`uPA3;IC+ znqY0GC{9Wae{e6}4dTBigNkB0`(WC>e<pLBDjTlRB;T&$&Oz4=%MWfn(m?o8h@UqS z;UQqTe-1yNT23m5ksqdavT~Xz{EU~C3jg7(3$W{#p8h@J?=c9%sJbO4{tFZv)a6*e zyoJ)$HWBLls6!wgj!7D}WuH-c>56IG_612}H82!+Kd0vo3y1(P5AD;b%_ym)agY>L zB|y<~Q2`D=janzgm9%n!ab`0JL6|c=(hy+4YTY254^^LCE1?9?Bi<N;V&Jjc*GOPX zg7=#29bHs4khu@8soh0PEWpi!2bSCx0kflHRJ8NG)=Ugj&>IHNuH=OqxCAh6>W(V_ z-Ow%qre;UX524wawKE_D0RqF21||uJO>gps{rs(&VK(F6!pC@wsL9rRM!BI})Q;Ki zD(@-)s?w{1bkrZb2Jt1uUO-Fr6xM^fG^i}mUNlW7gm@fb_(vuGBT$U=cBS61sSkYq zBP^=~!Rt4b2&~^<Q&-CvR0BZM=(k*@xc(H|DaXV<6jS5r8Zg{2FX-_jLXSC5mU%$X zziq=mF2u-m4*~n0r;bd&O<wSiBH2Zr9Q|Hy7XN6`a$ykqx{3}cY;eBFY$Mt*|DQDM zyrrtw_p$?=TZRCv@n0HIq2#ndkzgJtErCLRx@R!?NtGp_sG17;L!kw2RDWcHA3Dyj zePxqyu<D!L=lEFSD;7dn5jq{cdqoqbG1B2TLp$a7d%v1DPtJvhs(7m=jlj18S7q>~ zJ1=UPTnZg3$Y6ySUxu<lwkQ4Wcc)-Ve=#i>hK*I{wbz^fIRZi#pB|=v74p9o@fdC} zfC<EE9_T~SCO`<a(mi5sSr(&Xr~22|RJH7n8Gt$EmkHFDDNuL%Dx8*DaP8DoWOSO7 z+ULjW+x39H++=kUh|7rCasIXLijdWbDTtof*<nYs($gmE!Ct6)3T3m@AOa2;NvHCZ z4eGzvU~=v>P}JCX>N&xtQj4KZ1?%zxkL97U=!q_u?K@ABov`hsZyQdYHOkueuC45A z`!`jP0RYDUY)GB4ymswxl!xu!b+t!7I>wmNbxh=ke3$AiZxp-6Lus_v9*Iy&9Dde3 z(T?9Bv!{pP>`b*AmF$X*zj4eQvC2+_w^b@{IHkHTJH>_xKc}M4s1oI_x_Ig%{3?K6 z6TlNIG{&1%^334}3&JL6<`~-~)ZP%p<AyeTq=rWlsNaqoT4<26V-2lmqPa;?x4eJU z0*)t|G8zd0buCpq08|8Z8UvEb@GRW}zq&mL3_<w3ow`w{DB65!*vlO_>y%mhMT3^| zXVpS$@8oe$r`Fd=dJ`;6e&!Br2K%7tQ>1faro6|VHJFG%if*A3@pyU=FcCt#5F{dZ zr*cU{L%`a?bCrNFB2hPTUlA6H*NS#RJMS`Y2Ybs~BrGU>wvfsgi{iE1Goc`~B<W&y z+Yz8*bC3jOMTX4w@)P6Z^3L<cPC`tg?xON*&<B#0r=)dUl~%ysg+FsAii8$gJeDpo znS6H`hE?8GI*n`*1;z(|!5nb0QT>%|ALvCcc4Kr-gFxuIigbCyJ#@ETxG{W$c_9v8 zY(^qurQgu`a42{{!V6Ax3u2^$ROg}<LiFgUXmwbhq*k38kqR?Eqw8XG@GD+&BdT$E z2YnTt?1NLZ>d1<wP>W%h{ppBV_7l?{<ig9=p6*`Qg`)-@qlSxg^zWO}LbyD93>CdO zG;r7}eT$jL8qVey@Bg*8tIdwBsHyli%fVLiz=2Q#0LJ{#GsAv>LKZ^>|Gxi-Z<m>P zV7X8&&OqbI{1W^>>?zNmssq7mN6ycIwaANzzj-s@kWdA|&Q^x&(|OynGlTek9*DAh z3YLl9AFRJ|gKa?tv=+}c_Y%l{0~^AffPdOG4!KVz?Qin3!xv}L-HTBZbBcq!QU{tK zm9_(=ZEq{}JgC(aHyyvA*+UhAWR*&?{<;3JTVdIQ6ZCl*p|Gm`9fH&Xo6+>s=qKW} zb?$y{g-2}qZH=xvx_%hr=v(I%z@k?th!WHJz0Hh>6-eQ=R334EvZh%XZ2t50VC_y| zVi3%KeN7si%!ZSKOb~>0<nq<eW48MzmZoB8AVso_4?WO6Lqi^?D&4j|4@@_Jer_QI zdjs-T7!#ErqJhImJrR~r{3|3!Y7Cs4o>xl%fixC>gGorpw((iNWxiH{mEx0VCo(3D z9bTG^H;^~!>3ThZl(E-(Z|_%!m~L%pIAG<<!qhho6g=72b6@73*Use)P2=ZgpIm26 z9J3gDuu^AC_(J(Uq~0f08bbq7W}Tqea3gz8_rfcQN~uSC16tuv{`FSj@%^HP0=Z9N z$V6EX<SCsuUXY{%fc|O2kNRCsW*xTjK&#{Jy6`FSziUWD;EwBl*L;G8EcF9GSB6nU zRO`Od=zNSSYlMaavP)9PMkSf?9<^2i*B$f|lu0z55xU(wu~86{ysR^9oO;QHm{p$! zBL72Qk%b8XcmZo>A(ay}hp`jI);=M2-kT@CS@x_ZGv5eQuWYc;^C}tsuj;mxM_Y;x z7R|51{e%TfeoL*oOAYeQkffEc98~HRN|<iQ{U#>JHAE;2;7JMefti#gc^`=|ZE)fm zsAvZk(w0^P1^`TI`WeQ0p)p%)T3e8RS#zzAs!KLZwIU;0S+ATm8-jj`Bqj!Az4h@M zN+F5RGWq&_z9cRlwhOU5i$+xis?gtYx<AlIa?%-vKScRR@r>}AD^oIG{uSFR=cb&c zS@*37Js=ag8q>%4r@?=E`WKbSK+ck;!FUKkZ_;_UuS=Q`aDiSCq(uI;<32K}2?lFs zgh7c01O?Ly;lFvUBUGP$o9q<#rb=$@xvBs0yllAi$LiI`HRG^tD08DHghklT+wIZK z%NeUq5UL78>=OO3MLCNF!WIemky;}PE;rB8B_EJDygTp8wJYk<YyNx^Iqv1B_E80m zFd4<{kg*sCw{~Mm(dQ{De>yn*Y^=)7`CAx=!}72!n?TjQD(s20!Ef<og>&oC-5aUG z0LE<nMB7^)|N4fOBlEd6^nsDV9z0Y)Rcv(#ph;uvtfC52h#7_IEc~GLzZgU))6dD0 zg!R>drzrbU|K|e{aZ8@hm+pa_?J$HUM+~=}mc`*CJHN%9<oZKc5iW;`nuAtF!1nM} zQMHQIFj6Z1*n@H7eT{;e6;?^`e0eE(OWjqYLfHzI${>Uu$ATOrVphvEugQ+Xs1FE9 z7;8xMT=&>^Z(MihrP46odW%ic7d?A(j`Lq~$d98H+z=D9V;&gfKnS`pFjFzxG%#ll z2+KbN4%mN#enJ9#;r}mteLBX`|92?LsaT(0936h#WkrmPOVM`qgnJNiV7&a6KyxBO zC_n&JP~a`gL+X-<nA?Q}g#yeM9kaccKFkzah<WP*b;(=^NUZT7p$GuYvb-vLV9qih z*FhZ{%)saUkn%D@DuqB(a#|nUoZA2h+wtXo?au%<Zb@7}v!#+;JKF(|f~DcLwSC~n z2*Fr?O6P0%y&?5wo)w8>TYsa<sj?0ML{+T(r5##rco<abvF?d3^?<lm#V5xTRsW|A zkJ3o2!XnNCoFSP-nxuoKm-a7^|CO`lI-n%(ns8^{nwMUHP2&J1{HuGk#4Ql+$yP99 z!2(IV#?cTUIz@cD1q~hr+K#$jC#|I+N~|l;*8Ws0Gvhlhb>YvZ@=p&8QkN3@Sz4g# zpwhDKF-Xl^m2osq%ahoTVlMnX_#*vG1~m3o_6Y1Hl1tlYqF7Q@)OA$z#qHmEK1m5C zY6<v7f4FLCv0H$Y%f04&9-eUich~c!R_aI;id(l_59nBJ_*;vt`a=u_QROlEkTYva zXCg$Y&_7U&I0!J%vqG!s?b~^#$rwp$n@m98PlttW%an(%1hHuo&nyWeQMG4R{@U5? z2roo1tW6T(Fn}9l&sg#aUY5auMh5<dhk8u!14aQ%iC{W5F9-m>)6vCj{c5l1E~aBK zF4V}~6?=$g{*L-qa-d7F0MZbOAc2dt;FZ{%*v))<&*D``EHQKx|IL{+H}~-<Sd9t? z#koZoaIUEKMPqV01W$Vg-X<GY@)1WO^_rn*k#(Ngc}0h&T@<gM$n3pcPDj;vI-=|Q zipo9=?`EcM+eVXn8bt%}uzijk+?=23XzQWTSXlU)PdmP+2`b|6&DtJs&#Uv97i5u0 z#x?q4@6?{L8-P5r&M>d*(9*hPaM+)=?rhQ*NDJgr4nb5^ELGyVOB%XUcT1qSt>p4( zm7x`+Ys48Cl}rs=NFQ0HHG)CBP_Ew~6ekJ(A_P@!fMwK;lyHqtC+k#rhL(KwcvS$U z9GfL7OggQbg_!MdfUP2)Z<yw(&og41(VS<A*>1k+h`j1y+&DFuk{F`H1Qu?{Ga$S7 zFdpjtec<hOoB9&=<Tr%x<5vWO933bOh&gH4z#)C~o&Y{BOtOwfdkGGgWhO~19`Xpf z22U~*V*?XDR%oW?HHb|F2rh%F`JK$X7Xwa{xqxtcKW$va1exaJN7Hv9{``A2&5Kfh zw3&^(e+WhXKJehQhC?n$5OD0s+)v@xpqN9e=pUcpTr3iP%4e_BtjizUrOtK5D>C`b z$d9ZDfX4nv$I?3+l-En`JEg&BeZ5x8)5?=qj)bwaZWQ?vsErdV%PA7A1jobv&`*2h zd9Ze{e%%R0XCb*N9yEo97B=rD#b)~q%z}_Vd(XtWUPd)Rj&yW=A&8us5kI;m<=5+{ z>s5CtwJgKB3!^N2VBCF_?MD>@c2Du<=V$DjC<soLQ11xnq9e*#)*m-n7Gn+k9E$DU zVd-yq$^Wg`_Xl5E(a5Bg!K9d?$)(<OvMVX2P%X%;;qLQM#ihDqw0AA>4N&K5QZ>Ez zr+L3Yu_vNH4?t!yKEu30jkkRbC9(wA=0=SBTWzIIuaN1_L*8P4_CBI-2h=gD<5*Rq zM?2T>yTRNk9%-W}F5^2Mnnx8JZnp@b4}OgSUp|l$)EbvemzD<6?J&0KeG`;ET0BG$ zvy6=ua_29+=~KztBS$fXCq^#GS+(UFF~jxUfKxbg>sWvF)(DRs7)r`~NUU94gou5V z73F=#ayDlr@`d#U=?u$6M$w_hZbpc!x8kxvsTog-u;k#l%V=I)ec>Z4v`x)qHR42N z-h=gXASLQT@GPn$krU^2L1t+D+4<KYQmo8t6c?i^+C3CMia%1_v3G^2f5+9GfJqIB z1CRPlZ&(`(mx?#0{#=55yJQ52P@c>Gbq~Q+>zxig5`5cWe2n#JPI79i-zV-*`r^7v zdWAIp?1N9@0P)`wh&4hC7!6vYc#T~-7`y}f<31hIq2Nx)qktR%DFkQ^I8c6O9c>1i zKjzsDdFBi|p}%>9$mn+Z)1f`%^(_X5inxVz`idf`TD43zZv#tuA9RqfL*@Nmgt>q? z0su}jZBMgu11z{ZTM=;M>KWf|H}sn$sS+Ea1DL4-pfc19z|aH<r2%JJFCj-3ch$gV z^E+4~j!|b!LiG^4pS2q6$iax!ouD!FU=pua^hSUP3zpK3`Fe&rYlFf7r($?YkXM(r z?Uu}O`+{;);VI99_Fz8C96cj52OzbDqAaG8_MmLKk@cNuzwt5`_$8hSH6u%hI8}W8 zBd}X`WR5Ub_@4aZhta;|sHwo-OE~+#TcGy3Ej<5YOEWORR~o(qw|@lFe((LV$V85A zCseRNb^`dfPsi#N0r3~AxXF$iJWLpkeyZlRM%XJ_T;zY!T001Lh`YhwBRYTK!{Pt4 zi<?r<g<D1I3(QTCZQw|>Z1U2G)B`{8E$@m_)c(&Et7$@IDM848#JB+-JW5yn#~T|L z4BLL`FnJSNYb-<zs*q_}sp!f#;6+w;bhfZkwc{<1z#8oB@`Yuw0k$8FFB^`A{DPH^ z$u?;&qU3nH&{`6F$=E<iEN>WCV)=o13kq+ss$@qR>0*7yF5QjiE`$s<eO4mcm@_<8 zz0-CgW&levyDsVh)u*6GvXv*tmr%z4HGLH7)?!^xY0v@)Ae#oTQi4_)gBnTrWNUQ6 zaE_8fqgWYm)(*Jkl?a*_t|m66qpPG+dB5Z~bB$I5MIo3K)R@0%UC1jt;$zHSBwD;^ zAL8<ArwkO4SawR!jtcWL==%aYsp9fgB&81umKVDbtJ?I^Ut(qKE_QrkdY*$7JSiV^ zO3vF!^V=V#dwIe=0L;JpE%JWG=3!G-8_rR~B;p|!{?q<WQG<cB6;?-^A~!4`pr%jh zsJn!%<S(|Xhxtiq9JxZXnh&CfiDD7-pihp1qk)ZYcqs8t(Z*!Z%>R~3#Q(mx8sEBE zlc0Jwt0JDd*=#ppEKOs`@~um!$W2advb%p7Uo~o@8e8OC_IW@i$tr*ViUd*XlH=n> zl$#q$3a$NNI!!%DcY=3XS2hTInXad$DB9}RCT_e;C&uE1P>4K@>%XIH#LbQNXU|Ma z!H+z1W)@^z7k57gpRkDf&CkclDHP%#S!o9UoP~{%xLE~=Q6U59wqFLR^wb$TLcjFS zjkfH~>zKJ>YDgOpBbX<tQgMHXL7l!imXn9ea|m0~9L>sQ%^}?LUiiN-gQlC91KSnE zf;QX5d<4$);`>0c$Msabp42f~i^`m%kbQa_pV;uHu+*1mL=8@RZL~^6i~lwZqI7<o z1w*Asy2Ot|Q>YnrpL;#RSUy#c7m5LizO*S*W%e?YC4?OR+xFv1GS()XMis^6ZJO~8 zV(o#@Fpkc1HnXF*yj=kMcJ+6IZF)d62+j)BU@BpvTfm@VY(qWBbu--U^Z(^re)*<} z_^_)iKL_p9jB=i!#OB1b?~T80>xgUr&`X)f8VAd=O1_?npNi%an{?Y|rodHkFOKU= z=TNb5-t%1z{BIBxJr{ZjCLYj`F8(#|E~CQ|2RJVQJf4i@iL4V9TT*@@n2?4R?`ojF z#)}T0(0JL;NLyv#<o(lA_6|8(0dP)kwSIrql(}3{NnjGU1^<KmoB9Z6l(c4OjZ#)! zlx<P&*&(_UDLgX#Lik;zQ<qYTLYR~Q#NSmd5VQUdihbnk+1p#aBadA<kMoh`?opz+ zvH3Dg4elN`-*;!<gP8W~cfvgwXZ1C2?;*0aztxXPDk^<3yyq>>b~Veokr@d#p>^Ht z@#xS-`fcdj%5Uz(_2|H$+WL~jd<}6rVfIidSJ)a<bHNjt=fEv`*37Wac7j$!g5Dv* zXg`>B7%Qfxq&vKzmvSo~=JfpQ8uW?!uUeJGYv-(cc4InT{w2F1r3}#_1yv}`5VF{E zjd4y1XTm5-y->2RV=M*3`U(B#{9r&RgCQ9^M34^>^f8ZqIeS|&vxgpmCv!9|*bXt> zJDw1jBsfw>z@>=#EE;cd$NcnPwGmi#B^Na2N)+vj)p}c;B(@)k#ftvwXfRpbqjj!| zV*W)oJ15`hPKx(md>OA+d19Oh-NpoymrZjyxWy@Cov~}4H>m8{`=GTG5#+-*SZBB2 z1CjYSoa_qsMRb98OKz>te|)CB+b6Zi`RM_jfUxb~0E8@3wNJ?tMC*>oqjQ`S<9(MC z;7BDN=mTK$AYJ8$0+KpZKP>FH)lFk>=Gabi9J#vI#mn{lkE)Vt6WuolD;-kC*!Nqs z-9R95h6I4B>qbddU7)Sbv^QpAQEt}%LW<-U)4iR;vu(5ZI&RZ4nU$A5!hVdU;a!=E zv>A23OF_=$idEuVbz+s{Q|PtP&X<qPqL$W=)xuJ0(1U$mtmtU8%qMmK=DxPmp@&@( zl!1J!%DBSj9@h2xUwU$EaU^XYb6PAttm9Y-jZa=pa2LRuxkPO7Z?|Gw)c|7VL2~KF zDa#Gak(diOP`)H?<?CG`)fpb`5hWi_-Ni_#nB^&eRr|e$d9~CaUm2Aj%UO;qt0yxM zTUlystgR~^hRS)3iA=$?m+)>fJc*s$v7KuG__};;7`>J2-CB4-6DJ2(B)I67OQ}~9 z^!MW)W>44bPK_eeD$&o#qQAuo;3Sg49(NVk@=x~P^_`thHh`_{5Hi?5;?1I}M%xWu zP2AAhS!FU<xE@4Rhn;Fi`0wFiP-(w0AnRf$P65{2kv!P6`G)z`ou8p@6G&(D!pgs$ z@SerUu+dC(<*hkLcOM7vr(9`@v*y--xWeZezbW5aC^P<NRU~22tt_^QzWIH=YpP{* zkzgD_kM@V!aWCvP-5hN2Ad}(e=~K*mQe(dtC``Fj`TFWrH7OXGcBT~9_O7IVOj{?L zkgCKkN*W<iRNy?H`sjHUoA-I*t%hD-mcj~DDFZpy@0cd{HHsu(w6~M%*cPdiA=sDz zTPc+u@>FoA^zhCW44QQZu4{Al`^`2RwuTJR>$Fwo5}XD@*0i%3d8Qu^M9>W*5o@U4 zpml@0xG=VIdWVTR)Xx2CQu-kxKPm9ZB{@5rSU~p=XpaIR@2^&6IxQq6QPNnX&wCG$ z^zLGpH|d=X)j46yq&!-W0++eAD{reNp76?&8i&lwhd&6Eg%N&+MQoGiajoqd)BV&` z`}of`vCT>>?(AAKjx$f%=cSFcpQ<pm0d3-_N`ZX2hpP1+MKa2Mbl9oS=>Y&lVx-zF zg-h*t&XR@wiPlgUY@EDyS-%hWvy5#MI!X5DSjJC(?lu03?vwW{y6*3_eVVO+cbozh zP}Dbv&Nge{xl}F7iz@}KV9sRK_&a_l@ez*8zWU+9ZodE%kWe;e>>Ku9S-uOT&tFy; zK4rI_DvX{>n(r)esh@o2J|5<L!F{b?iu*CYg!WVeTuf%@npE)?-_Z69C@TI6>oZ)- zy7uQsYU^>y_B$&bNvpDgRqJ+oTt>+Uy4}I<A>=f}|GC+8L0qN<kP4qpesZL{OX`U` zq=sBvY6>dyE&Yu1#BLxgn$PjCNVvx5sq>(5C5^(rhUIEDAK=L##|9HbM>g}Rwjr<5 z#4gBWmW31}vIGN6Uqu6EMI?va{th6yP&r8a4)xFpp<SNmK8%Bc<*SV`0?b9os;-tZ z*>tA`L`{o0XQyaQN`lU+){iaeOnXFVt!YoUa~1Dd2g81wu<d_={>H8y+;k51gXamL zU<yDcYj2+E&aZ{j<&6nNah8`owit!8q6rt6>0RQ-g0n~T{kZAQu=u*8LuKi?%X$y} zl4UkOLxdFXh52#LE*ndcdM(kBA<<yh&KrmEE4%;Rymvka_qdz_nsvb}Q5BV>O!dz+ zf3FYl6u5Is`ypOL5W=pH671g@#}81kPB>|(j47UhkGn!pZuzq&B}v#>U!IT=hpm(E zqN73$T+JV5kuQ0tT&U6&w7aPTvBK~R{9TgNv(~W*gWUX79Mg)MawW!Wjs8VZ?c&2h zjnJ0;nwGuZ7c>*5^i`3j;mR;fkBF*^7XCVJwa=I7jQw`wl$5;bRPeb9*^N2=-PLj( zMP=W>Cc5XlV~y=;sU`A{9vgRUvlv*dXBm<$UeWu@{2odhgH<+$(qRsN^M;vJ>KZoI zad}qcX*5kVd1dJ+0n)kFm9n<uLR{h;DiQ$^*$LR`C5qi;abwgN{>r^}b4#3ohX-HN zN;JN*x}y8;mZ>Jz>bx5aWhZ+Nc{O(D)ce;J%wZ2tNQb;_|I@|0fm&1d8&>4QvHpXz z+X(8Rw{B8dc}DD*C0>CsV&S3eYjDUYmaN?C)YX9U^n##fefdn?lU~8eqytJN*97l< z5oj)m*_5!1Njwk~_HHluvLJzhQjcG80A`}sXcwyUR?YmKbF~j%_X0<25v3Jw=f%<M zWPP_NV``hP&~>?WFF~LAXz;I)SXQ6rIg!8$MZrL{lhAt-(c}lh@`v<pSNejJI^D(y zETd+xtM>W7k-PEWwoji<oIqnw+i!r5l~s32)b2NHeJ1*4CZp7&x|d&EjHBwEdFdx= z|1jX?gvH~B%pbdVzUl*@UkK6>zdMkmZGEt#`vV@!td#8W9O=NJ*Lt6xo@SF?2~xRy zEniub*jx1zNcft3RSHKHmqd(~Cke-7uyosG6U5AlkV1}RYk{5WG9tLRQRc9oz;vp= z^l*(8hQn%x6w&*t&cF!`_EaGM_NV3!wxSBni3}w)n;{a-wjux@VTy*4wkUYimRu94 zhBwarAB<t3=XwfIVH;3om{~>3T)0qo!%ec(;*PU0z#t=k09`230|wwR-<UIf{Cy)g z>eou(X$Mopb9p{9Y33m_QwqiJl0AZw<Vmday#eT`zW}w7qo*=`_dy0%v;FkS<fFqr zHglVje;6ZUzN=isuWfYfRthAC-z;#Labm%?Vi-DY8m5yf`FPqeHO$$e@F0w|QCixB zbzSj$3K=KEW&P)Ys#XzG^@7;ZTQPmExMN<!(ZyIMS9X}OV_xLTH0rrr%tYihTYVvr zcw*8b*dXBOfN-VB6l1{L>CguY=M--%L78vs$PqwDYztli?2@n)g>Y#{ELUx1m7Xc6 zYK(cp@gP37K);~&so3c!D^Sp!w&O#6ww`XG!qIRwSTVLKXg64pMpZ*yPA5BLu@bVI zk5G`P3NaiHWJoWDxU?aac|g6z$^EgGi=cGwQQ1q|3XCG%(l|1<gc`L?of6)PmObXE zeObtP`?dW$T98@f0U{kelcWw>$E0;wGN>3#%<BSOK@jer=uPN{0b{wm0KIOE9T6Li zkd<gGGd$qyfE8yb?10<OYbAs0zBJgO{^39{QLG89BD%ZZJJvy-wl!`d%vsn(gQ*H& zhl?jW=(Vs})?Q0Wk8sn-gSB5*4&3&}1?J!R4Yr@tr?FA@)g)@gVphXHh;(W(x_+$v zWYuE7HnkEw(>aJ1_#DIBa-g6s7j4xq*kxBjqm5()aCk?=ecb-Z^6QvsUe)#BjOatQ z33$9JNf;n?TCZ%3ZK3={MHg_@7z&T|O1NW`%qf-HK?rX`qj+MuFNg<X#o$y0R=Wq? zkR}KA-9?4)zKA)AvdTBdJ(!w6iWfe(Xd@oOUjs|?jwU9s;kHZ2pUx?TQ7hVE{i(Qn zbpn?G0=)HV=orjggdfATuD#gb@14hwulq(Kt{GL${|AlrcKMOIj^pJ}C7pSQB*N#^ z4`9d~<#hqn51nGwsMCwq!WdH`hS{*^gG)X^@&nl6)(IgiSfj|bG{LFPZeeY@gM$1B zRO6`MswWct(Wotw2A@JwR>gC-%HXlpXuc4<fs7RtyIfMdtka3YDya$w^uPJ;_}j)% z!B$w?XPKdHH$phc&%4N_R%qZQ8tB%c6+-x1b53W$@;_QQ3ZC_MOII(ekJcJ?YStnE zFbsi%BO%`Z$t=03gjvs=EZoIHr@~a#VmtoC@ruO7Ce?dgvAG3_s9gwMDF)drFiV&I z7AvY4u56H&29$&bN(C7MLKYg)dsSu*2tpQJEPQLK7gb(F4lq(CGWl$GV7Zf7F^Zh3 zgN4<?Uh`njd|C9vPa{DJsvc*zzu*3xhz9z>-hco?4A%WMkl<y}l6MXW?fIMj2K?0= zhtGHEizo9b>x`uu<nU?V5PW)YBtDr^hp<P3A3_yHf^Qh~$4Hm*-h2}qQf`}(@8A^t zjO%)0+^uh>w-a7|O<&Bi*o79Cv#9wL85ja0bv+w_2kdz-gP0D2h5c{Tz;ENu$_|-Y z&%dLC=d0{XnE8<ez*UhiLgynA(Zw~*UNM<!-2Zbbndw-Pic(PIp_5rf(n|C#gjPrn z0^EH>Lo9lM60YxZ{-;_FL{Ee8m(hR&1Do92Snl-v&qmjrF90}<UWlgNjK7)ak$W?` zSI*&s004^w*Z>b)C1SH??9mC!n5gG)yUm>BYBI!XsiTcJ3c`8f)?)T)#%s0J6=mZF zJ~y5S0SR1>Sa~$}g?R1UPNJ3|!J*1j8+mf6kU21X^Z>!)N*)^^HG(QX>@zARwTZ#k zh4LI8TGK@sB!-`H&~a0QaR)IF-mcqr9HFJhs~UdepU~>4BNCdc8r$3b$&z4s2}FvF zw5vk6NE|Y4hIK};odiPO<BFAxy+Lq4dK<;ZdHJ}*(<Qw<uI+$X4+4aAkHqVd3q|KY zy>;?e(*Stl9*#5MZhWS4Hg~PKmVllJ0YvI*Heam0Te-Y2kn<$q%kdkWmJtQun|dU< z*oBt!%Z(;`wB43*Kj|?sT#G?T6b!*m8#oG=;1Qa7E#!easSrjQpoJ)Z0h;}1Rj}Q- z7NYafhW!cyGD#Rh3f!!UT~$~ljDS?a0fRH6nlY$Bop2h-E5b=2(nbu{0RVN=lJ(+j zZyb2s#7+v{u<<`eK6j#SSqY~YYOu>pL)v@e{((}?R$D8Zr<pympJ^2C`bGlA0q#Tf z@EJ}N2vAS;5y*NHXcjSwj1$_k@xQa6^7}%t^Up1(5r<un8Aj<~sbu8n6zZ}TVgiF> zv{xFnk&n}_D%)KwFyjhAtJ|)vo3dq6qbM%u1%`URQ-`h101A}SQU<A(ZoJnI^1jie zq_sBxCze3WI>OGto6Y!k(QJKYD9)@E5Tn-e{~`dE9YZI$kPiBICIfRIFig3jvJ*P0 zia~?Actc*;oI{6QO^jb5V}Z{0<k5swc{|+H0gh3M9Di9pKt76N;yl!Yg)SRV{JlA8 z&G_C|FgSz@x=~-7DYWi?q!~ya-<ZTB#bd~EbfqhygOzrcl&#Y$J$0RaMr%=>Q2<x1 z)9aP!x#CV5>1u|cL%!iIWh;|`-R&S2v8mpXI}yDI-^6k|XE3t9WA#i7yuh5TyKKHC zg~<y+ou#)}3``O!^VZIBH3a}9F1e9nLskJQr7QLYr!JzIB?<L4Y0#%Ih1<@bJ=Mp9 zIN9sNFZzj@E!u@YlR3~LI}@0@#&}ekv&MgboE88Ox;u8VcPuV~Gz*(@b9{n+9MBPB zZI#m@MxhVXeF>_^Dg4Gf<6H`z#clyqs376M_AQL9n2~|oQi)ia*^;k5S(L^Xua@>Q zUtWFZ$_Nj#QON)xtm6@97KE+A0`_mkhr}m1AX$ZmI3H5c0%$#e@FT-0cq{Vv=Z{!> zw*DkkMDz7t)~pR7i42KyKZ<RJV?#lNTpeu=E!`g@$)yqTi;V<JaM+OTBjWNA+ndM+ zHPY@s46M7KI9wj_5S)>WD-tncZ+;bVT3X=>7r1d^xv?ymb{3}Qio_equKE|fF+rpR zf_9U+!#Kd{o0RD+Rt4&{-_f3e5*){IC^j+-+fj$C$JA{b69?N9Bbb#%E5oNit~IKQ zP&(-DIs~otvUhS#%&4XL_9#gD**O#!9C>%2AJpiljxRQfCr|X8BHk%bcI|5|&<Irf zD;sWKqt(Z<Bu0P4=a&gg(J$|hO`MZPluyeVOnG$Hsy)D_QlezTyp@)0Ri`58$A@@B z<W3cZuiTwL>OVv3)CD&dYVmeDHAjvV{r#-Na|Zvfn&IkcG{4sHDBw_1wN4pPJuR(t zr>)(eL}>kZAx2&b{v(FD2po}MD|zjLRF?XY_atYkCsPK%(`>+uyU#T7zvK4n=CwDT zN%mjglZ~<!Mj<Ty7XfRtlF?EIXZV_CUdo+NNBd7x)Cc5d{C#;>l(2wYHC{dC@q>sz z)Rc&C7HGVxm;DZHWhc7)8w!>kVkppMl;3zQwm~z;`6P8VNJ!m2_NTYG^x1tqor2Z& z*eX!;9FzM=*aEF&itG(d0L1UgM5-GCJOqLR?jRA#V=^>Hmh_Bt5)f*!=0N6&Q<F0{ zWOoThU7=26A1thZAcEullnpuG$4=p{Y_t7=YmvIjg6zMWDy!g5iPuv?HyQ=)(3`$r zBj@IrwEIOnu>p(Qc~PI%DJCKct$E+KnHIhD2>j~jTApURr6orWm6Zu=Fv(%V9~Bwa zwJcD+u4@gwpheF5T?#TgHUgS!#;s=^&01L|G|P-sGV=67i(e(60hYd@OcQH!T*z#j z__E-%+rmjLC-0lm4kO!Z79;p~wbIS-;2z4mxK3s|m0zFcXsO=Lp1F!ookPa%DY9L{ z(X)E=2AHrSY5U_AUzUD&de2cf97U_73$IHDp&<aUAYn-^SpfxQVY~lQ&sT`P8F0V@ zirJ#|N15pv*u4(S<3>BF(em3!mygGBUcz$neO1hRJf^WN)knb6SuiUTVlQM?*DOD4 ziyFyiPFbW*JKR>gw*P(cH|bSl!Zd<#e2dhyH~=mXasRUoeLo=}j8}Omk)oHWKb*8q zo)#ucqPX3^df$A!m&y6<4TGG2t{=XWeRRLkd05iE*Yy_g+MOW3!qV^GuvI@ppg>|h z^^8oC7{-t&gp?s=RyCimBwoS7h)&$FA*9EM0676%1>N9cP7oa>SBs&>51NVOi!wj5 zB<b4Fvt7C|h$&5K^|zW7ND_3?cD^0WmL?E@4cI_eVz^S~-;I}^!b%72s0+RO-`%V! z)*u`#@$@@b-gH-6RsN?KpABafsHuf%{cSh9u1wRLzvd$@zLW3hzE`tB=KPO_pgPZg zyc-miQ4hz*D7>@(VHOX00X{O5mdA2_lL&h-_Uk(Z27iF<qmD|3pC{~vQV*Pns<<<b z>$){t{7Z~heWK2)C${*TI;U&3fT2rc*&q89I-ORPHiJwjFLHt2hL%V;2=uz6G^3Uy zw>N+nKa#ZF!>Q6cKj;sj<~=ru8p;Lq+O(^yu&dskaQI}y%NP5bo2tI5B}ZXUXRa-{ zQAzI^<|x^ep`OCViBf}0Dc8MG2TI8<UPAQ=kb+M2>il%o%SLDi^F3`{JIh2-)NDg| zzuHvtW*NmD=@`~~@vQ7IyTk=*22F=(quLJ3DfoXqL3`Wf!F|7mMLmu&2k%PgvIfRW zUZdSNq^1fIC_JPhaRqgTU_}Qj+o;~(#0cOB0Y8Ixd4xrQg*Ir^Qw9~>WQi!p&~R9b z)CHdihv`6;I<CFm^*AmRtv_?b;?Au$fzm&0V^yGrq-|lPR)|Bq_l>sbnw>IKG*W~j z$O5}0;>bC#+}JzN8@Cp2AH>`7ufR}W1)fGdAEkBt!`T+vwRV1L2Xf@8b2HlT>qBZb zMo6TZ`L`$YT!k1Ehs~xx0%4Sh;XX~irn1jM`@@P>{82l~NXN_-s6SC`-ef)Z_PEl! z8VK^Pnt~nfE4IdownSH@n|WZ&1D^bsiC`yACkjUhA5jY5Egb7Q4uP6K8DDbqlR;5C z)H4(yQ1%qT)zNo`)KLI@A#;)bIK*7SSOun1gvfox98myi73?vi0<iV}lbp|kqJ~!- zZrpTPiKD4L%s7Y3l?E|w>$+@41A4Aq-B)9C!DVBXV=>!l2=?%cyz-l-kxX+#%ZRWX z>?qxbeJ`mDgo#uW203OAZ2#13f7ZiE9YElM@3P(w^<}l9G$%aMon2&|(A}W-4DNzH zyy)YiWGvosMBtDbBDOy|dc5R|)GQBBl~i7TWUrcP2PXdozR&&=U^~Q4eH;Wi66A2s zWmXOTfx*E76`;SCcy|4!!WGYXKs_Dd*{X{@zaJ5zmi_gH>6o`9+4XWM;%K9K(-xR) zf4jx!bnX2yv3WT$O-%u+47<Z=Sqame(XiytKVtf!{f)bEpALQy*i@IPkhq`u{=!&X zF~ap(LIZ+Hnn2baAP-yeKu-))9+_(0%CyjtE5XBs-K;c5Y6({_iRJyITjKa|3v<*B zf9U5~?p;m+s|dvXMLkm&9y2!6)@Ahk$X@vO>gzq7&KEf;A^;EpIu%06XBu+`@gsE* zL88f8gl7cym>e`1K=@G@YZr_66KYx8);bFE<iSgh9>17%I))wSY~Iy0z%LRdzCB0J z(>66{uXi4^KQYSbE_tn<gjGs|7`ru$WN7~L#Ec%9i{RB{42>&`1t=ilg9Z!&XB0n; zYNvC{`zHRb*+Ro;*ApO;+6X@i8$9Po$Dw_4C?IljP&os15T$G5$3c*<)Sec9Qm((` zO^q7h-Dkpt{)Ht7=KN2${aD-5Q?z(7h=DDS1}gYb?NOeNZcQ8=30vD4Tc@knT(6kx zlfa#JTuU11tN?u70v2!1hBLWRx2En7oe!78ZRf9X+FAnc^`zp<-aj;}Oq4s4!h@da z3vQFvf+EtFEC&04eo%ZTG-?YsZY!4NbdWLxpUe%4;}Q%tXp3@jW_#E58uU4TR8AVR z{7M+$0bL9{Mr>^gCB=R)Mj`g?9VSjDblz}6`xq0Jgd+p*)b<8^m|$AiMuw}>)D=aO zt8YZ#%<ZG}4N^oB_yMC)3~A4>>83s_RG9-T0Ld5^&z1grDO%Szd2cdM?688<Lm_#f zATu<G$Vac|sR{Pwg6Da5gSgj0!PxFGtHH4~#rpVeeBZm=Q`<{tm<!WC(ELQ<XKiwU zhX<8FlsF+I(MeLHNgtK40lH-OI#IHAmmY>rI_b>NR#wyxDdGgVc%ggnv>LEweZgev z<Uqe%LP#9l!$;dG@1GBEiwn!Xq7fq@*xK{Z42p1z@R36mhQ?!g0ep4FQLUM(V{}c1 zEx}*&fDhw-2$s(?yvMcoP-a%}xwx$3kv=zQ;T+z5>)%cp5DcBLkU8;9(Mw%srzpyo zMEC2a)0pYtvSv2KqwIrSb_|`etX!U(X&<(!Cbk*vOC8^7-R%UU>&Avf2vl2jRU?Sl zyMwM}v+N8(9aZj|+{$M!%i5H^8jbRDYku}KyV_>%Eug-phgiu{4Kz`cN?cBf<E3-G zl+$uwb=Hr?XZ{Mj7KVYa8522N>&m+dLfrBM1GU?irrqD#-fuH*p*Yw`I1l6-XgkGn z`>dpA{mU5aZ?CV>%*88@V<PdzliJ}UxHjrW{%kXr_=A&Q@#+9cR&z7!Z#Dr_5tOMf zv4|_hu^FVccjh2ZL%i+n$zp<72_bqk>*5Pw4UdW%hQY<&Mz8Q6Rrr|e3<YqJ07p?J z8Yx%!=;dncw6!0H;FdJ4deY5Q6}&{T6t5o@=5>Ay*?2gmocSF&2POiFh~Flezup zs3RZ57D}VoH&iDGgSVTqeuRG57eB7%S%BY63OEc5VZpXUGYY07W6!{aX6MB|@q3C@ zByl`F6vSAU5Wf-7sfXSC!|Uzb`!pjkr1yBb4qK};Hp+dS*96{0F~`HmXZ8e6GXv_~ zEGNafX4<L4yxl{(PL$hDjk1?*QvN8O=_TZPh*aLH#u)8LF!g!71R?(Z5;UA&?O|_R zv_R>8Aos*PoT0(qeT|IuA1X>BS{h$1jR*0SOk3tAt#@?{LQEi%x<mCYeRVyPGy;e& zA~`&G=K_m6Cb@q|S^A~h>jVJ;(Y~5}Xe}gvDe!#O)-fUioHwsU1E?A563a6;Y*Yvk zSh5u`QBXYsh|4mPztKBkD+PVIkHP3EO$X5w4*Ii^c6)QHx}I(YM$}A;JZoDN@dJlM zs*b3^fQ=3uGIto|4nj_S=}=Yg#0UrfT`WRyf6t%}uBIR~piiXmH=o}rthST>m1(}m z<(7q;ULOLu)bpt~<g68>)qh8_JXf_W(jP82)W$W+tUUXvw<diJUI*TEimzgz@wUff zqvbUJi;b5FVF5+ufI*lu0VF^q!Eg{n6bUoV14u#YdXF6*c;_F*DIslO*OT{>YtL-A z*4AJpE=dpQ2sb7QDYQ!HLhA+4vf$8wsimo;&=>@z21XmB$xx<Eb9wp&I`IZ73vxe< z9l$pq*geOZ_cMLatBwxKE+mF20A6YwSUKq06t|{<XXJICk0x*=;TH@71RV>yO>^kO zJEg9OhHv`mvR`ARMXuhro$<E!w!CADr5v$7qRl5a0LI3Fg!R(pC+4$#ypQ=*%hQqh z&ilI_{*!j}!XhV1nGp0g(Qon_yv4!FW){WNa6CUtO$<V)=5RtdT+K1g<N?#F6~dWV z&4iuHTh!8JESIqx8!&_B{87A7a9;!klHm$%0D%)0(fM}W%x-skxQ>7H@WbGx!bIM< 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 diff --git a/files/c/bonuses/10.tar.gz b/files/c/bonuses/10.tar.gz index 03f8ced4f842b174814e0d3d8bfb08694b921c4e..787cdddaa9d78c3526a615fa051746beae9e3e24 100644 GIT binary patch literal 230102 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℘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 W22K3`ecaOA0eA?Zt3bjaK>i0-6r}I~ literal 230105 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�JH@D0m5*CX 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%0A&ju2N8-|QFv(uBG1n=>BKoeB3WQYrgd>^0g)0eu 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%0Ajj+Q{5u+EVy5^{>qZ6-t)m^K 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 Z4?!?+sQ>3hfbt8K+@WU=EEEdt{{T=&*lqv- diff --git a/ib002/category/hash-tables/index.html b/ib002/category/hash-tables/index.html new file mode 100644 index 0000000..764ad82 --- /dev/null +++ b/ib002/category/hash-tables/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/category/hash-tables/"> + <link rel="canonical" href="/algorithms/category/hash-tables/" /> + </head> + <script> + window.location.href = '/algorithms/category/hash-tables/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/ib002/hash-tables/breaking/index.html b/ib002/hash-tables/breaking/index.html new file mode 100644 index 0000000..11d6a03 --- /dev/null +++ b/ib002/hash-tables/breaking/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/hash-tables/breaking/"> + <link rel="canonical" href="/algorithms/hash-tables/breaking/" /> + </head> + <script> + window.location.href = '/algorithms/hash-tables/breaking/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/ib002/hash-tables/breaking/mitigations/index.html b/ib002/hash-tables/breaking/mitigations/index.html new file mode 100644 index 0000000..0c6458f --- /dev/null +++ b/ib002/hash-tables/breaking/mitigations/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/hash-tables/breaking/mitigations/"> + <link rel="canonical" href="/algorithms/hash-tables/breaking/mitigations/" /> + </head> + <script> + window.location.href = '/algorithms/hash-tables/breaking/mitigations/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/ib002/hash-tables/breaking/python/index.html b/ib002/hash-tables/breaking/python/index.html new file mode 100644 index 0000000..00d57f2 --- /dev/null +++ b/ib002/hash-tables/breaking/python/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/hash-tables/breaking/python/"> + <link rel="canonical" href="/algorithms/hash-tables/breaking/python/" /> + </head> + <script> + window.location.href = '/algorithms/hash-tables/breaking/python/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/ib002/tags/cpp/index.html b/ib002/tags/cpp/index.html new file mode 100644 index 0000000..6f4cb47 --- /dev/null +++ b/ib002/tags/cpp/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/tags/cpp/"> + <link rel="canonical" href="/algorithms/tags/cpp/" /> + </head> + <script> + window.location.href = '/algorithms/tags/cpp/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/ib002/tags/hash-tables/index.html b/ib002/tags/hash-tables/index.html new file mode 100644 index 0000000..0403084 --- /dev/null +++ b/ib002/tags/hash-tables/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <meta http-equiv="refresh" content="0; url=/algorithms/tags/hash-tables/"> + <link rel="canonical" href="/algorithms/tags/hash-tables/" /> + </head> + <script> + window.location.href = '/algorithms/tags/hash-tables/' + window.location.search + window.location.hash; + </script> +</html> \ No newline at end of file diff --git a/index.html b/index.html index e622010..bb4bbb1 100644 --- a/index.html +++ b/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><header class="hero hero--primary heroBanner_qdFl"><div class="container"><h1 class="hero__title">mf</h1><p class="hero__subtitle">blog and additional materials for courses at φ</p></div></header><main><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--4"><div class="text--center padding-horiz--md"><h3>About Me</h3><p></p><p>I'm working in Red Hat in the<!-- --> <a href="https://github.com/packit">Packit team</a> and studying at<!-- --> <a href="https://fi.muni.cz">FI MUNI</a> while also tutoring some courses there.</p><p></p></div></div><div class="col col--4"><div class="text--center padding-horiz--md"><h3>Content</h3><p>On this page you can find my blog or unofficial materials I have written over the course of teaching multiple courses at the FI.</p></div></div><div class="col col--4"><div class="text--center padding-horiz--md"><h3>Mastodon</h3><p>Feel free to contact me on any of the following Mastodon accounts:<!-- --> <a rel="me" href="https://fosstodon.org/@m4tt_314">Fosstodon</a> <!-- -->or<!-- --> <a rel="me" href="https://hachyderm.io/@m4tt_314">Hachyderm.io</a></p></div></div></div></div></section></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/search/index.html b/search/index.html index 212aee5..3abf7dc 100644 --- a/search/index.html +++ b/search/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a class="navbar__item navbar__link" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>Search the documentation</h1><form class="row"><div class="col searchQueryColumn_RTkw col--12"><input type="search" name="q" class="searchQueryInput_u2C7" placeholder="Type your search here" aria-label="Search" autocomplete="off" autofocus=""></div></form><div class="row"><div class="col col--8 searchResultsColumn_JPFH"></div><div class="col col--4 text--right searchLogoColumn_rJIA"><a href="https://www.algolia.com/" target="_blank" rel="noopener noreferrer" aria-label="Search by Algolia"><svg viewBox="0 0 168 24" class="algoliaLogo_rT1R"><g fill="none"><path class="algoliaLogoPathFill_WdUC" 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"></path><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"></path><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"></path></g></svg></a></div></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div> diff --git a/sitemap.xml b/sitemap.xml index ca50732..495f225 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.mfocko.xyz/blog/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/2023/08/02/copr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/1st-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/2nd-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/3rd-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/4th-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/archive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/leetcode/sort-diagonally/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/%F0%9F%8F%AD/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/admin/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/advent-of-code-2022/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/advent-of-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/copr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/cpp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/leetcode/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/red-hat/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/rust/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/vps/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/contributions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/talks/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/backtracking/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/balanced-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/bfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/bottom-up-dp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/c/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/csharp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/dynamic-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/dynamic-programming/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/exponential/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/graphs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/greedy/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/iterative/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/java/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/karel/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/postconditions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/python/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/recursion/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/red-black-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/sorting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/testing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/time-complexity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/top-down-dp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/algorithms-correctness/postcondition-ambiguity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/algorithms-and-correctness/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/asymptotic-notation-and-time-complexity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/graphs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/recursion/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/red-black-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/graphs/bfs-tree/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/graphs/iterative-and-iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/rb-trees/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/rb-trees/rules/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/recursion/karel-1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/recursion/pyramid-slide-down/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/time-complexity/extend/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-03/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-04/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-05-06/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-08/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-10/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/category/bonuses/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/category/practice-exams/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/mr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/pexam/cams/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/pexam/garbage_collect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/category/exceptions-and-raii/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/environment/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/exceptions-and-raii/placeholders/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.mfocko.xyz/blog/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/2023/08/02/copr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/1st-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/2nd-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/3rd-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/4th-week/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/aoc-2022/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/archive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/leetcode/sort-diagonally/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/%F0%9F%8F%AD/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/admin/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/advent-of-code-2022/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/advent-of-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/copr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/cpp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/leetcode/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/red-hat/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/rust/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/blog/tags/vps/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/contributions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/talks/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/backtracking/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/balanced-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/bfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/bottom-up-dp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/c/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/cpp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/csharp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/dynamic-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/dynamic-programming/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/exponential/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/graphs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/greedy/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/hash-tables/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/iterative/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/java/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/karel/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/postconditions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/python/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/recursion/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/red-black-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/sorting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/testing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/time-complexity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/tags/top-down-dp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/algorithms-correctness/postcondition-ambiguity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/algorithms-and-correctness/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/asymptotic-notation-and-time-complexity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/graphs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/hash-tables/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/recursion/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/category/red-black-trees/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/graphs/bfs-tree/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/graphs/iterative-and-iterators/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/hash-tables/breaking/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/hash-tables/breaking/mitigations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/hash-tables/breaking/python/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/rb-trees/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/rb-trees/rules/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/recursion/karel-1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/recursion/pyramid-slide-down/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/algorithms/time-complexity/extend/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-03/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-04/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-05-06/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-08/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/bonuses/seminar-10/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/category/bonuses/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/category/practice-exams/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/mr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/pexam/cams/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/c/pexam/garbage_collect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/category/exceptions-and-raii/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/environment/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/cpp/exceptions-and-raii/placeholders/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://blog.mfocko.xyz/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file diff --git a/talks/index.html b/talks/index.html index 4bfead9..282c0dc 100644 --- a/talks/index.html +++ b/talks/index.html @@ -14,8 +14,8 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.0f577c26.css"> -<script src="/assets/js/runtime~main.9b3960c4.js" defer="defer"></script> -<script src="/assets/js/main.2d5ce640.js" defer="defer"></script> +<script src="/assets/js/runtime~main.f17742ff.js" defer="defer"></script> +<script src="/assets/js/main.a809bb25.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">mf</b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Additional FI MU materials</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/algorithms/">Algorithms</a></li><li><a class="dropdown__link" href="/c/">C</a></li><li><a class="dropdown__link" href="/cpp/">C++</a></li></ul></div><a class="navbar__item navbar__link" href="/contributions/">Contributions</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/talks/">Talks</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><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"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><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"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container container--fluid margin-vert--lg"><h1>Talks</h1><p>Featured talks I presented on various events.</p><div class="row"><div class="col col--12"><div class="card card_h7vX"><div class="card__header"><h2>Packit: RPM integration, all in one</h2></div><div class="card__body"><div class="row"><div class="col col--7">Do you want to automate how you build and test your RPM packages? Do you maintain any package in Fedora and want to automate the releases? Or are you just interested in CI/CD on GitHub or GitLab, Fedora and integration of upstream projects with RPM-based Linux distributions? In this session, we are going to deep-dive into features of Packit that can help you do your day-to-day job.</div><div class="col col--5 eventDetailsContainer_ujlS"><div class="row"><div class="col col--12"><ul class="list_DjY4"><li><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon_R7DV"><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19 2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"></path></svg> <strong>DevConf.cz</strong></li><li><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon_R7DV"><path fill="none" d="M0 0h24v24H0z"></path><path d="m12 23.728-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zm4.95-7.778a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"></path></svg> <!-- -->Brno, Czechia</li><li><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon_R7DV"><path fill="none" d="M0 0h24v24H0z"></path><path d="M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z"></path></svg> <!-- -->6/2023</li></ul></div><div class="col col--12"><p class="margin--none">Also presented on:</p><ul><li><strong>DevConf.cz Mini</strong> in <!-- -->Brno, Czechia<!-- --> (<!-- -->3/2023<!-- -->)</li></ul></div></div></div></div></div><div class="card__footer"><div class="buttons_jSVm"><a href="https://www.youtube.com/watch?v=FxhXzgxWO18" target="_blank" class="button button--primary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 5v14h8V5H8zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"></path></svg></span>Watch recording</a><a href="https://static.sched.com/hosted_files/devconfcz2023/37/DevConf.cz%20June%202023%20Packit%20talk-1.pdf" target="_blank" class="button button--secondary button--outline"><span class="button__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"></path><path d="M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM4 5v11h16V5H4zm6 2.5 5 3-5 3v-6z"></path></svg></span>See slides</a></div></div></div></div></div><hr><p>Credits to <a href="https://kosiec.dev/" target="_blank">Paweł Kosiec</a> for implementing his own React components for talks.</p></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Git</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://gitlab.com/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitLab<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://git.mfocko.xyz/mfocko" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea (self-hosted)<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #1</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/in/mfocko/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fosstodon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://hachyderm.io/@m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Hachyderm.io<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Social #2</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://twitch.tv/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitch<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li><li class="footer__item"><a href="https://ko-fi.com/m4tt_314" target="_blank" rel="noopener noreferrer" class="footer__link-item">Ko-fi<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><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"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Matej Focko.</div></div></div></footer></div>