server-side rendering actually works now

Orual 67dfd1c3 9f6c28e4

+723 -441
+197 -231
Cargo.lock
··· 30 30 "macroific", 31 31 "proc-macro2", 32 32 "quote", 33 - "syn 2.0.108", 33 + "syn 2.0.109", 34 34 ] 35 35 36 36 [[package]] ··· 227 227 dependencies = [ 228 228 "proc-macro2", 229 229 "quote", 230 - "syn 2.0.108", 230 + "syn 2.0.109", 231 231 ] 232 232 233 233 [[package]] ··· 249 249 dependencies = [ 250 250 "proc-macro2", 251 251 "quote", 252 - "syn 2.0.108", 252 + "syn 2.0.109", 253 253 ] 254 254 255 255 [[package]] ··· 260 260 dependencies = [ 261 261 "proc-macro2", 262 262 "quote", 263 - "syn 2.0.108", 263 + "syn 2.0.109", 264 264 ] 265 265 266 266 [[package]] ··· 411 411 dependencies = [ 412 412 "proc-macro2", 413 413 "quote", 414 - "syn 2.0.108", 414 + "syn 2.0.109", 415 415 ] 416 416 417 417 [[package]] ··· 569 569 "proc-macro2", 570 570 "quote", 571 571 "rustversion", 572 - "syn 2.0.108", 572 + "syn 2.0.109", 573 573 ] 574 574 575 575 [[package]] ··· 709 709 710 710 [[package]] 711 711 name = "cc" 712 - version = "1.2.44" 712 + version = "1.2.45" 713 713 source = "registry+https://github.com/rust-lang/crates.io-index" 714 - checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" 714 + checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" 715 715 dependencies = [ 716 716 "find-msvc-tools", 717 717 "jobserver", ··· 871 871 "heck 0.5.0", 872 872 "proc-macro2", 873 873 "quote", 874 - "syn 2.0.108", 874 + "syn 2.0.109", 875 875 ] 876 876 877 877 [[package]] ··· 1000 1000 1001 1001 [[package]] 1002 1002 name = "const-serialize" 1003 - version = "0.7.0" 1003 + version = "0.7.1" 1004 1004 source = "registry+https://github.com/rust-lang/crates.io-index" 1005 - checksum = "4b4acbf274e71b0a53ff15f8669b86df421586a9fcac6398bc374c0b7146b6a3" 1005 + checksum = "fd339aa356cc6452308fad2ee56623f900a8e68bc0ab9360a0ddb8270e5640c8" 1006 1006 dependencies = [ 1007 1007 "const-serialize-macro", 1008 1008 "serde", ··· 1010 1010 1011 1011 [[package]] 1012 1012 name = "const-serialize-macro" 1013 - version = "0.7.0" 1013 + version = "0.7.1" 1014 1014 source = "registry+https://github.com/rust-lang/crates.io-index" 1015 - checksum = "b2d3f3be18d39289c06c906cb7fb7ea1f027607ac5fa0cb0c4f1e91719042c52" 1015 + checksum = "797d158acb331e2a89d696343a27cd39bf7e36aaef33ba4799a5ef1526e24861" 1016 1016 dependencies = [ 1017 1017 "proc-macro2", 1018 1018 "quote", 1019 - "syn 2.0.108", 1019 + "syn 2.0.109", 1020 1020 ] 1021 1021 1022 1022 [[package]] ··· 1283 1283 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 1284 1284 dependencies = [ 1285 1285 "quote", 1286 - "syn 2.0.108", 1286 + "syn 2.0.109", 1287 1287 ] 1288 1288 1289 1289 [[package]] ··· 1310 1310 dependencies = [ 1311 1311 "proc-macro2", 1312 1312 "quote", 1313 - "syn 2.0.108", 1313 + "syn 2.0.109", 1314 1314 ] 1315 1315 1316 1316 [[package]] ··· 1334 1334 "proc-macro2", 1335 1335 "quote", 1336 1336 "strsim", 1337 - "syn 2.0.108", 1337 + "syn 2.0.109", 1338 1338 ] 1339 1339 1340 1340 [[package]] ··· 1345 1345 dependencies = [ 1346 1346 "darling_core", 1347 1347 "quote", 1348 - "syn 2.0.108", 1348 + "syn 2.0.109", 1349 1349 ] 1350 1350 1351 1351 [[package]] ··· 1385 1385 checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" 1386 1386 dependencies = [ 1387 1387 "data-encoding", 1388 - "syn 2.0.108", 1388 + "syn 2.0.109", 1389 1389 ] 1390 1390 1391 1391 [[package]] ··· 1427 1427 "macroific", 1428 1428 "proc-macro2", 1429 1429 "quote", 1430 - "syn 2.0.108", 1430 + "syn 2.0.109", 1431 1431 ] 1432 1432 1433 1433 [[package]] ··· 1461 1461 "proc-macro2", 1462 1462 "quote", 1463 1463 "rustc_version", 1464 - "syn 2.0.108", 1464 + "syn 2.0.109", 1465 1465 ] 1466 1466 1467 1467 [[package]] ··· 1490 1490 dependencies = [ 1491 1491 "proc-macro2", 1492 1492 "quote", 1493 - "syn 2.0.108", 1493 + "syn 2.0.109", 1494 1494 "unicode-xid", 1495 1495 ] 1496 1496 ··· 1502 1502 dependencies = [ 1503 1503 "proc-macro2", 1504 1504 "quote", 1505 - "syn 2.0.108", 1505 + "syn 2.0.109", 1506 1506 "unicode-xid", 1507 1507 ] 1508 1508 ··· 1551 1551 "dsl_auto_type", 1552 1552 "proc-macro2", 1553 1553 "quote", 1554 - "syn 2.0.108", 1554 + "syn 2.0.109", 1555 1555 ] 1556 1556 1557 1557 [[package]] ··· 1571 1571 source = "registry+https://github.com/rust-lang/crates.io-index" 1572 1572 checksum = "fe2444076b48641147115697648dc743c2c00b61adade0f01ce67133c7babe8c" 1573 1573 dependencies = [ 1574 - "syn 2.0.108", 1574 + "syn 2.0.109", 1575 1575 ] 1576 1576 1577 1577 [[package]] ··· 1588 1588 1589 1589 [[package]] 1590 1590 name = "dioxus" 1591 - version = "0.7.0" 1591 + version = "0.7.1" 1592 1592 source = "registry+https://github.com/rust-lang/crates.io-index" 1593 - checksum = "9361dcb0cacb57f8af31010e1a3503404415ce5ff33dd83c760dfdcf505aded9" 1593 + checksum = "f76e820919058a685a1fdbb2ef4888c73ac77d623c39a7dfde2aa812947246be" 1594 1594 dependencies = [ 1595 1595 "dioxus-asset-resolver", 1596 1596 "dioxus-cli-config", ··· 1622 1622 1623 1623 [[package]] 1624 1624 name = "dioxus-asset-resolver" 1625 - version = "0.7.0" 1625 + version = "0.7.1" 1626 1626 source = "registry+https://github.com/rust-lang/crates.io-index" 1627 - checksum = "954badc855b8e61d8880d204c7e3e2570daa59302c3843b2de1fae30ec266e64" 1627 + checksum = "7f6a124667ce5565c39fe2f33af45c21fe459c5bfcf7a8074ad12c9e9da5817c" 1628 1628 dependencies = [ 1629 1629 "dioxus-cli-config", 1630 1630 "http", ··· 1643 1643 1644 1644 [[package]] 1645 1645 name = "dioxus-cli-config" 1646 - version = "0.7.0" 1646 + version = "0.7.1" 1647 1647 source = "registry+https://github.com/rust-lang/crates.io-index" 1648 - checksum = "d28a6973d779e73f4b8ce705b1ea4c96f4083567ede862e734da2ab7c1dfc4b6" 1648 + checksum = "babc8eaf90379352bc4820830749fd231feb9312433d4094b4e7b79d912b3d96" 1649 1649 dependencies = [ 1650 1650 "wasm-bindgen", 1651 1651 ] 1652 1652 1653 1653 [[package]] 1654 1654 name = "dioxus-config-macro" 1655 - version = "0.7.0" 1655 + version = "0.7.1" 1656 1656 source = "registry+https://github.com/rust-lang/crates.io-index" 1657 - checksum = "b9b5a9360dbf7a8499f67a96b8408f0c4d45222b0f19d7e42a7c49030b1a4085" 1657 + checksum = "30018b5b95567cee42febbb444d5e5e47dbe3e91fa6e44b9e571edad0184cd36" 1658 1658 dependencies = [ 1659 1659 "proc-macro2", 1660 1660 "quote", ··· 1662 1662 1663 1663 [[package]] 1664 1664 name = "dioxus-config-macros" 1665 - version = "0.7.0" 1665 + version = "0.7.1" 1666 1666 source = "registry+https://github.com/rust-lang/crates.io-index" 1667 - checksum = "060c2e384709a434a74d24a676f4ccd61e7a97f812b0807fa71a8ef8896cfd3b" 1667 + checksum = "0a16b25f8761253ed5ffa4d0789376310fbbc1bbaa8190fc2f374db82c6285a1" 1668 1668 1669 1669 [[package]] 1670 1670 name = "dioxus-core" 1671 - version = "0.7.0" 1671 + version = "0.7.1" 1672 1672 source = "registry+https://github.com/rust-lang/crates.io-index" 1673 - checksum = "743e05cc98a6c7189e7df49791c0affb860cb858ba2a19dde4ecadf2a8729e8c" 1673 + checksum = "75468d08468919f783b0f7ee826802f4e8e66c5b5a0451245d861c211ca18216" 1674 1674 dependencies = [ 1675 1675 "anyhow", 1676 1676 "const_format", ··· 1691 1691 1692 1692 [[package]] 1693 1693 name = "dioxus-core-macro" 1694 - version = "0.7.0" 1694 + version = "0.7.1" 1695 1695 source = "registry+https://github.com/rust-lang/crates.io-index" 1696 - checksum = "fa557c3d165eb2df73414f4678912e4595de80d6cd13566a3377f16c438c5ec3" 1696 + checksum = "f145abdb2a3f858456cb4382390863cf0398c228ad0733618f48891da7687be3" 1697 1697 dependencies = [ 1698 1698 "convert_case 0.8.0", 1699 1699 "dioxus-rsx", 1700 1700 "proc-macro2", 1701 1701 "quote", 1702 - "syn 2.0.108", 1702 + "syn 2.0.109", 1703 1703 ] 1704 1704 1705 1705 [[package]] 1706 1706 name = "dioxus-core-types" 1707 - version = "0.7.0" 1707 + version = "0.7.1" 1708 1708 source = "registry+https://github.com/rust-lang/crates.io-index" 1709 - checksum = "6d16343cebee52e82686963ccd6f5590ebca567229bfa59aa3d598210f3a9fc0" 1709 + checksum = "36f5ecf5a51de06d78aded3b5f7516a258f53117cba718bc5706317a3c04c844" 1710 1710 1711 1711 [[package]] 1712 1712 name = "dioxus-desktop" 1713 - version = "0.7.0" 1713 + version = "0.7.1" 1714 1714 source = "registry+https://github.com/rust-lang/crates.io-index" 1715 - checksum = "4dfcfa2ae65f643a05583acb27e5a52b22de52b2f49583d012c8e58b6c495941" 1715 + checksum = "f493c74ff09410c5eadf42abd031d4b3d4032a4d5a2411c77d1d0d5156ca3687" 1716 1716 dependencies = [ 1717 1717 "async-trait", 1718 1718 "base64 0.22.1", ··· 1736 1736 "global-hotkey", 1737 1737 "infer", 1738 1738 "jni", 1739 - "lazy-js-bundle 0.7.0", 1739 + "lazy-js-bundle 0.7.1", 1740 1740 "libc", 1741 1741 "muda", 1742 1742 "ndk", ··· 1759 1759 "tracing", 1760 1760 "tray-icon", 1761 1761 "tungstenite 0.27.0", 1762 - "webbrowser 1.0.6", 1762 + "webbrowser", 1763 1763 "wry", 1764 1764 ] 1765 1765 1766 1766 [[package]] 1767 1767 name = "dioxus-devtools" 1768 - version = "0.7.0" 1768 + version = "0.7.1" 1769 1769 source = "registry+https://github.com/rust-lang/crates.io-index" 1770 - checksum = "419353dace2fb67ac7b35070a56c00a66c920c0191e7a81cf9c9ac8dd7ab3798" 1770 + checksum = "4eb2c5019b7fa72e8e6b21ba99e9263bd390c9a30bbf09793b72f4b57ed7c3d7" 1771 1771 dependencies = [ 1772 1772 "dioxus-cli-config", 1773 1773 "dioxus-core", ··· 1786 1786 1787 1787 [[package]] 1788 1788 name = "dioxus-devtools-types" 1789 - version = "0.7.0" 1789 + version = "0.7.1" 1790 1790 source = "registry+https://github.com/rust-lang/crates.io-index" 1791 - checksum = "e6eb8755823ca644da88a50e80676330f4f0c1a40650af03d2fd617d3478a8e7" 1791 + checksum = "7b007cec5b8548281921c4e4678926a3936e9d6757e951380685cc6121a6f974" 1792 1792 dependencies = [ 1793 1793 "dioxus-core", 1794 1794 "serde", ··· 1797 1797 1798 1798 [[package]] 1799 1799 name = "dioxus-document" 1800 - version = "0.7.0" 1800 + version = "0.7.1" 1801 1801 source = "registry+https://github.com/rust-lang/crates.io-index" 1802 - checksum = "94cc73e120c260a07689353b09b8fdb0c49960fb88ba8e669992245c80720bb6" 1802 + checksum = "8c55bcae9aaf150d4a141c61b3826da5a7ac23dfff09726568525cd46336e9a2" 1803 1803 dependencies = [ 1804 1804 "dioxus-core", 1805 1805 "dioxus-core-macro", ··· 1808 1808 "futures-channel", 1809 1809 "futures-util", 1810 1810 "generational-box", 1811 - "lazy-js-bundle 0.7.0", 1811 + "lazy-js-bundle 0.7.1", 1812 1812 "serde", 1813 1813 "serde_json", 1814 1814 "tracing", ··· 1816 1816 1817 1817 [[package]] 1818 1818 name = "dioxus-fullstack" 1819 - version = "0.7.0" 1819 + version = "0.7.1" 1820 1820 source = "registry+https://github.com/rust-lang/crates.io-index" 1821 - checksum = "f55dfce343a754869dfde344e41c79a3ec4737867f90501dcfe8850eceeb37ea" 1821 + checksum = "ff04cef82d6639eb15186f626298645dbd92978bf66dc3efd2e5984a2ff4a1ff" 1822 1822 dependencies = [ 1823 1823 "anyhow", 1824 1824 "async-stream", ··· 1881 1881 1882 1882 [[package]] 1883 1883 name = "dioxus-fullstack-core" 1884 - version = "0.7.0" 1884 + version = "0.7.1" 1885 1885 source = "registry+https://github.com/rust-lang/crates.io-index" 1886 - checksum = "6f486f2b8864d1a0843189acbec74af6d9d206e82694ded6e5923a6c6f774b15" 1886 + checksum = "41281c7cd4d311a50933256e19a5d91d0d950ad350dd3232bd4321fdd3a59fb0" 1887 1887 dependencies = [ 1888 1888 "anyhow", 1889 1889 "axum-core", ··· 1909 1909 1910 1910 [[package]] 1911 1911 name = "dioxus-fullstack-macro" 1912 - version = "0.7.0" 1912 + version = "0.7.1" 1913 1913 source = "registry+https://github.com/rust-lang/crates.io-index" 1914 - checksum = "5a59c844d648dae315b5aa264956f0c6fd9f34a5cedbf79fd0744820bf302bc5" 1914 + checksum = "ae73023c8b8fee2692fc50a28063336f0b6930e86727e30c1047c92d30805b49" 1915 1915 dependencies = [ 1916 1916 "const_format", 1917 1917 "convert_case 0.8.0", 1918 1918 "proc-macro2", 1919 1919 "quote", 1920 - "syn 2.0.108", 1920 + "syn 2.0.109", 1921 1921 "xxhash-rust", 1922 1922 ] 1923 1923 1924 1924 [[package]] 1925 1925 name = "dioxus-history" 1926 - version = "0.7.0" 1926 + version = "0.7.1" 1927 1927 source = "registry+https://github.com/rust-lang/crates.io-index" 1928 - checksum = "1ea04ad918a08b81af66f1128f759162e33e8f7e7e062597e6dd542a45211905" 1928 + checksum = "dac73657da5c7a20629482d774b52f4a4f7cb57a520649f1d855d4073e809c98" 1929 1929 dependencies = [ 1930 1930 "dioxus-core", 1931 1931 "tracing", ··· 1933 1933 1934 1934 [[package]] 1935 1935 name = "dioxus-hooks" 1936 - version = "0.7.0" 1936 + version = "0.7.1" 1937 1937 source = "registry+https://github.com/rust-lang/crates.io-index" 1938 - checksum = "0e7c1a9c7e8d2422198d082d03a9e1f4eb5789cdc1d73f1eb08e0d36a62fdfcb" 1938 + checksum = "7ffd445f16d64939e06cd71a1c63a665f383fda6b7882f4c6f8f1bd6efca2046" 1939 1939 dependencies = [ 1940 1940 "dioxus-core", 1941 1941 "dioxus-signals", ··· 1950 1950 1951 1951 [[package]] 1952 1952 name = "dioxus-html" 1953 - version = "0.7.0" 1953 + version = "0.7.1" 1954 1954 source = "registry+https://github.com/rust-lang/crates.io-index" 1955 - checksum = "fe86f40430acb0ee310f91e7dbdd48ea4e26267dedab6e54f0c45f0c692db924" 1955 + checksum = "9f407fc73a9554a644872fcccc9faf762acad8f45158e3d67e42ab8dd42f4586" 1956 1956 dependencies = [ 1957 1957 "async-trait", 1958 1958 "bytes", ··· 1967 1967 "futures-util", 1968 1968 "generational-box", 1969 1969 "keyboard-types", 1970 - "lazy-js-bundle 0.7.0", 1970 + "lazy-js-bundle 0.7.1", 1971 1971 "rustversion", 1972 1972 "serde", 1973 1973 "serde_json", ··· 1977 1977 1978 1978 [[package]] 1979 1979 name = "dioxus-html-internal-macro" 1980 - version = "0.7.0" 1980 + version = "0.7.1" 1981 1981 source = "registry+https://github.com/rust-lang/crates.io-index" 1982 - checksum = "267ca3487501aa1b95a5d65554ee36839da660b03174146c5c27d54014067abd" 1982 + checksum = "a968aae4bc92de87cbac3d0d043803b25a7c62c187841e61adcc9b49917c2b2a" 1983 1983 dependencies = [ 1984 1984 "convert_case 0.8.0", 1985 1985 "proc-macro2", 1986 1986 "quote", 1987 - "syn 2.0.108", 1987 + "syn 2.0.109", 1988 1988 ] 1989 1989 1990 1990 [[package]] 1991 1991 name = "dioxus-interpreter-js" 1992 - version = "0.7.0" 1992 + version = "0.7.1" 1993 1993 source = "registry+https://github.com/rust-lang/crates.io-index" 1994 - checksum = "14c429cd5057cec2eb00acef02a699ebd359a98d392629464b2e1c350eaed8ce" 1994 + checksum = "83ab170d89308399205f8ad3d43d8d419affe317016b41ca0695186f7593cba2" 1995 1995 dependencies = [ 1996 1996 "dioxus-core", 1997 1997 "dioxus-core-types", 1998 1998 "dioxus-html", 1999 1999 "js-sys", 2000 - "lazy-js-bundle 0.7.0", 2000 + "lazy-js-bundle 0.7.1", 2001 2001 "rustc-hash 2.1.1", 2002 2002 "serde", 2003 2003 "sledgehammer_bindgen", ··· 2009 2009 2010 2010 [[package]] 2011 2011 name = "dioxus-liveview" 2012 - version = "0.7.0" 2012 + version = "0.7.1" 2013 2013 source = "registry+https://github.com/rust-lang/crates.io-index" 2014 - checksum = "36d558d71ee41b33d2b35fd39444bfaab65fbda0b608c3eba33ea8ff97247115" 2014 + checksum = "ca4f2850ec1a468c6f15b578c43218562d2309aadaf2b8bf17f54ce30e72f594" 2015 2015 dependencies = [ 2016 2016 "axum", 2017 2017 "dioxus-cli-config", ··· 2037 2037 2038 2038 [[package]] 2039 2039 name = "dioxus-logger" 2040 - version = "0.7.0" 2040 + version = "0.7.1" 2041 2041 source = "registry+https://github.com/rust-lang/crates.io-index" 2042 - checksum = "7a54751cf6aa00132c8a17343ad8d8cdb587d67a4b71acfc19ed78a924128edb" 2042 + checksum = "42237934c6a67f5ed9a8c37e47ca980ee7cfec9e783a9a1f8c2e36c8b96ae74b" 2043 2043 dependencies = [ 2044 2044 "dioxus-cli-config", 2045 2045 "tracing", ··· 2062 2062 2063 2063 [[package]] 2064 2064 name = "dioxus-router" 2065 - version = "0.7.0" 2065 + version = "0.7.1" 2066 2066 source = "registry+https://github.com/rust-lang/crates.io-index" 2067 - checksum = "577cc2680066242ef0e672c379c7b63072dee838a7dac6a4296f0c768ab2f72f" 2067 + checksum = "fdf1b95b7cafd07a2b39651ab2b146e4aa72acb0295cd52f422b7db5e2ab6eeb" 2068 2068 dependencies = [ 2069 2069 "dioxus-cli-config", 2070 2070 "dioxus-core", ··· 2083 2083 2084 2084 [[package]] 2085 2085 name = "dioxus-router-macro" 2086 - version = "0.7.0" 2086 + version = "0.7.1" 2087 2087 source = "registry+https://github.com/rust-lang/crates.io-index" 2088 - checksum = "a924da6e4b92053266b1f153292bd2282ce1ff2b035b29002f1520112a4d00e5" 2088 + checksum = "a292046c5d166046ae027fce47b177a733946cf1efc8d006de9f4064f69110cd" 2089 2089 dependencies = [ 2090 2090 "base16", 2091 2091 "digest", ··· 2093 2093 "quote", 2094 2094 "sha2", 2095 2095 "slab", 2096 - "syn 2.0.108", 2096 + "syn 2.0.109", 2097 2097 ] 2098 2098 2099 2099 [[package]] 2100 2100 name = "dioxus-rsx" 2101 - version = "0.7.0" 2101 + version = "0.7.1" 2102 2102 source = "registry+https://github.com/rust-lang/crates.io-index" 2103 - checksum = "e290f814c6ee06f34d40bb5f3db976500f39e1776c80984fb23815377c2c9cd0" 2103 + checksum = "f026380dfda8b93ad995c0a90a62a17b8afeb246baff1b781a52c7b1b3ebd791" 2104 2104 dependencies = [ 2105 2105 "proc-macro2", 2106 2106 "proc-macro2-diagnostics", 2107 2107 "quote", 2108 - "syn 2.0.108", 2108 + "syn 2.0.109", 2109 2109 ] 2110 2110 2111 2111 [[package]] 2112 2112 name = "dioxus-server" 2113 - version = "0.7.0" 2113 + version = "0.7.1" 2114 2114 source = "registry+https://github.com/rust-lang/crates.io-index" 2115 - checksum = "0b3b6b8658b79b05c44e66dd934ca3e419a175d1ea9c130b07aa6512605e8df5" 2115 + checksum = "012e972802d2dc4f4afab89bb4c7695e6a7b8b8a81b6bc30d43c1a42e11eb6ff" 2116 2116 dependencies = [ 2117 2117 "anyhow", 2118 2118 "async-trait", ··· 2168 2168 2169 2169 [[package]] 2170 2170 name = "dioxus-signals" 2171 - version = "0.7.0" 2171 + version = "0.7.1" 2172 2172 source = "registry+https://github.com/rust-lang/crates.io-index" 2173 - checksum = "4fce8fe43f49769d7a05bef9e1acafcefc9b5f7da2b9bb58e0bde12a145028b9" 2173 + checksum = "3895cc17ff5b43ada07743111be586e7a927ed7ec511457020e4235e13e63fe6" 2174 2174 dependencies = [ 2175 2175 "dioxus-core", 2176 2176 "futures-channel", ··· 2184 2184 2185 2185 [[package]] 2186 2186 name = "dioxus-ssr" 2187 - version = "0.7.0" 2187 + version = "0.7.1" 2188 2188 source = "registry+https://github.com/rust-lang/crates.io-index" 2189 - checksum = "c180307efbf0f2cb64ad125fd4e6e00d0586dba73875bdea0d6587f5c89524b7" 2189 + checksum = "592391fc30a77f94bc5a3385d1569052907e3b3cecb28099671b9d5801dee6c6" 2190 2190 dependencies = [ 2191 2191 "askama_escape", 2192 2192 "dioxus-core", ··· 2196 2196 2197 2197 [[package]] 2198 2198 name = "dioxus-stores" 2199 - version = "0.7.0" 2199 + version = "0.7.1" 2200 2200 source = "registry+https://github.com/rust-lang/crates.io-index" 2201 - checksum = "01f9b29b4486f4aa515ab59b5d5b9177b1abf1a3f4c1940cedc8031ca6c11933" 2201 + checksum = "8521729ac35f362476ac4eb7d1c4ab79e7e92a0facfdea3ee978c0ddf7108d37" 2202 2202 dependencies = [ 2203 2203 "dioxus-core", 2204 2204 "dioxus-signals", ··· 2207 2207 2208 2208 [[package]] 2209 2209 name = "dioxus-stores-macro" 2210 - version = "0.7.0" 2210 + version = "0.7.1" 2211 2211 source = "registry+https://github.com/rust-lang/crates.io-index" 2212 - checksum = "24d63865f35106c145a11b1072eb84dd9d0d4ca4a78861ad666c297ebae8f42d" 2212 + checksum = "23a733d2684dc843e81954f6176b3353e4cfc71b6978a8e464591bb5536f610b" 2213 2213 dependencies = [ 2214 2214 "convert_case 0.8.0", 2215 2215 "proc-macro2", 2216 2216 "quote", 2217 - "syn 2.0.108", 2217 + "syn 2.0.109", 2218 2218 ] 2219 2219 2220 2220 [[package]] 2221 2221 name = "dioxus-time" 2222 2222 version = "0.7.0" 2223 - source = "git+https://github.com/ealmloff/dioxus-std?branch=0.7#e5a74354cd36be440febdd6b701f584bd552bd62" 2223 + source = "git+https://github.com/ealmloff/dioxus-std?branch=0.7#8c868ac1d60e3232e3f16f6195d6deb3c016de17" 2224 2224 dependencies = [ 2225 2225 "dioxus", 2226 2226 "futures", ··· 2230 2230 2231 2231 [[package]] 2232 2232 name = "dioxus-web" 2233 - version = "0.7.0" 2233 + version = "0.7.1" 2234 2234 source = "registry+https://github.com/rust-lang/crates.io-index" 2235 - checksum = "6d877058b49e547fee2b0fe26af17018142983262a9dd3f739963903799aea8e" 2235 + checksum = "76155ecd44535e7c096ec8c5aac4a945899e47567ead4869babdaa74f3f9bca0" 2236 2236 dependencies = [ 2237 2237 "dioxus-cli-config", 2238 2238 "dioxus-core", ··· 2249 2249 "generational-box", 2250 2250 "gloo-timers", 2251 2251 "js-sys", 2252 - "lazy-js-bundle 0.7.0", 2252 + "lazy-js-bundle 0.7.1", 2253 2253 "rustc-hash 2.1.1", 2254 2254 "send_wrapper", 2255 2255 "serde", ··· 2309 2309 dependencies = [ 2310 2310 "proc-macro2", 2311 2311 "quote", 2312 - "syn 2.0.108", 2312 + "syn 2.0.109", 2313 2313 ] 2314 2314 2315 2315 [[package]] ··· 2341 2341 dependencies = [ 2342 2342 "proc-macro2", 2343 2343 "quote", 2344 - "syn 2.0.108", 2344 + "syn 2.0.109", 2345 2345 ] 2346 2346 2347 2347 [[package]] ··· 2388 2388 "heck 0.5.0", 2389 2389 "proc-macro2", 2390 2390 "quote", 2391 - "syn 2.0.108", 2391 + "syn 2.0.109", 2392 2392 ] 2393 2393 2394 2394 [[package]] ··· 2436 2436 dependencies = [ 2437 2437 "proc-macro2", 2438 2438 "quote", 2439 - "syn 2.0.108", 2439 + "syn 2.0.109", 2440 2440 ] 2441 2441 2442 2442 [[package]] ··· 2547 2547 "heck 0.5.0", 2548 2548 "proc-macro2", 2549 2549 "quote", 2550 - "syn 2.0.108", 2550 + "syn 2.0.109", 2551 2551 ] 2552 2552 2553 2553 [[package]] ··· 2568 2568 dependencies = [ 2569 2569 "proc-macro2", 2570 2570 "quote", 2571 - "syn 2.0.108", 2571 + "syn 2.0.109", 2572 2572 ] 2573 2573 2574 2574 [[package]] ··· 2589 2589 "darling", 2590 2590 "proc-macro2", 2591 2591 "quote", 2592 - "syn 2.0.108", 2592 + "syn 2.0.109", 2593 2593 ] 2594 2594 2595 2595 [[package]] ··· 2659 2659 "macroific", 2660 2660 "proc-macro2", 2661 2661 "quote", 2662 - "syn 2.0.108", 2662 + "syn 2.0.109", 2663 2663 ] 2664 2664 2665 2665 [[package]] ··· 2786 2786 dependencies = [ 2787 2787 "proc-macro2", 2788 2788 "quote", 2789 - "syn 2.0.108", 2789 + "syn 2.0.109", 2790 2790 ] 2791 2791 2792 2792 [[package]] ··· 2902 2902 dependencies = [ 2903 2903 "proc-macro2", 2904 2904 "quote", 2905 - "syn 2.0.108", 2905 + "syn 2.0.109", 2906 2906 ] 2907 2907 2908 2908 [[package]] ··· 3031 3031 3032 3032 [[package]] 3033 3033 name = "generational-box" 3034 - version = "0.7.0" 3034 + version = "0.7.1" 3035 3035 source = "registry+https://github.com/rust-lang/crates.io-index" 3036 - checksum = "0f067a79c49f237b1017258357a9789477be4f47f11422c74547a8bec189adb4" 3036 + checksum = "b3c1ae09dfd2d455484a54b56129b9821241c4b0e412227806b6c3730cd18a29" 3037 3037 dependencies = [ 3038 3038 "parking_lot", 3039 3039 "tracing", ··· 3194 3194 "proc-macro-error", 3195 3195 "proc-macro2", 3196 3196 "quote", 3197 - "syn 2.0.108", 3197 + "syn 2.0.109", 3198 3198 ] 3199 3199 3200 3200 [[package]] ··· 3354 3354 "proc-macro-error", 3355 3355 "proc-macro2", 3356 3356 "quote", 3357 - "syn 2.0.108", 3357 + "syn 2.0.109", 3358 3358 ] 3359 3359 3360 3360 [[package]] ··· 3572 3572 ] 3573 3573 3574 3574 [[package]] 3575 - name = "home" 3576 - version = "0.5.12" 3577 - source = "registry+https://github.com/rust-lang/crates.io-index" 3578 - checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" 3579 - dependencies = [ 3580 - "windows-sys 0.61.2", 3581 - ] 3582 - 3583 - [[package]] 3584 3575 name = "html5ever" 3585 3576 version = "0.27.0" 3586 3577 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3591 3582 "markup5ever 0.12.1", 3592 3583 "proc-macro2", 3593 3584 "quote", 3594 - "syn 2.0.108", 3585 + "syn 2.0.109", 3595 3586 ] 3596 3587 3597 3588 [[package]] ··· 3896 3887 dependencies = [ 3897 3888 "proc-macro2", 3898 3889 "quote", 3899 - "syn 2.0.108", 3890 + "syn 2.0.109", 3900 3891 ] 3901 3892 3902 3893 [[package]] ··· 3930 3921 "macroific", 3931 3922 "proc-macro2", 3932 3923 "quote", 3933 - "syn 2.0.108", 3924 + "syn 2.0.109", 3934 3925 ] 3935 3926 3936 3927 [[package]] ··· 4026 4017 4027 4018 [[package]] 4028 4019 name = "iri-string" 4029 - version = "0.7.8" 4020 + version = "0.7.9" 4030 4021 source = "registry+https://github.com/rust-lang/crates.io-index" 4031 - checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 4022 + checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" 4032 4023 dependencies = [ 4033 4024 "memchr", 4034 4025 "serde", ··· 4054 4045 4055 4046 [[package]] 4056 4047 name = "jacquard" 4057 - version = "0.8.0" 4058 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4048 + version = "0.9.0" 4059 4049 dependencies = [ 4060 4050 "bytes", 4061 4051 "getrandom 0.2.16", ··· 4083 4073 4084 4074 [[package]] 4085 4075 name = "jacquard-api" 4086 - version = "0.8.0" 4087 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4076 + version = "0.9.0" 4088 4077 dependencies = [ 4089 4078 "bon", 4090 4079 "bytes", ··· 4101 4090 4102 4091 [[package]] 4103 4092 name = "jacquard-axum" 4104 - version = "0.8.0" 4105 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4093 + version = "0.9.0" 4106 4094 dependencies = [ 4107 4095 "axum", 4108 4096 "bytes", ··· 4123 4111 4124 4112 [[package]] 4125 4113 name = "jacquard-common" 4126 - version = "0.8.0" 4127 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4114 + version = "0.9.0" 4128 4115 dependencies = [ 4129 4116 "base64 0.22.1", 4130 4117 "bon", ··· 4165 4152 4166 4153 [[package]] 4167 4154 name = "jacquard-derive" 4168 - version = "0.8.0" 4169 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4155 + version = "0.9.0" 4170 4156 dependencies = [ 4171 4157 "heck 0.5.0", 4172 4158 "jacquard-lexicon", 4173 4159 "proc-macro2", 4174 4160 "quote", 4175 - "syn 2.0.108", 4161 + "syn 2.0.109", 4176 4162 ] 4177 4163 4178 4164 [[package]] 4179 4165 name = "jacquard-identity" 4180 - version = "0.8.0" 4181 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4166 + version = "0.9.1" 4182 4167 dependencies = [ 4183 4168 "bon", 4184 4169 "bytes", ··· 4204 4189 4205 4190 [[package]] 4206 4191 name = "jacquard-lexicon" 4207 - version = "0.8.0" 4208 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4192 + version = "0.9.1" 4209 4193 dependencies = [ 4210 4194 "cid", 4211 4195 "dashmap", ··· 4223 4207 "serde_repr", 4224 4208 "serde_with", 4225 4209 "sha2", 4226 - "syn 2.0.108", 4210 + "syn 2.0.109", 4227 4211 "thiserror 2.0.17", 4228 4212 "unicode-segmentation", 4229 4213 ] 4230 4214 4231 4215 [[package]] 4232 4216 name = "jacquard-oauth" 4233 - version = "0.8.0" 4234 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#ee0f31db86814449fa586aa6b1abf65a52733f9e" 4217 + version = "0.9.0" 4235 4218 dependencies = [ 4236 4219 "base64 0.22.1", 4237 4220 "bytes", ··· 4258 4241 "tokio", 4259 4242 "trait-variant", 4260 4243 "url", 4261 - "webbrowser 0.8.15", 4244 + "webbrowser", 4262 4245 ] 4263 4246 4264 4247 [[package]] ··· 4460 4443 4461 4444 [[package]] 4462 4445 name = "lazy-js-bundle" 4463 - version = "0.7.0" 4446 + version = "0.7.1" 4464 4447 source = "registry+https://github.com/rust-lang/crates.io-index" 4465 - checksum = "cb1a786b3e81c7a8c1809f8e430cc53f26b37695d929ba41bc30d71679c80e0a" 4448 + checksum = "409273b42d0e3ae7c8ce6b8cfbc6a27b7c7d83bbb94fc7f93f22cc9b90eea078" 4466 4449 4467 4450 [[package]] 4468 4451 name = "lazy_static" ··· 4666 4649 dependencies = [ 4667 4650 "proc-macro2", 4668 4651 "quote", 4669 - "syn 2.0.108", 4652 + "syn 2.0.109", 4670 4653 ] 4671 4654 4672 4655 [[package]] ··· 4689 4672 "proc-macro2", 4690 4673 "quote", 4691 4674 "sealed", 4692 - "syn 2.0.108", 4675 + "syn 2.0.109", 4693 4676 ] 4694 4677 4695 4678 [[package]] ··· 4701 4684 "proc-macro2", 4702 4685 "quote", 4703 4686 "sealed", 4704 - "syn 2.0.108", 4687 + "syn 2.0.109", 4705 4688 ] 4706 4689 4707 4690 [[package]] ··· 4714 4697 "macroific_core", 4715 4698 "proc-macro2", 4716 4699 "quote", 4717 - "syn 2.0.108", 4700 + "syn 2.0.109", 4718 4701 ] 4719 4702 4720 4703 [[package]] ··· 4728 4711 4729 4712 [[package]] 4730 4713 name = "manganis" 4731 - version = "0.7.0" 4714 + version = "0.7.1" 4732 4715 source = "registry+https://github.com/rust-lang/crates.io-index" 4733 - checksum = "bcdad2e00822f2705d142c76843e4d0de796754e1dfa7e459e4e2b1742d6e632" 4716 + checksum = "124f8f094eb75783b38209ce4d534b9617da4efac652802d9bafe05043a3ec95" 4734 4717 dependencies = [ 4735 4718 "const-serialize", 4736 4719 "manganis-core", ··· 4739 4722 4740 4723 [[package]] 4741 4724 name = "manganis-core" 4742 - version = "0.7.0" 4725 + version = "0.7.1" 4743 4726 source = "registry+https://github.com/rust-lang/crates.io-index" 4744 - checksum = "058d5b28351649020f1a1a3c36a8019a5e1d747f4103e3adb6b5eef15f1683e0" 4727 + checksum = "41fbd1fb8c5aabcc54c6b02dbc968e1c89c28f3e543f2789ef9e3ce45dbdf5df" 4745 4728 dependencies = [ 4746 4729 "const-serialize", 4747 4730 "dioxus-cli-config", ··· 4751 4734 4752 4735 [[package]] 4753 4736 name = "manganis-macro" 4754 - version = "0.7.0" 4737 + version = "0.7.1" 4755 4738 source = "registry+https://github.com/rust-lang/crates.io-index" 4756 - checksum = "bd5449ca340d41990d79be6accc063aa9b6a70b83766a0210d5230dd76e40dd7" 4739 + checksum = "45d6fec2a8249739bb30b53a08ecbb217f76096c08f1053f38ec3981ba424c11" 4757 4740 dependencies = [ 4758 4741 "dunce", 4759 4742 "macro-string", 4760 4743 "manganis-core", 4761 4744 "proc-macro2", 4762 4745 "quote", 4763 - "syn 2.0.108", 4746 + "syn 2.0.109", 4764 4747 ] 4765 4748 4766 4749 [[package]] ··· 4840 4823 dependencies = [ 4841 4824 "proc-macro2", 4842 4825 "quote", 4843 - "syn 2.0.108", 4826 + "syn 2.0.109", 4844 4827 ] 4845 4828 4846 4829 [[package]] ··· 4946 4929 dependencies = [ 4947 4930 "proc-macro2", 4948 4931 "quote", 4949 - "syn 2.0.108", 4932 + "syn 2.0.109", 4950 4933 ] 4951 4934 4952 4935 [[package]] ··· 4957 4940 dependencies = [ 4958 4941 "proc-macro2", 4959 4942 "quote", 4960 - "syn 2.0.108", 4943 + "syn 2.0.109", 4961 4944 ] 4962 4945 4963 4946 [[package]] ··· 5339 5322 "proc-macro-crate 3.4.0", 5340 5323 "proc-macro2", 5341 5324 "quote", 5342 - "syn 2.0.108", 5325 + "syn 2.0.109", 5343 5326 ] 5344 5327 5345 5328 [[package]] ··· 5511 5494 5512 5495 [[package]] 5513 5496 name = "openssl" 5514 - version = "0.10.74" 5497 + version = "0.10.75" 5515 5498 source = "registry+https://github.com/rust-lang/crates.io-index" 5516 - checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" 5499 + checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" 5517 5500 dependencies = [ 5518 5501 "bitflags 2.10.0", 5519 5502 "cfg-if", ··· 5532 5515 dependencies = [ 5533 5516 "proc-macro2", 5534 5517 "quote", 5535 - "syn 2.0.108", 5518 + "syn 2.0.109", 5536 5519 ] 5537 5520 5538 5521 [[package]] ··· 5543 5526 5544 5527 [[package]] 5545 5528 name = "openssl-sys" 5546 - version = "0.9.110" 5529 + version = "0.9.111" 5547 5530 source = "registry+https://github.com/rust-lang/crates.io-index" 5548 - checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" 5531 + checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" 5549 5532 dependencies = [ 5550 5533 "cc", 5551 5534 "libc", ··· 5599 5582 "proc-macro2", 5600 5583 "proc-macro2-diagnostics", 5601 5584 "quote", 5602 - "syn 2.0.108", 5585 + "syn 2.0.109", 5603 5586 ] 5604 5587 5605 5588 [[package]] ··· 5838 5821 dependencies = [ 5839 5822 "proc-macro2", 5840 5823 "quote", 5841 - "syn 2.0.108", 5824 + "syn 2.0.109", 5842 5825 ] 5843 5826 5844 5827 [[package]] ··· 5962 5945 checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 5963 5946 dependencies = [ 5964 5947 "proc-macro2", 5965 - "syn 2.0.108", 5948 + "syn 2.0.109", 5966 5949 ] 5967 5950 5968 5951 [[package]] ··· 6049 6032 dependencies = [ 6050 6033 "proc-macro2", 6051 6034 "quote", 6052 - "syn 2.0.108", 6035 + "syn 2.0.109", 6053 6036 "version_check", 6054 6037 "yansi", 6055 6038 ] ··· 6151 6134 6152 6135 [[package]] 6153 6136 name = "quote" 6154 - version = "1.0.41" 6137 + version = "1.0.42" 6155 6138 source = "registry+https://github.com/rust-lang/crates.io-index" 6156 - checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 6139 + checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 6157 6140 dependencies = [ 6158 6141 "proc-macro2", 6159 6142 ] ··· 6329 6312 dependencies = [ 6330 6313 "proc-macro2", 6331 6314 "quote", 6332 - "syn 2.0.108", 6315 + "syn 2.0.109", 6333 6316 ] 6334 6317 6335 6318 [[package]] ··· 6552 6535 6553 6536 [[package]] 6554 6537 name = "rustls" 6555 - version = "0.23.34" 6538 + version = "0.23.35" 6556 6539 source = "registry+https://github.com/rust-lang/crates.io-index" 6557 - checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" 6540 + checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" 6558 6541 dependencies = [ 6559 6542 "once_cell", 6560 6543 "ring", ··· 6647 6630 6648 6631 [[package]] 6649 6632 name = "schemars" 6650 - version = "1.0.5" 6633 + version = "1.1.0" 6651 6634 source = "registry+https://github.com/rust-lang/crates.io-index" 6652 - checksum = "1317c3bf3e7df961da95b0a56a172a02abead31276215a0497241a7624b487ce" 6635 + checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" 6653 6636 dependencies = [ 6654 6637 "dyn-clone", 6655 6638 "ref-cast", ··· 6686 6669 dependencies = [ 6687 6670 "proc-macro2", 6688 6671 "quote", 6689 - "syn 2.0.108", 6672 + "syn 2.0.109", 6690 6673 ] 6691 6674 6692 6675 [[package]] ··· 6852 6835 dependencies = [ 6853 6836 "proc-macro2", 6854 6837 "quote", 6855 - "syn 2.0.108", 6838 + "syn 2.0.109", 6856 6839 ] 6857 6840 6858 6841 [[package]] ··· 6924 6907 dependencies = [ 6925 6908 "proc-macro2", 6926 6909 "quote", 6927 - "syn 2.0.108", 6910 + "syn 2.0.109", 6928 6911 ] 6929 6912 6930 6913 [[package]] ··· 6969 6952 "indexmap 1.9.3", 6970 6953 "indexmap 2.12.0", 6971 6954 "schemars 0.9.0", 6972 - "schemars 1.0.5", 6955 + "schemars 1.1.0", 6973 6956 "serde_core", 6974 6957 "serde_json", 6975 6958 "serde_with_macros", ··· 6985 6968 "darling", 6986 6969 "proc-macro2", 6987 6970 "quote", 6988 - "syn 2.0.108", 6971 + "syn 2.0.109", 6989 6972 ] 6990 6973 6991 6974 [[package]] ··· 7127 7110 checksum = "f62f06db0370222f7f498ef478fce9f8df5828848d1d3517e3331936d7074f55" 7128 7111 dependencies = [ 7129 7112 "quote", 7130 - "syn 2.0.108", 7113 + "syn 2.0.109", 7131 7114 ] 7132 7115 7133 7116 [[package]] ··· 7274 7257 "quote", 7275 7258 "serde", 7276 7259 "sha2", 7277 - "syn 2.0.108", 7260 + "syn 2.0.109", 7278 7261 "thiserror 1.0.69", 7279 7262 ] 7280 7263 ··· 7317 7300 7318 7301 [[package]] 7319 7302 name = "subsecond" 7320 - version = "0.7.0" 7303 + version = "0.7.1" 7321 7304 source = "registry+https://github.com/rust-lang/crates.io-index" 7322 - checksum = "e778134c310fa884270b226bbf58df76da727acf921f46834b0af896d739235c" 7305 + checksum = "834e8caec50249083ee6972a2f7645c4baadcb39d49ea801da1dc1d5e1c2ccb9" 7323 7306 dependencies = [ 7324 7307 "js-sys", 7325 7308 "libc", ··· 7336 7319 7337 7320 [[package]] 7338 7321 name = "subsecond-types" 7339 - version = "0.7.0" 7322 + version = "0.7.1" 7340 7323 source = "registry+https://github.com/rust-lang/crates.io-index" 7341 - checksum = "fcfc02dd02f2ce7c9aa6c0eb4f490fc455925c2590de7a3c54dde088c3ef481d" 7324 + checksum = "c6beffea67e72a7a530990b270fd0277971eae564fdc10c1e0080e928b477fab" 7342 7325 dependencies = [ 7343 7326 "serde", 7344 7327 ] ··· 7383 7366 7384 7367 [[package]] 7385 7368 name = "syn" 7386 - version = "2.0.108" 7369 + version = "2.0.109" 7387 7370 source = "registry+https://github.com/rust-lang/crates.io-index" 7388 - checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" 7371 + checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" 7389 7372 dependencies = [ 7390 7373 "proc-macro2", 7391 7374 "quote", ··· 7409 7392 dependencies = [ 7410 7393 "proc-macro2", 7411 7394 "quote", 7412 - "syn 2.0.108", 7395 + "syn 2.0.109", 7413 7396 ] 7414 7397 7415 7398 [[package]] ··· 7523 7506 dependencies = [ 7524 7507 "proc-macro2", 7525 7508 "quote", 7526 - "syn 2.0.108", 7509 + "syn 2.0.109", 7527 7510 ] 7528 7511 7529 7512 [[package]] ··· 7602 7585 dependencies = [ 7603 7586 "proc-macro2", 7604 7587 "quote", 7605 - "syn 2.0.108", 7588 + "syn 2.0.109", 7606 7589 ] 7607 7590 7608 7591 [[package]] ··· 7613 7596 dependencies = [ 7614 7597 "proc-macro2", 7615 7598 "quote", 7616 - "syn 2.0.108", 7599 + "syn 2.0.109", 7617 7600 ] 7618 7601 7619 7602 [[package]] ··· 7731 7714 dependencies = [ 7732 7715 "proc-macro2", 7733 7716 "quote", 7734 - "syn 2.0.108", 7717 + "syn 2.0.109", 7735 7718 ] 7736 7719 7737 7720 [[package]] ··· 8053 8036 dependencies = [ 8054 8037 "proc-macro2", 8055 8038 "quote", 8056 - "syn 2.0.108", 8039 + "syn 2.0.109", 8057 8040 ] 8058 8041 8059 8042 [[package]] ··· 8137 8120 dependencies = [ 8138 8121 "proc-macro2", 8139 8122 "quote", 8140 - "syn 2.0.108", 8123 + "syn 2.0.109", 8141 8124 ] 8142 8125 8143 8126 [[package]] ··· 8428 8411 dependencies = [ 8429 8412 "proc-macro2", 8430 8413 "quote", 8431 - "syn 2.0.108", 8414 + "syn 2.0.109", 8432 8415 ] 8433 8416 8434 8417 [[package]] ··· 8497 8480 "bumpalo", 8498 8481 "proc-macro2", 8499 8482 "quote", 8500 - "syn 2.0.108", 8483 + "syn 2.0.109", 8501 8484 "wasm-bindgen-shared", 8502 8485 ] 8503 8486 ··· 8550 8533 checksum = "ffd01f29024361dcb5b54f50b4cfe8d56ecac0ece515f52e7756e979b9a43c2d" 8551 8534 dependencies = [ 8552 8535 "quote", 8553 - "syn 2.0.108", 8536 + "syn 2.0.109", 8554 8537 ] 8555 8538 8556 8539 [[package]] ··· 8821 8804 8822 8805 [[package]] 8823 8806 name = "webbrowser" 8824 - version = "0.8.15" 8825 - source = "registry+https://github.com/rust-lang/crates.io-index" 8826 - checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" 8827 - dependencies = [ 8828 - "core-foundation 0.9.4", 8829 - "home", 8830 - "jni", 8831 - "log", 8832 - "ndk-context", 8833 - "objc", 8834 - "raw-window-handle 0.5.2", 8835 - "url", 8836 - "web-sys", 8837 - ] 8838 - 8839 - [[package]] 8840 - name = "webbrowser" 8841 8807 version = "1.0.6" 8842 8808 source = "registry+https://github.com/rust-lang/crates.io-index" 8843 8809 checksum = "00f1243ef785213e3a32fa0396093424a3a6ea566f9948497e5a2309261a4c97" ··· 8939 8905 dependencies = [ 8940 8906 "proc-macro2", 8941 8907 "quote", 8942 - "syn 2.0.108", 8908 + "syn 2.0.109", 8943 8909 ] 8944 8910 8945 8911 [[package]] ··· 9057 9023 dependencies = [ 9058 9024 "proc-macro2", 9059 9025 "quote", 9060 - "syn 2.0.108", 9026 + "syn 2.0.109", 9061 9027 ] 9062 9028 9063 9029 [[package]] ··· 9068 9034 dependencies = [ 9069 9035 "proc-macro2", 9070 9036 "quote", 9071 - "syn 2.0.108", 9037 + "syn 2.0.109", 9072 9038 ] 9073 9039 9074 9040 [[package]] ··· 9644 9610 dependencies = [ 9645 9611 "proc-macro2", 9646 9612 "quote", 9647 - "syn 2.0.108", 9613 + "syn 2.0.109", 9648 9614 "synstructure", 9649 9615 ] 9650 9616 ··· 9686 9652 "proc-macro-crate 3.4.0", 9687 9653 "proc-macro2", 9688 9654 "quote", 9689 - "syn 2.0.108", 9655 + "syn 2.0.109", 9690 9656 "zbus_names", 9691 9657 "zvariant", 9692 9658 "zvariant_utils", ··· 9721 9687 dependencies = [ 9722 9688 "proc-macro2", 9723 9689 "quote", 9724 - "syn 2.0.108", 9690 + "syn 2.0.109", 9725 9691 ] 9726 9692 9727 9693 [[package]] ··· 9741 9707 dependencies = [ 9742 9708 "proc-macro2", 9743 9709 "quote", 9744 - "syn 2.0.108", 9710 + "syn 2.0.109", 9745 9711 "synstructure", 9746 9712 ] 9747 9713 ··· 9763 9729 dependencies = [ 9764 9730 "proc-macro2", 9765 9731 "quote", 9766 - "syn 2.0.108", 9732 + "syn 2.0.109", 9767 9733 ] 9768 9734 9769 9735 [[package]] ··· 9796 9762 dependencies = [ 9797 9763 "proc-macro2", 9798 9764 "quote", 9799 - "syn 2.0.108", 9765 + "syn 2.0.109", 9800 9766 ] 9801 9767 9802 9768 [[package]] ··· 9851 9817 "proc-macro-crate 3.4.0", 9852 9818 "proc-macro2", 9853 9819 "quote", 9854 - "syn 2.0.108", 9820 + "syn 2.0.109", 9855 9821 "zvariant_utils", 9856 9822 ] 9857 9823 ··· 9864 9830 "proc-macro2", 9865 9831 "quote", 9866 9832 "serde", 9867 - "syn 2.0.108", 9833 + "syn 2.0.109", 9868 9834 "winnow 0.7.13", 9869 9835 ]
+13 -4
Cargo.toml
··· 40 40 markdown-weaver = { git = "https://github.com/rsform/markdown-weaver" } 41 41 markdown-weaver-escape = { git = "https://github.com/rsform/markdown-weaver" } 42 42 43 - jacquard = { git = "https://tangled.org/@nonbinary.computer/jacquard", default-features = false, features = ["derive", "api_bluesky"] } 44 - jacquard-api = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 45 - jacquard-common = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 46 - jacquard-axum = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 43 + # jacquard = { git = "https://tangled.org/@nonbinary.computer/jacquard", default-features = false, features = ["derive", "api_bluesky"] } 44 + # jacquard-api = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 45 + # jacquard-common = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 46 + # jacquard-axum = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 47 + # jacquard-derive = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 48 + # jacquard-lexicon = { git = "https://tangled.org/@nonbinary.computer/jacquard", default-features = false } 49 + 50 + jacquard = { path = "../jacquard/crates/jacquard", default-features = false, features = ["derive", "api_bluesky"] } 51 + jacquard-api = { path = "../jacquard/crates/jacquard-api" } 52 + jacquard-common = { path = "../jacquard/crates/jacquard-common" } 53 + jacquard-axum = {path = "../jacquard/crates/jacquard-axum" } 54 + jacquard-derive = { path = "../jacquard/crates/jacquard-derive" } 55 + jacquard-lexicon = { path = "../jacquard/crates/jacquard-lexicon", default-features = false } 47 56 48 57 [profile] 49 58
+3 -3
crates/weaver-api/Cargo.toml
··· 7 7 8 8 [dependencies] 9 9 bytes = { workspace = true, features = ["serde"] } 10 - jacquard-common = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 11 - jacquard-derive = { git = "https://tangled.org/@nonbinary.computer/jacquard" } 12 - jacquard-lexicon = { git = "https://tangled.org/@nonbinary.computer/jacquard", default-features = false } 10 + jacquard-common = { workspace = true } 11 + jacquard-derive = { workspace = true } 12 + jacquard-lexicon = { workspace = true } 13 13 miette.workspace = true 14 14 rustversion = "1.0" 15 15 serde.workspace = true
+4 -3
crates/weaver-app/Cargo.toml
··· 5 5 edition = "2021" 6 6 7 7 [features] 8 - default = ["web"] 8 + default = ["web", "fullstack-server", "no-app-index"] 9 9 # Fullstack mode with SSR and server functions 10 10 fullstack-server = ["dioxus/fullstack"] 11 + no-app-index = [] 11 12 12 13 web = ["dioxus/web"] 13 14 desktop = ["dioxus/desktop"] ··· 20 21 [dependencies] 21 22 dashmap = "6.1.0" 22 23 23 - dioxus = { version = "0.7.0", features = ["router"] } 24 - #dioxus = { version = "0.7.0", features = ["router", "fullstack"] } 24 + dioxus = { version = "0.7.1", features = ["router"] } 25 + #dioxus = { version = "0.7.1", features = ["router", "fullstack"] } 25 26 weaver-common = { path = "../weaver-common" } 26 27 jacquard = { workspace = true, features = ["streaming"] } 27 28 jacquard-axum = { workspace = true, optional = true }
+1 -1
crates/weaver-app/Dioxus.toml
··· 12 12 style = [] 13 13 14 14 # Additional JavaScript files 15 - script = ["assets/sw.js"] 15 + script = [] 16 16 17 17 [web.resource.dev] 18 18
-13
crates/weaver-app/assets/sw.js
··· 9 9 10 10 // Install and activate immediately 11 11 self.addEventListener("install", (event) => { 12 - console.log("[SW] Installing service worker"); 13 12 self.skipWaiting(); 14 13 }); 15 14 16 15 self.addEventListener("activate", (event) => { 17 - console.log("[SW] Activating service worker"); 18 16 event.waitUntil(clients.claim()); 19 17 }); 20 18 ··· 22 20 self.addEventListener("message", (event) => { 23 21 if (event.data.type === "register_mappings") { 24 22 const notebook = event.data.notebook; 25 - console.log("[SW] Registering blob mappings for notebook:", notebook); 26 - 27 23 // Store blob URL mappings 28 24 for (const [name, url] of Object.entries(event.data.blobs)) { 29 25 const key = `${notebook}/image/${name}`; 30 26 urlMappings.set(key, url); 31 - console.log("[SW] Registered mapping:", key, "->", url); 32 27 } 33 28 } 34 29 }); ··· 44 39 if (pathParts.length >= 3 && pathParts[pathParts.length - 2] === "image") { 45 40 // Reconstruct the key 46 41 const key = pathParts.join("/"); 47 - 48 - console.log("[SW] Intercepted image request:", key); 49 42 50 43 const mapping = urlMappings.get(key); 51 44 if (mapping) { 52 - console.log("[SW] Found mapping for:", key, "->", mapping); 53 45 event.respondWith(handleBlobRequest(mapping, key)); 54 46 return; 55 - } else { 56 - console.log("[SW] No mapping found for:", key); 57 47 } 58 48 } 59 49 ··· 67 57 let response = await cache.match(key); 68 58 69 59 if (response) { 70 - console.log("[SW] Cache hit for:", key); 71 60 return response; 72 61 } 73 62 74 63 // Fetch from PDS 75 - console.log("[SW] Fetching from PDS:", url); 76 64 response = await fetch(url); 77 65 78 66 if (!response.ok) { ··· 82 70 83 71 // Cache the response 84 72 await cache.put(key, response.clone()); 85 - console.log("[SW] Cached blob:", key); 86 73 87 74 return response; 88 75 } catch (error) {
+75 -94
crates/weaver-app/src/components/entry.rs
··· 4 4 use crate::blobcache::BlobCache; 5 5 use crate::{ 6 6 components::avatar::{Avatar, AvatarFallback, AvatarImage}, 7 + data::use_handle, 7 8 fetch, 8 9 }; 9 10 ··· 11 12 use dioxus::prelude::*; 12 13 13 14 const ENTRY_CSS: Asset = asset!("/assets/styling/entry.css"); 14 - #[cfg(feature = "fullstack-server")] 15 - use dioxus::{fullstack::extract::Extension, CapturedError}; 15 + 16 16 use jacquard::prelude::*; 17 17 #[allow(unused_imports)] 18 18 use jacquard::smol_str::ToSmolStr; ··· 30 30 pub fn Entry(ident: AtIdentifier<'static>, book_title: SmolStr, title: SmolStr) -> Element { 31 31 let ident_clone = ident.clone(); 32 32 let book_title_clone = book_title.clone(); 33 - let entry = use_resource(use_reactive!(|(ident, book_title, title)| async move { 34 - let fetcher = use_context::<fetch::CachedFetcher>(); 35 - let entry = fetcher 36 - .get_entry(ident.clone(), book_title.clone(), title) 37 - .await 38 - .ok() 39 - .flatten(); 40 - if let Some(entry_data) = &entry { 41 - let entry_record = &entry_data.1; 33 + 34 + // Use feature-gated hook for SSR support 35 + let entry = crate::data::use_entry_data(ident.clone(), book_title.clone(), title.clone())?; 36 + 37 + // Handle blob caching when entry data is available 38 + use_effect(move || { 39 + if let Some((_book_entry_view, entry_record)) = &*entry.read() { 42 40 if let Some(embeds) = &entry_record.embeds { 43 41 if let Some(images) = &embeds.images { 44 42 // Register blob mappings with service worker (client-side only) ··· 48 46 not(feature = "fullstack-server") 49 47 ))] 50 48 { 51 - let _ = crate::service_worker::register_entry_blobs( 52 - &ident, 53 - book_title.as_str(), 54 - images, 55 - &fetcher, 56 - ) 57 - .await; 49 + let ident = ident.clone(); 50 + let book_title = book_title.clone(); 51 + let images = images.clone(); 52 + spawn(async move { 53 + let fetcher = use_context::<fetch::CachedFetcher>(); 54 + let _ = crate::service_worker::register_entry_blobs( 55 + &ident, 56 + book_title.as_str(), 57 + &images, 58 + &fetcher, 59 + ) 60 + .await; 61 + }); 58 62 } 59 63 #[cfg(feature = "fullstack-server")] 60 64 { 61 - for image in &images.images { 62 - let cid = image.image.blob().cid(); 63 - cache_blob( 64 - ident.to_smolstr(), 65 - cid.to_smolstr(), 66 - image.name.as_ref().map(|n| n.to_smolstr()), 67 - ) 68 - .await 69 - .ok(); 70 - } 65 + let ident = ident.clone(); 66 + let images = images.clone(); 67 + spawn(async move { 68 + for image in &images.images { 69 + use crate::data::cache_blob; 70 + 71 + let cid = image.image.blob().cid(); 72 + cache_blob( 73 + ident.to_smolstr(), 74 + cid.to_smolstr(), 75 + image.name.as_ref().map(|n| n.to_smolstr()), 76 + ) 77 + .await 78 + .ok(); 79 + } 80 + }); 71 81 } 72 82 } 73 83 } 74 84 } 75 - entry 76 - })); 85 + }); 77 86 78 87 match &*entry.read_unchecked() { 79 - Some(Some(entry_data)) => { 88 + Some((book_entry_view, entry_record)) => { 80 89 rsx! { EntryPage { 81 - book_entry_view: entry_data.0.clone(), 82 - entry_record: entry_data.1.clone(), 83 - ident: ident_clone, 90 + book_entry_view: book_entry_view.clone(), 91 + entry_record: entry_record.clone(), 92 + ident: use_handle(ident_clone)?(), 84 93 book_title: book_title_clone 85 94 } } 86 95 } 87 - Some(None) => { 88 - rsx! { div { class: "error", "Entry not found" } } 89 - } 90 - None => rsx! { p { "Loading..." } }, 96 + _ => rsx! { p { "Loading..." } }, 91 97 } 92 98 } 93 99 ··· 170 176 .map(|t| t.as_ref()) 171 177 .unwrap_or("Untitled"); 172 178 173 - let ident = entry_view.uri.authority().clone().into_static(); 174 - let ident_for_avatar = ident.clone(); 179 + let ident = use_handle(entry_view.uri.authority().clone().into_static())?; 175 180 176 181 // Format date 177 182 let formatted_date = entry_view ··· 195 200 div { class: "entry-card", 196 201 Link { 197 202 to: Route::Entry { 198 - ident: ident.clone(), 203 + ident: ident(), 199 204 book_title: book_title.clone(), 200 205 title: title.to_string().into() 201 206 }, ··· 214 219 if let Some(author) = first_author { 215 220 div { class: "entry-card-author", 216 221 { 217 - match from_data::<Profile>(author.record.get_at_path(".value").unwrap()) { 218 - Ok(profile) => { 222 + match author.record.get_at_path(".value").and_then(|v| from_data::<Profile>(v).ok()) { 223 + Some(profile) => { 219 224 let avatar = profile.avatar 220 225 .map(|avatar| { 221 226 let cid = avatar.blob().cid(); 222 - format!("https://cdn.bsky.app/img/avatar/plain/{}/{cid}@jpeg", ident_for_avatar.as_ref()) 227 + format!("https://cdn.bsky.app/img/avatar/plain/{}/{cid}@jpeg", entry_view.uri.authority().as_ref()) 223 228 }); 224 229 let display_name = profile.display_name 225 230 .as_ref() ··· 235 240 span { class: "meta-label", "@{ident}" } 236 241 } 237 242 } 238 - Err(_) => { 243 + None => { 239 244 rsx! { 240 245 span { class: "author-name", "Author {author.index}" } 241 246 } ··· 296 301 if i > 0 { span { ", " } } 297 302 { 298 303 // Parse author profile from the nested value field 299 - match from_data::<Profile>(author.record.get_at_path(".value").unwrap()) { 300 - Ok(profile) => { 304 + match author.record.get_at_path(".value").and_then(|v| from_data::<Profile>(v).ok()) { 305 + Some(profile) => { 301 306 let avatar = profile.avatar 302 307 .map(|avatar| { 303 308 let cid = avatar.blob().cid(); ··· 325 330 } 326 331 } 327 332 } 328 - Err(_) => { 333 + None => { 329 334 rsx! { 330 335 span { class: "author-name", "Author {author.index}" } 331 336 } ··· 405 410 id: Signal<String>, 406 411 #[props(default)] 407 412 class: Signal<String>, 408 - 409 413 content: ReadSignal<entry::Entry<'static>>, 414 + ident: ReadSignal<AtIdentifier<'static>>, 410 415 } 411 416 412 417 /// Render some text as markdown. 413 418 #[allow(unused)] 414 419 pub fn EntryMarkdown(props: EntryMarkdownProps) -> Element { 415 - let content = &*props.content.read(); 416 - let parser = markdown_weaver::Parser::new(&content.content); 417 - 418 - let mut html_buf = String::new(); 419 - markdown_weaver::html::push_html(&mut html_buf, parser); 420 + let processed = crate::data::use_rendered_markdown( 421 + props.content.read().clone(), 422 + props.ident.read().clone(), 423 + )?; 420 424 421 - rsx! { 422 - div { 423 - id: "{&*props.id.read()}", 424 - class: "{&*props.class.read()}", 425 - dangerous_inner_html: "{html_buf}" 426 - } 425 + match &*processed.read_unchecked() { 426 + Some(Some(html_buf)) => rsx! { 427 + div { 428 + id: "{&*props.id.read()}", 429 + class: "{&*props.class.read()}", 430 + dangerous_inner_html: "{html_buf}" 431 + } 432 + }, 433 + _ => rsx! { 434 + div { 435 + id: "{&*props.id.read()}", 436 + class: "{&*props.class.read()}", 437 + "Loading..." 438 + } 439 + }, 427 440 } 428 441 } 429 442 ··· 435 448 content: entry::Entry<'static>, 436 449 ident: AtIdentifier<'static>, 437 450 ) -> Element { 438 - use n0_future::stream::StreamExt; 439 - use weaver_renderer::{ 440 - atproto::{ClientContext, ClientWriter}, 441 - ContextIterator, NotebookProcessor, 442 - }; 443 - 444 - let processed = use_resource(use_reactive!(|(content, ident)| async move { 445 - // Create client context for link/image/embed handling 446 - let fetcher = use_context::<fetch::CachedFetcher>(); 447 - let did = match ident { 448 - AtIdentifier::Did(d) => d, 449 - AtIdentifier::Handle(h) => fetcher.client.resolve_handle(&h).await.ok()?, 450 - }; 451 - let ctx = ClientContext::<()>::new(content.clone(), did); 452 - let parser = markdown_weaver::Parser::new(&content.content); 453 - let iter = ContextIterator::default(parser); 454 - let processor = NotebookProcessor::new(ctx, iter); 455 - 456 - // Collect events from the processor stream 457 - let events: Vec<_> = StreamExt::collect(processor).await; 458 - 459 - // Render to HTML 460 - let mut html_buf = String::new(); 461 - let _ = ClientWriter::<_, _, ()>::new(events.into_iter(), &mut html_buf).run(); 462 - Some(html_buf) 463 - })); 451 + // Use feature-gated hook for SSR support 452 + let processed = crate::data::use_rendered_markdown(content, ident)?; 464 453 465 454 match &*processed.read_unchecked() { 466 455 Some(Some(html_buf)) => rsx! { ··· 479 468 }, 480 469 } 481 470 } 482 - 483 - #[cfg(feature = "fullstack-server")] 484 - #[put("/cache/{ident}/{cid}?name", cache: Extension<Arc<BlobCache>>)] 485 - pub async fn cache_blob(ident: SmolStr, cid: SmolStr, name: Option<SmolStr>) -> Result<()> { 486 - let ident = AtIdentifier::new_owned(ident)?; 487 - let cid = Cid::new_owned(cid.as_bytes())?; 488 - cache.cache(ident, cid, name).await 489 - }
+245
crates/weaver-app/src/data.rs
··· 1 + //! Feature-gated data fetching layer that abstracts over SSR and client-only modes. 2 + //! 3 + //! In fullstack-server mode, hooks use `use_server_future` with inline async closures. 4 + //! In client-only mode, hooks use `use_resource` with context-provided fetchers. 5 + 6 + #[cfg(feature = "server")] 7 + use crate::blobcache::BlobCache; 8 + use dioxus::prelude::*; 9 + #[cfg(feature = "fullstack-server")] 10 + #[allow(unused_imports)] 11 + use dioxus::{fullstack::extract::Extension, CapturedError}; 12 + use jacquard::types::{did::Did, string::Handle}; 13 + #[allow(unused_imports)] 14 + use jacquard::{ 15 + prelude::IdentityResolver, 16 + smol_str::SmolStr, 17 + types::{cid::Cid, string::AtIdentifier}, 18 + }; 19 + #[allow(unused_imports)] 20 + use std::sync::Arc; 21 + use weaver_api::sh_weaver::notebook::{entry::Entry, BookEntryView}; 22 + // ============================================================================ 23 + // Wrapper Hooks (feature-gated) 24 + // ============================================================================ 25 + 26 + /// Fetches entry data with SSR support in fullstack mode. 27 + /// Returns a MappedSignal over the server future resource. 28 + #[cfg(feature = "fullstack-server")] 29 + pub fn use_entry_data( 30 + ident: AtIdentifier<'static>, 31 + book_title: SmolStr, 32 + title: SmolStr, 33 + ) -> Result<Memo<Option<(BookEntryView<'static>, Entry<'static>)>>, RenderError> { 34 + let fetcher = use_context::<crate::fetch::CachedFetcher>(); 35 + let fetcher = fetcher.clone(); 36 + let ident = use_signal(|| ident); 37 + let book_title = use_signal(|| book_title); 38 + let entry_title = use_signal(|| title); 39 + let res = use_server_future(move || { 40 + let fetcher = fetcher.clone(); 41 + async move { 42 + if let Some(entry) = fetcher 43 + .get_entry(ident(), book_title(), entry_title()) 44 + .await 45 + .ok() 46 + .flatten() 47 + { 48 + let (_book_entry_view, entry_record) = (&entry.0, &entry.1); 49 + if let Some(embeds) = &entry_record.embeds { 50 + if let Some(images) = &embeds.images { 51 + let ident = ident.clone(); 52 + let images = images.clone(); 53 + for image in &images.images { 54 + use jacquard::smol_str::ToSmolStr; 55 + 56 + let cid = image.image.blob().cid(); 57 + cache_blob( 58 + ident.to_smolstr(), 59 + cid.to_smolstr(), 60 + image.name.as_ref().map(|n| n.to_smolstr()), 61 + ) 62 + .await 63 + .ok(); 64 + } 65 + } 66 + } 67 + Some(( 68 + serde_json::to_value(entry.0.clone()).unwrap(), 69 + serde_json::to_value(entry.1.clone()).unwrap(), 70 + )) 71 + } else { 72 + None 73 + } 74 + } 75 + }); 76 + res.map(|r| { 77 + use_memo(move || { 78 + if let Some(Some((ev, e))) = &*r.read_unchecked() { 79 + use jacquard::from_json_value; 80 + 81 + let book_entry = from_json_value::<BookEntryView>(ev.clone()).unwrap(); 82 + let entry = from_json_value::<Entry>(e.clone()).unwrap(); 83 + 84 + Some((book_entry, entry)) 85 + } else { 86 + None 87 + } 88 + }) 89 + }) 90 + } 91 + 92 + /// Fetches entry data client-side only (no SSR). 93 + #[cfg(not(feature = "fullstack-server"))] 94 + pub fn use_entry_data( 95 + ident: AtIdentifier<'static>, 96 + book_title: SmolStr, 97 + title: SmolStr, 98 + ) -> Result<Memo<Option<(BookEntryView<'static>, Entry<'static>)>>, RenderError> { 99 + let fetcher = use_context::<crate::fetch::CachedFetcher>(); 100 + let fetcher = fetcher.clone(); 101 + let ident = use_signal(|| ident); 102 + let book_title = use_signal(|| book_title); 103 + let entry_title = use_signal(|| title); 104 + let r = use_resource(move || { 105 + let fetcher = fetcher.clone(); 106 + async move { 107 + fetcher 108 + .get_entry(ident(), book_title(), entry_title()) 109 + .await 110 + .ok() 111 + .flatten() 112 + .map(|arc| (arc.0.clone(), arc.1.clone())) 113 + } 114 + }); 115 + Ok(use_memo(move || { 116 + if let Some(Some((ev, e))) = &*r.read_unchecked() { 117 + Some((ev.clone(), e.clone())) 118 + } else { 119 + None 120 + } 121 + })) 122 + } 123 + 124 + pub fn use_handle( 125 + ident: AtIdentifier<'static>, 126 + ) -> Result<Memo<AtIdentifier<'static>>, RenderError> { 127 + let fetcher = use_context::<crate::fetch::CachedFetcher>(); 128 + let fetcher = fetcher.clone(); 129 + let ident = use_signal(|| ident); 130 + #[cfg(feature = "fullstack-server")] 131 + let h_str = { 132 + use_server_future(move || { 133 + let fetcher = fetcher.clone(); 134 + async move { 135 + use jacquard::smol_str::ToSmolStr; 136 + 137 + fetcher 138 + .client 139 + .resolve_ident_owned(&ident()) 140 + .await 141 + .map(|doc| doc.handles().first().map(|h| h.to_smolstr())) 142 + .ok() 143 + .flatten() 144 + } 145 + }) 146 + }; 147 + #[cfg(not(feature = "fullstack-server"))] 148 + let h_str = { 149 + use_resource(move || { 150 + let fetcher = fetcher.clone(); 151 + async move { 152 + use jacquard::smol_str::ToSmolStr; 153 + 154 + fetcher 155 + .client 156 + .resolve_ident_owned(&ident()) 157 + .await 158 + .map(|doc| doc.handles().first().map(|h| h.to_smolstr())) 159 + .ok() 160 + .flatten() 161 + } 162 + }) 163 + }; 164 + Ok(h_str.map(|h_str| { 165 + use_memo(move || { 166 + if let Some(Some(e)) = &*h_str.read_unchecked() { 167 + use jacquard::IntoStatic; 168 + 169 + AtIdentifier::Handle(Handle::raw(&e).into_static()) 170 + } else { 171 + ident() 172 + } 173 + }) 174 + })?) 175 + } 176 + 177 + /// Hook to render markdown client-side only (no SSR). 178 + #[cfg(feature = "fullstack-server")] 179 + pub fn use_rendered_markdown( 180 + content: Entry<'static>, 181 + ident: AtIdentifier<'static>, 182 + ) -> Result<Resource<Option<String>>, RenderError> { 183 + let ident = use_signal(|| ident); 184 + let content = use_signal(|| content); 185 + let fetcher = use_context::<crate::fetch::CachedFetcher>(); 186 + Ok(use_server_future(move || { 187 + let fetcher = fetcher.clone(); 188 + async move { 189 + let did = match ident() { 190 + AtIdentifier::Did(d) => d, 191 + AtIdentifier::Handle(h) => fetcher.client.resolve_handle(&h).await.ok()?, 192 + }; 193 + Some(render_markdown_impl(content(), did).await) 194 + } 195 + })?) 196 + } 197 + 198 + /// Hook to render markdown client-side only (no SSR). 199 + #[cfg(not(feature = "fullstack-server"))] 200 + pub fn use_rendered_markdown( 201 + content: Entry<'static>, 202 + ident: AtIdentifier<'static>, 203 + ) -> Result<Resource<Option<String>>, RenderError> { 204 + let ident = use_signal(|| ident); 205 + let content = use_signal(|| content); 206 + let fetcher = use_context::<crate::fetch::CachedFetcher>(); 207 + Ok(use_resource(move || { 208 + let fetcher = fetcher.clone(); 209 + async move { 210 + let did = match ident() { 211 + AtIdentifier::Did(d) => d, 212 + AtIdentifier::Handle(h) => fetcher.client.resolve_handle(&h).await.ok()?, 213 + }; 214 + Some(render_markdown_impl(content(), did).await) 215 + } 216 + })) 217 + } 218 + 219 + /// Internal implementation of markdown rendering. 220 + async fn render_markdown_impl(content: Entry<'static>, did: Did<'static>) -> String { 221 + use n0_future::stream::StreamExt; 222 + use weaver_renderer::{ 223 + atproto::{ClientContext, ClientWriter}, 224 + ContextIterator, NotebookProcessor, 225 + }; 226 + 227 + let ctx = ClientContext::<()>::new(content.clone(), did); 228 + let parser = markdown_weaver::Parser::new(&content.content); 229 + let iter = ContextIterator::default(parser); 230 + let processor = NotebookProcessor::new(ctx, iter); 231 + 232 + let events: Vec<_> = StreamExt::collect(processor).await; 233 + 234 + let mut html_buf = String::new(); 235 + let _ = ClientWriter::<_, _, ()>::new(events.into_iter(), &mut html_buf).run(); 236 + html_buf 237 + } 238 + 239 + #[cfg(feature = "fullstack-server")] 240 + #[put("/cache/{ident}/{cid}?name", cache: Extension<Arc<BlobCache>>)] 241 + pub async fn cache_blob(ident: SmolStr, cid: SmolStr, name: Option<SmolStr>) -> Result<()> { 242 + let ident = AtIdentifier::new_owned(ident)?; 243 + let cid = Cid::new_owned(cid.as_bytes())?; 244 + cache.cache(ident, cid, name).await 245 + }
+3 -1
crates/weaver-app/src/fetch.rs
··· 60 60 ) -> Result<Option<Arc<(BookEntryView<'static>, Entry<'static>)>>> { 61 61 if let Some(result) = self.get_notebook(ident.clone(), book_title).await? { 62 62 let (notebook, entries) = result.as_ref(); 63 - if let Some(entry) = cache_impl::get(&self.entry_cache, &(ident.clone(), entry_title.clone())) { 63 + if let Some(entry) = 64 + cache_impl::get(&self.entry_cache, &(ident.clone(), entry_title.clone())) 65 + { 64 66 Ok(Some(entry)) 65 67 } else { 66 68 if let Some(entry) = entry_by_title(
+1
crates/weaver-app/src/main.rs
··· 22 22 mod cache_impl; 23 23 /// Define a components module that contains all shared components for our app. 24 24 mod components; 25 + mod data; 25 26 mod fetch; 26 27 mod service_worker; 27 28 /// Define a views module that contains the UI for all Layouts and Routes for our app.
+181 -91
test.html
··· 1 1 <!DOCTYPE html> 2 - <html lang="en"> 2 + <html> 3 3 <head> 4 - <meta charset="utf-8"> 5 - </head> 6 - <script> 7 - console.log( window.location.href ); // whatever your current location href is 8 - window.history.replaceState( {} , 'foo', './LICENSE' ); 9 - console.log( window.location.href ); // oh, hey, it replaced the path with /foo 4 + <title>Weaver</title> 5 + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 6 + <meta name="viewport" content="width=device-width, initial-scale=1"> 7 + <meta charset="UTF-8"> 8 + <style> 9 + /* Inter Font */ 10 + @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap') layer; 10 11 12 + #dx-toast-template { 13 + display: none; 14 + visibility: hidden; 15 + } 11 16 12 - </script> 13 - <body> 14 - <h1>Main Title &amp; &quot;Special Chars&quot;</h1> 15 - <p>This is a paragraph with <em>emphasis</em>, <strong>strong emphasis</strong>, <del>strikethrough</del>, and <code>inline code</code>. 16 - Also, here&#39;s some escaped HTML: &lt; &amp; &gt; &quot; &#39;</p> 17 - <blockquote> 18 - <p>A blockquote with 19 - multiple lines.</p> 20 - <blockquote> 21 - <p>And a nested blockquote.</p> 22 - </blockquote> 23 - </blockquote> 24 - <hr /> 17 + .dx-toast { 18 + position: absolute; 19 + top: 10px; 20 + right: 0; 21 + padding-right: 10px; 22 + user-select: none; 23 + /* transition: transform 0.2s ease; */ 24 + z-index: 2147483647; 25 + } 25 26 26 - <h2>Lists and Links</h2> 27 - <ul> 28 - <li><p>Unordered item 1</p> 29 - </li> 30 - <li><p>Unordered item 2</p> 31 - <ul> 32 - <li><p>Nested unordered item</p> 33 - <ul> 34 - <li><p>Deeply nested</p> 35 - </li> 36 - </ul> 37 - </li> 38 - </ul> 39 - </li> 40 - </ul> 41 - <ol> 42 - <li><p>Ordered item 1</p> 43 - </li> 44 - <li><p>Ordered item 2 (with a line break) 45 - Still item 2.</p> 46 - </li> 47 - <li><p>Ordered item 3</p> 48 - </li> 49 - </ol> 50 - <h3>GFM Task List</h3> 51 - <ul> 52 - <li><input type="checkbox" disabled /> <p>Unchecked task</p> 53 - </li> 54 - <li><input type="checkbox" disabled checked /> <p>Checked task</p> 55 - </li> 56 - </ul> 57 - <p>Visit our site: <a href="http://example.com">http://example.com</a> or contact <a href="mailto:test@example.com">test@example.com</a>. 58 - For more info, check <a href="http://www.example.org">www.example.org</a>. 59 - A standard link: <a href="https://example.net" title="Link Title">Example Site</a>. 60 - An angle link: <a href="https://angled.example.org">https://angled.example.org</a></p> 61 - <h2>Media and Code</h2> 62 - <p><img src="image.jpg" alt="Alt text for image" title="Image Title" /></p> 63 - <pre><code class="language-rust">fn main() { 64 - println!(&quot;Hello, Rust!&quot;); 65 - }</code></pre> 66 - <pre><code>Generic code block 67 - with no language.</code></pre> 68 - <h2>Table Time</h2> 69 - <table> 70 - <thead> 71 - <tr> 72 - <th style=\"text-align: left;\">Header 1</th> 73 - <th style=\"text-align: center;\">Header 2 (Center)</th> 74 - <th style=\"text-align: right;\">Header 3 (Right)</th> 75 - </tr> 76 - </thead> 77 - <tbody> 78 - <tr> 79 - <td style=\"text-align: left;\">Cell 1-1</td> 80 - <td style=\"text-align: center;\">Cell 1-2</td> 81 - <td style=\"text-align: right;\">Cell 1-3</td> 82 - </tr> 83 - <tr> 84 - <td style=\"text-align: left;\">Cell 2-1 with <code>inline</code></td> 85 - <td style=\"text-align: center;\">Cell 2-2</td> 86 - <td style=\"text-align: right;\"><em>Cell 2-3</em></td> 87 - </tr> 88 - </tbody> 89 - </table> 90 - <h2>Other Features</h2> 91 - <p>This is a footnote reference.<sup class="footnote-reference"><a href="#fn:1">1</a></sup></p> 92 - <p>Raw HTML:</p> 93 - <div><p>Passthrough</p></div><p>Math: block</p> 94 - <pre><code class="language-math math-display">\sum_{i=0}^n i = \frac{n(n+1)}{2}</code></pre> 95 - <p>and inline <code class="language-math math-inline">E=mc^2</code>.</p> 96 - </body> 27 + .dx-toast .dx-toast-inner { 28 + /* transition: right 0.2s ease-out; */ 29 + position: fixed; 30 + 31 + background-color: #181B20; 32 + color: #ffffff; 33 + font-family: "Inter", sans-serif; 34 + 35 + display: grid; 36 + grid-template-columns: auto auto; 37 + max-width: 400px; 38 + min-height: 56px; 39 + border-radius: 5px; 40 + } 41 + 42 + .dx-toast .dx-toast-inner { 43 + cursor: pointer; 44 + margin-right: 10px; 45 + } 46 + 47 + .dx-toast .dx-toast-level-bar-container { 48 + height: 100%; 49 + width: 6px; 50 + } 51 + 52 + .dx-toast .dx-toast-level-bar-container .dx-toast-level-bar { 53 + width: 100%; 54 + height: 100%; 55 + border-radius: 5px 0px 0px 5px; 56 + } 57 + 58 + .dx-toast .dx-toast-content { 59 + padding: 8px; 60 + } 61 + 62 + .dx-toast .dx-toast-header { 63 + display: flex; 64 + flex-direction: row; 65 + justify-content: start; 66 + align-items: end; 67 + margin-bottom: 10px; 68 + } 69 + 70 + .dx-toast .dx-toast-header>svg { 71 + height: 18px; 72 + margin-right: 5px; 73 + } 74 + 75 + .dx-toast .dx-toast-header .dx-toast-header-text { 76 + font-size: 14px; 77 + font-weight: 700; 78 + padding: 0; 79 + margin: 0; 80 + } 81 + 82 + .dx-toast .dx-toast-msg { 83 + font-size: 11px; 84 + font-weight: 400; 85 + padding: 0; 86 + margin: 0; 87 + } 88 + 89 + .dx-toast-level-bar.info { 90 + background-color: #428EFF; 91 + } 92 + 93 + .dx-toast-level-bar.success { 94 + background-color: #42FF65; 95 + } 96 + 97 + .dx-toast-level-bar.error { 98 + background-color: #FF4242; 99 + } 100 + </style> 101 + <script> 102 + const STORAGE_KEY = "SCHEDULED-DX-TOAST"; 103 + let currentTimeout = null; 104 + let currentToastId = 0; 105 + 106 + // Show a toast, removing the previous one. 107 + function showDXToast(headerText, message, progressLevel, durationMs) { 108 + document.getElementById("__dx-toast-decor").className = `dx-toast-level-bar ${progressLevel}`; 109 + document.getElementById("__dx-toast-text").innerText = headerText; 110 + document.getElementById("__dx-toast-msg").innerText = message; 111 + document.getElementById("__dx-toast-inner").style.right = "0"; 112 + document.getElementById("__dx-toast").addEventListener("click", closeDXToast); 113 + 114 + 115 + // Wait a bit of time so animation plays correctly. 116 + setTimeout( 117 + () => { 118 + let ourToastId = currentToastId; 119 + currentTimeout = setTimeout(() => { 120 + if (ourToastId == currentToastId) { 121 + closeDXToast(); 122 + } 123 + }, durationMs); 124 + }, 125 + 100 126 + ); 127 + 128 + currentToastId += 1; 129 + } 130 + 131 + // Schedule a toast to be displayed after reload. 132 + function scheduleDXToast(headerText, message, level, durationMs) { 133 + let data = { 134 + headerText, 135 + message, 136 + level, 137 + durationMs, 138 + }; 139 + 140 + let jsonData = JSON.stringify(data); 141 + sessionStorage.setItem(STORAGE_KEY, jsonData); 142 + } 143 + 144 + // Close the current toast. 145 + function closeDXToast() { 146 + document.getElementById("__dx-toast-inner").style.right = "-1000px"; 147 + clearTimeout(currentTimeout); 148 + } 149 + 150 + // Handle any scheduled toasts after reload. 151 + let potentialData = sessionStorage.getItem(STORAGE_KEY); 152 + if (potentialData) { 153 + sessionStorage.removeItem(STORAGE_KEY); 154 + let data = JSON.parse(potentialData); 155 + showDXToast(data.headerText, data.message, data.level, data.durationMs); 156 + } 157 + 158 + window.scheduleDXToast = scheduleDXToast; 159 + window.showDXToast = showDXToast; 160 + window.closeDXToast = closeDXToast; 161 + </script> 162 + <script src="assets/sw.js"></script> 163 + <link rel="icon" href="/assets/weaver_photo_sm-dxhfeb0267c329e97f5.jpg"/><link rel="stylesheet" href="/assets/main-dxhfcf572b7703234f.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;1,200;1,300;1,400;1,500;1,600;1,700&#38;family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&#38;family=IBM+Plex+Serif:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;1,200;1,300;1,400;1,500;1,600;1,700&#38;display=swap"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="/assets/theme-defaults-dxh14af886d925a7b10.css"/><link rel="stylesheet" href="/assets/navbar-dxhf979f34ea6fea6b0.css"/><link rel="stylesheet" href="/did:plc:yfvwmnlztr4dwkb7hwz55r2g/weaver/css" type="text/css"/></head> 164 + <body> 165 + <div id="__dx-toast" class="dx-toast"> 166 + <div id="__dx-toast-inner" class="dx-toast-inner" style="right:-1000px;"> 167 + <div class="dx-toast-level-bar-container"> 168 + <div id="__dx-toast-decor" class="dx-toast-level-bar __info"></div> 169 + </div> 170 + <div class="dx-toast-content"> 171 + <div class="dx-toast-header"> 172 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" preserveAspectRatio="none"> 173 + <path d="M22.158 1.783c0 3.077-.851 5.482-2.215 7.377s-3.32 3.557-5.447 5.33-4.425 3.657-6.252 6.195-3.102 5.515-3.102 9.532h4.699c0-3.077.853-5.377 2.217-7.272s3.32-3.557 5.447-5.33 4.425-3.657 6.252-6.195 3.102-5.62 3.102-9.637z" fill="#e96020"/> 174 + <path d="M9.531 25.927c-.635 0-1.021.515-1.02 1.15s.385 1.151 1.02 1.15H22.47a1.151 1.151 0 1 0 0-2.301zm1.361-4.076c-.608 0-.954.558-.953 1.166s.346 1.035.953 1.035h10.217a1.101 1.101 0 1 0 0-2.201zm0-13.594a1.101 1.101 0 1 0 0 2.201h10.217c.607 0 .953-.598.953-1.205s-.345-.996-.953-.996zM9.531 4.021A1.15 1.15 0 0 0 8.38 5.17a1.15 1.15 0 0 0 1.15 1.15h12.94c.635 0 1.021-.498 1.02-1.133s-.386-1.166-1.02-1.166z" fill="#2d323b"/> 175 + <path d="M5.142 1.783c0 4.016 1.275 7.099 3.102 9.637s4.125 4.422 6.252 6.195 4.083 3.656 5.447 5.551 2.215 3.974 2.215 7.051h4.701c0-4.016-1.275-7.038-3.102-9.576s-4.125-4.422-6.252-6.195-4.083-3.435-5.447-5.33S9.841 4.86 9.841 1.783z" fill="#00a8d6"/> 176 + </svg> 177 + <h3 id="__dx-toast-text" class="dx-toast-header-text">Your app is being rebuilt.</h3> 178 + </div> 179 + <p id="__dx-toast-msg" class="dx-toast-msg">A non-hot-reloadable change occurred and we must rebuild.</p> 180 + </div> 181 + </div> 182 + </div> 183 + <div id="main"><script>window.hydrate_queue=[];window.dx_hydrate=(id,data,debug_types,debug_locations)=>{let decoded=atob(data),bytes=Uint8Array.from(decoded,(c)=>c.charCodeAt(0));if(window.hydration_callback)window.hydration_callback(id,bytes,debug_types,debug_locations);else window.hydrate_queue.push([id,bytes,debug_types,debug_locations])}; 184 + </script><!--placeholder0--><!--placeholder1--><!--placeholder2--><!--placeholder3--><!--placeholder4--><!--placeholder5--><!--placeholder6--><div id="navbar" data-node-hydration="7"><a href="/" data-node-hydration="8,click:1"><!--node-id9-->Home<!--#--></a></div><div data-node-hydration="10"><!--placeholder11--><p data-node-hydration="12">Loading...</p></div><script>window.initial_dioxus_hydration_data="jYEY9phLGHgYSRgvGGQYaRhkGDoYcBhsGGMYOhh5GGYYdhh3GG0YbhhsGHoYdBhyGDQYZBh3GGsYYhg3GGgYdxh6GDUYNRhyGDIYZxgvGHcYZRhhGHYYZRhyGC8YVxhlGGEYdhhlGHIYJRgyGDAYLRglGDIYMBhMGG8YbhhnGC0YZhhvGHIYbRglGDIYMBh3GHIYaRh0GGkYbhhn9oEY9YEY9YEY9YEY9YEY9YEY9YEY9faBGPWZXhsYghiiGGUYZRhuGHQYchh5GKYYZxhhGHUYdBhoGG8YchhzGIEYoxhlGGkYbhhkGGUYeAAYZhhyGGUYYxhvGHIYZBijGGMYYxhpGGQYeBg7GGIYYRhmGHkYchhlGGkYaBh4GGsYZhg2GGsYYhgzGGEYdBhhGHkYcxgyGDMYdxhtGGMYaRhnGDUYeBhsGGcYcBhpGDQYdBhmGDIYdhhsGGUYZxh6GGgYaBh6GHEYZRhrGGoYNRgyGHoYaRhoGDIYeRh6GHcYdRhjGHUYchhpGHgYQRhhGHQYOhgvGC8YZBhpGGQYOhhwGGwYYxg6GHkYZhh2GHcYbRhuGGwYehh0GHIYNBhkGHcYaxhiGDcYaBh3GHoYNRg1GHIYMhhnGC8YYRhwGHAYLhhiGHMYaxh5GC4YYRhjGHQYbxhyGC4YcBhyGG8YZhhpGGwYZRgvGHMYZRhsGGYYZRh2GGEYbBh1GGUYphhlGCQYdBh5GHAYZRh2GGEYcBhwGC4YYhhzGGsYeRguGGEYYxh0GG8YchguGHAYchhvGGYYaRhsGGUYZhhhGHYYYRh0GGEYchikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhoGG0YaRhtGGUYVBh5GHAYZRhqGGkYbRhhGGcYZRgvGGoYcBhlGGcYYxhyGGUYZhihGGUYJBhsGGkYbhhrGHgYOxhiGGEYZhhrGHIYZRhpGGMYMxgyGHgYZhhnGG8YZxg3GGoYdhg1GHgYNRh4GDcYcBhvGHgYaBhzGGkYYRhhGHAYcBh5GDQYNBhoGGUYcRhmGHYYaxhsGHYYdBhxGGMYdRh0GHEYahgyGG4YMxg3GGQYahhmGDQYZBhzGGkYehhlGBoABhh1GMAYZhhiGGEYbhhuGGUYchikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhoGG0YaRhtGGUYVBh5GHAYZRhqGGkYbRhhGGcYZRgvGGoYcBhlGGcYYxhyGGUYZhihGGUYJBhsGGkYbhhrGHgYOxhiGGEYZhhrGHIYZRhpGGQYNxg2GG4YYhh3GG0YcxhuGGoYdhhzGGsYZRg1GHYYbBg3GHIYYxh6GGkYcBhnGGkYaBhxGHMYbhh3GGoYbxg2GDcYahhvGG8YNhhmGGEYeBh5GHMYdxhmGG0YZRhrGDcYMxhwGDQYZBhzGGkYehhlGBoABRjuGI8YaxhkGGUYcxhjGHIYaRhwGHQYaRhvGG4YeBiLGFAYZRhyGHMYbxhuGCAYdxhoGG8YIBhkGG8YZRhzGCAYZRhsGGUYYxh0GHIYaRhjGGEYbBgsGCAYYxhvGG0YcBh1GHQYZRhyGCwYIBhhGG4YZBggGG0YdRhzGGkYYxggGHQYaBhpGG4YZxhzGC4YIAoYQxhlGHIYdBhpGGYYaRhlGGQYIBhNGGEYYxhoGGkYbhhlGCAYUBhlGHIYdhhlGHIYdBggGHcYaRh0GGgYIBhjGG8YbRhwGGkYbBhlGHIYLRhpGG4YZBh1GGMYZRhkGCAYcBhzGHkYYxhoGG8YcxhpGHMYLgoYUhhvGGIYbxh0GGEYbhhpGHMYdAoKGHQYaBhlGHkYLxhpGHQYLxhzGGgYZRhrGGQYaRhzGHAYbBhhGHkYThhhGG0YZRhlGE8Ychh1GGEYbBhqGHAYaRhuGG4YZRhkGFAYbxhzGHQYohhjGGMYaRhkGHgYOxhiGGEYZhh5GHIYZRhpGGcYMxh3GGQYbBhhGGkYcxhjGHQYNhhsGGsYaRhkGGUYcRh3GDcYcxhhGGQYdBh2GHkYdxhhGHYYaxhhGGwYcBhqGGUYaxhtGHcYdhh2GHoYYhg3GGYYMhhrGGoYaxhlGGoYNhh0GHUYYxh1GHIYaRh4GEYYYRh0GDoYLxgvGGQYaRhkGDoYcBhsGGMYOhh5GGYYdhh3GG0YbhhsGHoYdBhyGDQYZBh3GGsYYhg3GGgYdxh6GDUYNRhyGDIYZxgvGGEYcBhwGC4YYhhzGGsYeRguGGYYZRhlGGQYLhhwGG8Ycxh0GC8YMxhtGDQYcxhvGHkYbhhyGDYYdhhjGDIYaRhjGHUYchhpGHgYQRhhGHQYOhgvGC8YZBhpGGQYOhhwGGwYYxg6GHkYZhh2GHcYbRhuGGwYehh0GHIYNBhkGHcYaxhiGDcYaBh3GHoYNRg1GHIYMhhnGC8YYRhwGHAYLhhiGHMYaxh5GC4YYRhjGHQYbxhyGC4YcBhyGG8YZhhpGGwYZRgvGHMYZRhsGGYYYxhjGGkYZBh4GDsYYhhhGGYYeRhyGGUYaRhnGHQYZRhnGDIYYhhpGGcYNRhlGHEYYxhjGHQYdxh3GG0YNRgyGHoYehhlGGoYYxg0GHkYdxh4GGsYNRhpGHQYdBhlGHEYbhg1GHcYMhhhGGoYZRhnGDUYNBh3GDIYeRh1GHIYdBhpGGkYaRhuGGQYZRh4GGUYZBhBGHQYeBgbGDIYMBgyGDUYLRgxGDEYLRgwGDgYVBgxGDcYOhgwGDEYOhg0GDcYLhg0GDEYMRgzGDgYNBhaGGYYchhlGGMYbxhyGGQYpRhlGCQYdBh5GHAYZRh4GBgYcxhoGC4YdxhlGGEYdhhlGHIYLhhuGG8YdBhlGGIYbxhvGGsYLhhlGG4YdBhyGHkYZxhjGG8Ybhh0GGUYbhh0GHkYKhUKGGAYYBhgChhPGHIYOhggGCIYRxhlGHQYIBhpGG4YIBhrGGkYZBgsGCAYdxhlGCcYchhlGCAYchhlGGIYdRhpGGwYZBhpGG4YZxggGHQYaBhlGCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGCEYIgoYYBhgGGAKChhJGCAYZxhyGGUYdxggGHUYcBgsGCAYbBhpGGsYZRggGGEYIBhsGG8YdBggGG8YZhggGHAYZRhvGHAYbBhlGCAYbxhuGCAYQhhsGHUYZRhzGGsYeRgsGCAYaRhuGCAYdBhoGGUYIBhlGHIYYRggGG8YZhggGHQYaBhlGCAYaRhuGHQYZRhyGG4YZRh0GCAYdxhoGGUYchhlGCAYbRhvGHMYdBggGG8YZhggGHkYbxh1GHIYIBhvGG4YbBhpGG4YZRggGHMYbxhjGGkYYRhsGCAYaRhuGHQYZRhyGGEYYxh0GGkYbxhuGHMYIBh0GG8YbxhrGCAYcBhsGGEYYxhlGCAYdhhpGGEYIBh0GGUYeBh0GC4YIBhJGCAYaBhhGGQYIBhhGCAYTRh5GFMYcBhhGGMYZRggGGEYYxhjGG8YdRhuGHQYLBggGE0YUxhOGCAYbRhlGHMYcxhlGG4YZxhlGHIYIBhhGG4YZBggGEcYbxhvGGcYbBhlGCAYQxhoGGEYdBgsGCAYSRggGGYYaRhyGHMYdBggGGcYbxh0GCAYbxhuGCAYRhhhGGMYZRhiGG8YbxhrGCAYYhhhGGMYaxggGHcYaBhlGG4YIBh0GGgYZRh5GCAYchhlGHEYdRhpGHIYZRhkGCAYYRggGHMYYxhoGG8YbxhsGCAYZRhtGGEYaRhsGCAYdBhvGCAYcxhpGGcYbhggGHUYcBgsGCAYSRggGGgYYRhkGCAYYRggGFQYdRhtGGIYbBhyGCwYIBh0GGgYbxh1GGcYaBggGG4Ybxh0GCAYYRggGEwYaRh2GGUYShhvGHUYchhuGGEYbBguGCAYSRggGHcYYRhzGCAYcxh1GHAYZRhyGCAYaRhuGHQYbxggGHIYZRhkGGQYaRh0GCAYZhhvGHIYIBhhGCAYbBhvGG4YZxggGHQYaRhtGGUYLhggGEIYaRhnGCAYZhhhGG4YIBhvGGYYIBhGGGEYbhhmGGkYYxh0GGkYbxhuGC4YbhhlGHQYIBhhGG4YZBggGGwYYRh0GGUYchggGEEYchhjGGgYaRh2GGUYIBhvGGYYIBhPGHUYchggGE8YdxhuGC4KChg+GCAYIRhbGHcYZRhhGHYYZRhyGF8YcBhoGG8YdBhvGF8YbRhlGGQYLhhqGHAYZxhdGCgYLxh3GGUYYRh2GGUYchgvGGkYbRhhGGcYZRgvGHcYZRhhGHYYZRhyGF8YcBhoGG8YdBhvGF8YbRhlGGQYKRgqGFQYaBhlGCAYbhhhGG0YZRhzGGEYaxhlGCAYbxhmGCAYdxhoGGEYdBggGEkYJxhtGCAYYhh1GGkYbBhkGGkYbhhnGCoKCgoKGFMYbxhjGGkYYRhsGCAYbRhlGGQYaRhhGCAYaRhuGCAYdBhoGGUYIBhjGG8Ybhh2GGUYbhh0GGkYbxhuGGEYbBggGHMYZRhuGHMYZRggGGgYYRhzGCAYYhhlGGUYbhggGGkYbhggGGEYIBhsGG8YdBggGG8YZhggGHcYYRh5GHMYIBhhGCAYcxhtGGEYbBhsGCAYcBhhGHIYdBggGG8YZhggGHQYaBhlGCAYcxh0GG8Ychh5GCAYbxhmGCAYbRh5GCAYdBhpGG0YZRggGG8YbhggGHQYaBhlGCAYaRhuGHQYZRhyGG4YZRh0GC4YIBhCGGUYYxhhGHUYcxhlGCAYdxhoGGkYbBhlGCAYSRggGHcYYRhzGG4YJxh0GCAYaBh1GGcYZRggGGkYbhh0GG8YIBhpGG4YZBhlGHAYZRhuGGQYZRhuGHQYIBhpGG4YdBhlGHIYbhhlGHQYIBhmGG8Ychh1GG0YcxgsGCAYdBhoGGUYIBhiGHIYbxhhGGQYZRhyGCAYaRhuGGQYZRhwGGUYbhhkGGUYbhh0GCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGCAYbxhmGCAYbRh5GCAYdBhlGGUYbhhzGCAYYRhuGGQYIBhlGGEYchhsGHkYIBhhGGQYdRhsGHQYaBhvGG8YZBggGHMYaBhhGHAYZRhkGCAYbRh5GCAYdxhvGHIYbBhkGHYYaRhlGHcYLBggGGEYbhhkGCAYSRggGHcYYRhzGCAYYRhuGCAYYRh2GGkYZBggGHIYZRhhGGQYZRhyGCAYYRhuGGQYIBhzGG8YbRhlGHQYaRhtGGUYIBhwGGEYchh0GGkYYxhpGHAYYRhuGHQYIBh0GGgYZRhyGGUYLhggGEkYIBhhGG0YIBhhGG4YIBhhGHQYaBhlGGkYcxh0GCAYaRhuGCAYbBhhGHIYZxhlGCAYcBhhGHIYdBggGGIYZRhjGGEYdRhzGGUYIBhvGGYYIBhhGCAYYhhsGG8YZxggGGMYYRhsGGwYZRhkGCAYWxhDGG8YbRhtGG8YbhggGFMYZRhuGHMYZRggGEEYdBhoGGUYaRhzGG0YXRgoGGgYdBh0GHAYOhgvGC8YYxhvGG0YbRhvGG4YcxhlGG4YcxhlGGEYdBhoGGUYaRhzGG0YLhhjGG8YbRgpGCAYKBh3GGgYaRhjGGgYIBhJGCAYcxh0GGEYchh0GGUYZBggGHIYZRhhGGQYaRhuGGcYIBhpGG4YIBhwGGEYchh0GCAYYhhlGGMYYRh1GHMYZRggGHQYaBhlGCAYYRh1GHQYaBhvGHIYLBggGEwYdRhrGGUYIBhNGHUYZRhoGGwYaBhhGHUYcxhlGHIYLBggGHcYYRhzGCAYYxhyGGkYdBhpGGMYaRhzGGkYbhhnGCAYYhhvGHQYaBggGFIYaRhjGGgYYRhyGGQYIBhEGGEYdxhrGGkYbhhzGCAYYRhuGGQYIBhzGG8YbRhlGCAYQxhoGHIYaRhzGHQYaRhhGG4YIBhhGHAYbxhsGG8YZxhlGHQYaRhjGHMYIBhJGCAYdxhhGHMYIBhmGGEYbRhpGGwYaRhhGHIYIBh3GGkYdBhoGCkYLhggGEwYdRhrGGUYJxhzGCAYYhhsGG8YZxggGHcYYRhzGCAYcBhhGHIYdBggGG8YZhggGGMYbBh1GHMYdBhlGHIYIBhvGGYYIBhiGGwYbxhnGHMYIBhvGHUYdBggGG8YZhggGHcYaBhpGGMYaBggGGcYchhlGHcYIBh0GGgYZRggGFsYchhhGHQYaRhvGG4YYRhsGGkYcxh0GHMYXRgoGGgYdBh0GHAYcxg6GC8YLxh3GHcYdxguGGwYZRhzGHMYdxhyGG8YbhhnGC4YYxhvGG0YLxgpGCwYIBhvGG4YZRggGG8YZhgsGCAYZhhvGHIYIBhiGGUYdBh0GGUYchggGG8YchggGGYYbxhyGCAYdxhvGHIYcxhlGCwYIBh0GGgYZRggGG0YbxhzGHQYIBhpGG4YZhhsGHUYZRhuGHQYaRhhGGwYIBhpGG4YdBhlGGwYbBhlGGMYdBh1GGEYbBggGG0Ybxh2GGUYbRhlGG4YdBhzGCAYbxhmGCAYdBhoGGUYIBgyGDEYcxh0GCAYYxhlGG4YdBh1GHIYeRgsGCAYdxhoGG8YIBhhGHIYZRgsGCAYdhhpGGEYIBhwGGUYbxhwGGwYZRggGGwYaRhrGGUYIBhbGFMYYxhvGHQYdBggGF0YKBhoGHQYdBhwGHMYOhgvGC8YcxhsGGEYdBhlGHMYdBhhGHIYYxhvGGQYZRh4GC4YYxhvGG0YLxgpGCAYWxhBGGwYZRh4GGEYbhhkGGUYchhdGCgYaBh0GHQYcBhzGDoYLxgvGHcYdxh3GC4YYRhzGHQYchhhGGwYYxhvGGQYZRh4GHQYZRhuGC4YYxhvGG0YLxgpGCwYIBhiGG8YdBhoGCAYZBhvGHcYbhhzGHQYchhlGGEYbRggGGEYbhhkGCAYdRhwGHMYdBhyGGUYYRhtGCAYbxhmGCAYdBhoGGUYIBh0GGUYYxhoGCAYYhhpGGwYbBhpGG8YbhhhGGkYchhlGCAYaRhkGGUYbxhsGG8YZxh5GC4YIBhJGCAYYRhsGHMYbxggGHIYZRhhGGQYIBhiGGwYbxhnGHMYIBhsGGkYaxhlGCAYWxhiGG8YaRhuGGcYYhhvGGkYbhhnGC4YbhhlGHQYXRgoGGgYdBh0GHAYcxg6GC8YLxhiGG8YaRhuGGcYYhhvGGkYbhhnGC4YbhhlGHQYLxgpGCwYIBh3GGEYcxggGGEYIBhiGGkYZxggGGYYYRhuGCAYbxhmGCAYQxhvGHIYeRggGEQYbxhjGHQYbxhyGG8YdxguGCAYSRggGGYYaRhnGHUYchhlGGQYIBhvGHUYdBggGEkYIBhhGG0YIBh0GHIYYRhuGHMYIBhpGG4YIBhwGGEYchh0GCAYYhhlGGMYYRh1GHMYZRggGG8YZhggGFsYVBhoGGkYbhhnGCAYbxhmGCAYVBhoGGkYbhhnGHMYXRgoGGgYdBh0GHAYcxg6GC8YLxh0GGgYaRhuGGcYbxhmGHQYaBhpGG4YZxhzGC4YdxhvGHIYZBhwGHIYZRhzGHMYLhhjGG8YbRgvGDIYMBgxGDcYLxgwGDUYLxgwGDUYLxh0GGgYZRgtGGMYbBh1GHMYdBhlGHIYLRhzGHQYchh1GGMYdBh1GHIYZRgtGG8YZhgtGGcYZRhuGGQYZRhyGHMYcBhhGGMYZRgvGCkYLBggGGEYIBhiGGwYbxhnGCAYYhh5GCAYTxh6GHkYIBhGGHIYYRhuGHQYehgsGCAYYRggGHQYchhhGG4YcxhtGGEYcxhjGCAYcBhlGHIYcxhvGG4YIBhpGG4YIBh0GGgYZRggGGIYchhvGGEYZBhlGHIYIBhyGGEYdBhpGG8YbhhhGGwYaRhzGHQYIBhhGG4YZBggGEUYZhhmGGUYYxh0GGkYdhhlGCAYQRhsGHQYchh1GGkYcxh0GCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGC4YIBhPGG4YZRggGHQYaBhpGG4YZxggGHQYaBhlGHMYZRggGGEYbBhsGCAYaBhhGHYYZRggGGkYbhggGGMYbxhtGG0YbxhuGCAYaRhzGCAYbBhlGG4YZxh0GGgYLhggGFAYYRhyGHQYIBhvGGYYIBh0GGgYZRggGHIYZRhhGHMYbxhuGCAYSRggGG8YbhhsGHkYIBhyGGUYYRhsGGwYeRggGGcYbxh0GCAYbxhuGHQYbxggGFQYdxhpGHQYdBhlGHIYIBhpGG4YIBgyGDAYMhgwGCAYbxhyGCAYcxhvGCAYdxhhGHMYIBhiGGUYYxhhGHUYcxhlGCAYdBhoGGUYIBhjGG8YbhhjGGUYcBh0GCAYbxhmGCAYbRhpGGMYchhvGGIYbBhvGGcYZxhpGG4YZxgsGCAYbxhmGCAYaBhhGHYYaRhuGGcYIBh0GG8YIBhmGGkYdBggGHkYbxh1GHIYIBh0GGgYbxh1GGcYaBh0GHMYIBhpGG4YdBhvGCAYcxh1GGMYaBggGGEYIBhzGG0YYRhsGGwYIBhwGGEYYxhrGGEYZxhlGCwYIBhiGGEYZhhmGGwYZRhkGCAYbRhlGCAYZhhvGHIYIBhhGGcYZRhzGC4YIBhBGG0YdRhzGGkYbhhnGGwYeRggGEkYIBhuGG8YdxggGHQYaBhpGG4YaxggGHQYaBhhGHQYIBhiGGUYaRhuGGcYIBhvGG4YIBhUGHcYaRh0GHQYZRhyGCAYYRhuGGQYIBhuGG8YdxggGEIYbBh1GGUYcxhrGHkYIBhtGGEYZBhlGCAYbRhlGCAYYRggGGIYZRh0GHQYZRhyGCAYdxhyGGkYdBhlGHIYLhggGFsYUhhlGHMYdBhyGGkYYxh0GGkYbxhuGHMYIBhiGHIYZRhlGGQYIBhjGHIYZRhhGHQYaRh2GGkYdBh5GF0YKBhoGHQYdBhwGHMYOhgvGC8YYRhyGHQYaRhjGGwYZRhzGC4Ycxh0GGEYchhjGGkYdBh5GGcYYRhtGGUYcxguGGMYbxhtGC8YYRhyGHQYaRhjGGwYZRhzGC8YchhlGHMYdBhyGGkYYxh0GGkYbxhuGHMYLRhiGHIYZRhlGGQYLRhjGHIYZRhhGHQYaRh2GGkYdBh5GC8YKRgsGCAYYRhmGHQYZRhyGCAYYRhsGGwYLgoKGD4YIBghGFsYeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBguGHAYbhhnGF0YKBgvGHcYZRhhGHYYZRhyGC8YaRhtGGEYZxhlGC8YeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBgpChhoGHQYdBhwGHMYOhgvGC8YeBhrGGMYZBguGGMYbxhtGC8YMxg0GDUYIBgqGDIYMBgwGDAYcxggGGkYbhh0GGUYchhuGGUYdBggGGMYdRhsGHQYdRhyGGUYIBh3GGEYcxggGHcYZRhpGHIYZBgqCgoKChhCGHUYdBggGHQYaBhyGG8YdRhnGGgYIBhhGGwYbBggGG8YZhggGHQYaBhpGHMYIBhJGCAYdxhhGHMYIBhuGGUYdhhlGHIYIBhyGGUYYRhsGGwYeRggGHMYYRh0GGkYcxhmGGkYZRhkGCAYdxhpGHQYaBggGHQYaBhlGCAYbxhwGHQYaRhvGG4YcxggGHQYaBhhGHQYIBh3GGUYchhlGCAYbxh1GHQYIBh0GGgYZRhyGGUYIBhmGG8YchggGGwYbxhuGGcYLRhmGG8YchhtGCAYdxhyGGkYdBhpGG4YZxguGCAYVxhvGHIYZBhwGHIYZRhzGHMYLBggGGUYdhhlGG4YIBh0GGgYZRhpGHIYIBhoGG8Ycxh0GGUYZBggGHYYZRhyGHMYaRhvGG4YLBggGHIYZRhxGHUYaRhyGGUYZBggGGEYIBhsGG8YdBggGG8YZhggGHMYZRh0GHUYcBggGHQYbxggGHIYZRhhGGwYbBh5GCAYYhhlGCAYZhh1GG4YYxh0GGkYbxhuGGEYbBgsGCAYVBh1GG0YYhhsGHIYJxhzGCAYcxh5GHMYdBhlGG0YIBhmGG8YchggGGMYbxhtGG0YZRhuGHQYLxhyGGUYcBhsGGkYZRhzGCAYdxhhGHMYIBhhGG4YZBggGHIYZRhtGGEYaRhuGHMYIBhpGG4YcxhhGG4YZRgsGCAYaBhvGHMYdBhpGG4YZxggGG0YeRggGG8YdxhuGCAYcxhlGGUYbRhlGGQYIBhsGGkYaxhlGCAYdBhvGG8YIBhtGHUYYxhoGCAYbRhvGG4YZRh5GCAYdBhvGCAYYhh1GHIYbhggGG8YbhggGHMYbxhtGGUYdBhoGGkYbhhnGCAYbhhvGGIYbxhkGHkYIBhtGGkYZxhoGHQYIBhlGHYYZRhuGCAYchhlGGEYZBggGGEYdBggGHQYaBhlGCAYdBhpGG0YZRgsGCAYYRhuGGQYIBhoGG8YbhhlGHMYdBhsGHkYIBhJGCAYZhhlGGwYdBggGGwYaRhrGGUYIBhJGCAYaxhpGG4YZBhhGCAYbRhpGHMYcxhlGGQYIBh0GGgYZRggGGIYbxhhGHQYIBhvGG4YIBhkGGkYcxhjGG8YdhhlGHIYYRhiGGkYbBhpGHQYeRgsGCAYYRhzGCAYdBhoGGUYIBhpGG4YdBhlGHIYbhhlGHQYIBhnGHIYZRh3GCAYbBhhGHIYZxhlGHIYIBhhGG4YZBggGG0YbxhyGGUYIBhjGGUYbhh0GHIYYRhsGGkYcxhlGGQYLBggGHcYaRh0GGgYIBhwGGwYYRh0GGYYbxhyGG0YcxggGGwYaRhrGGUYIBhTGHUYYhhzGHQYYRhjGGsYIBhlGGEYdBhpGG4YZxggGHcYaBhhGHQYIBh3GGEYcxggGGwYZRhmGHQYIBhvGGYYIBh0GGgYZRggGGIYbBhvGGcYbxhzGHAYaBhlGHIYZRguGCAYQhh1GHQYIBhhGHQYIBh0GGgYZRggGHMYYRhtGGUYIBh0GGkYbRhlGCwYIBhpGHQYcxggGHMYdRhjGGMYZRhzGHMYIBhwGHIYbxh2GGUYcxggGHQYaBhhGHQYIBh0GGgYZRhyGGUYIBhpGHMYIBh2GGUYchh5GCAYbRh1GGMYaBggGGEYIBhkGGUYcxhpGHIYZRggGGYYbxhyGCAYbBhvGG4YZxgtGGYYbxhyGG0YIBh3GHIYaRh0GGkYbhhnGCwYIBhlGG4Ybxh1GGcYaBggGHQYaBhhGHQYIBhwGGUYbxhwGGwYZRggGHcYaRhsGGwYIBhwGGEYeRggGGYYbxhyGCAYaRh0GCwYIBhhGG4YZBggGHQYaBhhGHQYIBhpGG4YdhhlGHMYdBhvGHIYcxggGHcYaRhsGGwYIBhiGGEYYxhrGCAYaRh0GC4YIBhUGGgYZRhyGGUYIBhhGHIYZRggGHQYaBhvGHUYZxhoGHQYcxggGGEYbhhkGCAYZhhvGHIYbRhzGCAYbxhmGCAYdxhyGGkYdBhpGG4YZxggGHQYaBhhGHQYIBh5GG8YdRggGHMYaRhtGHAYbBh5GCAYYxhhGG4YbhhvGHQYIBhmGGkYdBggGGkYbhh0GG8YIBhhGCAYcBhvGHMYdBggGG8YchggGGUYdhhlGG4YIBhhGCAYdBhoGHIYZRhhGGQYIBhvGGYYIBhwGG8Ycxh0GHMYLBggGGEYbhhkGCAYdxhoGGkYYxhoGCAYZBhvGG4YJxh0GCAYbRhhGGsYZRggGHMYZRhuGHMYZRggGG8YbhggGGEYIBh0GG8YcBhpGGMYLRhiGGEYcxhlGGQYIBhmGG8Ychh1GG0YLBggGG8YchggGGEYIBhwGGwYYRhjGGUYIBhsGGkYaxhlGCAYQRhyGGMYaBhpGHYYZRggGG8YZhggGG8YdRhyGCAYTxh3GG4YLhggGFAYbBh1GHMYLBggGEkYJxhtGCAYbBhvGGEYdBhoGGUYIBh0GG8YIBhlGG4YYRhiGGwYZRggGGEYIBhjGGUYbhh0GHIYYRhsGGkYcxhlGGQYIBhwGGwYYRh0GGYYbxhyGG0YIBhsGGkYaxhlGCAYUxh1GGIYcxh0GGEYYxhrGCAYdxhoGGUYchhlGCAYdBhoGGUYIBhvGHcYbhhlGHIYcxggGGEYchhlGCAYdRhuGGYYbxhyGHQYdRhuGGEYdBhlGGwYeRggGGYYchhpGGUYbhhkGGwYeRggGHQYbxggGGYYYRhzGGMYaRhzGHQYcxguCgoYVBhoGGEYdBgnGHMYIBh3GGgYZRhyGGUYIBh0GGgYZRggGGAYYRh0GDoYLxgvGGAYIBhwGHIYbxh0GG8YYxhvGGwYIBhhGG4YZBggGFcYZRhhGHYYZRhyGCAYYxhvGG0YZRhzGCAYaRhuGC4KChgjGCMYIxggGFQYaBhlGCAYcBhpGHQYYxhoCgoYVxhlGGEYdhhlGHIYIBhpGHMYIBhkGGUYcxhpGGcYbhhlGGQYIBh0GG8YIBhiGGUYIBhhGCAYaBhpGGcYaBhsGHkYIBhmGGwYZRh4GGkYYhhsGGUYIBhwGGwYYRh0GGYYbxhyGG0YIBhmGG8YchggGG0YZRhkGGkYdRhtGCAYYRhuGGQYIBhsGG8YbhhnGC0YZhhvGHIYbRggGHcYchhpGHQYaRhuGGcYIBhvGG4YIBhhGHQYcBhyGG8YdBhvGC4YIBhJGCAYdxhhGHMYIBhpGG4YcxhwGGkYchhlGGQYIBhiGHkYIBhoGG8YdxggGHcYZRhhGHYYZRhyGCAYYhhpGHIYZBhzGCAYYhh1GGkYbBhkGCAYdBhoGGUYaRhyGCAYbxh3GG4YIBhoGG8YbRhlGHMYLBggGGEYbhhkGCAYYhh5GCAYdBhoGGUYIBhuGG8YdBhlGGIYbxhvGGsYcxgsGCAYcBhoGHkYcxhpGGMYYRhsGCAYYRhuGGQYIBh2GGkYchh0GHUYYRhsGCwYIBh0GGgYYRh0GCAYSRggGGMYchhlGGEYdBhlGCAYaRhuGCAYdBhoGGUYIBhjGG8YdRhyGHMYZRggGG8YZhggGG0YeRggGHcYbxhyGGsYLBggGHQYbxggGGkYZBhlGGEYdBhlGCwYIBh0GG8YIBhkGG8YYxh1GG0YZRhuGHQYLBggGGEYbhhkGCAYdBhvGCAYaRhuGGYYbxhyGG0YLhggGFQYaBhlGCAYaRhuGGkYdBhpGGEYbBggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYIBhpGHMYIBhlGHMYcxhlGG4YdBhpGGEYbBhsGHkYIBhhGCAYcxh0GGEYdBhpGGMYIBhzGGkYdBhlGCAYZxhlGG4YZRhyGGEYdBhvGHIYLBggGGEYYhhsGGUYIBh0GG8YIBh0GHUYchhuGCAYYRggGE0YYRhyGGsYZBhvGHcYbhggGHQYZRh4GHQYIBhmGGkYbBhlGCAYbxhyGCAYYRggGGYYbxhsGGQYZRhyGCAYbxhmGCAYTRhhGHIYaxhkGG8YdxhuGCAYZhhpGGwYZRhzGCwYIBhzGHUYYxhoGCAYYRhzGCAYYRhuGCAYTxhiGHMYaRhkGGkYYRhuGCAYdhhhGHUYbBh0GCAYbxhyGCAYZxhpGHQYIBhyGGUYcBhvGHMYaRh0GG8Ychh5GCAYZBhvGGMYdRhtGGUYbhh0GGEYdBhpGG8YbhgsGCAYaRhuGHQYbxggGGEYIBhzGHQYYRh0GGkYYxggGCIYbhhvGHQYZRhiGG8YbxhrGCIYIBhzGGkYdBhlGC4YIBhUGGgYZRggGGYYaRhsGGUYIBhpGHMYIBh1GHAYbBhvGGEYZBhlGGQYIBh0GG8YIBh5GG8YdRhyGCAYUBhEGFMYLBggGHcYaBhlGHIYZRggGGkYdBggGGMYYRhuGCAYYhhlGCAYYRhjGGMYZRhzGHMYZRhkGCwYIBhlGGkYdBhoGGUYchggGGQYaRhyGGUYYxh0GGwYeRgsGCAYdhhpGGEYIBhhGCAYbRhpGG4YaRhtGGEYbBggGGEYcBhwGCAYcxhlGHIYdhhlGHIYIBhsGGEYeRhlGHIYIBh0GGgYYRh0GCAYcBhyGG8YdhhpGGQYZRhzGCAYYRggGGYYchhpGGUYbhhkGGwYaRhlGHIYIBh3GGUYYhggGGEYZBhkGHIYZRhzGHMYIBh0GGgYYRhuGCAYYRhuGCAYWBhSGFAYQxggGHIYZRhxGHUYZRhzGHQYIBhvGHIYIBhDGEQYThggGGwYaRhuGGsYLBggGG8YchggGGgYbxhzGHQYZRhkGCAYbxhuGCAYYRggGHAYbBhhGHQYZhhvGHIYbRggGG8YZhggGHkYbxh1GHIYIBhjGGgYbxhpGGMYZRgsGCAYYhhlGCAYdBhoGGEYdBggGHkYbxh1GHIYIBhvGHcYbhggGHMYZRhyGHYYZRhyGCAYbxhyGCAYYRhuGHkYIBhvGHQYaBhlGHIYIBhzGHQYYRh0GGkYYxggGHMYaRh0GGUYIBhoGG8Ycxh0GGkYbhhnGCAYcxhlGHIYdhhpGGMYZRguGCAYVBhoGGUYIBhpGG4YdBhlGHIYbRhlGGQYaRhhGHQYZRggGGcYbxhhGGwYIBhpGHMYIBhhGG4YIBhlGGwYZRhnGGEYbhh0GCAYYRhuGGQYIBhpGG4YdBh1GGkYdBhpGHYYZRggGHcYchhpGHQYaRhuGGcYIBhwGGwYYRh0GGYYbxhyGG0YIBh3GGkYdBhoGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGGUYZBhpGHQYaRhuGGcYIBhhGG4YZBggGHMYdBhyGGEYaRhnGGgYdBhmGG8Ychh3GGEYchhkGCwYIBhpGG0YbRhlGGQYaRhhGHQYZRggGHAYdRhiGGwYaRhzGGgYaRhuGGcYIBh2GGkYYRggGGEYIBh3GGUYYhgtGGEYcBhwGC4YIBhUGGgYZRggGHUYbBh0GGkYbRhhGHQYZRggGGcYbxhhGGwYIBhpGHMYIBh0GG8YIBhiGHUYaRhsGGQYIBhhGCAYcBhsGGEYdBhmGG8YchhtGCAYcxh1GGkYdBhhGGIYbBhlGCAYZhhvGHIYIBhwGHIYbxhmGGUYcxhzGGkYbxhuGGEYbBggGHcYchhpGHQYZRhyGHMYIBhhGG4YZBggGGoYbxh1GHIYbhhhGGwYaRhzGHQYcxgsGCAYYRhuGCAYbxhwGGUYbhggGGEYbBh0GGUYchhuGGEYdBhpGHYYZRggGHQYbxggGHAYbBhhGHQYZhhvGHIYbRhzGCAYbBhpGGsYZRggGFMYdRhiGHMYdBhhGGMYaxgsGCAYdxhpGHQYaBggGHcYYRh5GHMYIBhmGG8YchggGHIYZRhhGGQYZRhyGHMYIBh0GG8YIBhzGHUYcBhwGG8Ychh0GCAYdxhyGGkYdBhlGHIYcxgsGCAYYRhsGGwYIBhvGG4YIBh0GGgYZRggGGAYYRh0GDoYLxgvGGAYIBhwGHIYbxh0GG8YYxhvGGwYLgoKGCEYWxhuGG8YdBhlGGIYbxhvGGsYXxhlGG4YdBhyGHkYXxhwGHIYZRh2GGkYZRh3GC4YcBhuGGcYXRgoGC8YdxhlGGEYdhhlGHIYLxhpGG0YYRhnGGUYLxhuGG8YdBhlGGIYbxhvGGsYXxhlGG4YdBhyGHkYXxhwGHIYZRh2GGkYZRh3GCkKChgjGCMYIBhXGGUYYRh2GGUYcgoKGFcYZRhhGHYYZRhyGCAYdxhvGHIYaxhzGCAYbxhuGCAYYRggGGMYbxhuGGMYZRhwGHQYIBhvGGYYIBhuGG8YdBhlGGIYbxhvGGsYcxggGHcYaRh0GGgYIBhlGG4YdBhyGGkYZRhzGCwYIBh3GGgYaRhjGGgYIBhjGGEYbhggGGIYZRggGGcYchhvGHUYcBhlGGQYIBhpGG4YdBhvGCAYcBhhGGcYZRhzGCAYbxhyGCAYYxhoGGEYcBh0GGUYchhzGC4YIBhUGGgYZRh5GCAYYxhhGG4YIBhwGG8YdBhlGG4YdBhpGGEYbBhsGHkYIBhoGGEYdhhlGCAYbRh1GGwYdBhpGHAYbBhlGCAYYRh0GHQYchhpGGIYdRh0GGUYZBggGGEYdRh0GGgYbxhyGHMYLhggGFkYbxh1GCAYYxhhGG4YIBh0GGUYYRhyGCAYbxh1GHQYIBhhGCAYbRhlGHQYYRhwGGgYbxhyGGkYYxhhGGwYIBhwGGEYZxhlGCAYbxhyGCAYZRhuGHQYchh5GCAYbxhyGCAYYxhoGGEYcBh0GGUYchggGGEYbhhkGCAYcxh0GGkYYxhrGCAYaRh0GCAYaRhuGCAYYRhuGG8YdBhoGGUYchggGG4Ybxh0GGUYYhhvGG8YaxguGCAYVBhlGGMYaBhuGGkYYxhhGGwYbBh5GCAYeRhvGHUYIBhjGGEYbhggGGQYbxggGHQYaBhpGHMYIBh3GGkYdBhoGCAYZRhuGHQYchhpGGUYcxggGHkYbxh1GCAYZBhvGG4YJxh0GCAYYxhvGG4YdBhyGG8YbBggGCgYaRguGGUYLhggGGUYbhh0GHIYaRhlGHMYIBhpGG4YIBhuGG8YdBhlGGIYbxhvGGsYcxggGHcYaBhlGHIYZRggGHkYbxh1GCcYchhlGCAYbhhvGHQYIBhsGGkYcxh0GGUYZBggGGEYcxggGGEYbhggGGEYdRh0GGgYbxhyGCkYLBggGGEYbBh0GGgYbxh1GGcYaBggGHQYaBhpGHMYIBhpGHMYbhgnGHQYIBhhGCAYcxh1GHAYcBhvGHIYdBhlGGQYIBhtGG8YZBhlGC4YIBhZGG8YdRggGG8YdxhuGCAYdxhoGGEYdBggGHkYbxh1GCAYdxhyGGkYdBhlGC4YIBhBGG4YZBggGG8YbhhjGGUYIBhjGG8YbBhsGGEYYhhvGHIYYRh0GGkYdhhlGCAYZRhkGGkYdBhpGG4YZxggGGkYcxggGGkYbhgsGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGHcYbxhyGGsYIBh3GGkYbBhsGCAYYhhlGCAYchhlGHMYaRhsGGkYZRhuGHQYIBhhGGcYYRhpGG4Ycxh0GCAYZBhlGGwYZRh0GGkYbxhuGCAYYhh5GCAYbxhuGGUYIBhhGHUYdBhoGG8YchgsGCAYdBhvGCAYcxhvGG0YZRggGGQYZRhnGHIYZRhlGC4YIBhUGGgYZRh5GCAYYxhhGG4YIBhkGGUYbBhlGHQYZRggGHQYaBhlGGkYchggGG4Ybxh0GGUYYhhvGG8YaxggGG8YchggGGUYdhhlGG4YIBh0GGgYZRhpGHIYIBhhGGMYYxhvGHUYbhh0GCwYIBhiGHUYdBggGHcYaBhhGHQYIBh5GG8YdRggGHcYchhpGHQYZRggGHcYaRhsGGwYIBhiGGUYIBhzGGEYZhhlGCwYIBhhGG4YZBggGGEYbhh5GHQYaBhpGG4YZxggGHkYbxh1GCcYdhhlGCAYdBhvGHUYYxhoGGUYZBgsGCAYZRhkGGkYdBhlGGQYLBggGHcYaRhsGGwYIBhiGGUYIBhyGGUYYxhvGHYYZRhyGGEYYhhsGGUYLgoKGEUYbhh0GHIYaRhlGHMYIBhhGHIYZRggGE0YYRhyGGsYZBhvGHcYbhggGHQYZRh4GHQYLhggGFMYcBhlGGMYaRhmGGkYYxhhGGwYbBh5GCwYIBh0GGgYZRh5GCcYchhlGCAYYRhuGCAYZRh4GHQYZRhuGHMYaRhvGG4YIBhvGG4YIBh0GGgYZRggGE8YYhhzGGkYZBhpGGEYbhggGGYYbBhhGHYYbxh1GHIYIBhvGGYYIBhNGGEYchhrGGQYbxh3GG4YLBggGHMYbxggGHQYaBhlGHkYIBhzGHUYcBhwGG8Ychh0GCAYYRhkGGQYaRh0GGkYbxhuGGEYbBggGGUYbRhiGGUYZBggGHQYeRhwGGUYcxgsGCAYaRhuGGMYbBh1GGQYaRhuGGcYIBhhGHQYcBhyGG8YdBhvGCAYchhlGGMYbxhyGGQYIBhlGG0YYhhlGGQYcxggGGEYbhhkGCAYbxh0GGgYZRhyGCAYbRhhGHIYaxhkGG8YdxhuGCAYZBhvGGMYdRhtGGUYbhh0GHMYLBggGGEYcxggGHcYZRhsGGwYIBhhGHMYIBhhGCAYdBh3GG8YLRhjGG8YbBh1GG0YbhggGG0YbxhkGGUYIBhhGG4YZBggGHIYZRhzGGkYehhhGGIYbBhlGCAYaRhtGGEYZxhlGHMYLhggGFQYaBhlGHkYIBh3GGkYbBhsGCAYcxh1GHAYcBhvGHIYdBggGEIYbBh1GGUYcxhrGHkYLRhiGGEYcxhlGGQYIBhjGG8YbRhtGGUYbhh0GHMYLBggGGIYdRh0GCAYYRggGFcYZRhhGHYYZRhyGC0YbhhhGHQYaRh2GGUYIBhzGHkYcxh0GGUYbRggGG0YYRh5GCAYYxhvGG0YZRggGGkYbhh0GG8YIBh0GGgYZRggGG0YaRh4GCAYZBhvGHcYbhggGHQYaBhlGCAYbBhpGG4YZRguGCAYQxh1GHIYchhlGG4YdBhsGHkYIBh5GG8YdRggGGgYYRh2GGUYIBh0GG8YIBh3GHIYaRh0GGUYIBhuGG8YdBhlGGIYbxhvGGsYIBhlGG4YdBhyGGkYZRhzGCAYaRhuGCAYYRhuGCAYZRh4GHQYZRhyGG4YYRhsGCAYZRhkGGkYdBhvGHIYIBhhGG4YZBggGHUYcBhsGG8YYRhkGCAYdBhoGGUYbRguGCAYVRhsGHQYaRhtGGEYdBhlGGwYeRggGHQYaBhlGHIYZRggGHcYaRhsGGwYIBhiGGUYIBhhGCAYdxhlGGIYLRhiGGEYcxhlGGQYIBhlGGQYaRh0GG8YchggGHcYaRh0GGgYIBhsGGkYdhhlGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGGUYZBhpGHQYaRhuGGcYIBhmGG8YchggGHQYaBhvGHMYZRggGHcYaBhvGCAYcBhyGGUYZhhlGHIYIBh0GGgYZRggGFcYWRhTGEkYVxhZGEcYIBhlGHgYcBhlGHIYaRhlGG4YYxhlGCwYIBhpGG4YdBhlGG4YZBggGHQYbxggGGMYbxhsGGwYYRhiGG8YchhhGHQYZRgsGCAYbxhyGCAYdxhhGG4YdBggGGEYbhggGGEYbBhsGC0YaRhuGC0YbxhuGGUYIBhvGHAYdBhpGG8YbhguCgoYIxgjGCMYIBhTGG8YIBh3GGgYYRh0GCAYYRhiGG8YdRh0GC4YLhguCgoYVxhoGGUYbhggGEkYIBhzGHQYYRhyGHQYZRhkGCAYdxhvGHIYaxhpGG4YZxggGG8YbhggGFcYZRhhGHYYZRhyGCAYYhhhGGMYaxggGGkYbhggGHQYaBhlGCAYcxhwGHIYaRhuGGcYLBggGHQYaBhlGCAYbxhuGGwYeRggGHIYZRhhGGwYIBhnGGEYbRhlGHMYIBhpGG4YIBh0GG8YdxhuGCAYZhhvGHIYIBhsGG8YbhhnGC0YZhhvGHIYbRggGGIYbBhvGGcYZxhpGG4YZxggGGIYYRhzGGUYZBggGG8YbhggGGEYdBhwGHIYbxh0GG8YLBggGGEYcxhpGGQYZRggGGYYchhvGG0YIBhyGG8YbBhsGGkYbhhnGCAYeRhvGHUYchggGG8YdxhuGCwYIBhbGHAYaRhzGHMYLhhiGGUYYRh1GHQYeRhdGCgYaBh0GHQYcBhzGDoYLxgvGHAYaRhzGHMYLhhiGGUYYRh1GHQYeRgpGCAYcxh0GHkYbBhlGCwYIBh3GGUYchhlGCAYWxh3GGgYdBh3GG4YZBguGGMYbxhtGF0YKBhoGHQYdBhwGHMYOhgvGC8YdxhoGHQYdxhuGGQYLhhjGG8YbRgvGCkYIBhhGG4YZBggGFsYbBhlGGEYZhhsGGUYdBguGHAYdRhiGF0YKBhoGHQYdBhwGHMYOhgvGC8YbBhlGGEYZhhsGGUYdBguGHAYdRhiGC8YaBhvGG0YZRgpGC4YIBhMGGUYYRhmGGwYZRh0GCcYcxggGGcYbxhvGGQYLBggGGEYbhhkGCAYaRh0GCcYcxggGGcYbxh0GHQYZRhuGCAYYRggGGwYbxh0GCAYYhhlGHQYdBhlGHIYIBhpGG4YIBh0GGgYZRggGGwYYRhzGHQYIBh5GGUYYRhyGCwYIBhiGHUYdBggGGkYdBggGGQYbxhlGHMYbhgnGHQYIBhvGGYYZhhlGHIYIBhxGHUYaRh0GGUYIBh3GGgYYRh0GCAYSRgnGG0YIBhsGG8YbxhrGGkYbhhnGCAYZhhvGHIYIBhlGGkYdBhoGGUYchguGCAYRhhvGHIYIBhvGG4YZRgsGCAYSRggGGEYbRggGGEYIBhNGGEYchhrGGQYbxh3GG4YIBhmGGEYbhhnGGkYchhsGCwYIBhmGG8YchggGGIYZRh0GHQYZRhyGCAYbxhyGCAYZhhvGHIYIBh3GG8YchhzGGUYLBggGEkYIBhsGG8YdhhlGCAYYhhlGGkYbhhnGCAYYRhiGGwYZRggGHQYbxggGGMYbxhtGHAYbxhzGGUYIBhzGHQYdRhmGGYYIBhpGG4YIBhhGCAYchhhGG4YZBhvGG0YIBh0GGUYeBh0GCAYZRhkGGkYdBhvGHIYLBggGHAYYRhzGHQYZRggGGkYdBggGHMYbxhtGGUYdxhoGGUYchhlGCwYIBhhGG4YZBggGGcYZRh0GCAYYRggGHIYZRhhGHMYbxhuGGEYYhhsGHkYIBhmGG8YchhtGGEYdBh0GGUYZBgsGCAYcBhyGGUYcxhlGG4YdBhhGGIYbBhlGCwYIBhlGHYYZRhuGCAYcBhyGGUYdBh0GHkYIBhkGG8YYxh1GG0YZRhuGHQYIBhvGHUYdBggGG8YZhggGGkYdBguGCAYQRhuGGQYIBh3GGgYaRhsGGUYIBhMGGUYYRhmGGwYZRh0GCAYYRhsGGwYbxh3GHMYIBh5GG8YdRggGHQYbxggGHUYcxhlGCAYTRhhGHIYaxhkGG8YdxhuGCAYZhhvGHIYIBhmGG8YchhtGGEYdBh0GGkYbhhnGCwYIBhpGHQYIBhkGG8YZRhzGG4YJxh0GCAYcxhwGGUYYRhrGCAYaRh0GCAYbhhhGHQYaRh2GGUYbBh5GC4YIBhXGGgYaRh0GGUYdxhpGG4YZBguGC4YLhggGFQYaBhlGHIYZRggGGEYchhlGCAYWxhtGG8YchhlGCAYYRhsGHQYZRhyGG4YYRh0GGkYdhhlGHMYIBhuGG8YdxhdGCgYaBh0GHQYcBhzGDoYLxgvGGMYbxhuGG4YZRhjGHQYZRhkGHAYbBhhGGMYZRhzGC4YbBhlGGEYZhhsGGUYdBguGHAYdRhiGC8YMxhtGDQYcRhnGHAYYxg3GGgYMxgyGDIYMxgpGCwYIBh3GGgYaRhjGGgYIBhtGGEYaxhlGHMYIBhzGGUYbhhzGGUYIBhhGHMYIBh0GGgYaRhzGCAYcxhwGGEYYxhlGCAYZBhlGGYYaRhuGGkYdBhlGGwYeRggGGYYZRhlGGwYcxggGGwYaRhrGGUYIBhvGG4YZRggGHQYaBhhGHQYIBhoGGEYcxggGGcYYRhwGHMYIBh0GG8YIBhmGGkYbBhsGC4YIBhBGG4YZBggGHQYaBhlGCAYYBhhGHQYOhgvGC8YYBggGHAYchhvGHQYbxhjGG8YbBgsGCAYdxhoGGkYbBhlGCAYaRh0GCAYdxhhGHMYIBhkGGUYdhhlGGwYbxhwGGUYZBggGGkYbhggGGMYbxhuGGMYZRhyGHQYIBh3GGkYdBhoGCAYYRggGG0YaRhjGHIYbxhiGGwYbxhnGGcYaRhuGGcYIBhhGHAYcBgsGCAYaRhzGCAYYRhjGHQYdRhhGGwYbBh5GCAYcBhyGGUYdBh0GHkYIBhkGGEYbRhuGCAYZxhvGG8YZBggGGYYbxhyGCAYIhhtGGEYYxhyGG8YIhhiGGwYbxhnGGcYaRhuGGcYLBggGHQYbxhvGC4YIBhUGGgYZRggGGkYbhh0GGUYchhvGHAYZRhyGGEYYhhpGGwYaRh0GHkYIBh0GGgYZRggGHAYchhvGHQYbxhjGG8YbBggGGEYbBhsGG8YdxhzGCAYaRhzGCAYaRhuGGMYchhlGGQYaRhiGGwYZRguGCAYVxhlGGEYdhhlGHIYJxhzGCAYYRhwGHAYIBhzGGUYchh2GGUYchggGGMYYRhuGCAYZBhpGHMYcBhsGGEYeRggGFcYaBhpGHQYZRh3GGkYbhhkGCAYcBhvGHMYdBhzGCAYdhhlGHIYeRggGGUYYRhzGGkYbBh5GC4YIBhXGGkYdBhoGCAYcxhvGG0YZRggGGUYZhhmGG8Ychh0GCAYbxhuGCAYbRh5GCAYcBhhGHIYdBgsGCAYaRh0GCAYYxhhGG4YIBhmGGEYaRh0GGgYZhh1GGwYbBh5GCAYchhlGG4YZBhlGHIYIBhMGGUYYRhmGGwYZRh0GCAYcBhvGHMYdBhzGC4YIBhJGHQYIBhkGG8YZRhzGG4YJxh0GCAYYxhhGHIYZRggGHcYaBhhGHQYIBhhGHAYcBggGHkYbxh1GHIYIBhwGHIYbxhmGGkYbBhlGCAYaRhzGCAYbxhuGCwYIBhpGHQYIBh1GHMYZRhzGCAYdBhoGGUYIBhbGHAYYRhyGHQYaRhhGGwYIBh1GG4YZBhlGHIYcxh0GGEYbhhkGGkYbhhnGF0YKBhoGHQYdBhwGHMYOhgvGC8YcxhkGHIYLRhwGG8YZBhjGGEYcxh0GC4YYxhvGG0YLxhlGHAYaRhzGG8YZBhlGHMYLxhwGGEYchh0GGkYYRhsGC0YdRhuGGQYZRhyGHMYdBhhGG4YZBhpGG4YZxgvGCkYIBhbGGMYYRhwGGEYYhhpGGwYaRh0GGkYZRhzGF0YKBhhGHQYOhgvGC8YZBhpGGQYOhhwGGwYYxg6GHkYZhh2GHcYbRhuGGwYehh0GHIYNBhkGHcYaxhiGDcYaBh3GHoYNRg1GHIYMhhnGC8YYRhwGHAYLhhiGHMYaxh5GC4YZhhlGGUYZBguGHAYbxhzGHQYLxgzGG0YNBg0GG8YbxhvGDQYMhh4GGMYMhhqGCkYIBhvGGYYIBh0GGgYZRggGFsYahhhGGMYcRh1GGEYchhkGF0YKBhoGHQYdBhwGHMYOhgvGC8YdBhhGG4YZxhsGGUYZBguGG8YchhnGC8YQBhuGG8YbhhiGGkYbhhhGHIYeRguGGMYbxhtGHAYdRh0GGUYchgvGGoYYRhjGHEYdRhhGHIYZBgvGCkYIBhsGGkYYhhyGGEYchh5GCAYSRggGGMYchhlGGEYdBhlGGQYIBh0GG8YIBhwGHUYbBhsGCAYdRhzGGUYZhh1GGwYIBhkGGEYdBhhGCAYbxh1GHQYIBhvGGYYIBhpGHQYLgoKGCEYWxhsGGkYZxhoGHQYXxhtGG8YZBhlGF8YZRh4GGMYZRhyGHAYdBguGHAYbhhnGF0YKBgvGHcYZRhhGHYYZRhyGC8YaRhtGGEYZxhlGC8YbBhpGGcYaBh0GF8YbRhvGGQYZRhfGGUYeBhjGGUYchhwGHQYKQoKGCMYIxggGFcYaBhlGHIYZRggGGEYchhlGCAYdxhlGCAYbhhvGHcYPwoKGFQYaBhlGCAYYxh1GHIYchhlGG4YdBggGHMYdBhhGHQYZRggGG8YZhggGFcYZRhhGHYYZRhyGCAYaRhzGCAYdBhoGGEYdBggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYLBggGGQYZRhzGGMYchhpGGIYZRhkGCAYaRhuGCAYdBhoGGUYIBhwGGkYdBhjGGgYLhggGFQYaBhlGHIYZRgnGHMYIBhhGCAYYxhvGG0YbRhhGG4YZBgtGGwYaRhuGGUYIBh0GG8YbxhsGCAYdxhoGGkYYxhoGCAYYxhhGG4YIBhlGGkYdBhoGGUYchggGHAYYRhyGHMYZRggGGEYIBhzGGkYbhhnGGwYZRggGE0YYRhyGGsYZBhvGHcYbhggGGYYaRhsGGUYIBhvGHIYIBhhGCAYdxhoGG8YbBhlGCAYZhhvGGwYZBhlGHIYIBhvGGYYIBh0GGgYZRhtGCwYIBhlGGkYdBhoGGUYchggGHIYZRhuGGQYZRhyGGkYbhhnGCAYdBhoGGUYbRggGHQYbxggGEgYVBhNGEwYIBhpGG4YdBhvGCAYYRggGGwYbxhjGGEYbBggGGQYaRhyGGUYYxh0GG8Ychh5GCwYIBhzGHUYaRh0GGEYYhhsGGUYIBhmGG8YchggGHMYdBhhGHQYaRhjGCAYcxhpGHQYZRggGGgYbxhzGHQYaRhuGGcYLBggGG8YchgsGCAYYRhmGHQYZRhyGCAYZBhvGGkYbhhnGCAYcxhvGG0YZRggGHAYchhlGC0YcBhyGG8YYxhlGHMYcxhpGG4YZxgsGCAYdRhwGGwYbxhhGGQYaRhuGGcYIBh0GGgYZRhtGCAYYRhuGGQYIBhhGG4YeRggGGEYcxhzGG8YYxhpGGEYdBhlGGQYIBhtGGUYZBhpGGEYIBh0GG8YIBh5GG8YdRhyGCAYUBhEGFMYLgoKGD4YIBhUGGgYZRggGHMYdBhhGHQYaRhjGCAYcxhpGHQYZRggGHAYYRh0GGgYIBhpGHMYIBhsGGEYchhnGGUYbBh5GCAYaRhuGGQYZRhwGGUYbhhkGGUYbhh0GCAYbxhmGCAYYRh0GHAYchhvGHQYbxguGCAYSRggGHcYchhvGHQYZRggGGkYdBggGGIYbxh0GGgYIBhhGHMYIBhzGG8Ychh0GCAYbxhmGCAYdBhoGGUYIBh1GGwYdBhpGG0YYRh0GGUYIBhmGGEYbBhsGGIYYRhjGGsYLBggGGEYbhhkGCAYYRhsGHMYbxggGGIYZRhjGGEYdRhzGGUYIBhJGCAYdxhhGG4YdBhlGGQYIBhzGG8YbRhlGHQYaBhpGG4YZxggGHQYbxggGHUYcxhlGCAYdBhvGCAYdxhyGGkYdBhlGCAYZBhvGGMYcxggGHQYaBhhGHQYIBhnGG8YIBh1GHAYIBhvGG4YIBhHGGkYdBhIGHUYYhggGFAYYRhnGGUYcxggGG8YchggGHMYaRhtGGkYbBhhGHIYLBggGHQYbxggGHQYdRhyGG4YIBhhGG4YIBhPGGIYcxhpGGQYaRhhGG4YIBh2GGEYdRhsGHQYIBhmGHUYbBhsGCAYbxhmGCAYZBhvGGMYdRhtGGUYbhh0GGEYdBhpGG8YbhggGGkYbhh0GG8YIBhhGCAYdxhlGGIYcxhpGHQYZRggGHcYaRh0GGgYbxh1GHQYIBhoGGEYdhhpGG4YZxggGHQYbxggGHAYYRh5GCAYdBhoGGUYbRggGGEYIBhtGG8Ybhh0GGgYbBh5GCAYaBhvGHMYdBhpGG4YZxggGGYYZRhlGC4YIBhUGGgYZRggGG8YchhpGGcYaRhuGGEYbBggGHYYMBguGDAYLhgxGCAYdhhlGHIYcxhpGG8YbhggGG8YZhggGHQYaBhpGHMYIBhJGCAYdxhyGG8YdBhlGCAYYRggGGMYbxh1GHAYbBhlGCAYbxhmGCAYeRhlGGEYchhzGCAYYRhnGG8YLBggGHQYaBhvGHUYZxhoGCAYdBhoGGUYIBhjGHUYchhyGGUYbhh0GCAYdhhlGHIYcxhpGG8YbhggGGkYcxggGGEYIBhjGG8YbRhwGGwYZRh0GGUYIBhyGGUYdxhyGGkYdBhlGC4YIBhJGCAYZhhvGHIYaxhlGGQYIBh0GGgYZRggGHAYbxhwGHUYbBhhGHIYIBhyGHUYcxh0GCAYbRhhGHIYaxhkGG8YdxhuGCAYcBhyGG8YYxhlGHMYcxhpGG4YZxggGGwYaRhiGHIYYRhyGHkYIBhbGGAYcBh1GGwYbBhkGG8YdxhuGC0YYxhtGGEYchhrGGAYXRgoGGgYdBh0GHAYcxg6GC8YLxhwGHUYbBhsGGQYbxh3GG4YLRhjGG0YYRhyGGsYLhhnGGkYdBhoGHUYYhguGGkYbxgvGHAYdRhsGGwYZBhvGHcYbhgtGGMYbRhhGHIYaxgvGCkYIBhiGGUYYxhhGHUYcxhlGCAYaRh0GCAYaBhhGGQYIBhsGGkYbRhpGHQYZRhkGCAYZRh4GHQYZRhuGHMYaRhiGGkYbBhpGHQYeRggGGEYbBhvGG4YZxggGHQYaBhlGCAYYRh4GGUYcxggGEkYIBh3GGEYbhh0GGUYZBgsGCAYaRguGGUYLhggGGkYbRhwGGwYZRhtGGUYbhh0GGkYbhhnGCAYYxh1GHMYdBhvGG0YIBhzGHkYbhh0GGEYeBggGGUYeBh0GGUYbhhzGGkYbxhuGHMYIBh0GG8YIBhzGHUYcBhwGG8Ychh0GCAYTxhiGHMYaRhkGGkYYRhuGCcYcxggGE0YYRhyGGsYZBhvGHcYbhggGGYYbBhhGHYYbxh1GHIYIBhhGG4YZBggGGEYZBhkGGkYbhhnGCAYcxhvGG0YZRggGGEYZBhkGGkYdBhpGG8YbhhhGGwYIBh1GHMYZRhmGHUYbBggGGYYZRhhGHQYdRhyGGUYcwoKCgoYVBhoGGUYIBhzGGUYYxhvGG4YZBggGGgYYRhsGGYYIBhvGGYYIBh0GGgYaRhzGCAYaRhzGCAYdBhoGGUYIBhtGGkYbhhpGG0YYRhsGCAYYRhwGHAYIBhzGGUYchh2GGUYchguGCAYVBhoGGkYcxggGGkYcxggGHMYdBhyGGkYYxh0GGwYeRggGGEYIBh2GGkYZRh3GGUYchggGGYYbxhyGCAYdBhoGGUYIBh0GGkYbRhlGCAYYhhlGGkYbhhnGCAYYRhuGGQYIBhjGHUYchhyGGUYbhh0GGwYeRggGGgYYRhzGCAYbhhvGCAYYRhjGHQYaRh2GGUYIBhmGGkYchhlGGgYbxhzGGUYIBhvGHIYIBhqGGUYdBhzGHQYchhlGGEYbRggGGYYZRhlGGQYIBhhGG4YZBggGGQYbxhlGHMYIBhuGG8YIBhwGGUYchhzGGkYcxh0GGUYbhh0GCAYaRhuGGQYZRh4GGkYbhhnGCwYIBhvGG4YbBh5GCAYdBhpGG0YZRgtGGwYaRhtGGkYdBhlGGQYIBhjGGEYYxhoGGkYbhhnGCAYbxhmGCAYdxhoGGEYdBggGGkYcxggGHIYZRhxGHUYZRhzGHQYZRhkGCAYZhhyGG8YbRggGGkYdBguGCAYSRhuGCAYZhhhGGMYdBgsGCAYaRh0GCAYZBhvGGUYcxhuGCcYdBggGGUYdhhlGG4YIBh1GHMYZRggGGMYbxhuGHMYdBhlGGwYbBhhGHQYaRhvGG4YIBhvGHIYIBhzGGwYaRhuGGcYcxhoGG8YdBggGCgYdBhoGG8YdRhnGGgYIBhpGHQYIBhwGHIYbxhiGGEYYhhsGHkYIBhzGGgYbxh1GGwYZBgpGCwYIBhwGHUYchhlGGwYeRggGGYYZRh0GGMYaBhpGG4YZxggGHIYZRhjGG8YchhkGHMYIBhmGHIYbxhtGCAYeRhvGHUYchggGHIYZRhwGG8YcxhpGHQYbxhyGHkYLhggGEkYdBggGGMYYRhjGGgYZRhzGCAYYhhsGG8YYhhzGCAYYRhuGGQYIBhyGGUYLRhzGGUYchh2GGUYcxggGHQYaBhlGG0YIBhhGHQYIBhhGCAYaxhuGG8YdxhuGCAYchhlGGwYYRh0GGkYdhhlGCAYdRhyGGwYIBhwGGEYdBhoGCwYIBhzGG8YIBh0GGgYYRh0GCAYdBhoGGUYIBhsGGkYbhhrGCAYdRhyGGwYcxggGGEYchhlGCAYchhlGGEYcxhvGG4YYRhiGGwYZRggGGEYbhhkGCAYaRhuGGYYbxhyGG0YYRh0GGkYdhhlGCwYIBhhGG4YZBggGGQYbxhlGHMYIBh0GGgYZRggGHMYYRhtGGUYIBhmGG8YchggGHIYZRhsGGUYdhhhGG4YdBggGHIYZRhjGG8YchhkGHMYIBh0GGgYYRh0GCAYYRhyGGUYIBhsGGkYbhhrGGUYZBggGHQYbxggGGIYeRggGG4Ybxh0GGUYYhhvGG8YaxggGGUYbhh0GHIYaRhlGHMYIBhyGGUYcRh1GGUYcxh0GGUYZBggGGYYchhvGG0YIBhpGHQYLgoKGFQYaBhlGCAYchhlGGEYcxhvGG4YIBh3GGgYeRggGEkYIBhzGHQYYRhyGHQYZRhkGCAYdxhpGHQYaBggGHMYbxhtGGUYdBhoGGkYbhhnGCAYZBhlGHYYZRhsGG8YcBhlGHIYLRhmGHIYaRhlGG4YZBhsGHkYIBhyGGEYdBhoGGUYchggGHQYaBhhGG4YIBhhGGkYbRhpGG4YZxggGGYYbxhyGCAYYRggGG4YbxhuGC0YdBhlGGMYaBhuGGkYYxhhGGwYIBhhGHUYZBhpGGUYbhhjGGUYIBh0GG8YIBhiGGUYZxhpGG4YIBh3GGkYdBhoGCAYaRhzGCAYYhhlGGMYYRh1GHMYZRggGEkYIBhrGG4Ybxh3GCAYdBhoGGEYdBggGGEYdRhkGGkYZRhuGGMYZRggGHcYZRhsGGwYLBggGGIYZRhpGG4YZxggGG8YbhhlGCwYIBhhGG4YZBggGEkYIBhmGGkYZxh1GHIYZRggGGkYdBgnGHMYIBhmGGEYchggGHcYaRhzGGUYchggGHQYbxggGHcYbxhyGGsYIBhvGHUYdBggGHQYaBhlGCAYaxhpGG4YaxhzGCAYaRhuGCAYdBhoGGUYIBh1GG4YZBhlGHIYbBh5GGkYbhhnGCAYaRhtGHAYbBhlGG0YZRhuGHQYYRh0GGkYbxhuGCAYZhhpGHIYcxh0GCAYdxhpGHQYaBggGGEYIBh1GHMYZRhyGCAYYhhhGHMYZRggGGMYYRhwGGEYYhhsGGUYIBhvGGYYIBhtGGEYaxhpGG4YZxggGGEYIBhnGG8YbxhkGCAYYhh1GGcYIBhyGGUYcBhvGHIYdBggGGIYZRhmGG8YchhlGCAYdBhyGHkYaRhuGGcYIBhmGG8YchggGGEYIBhiGHIYbxhhGGQYZRhyGCAYYRh1GGQYaRhlGG4YYxhlGC4KChg+GCAYQRhzGCAYdBhvGCAYdxhoGHkYIBhJGCcYbRggGHcYchhpGHQYaRhuGGcYIBhpGHQYIBhpGG4YIBhSGHUYcxh0GCAYKBhhGG4YZBggGGMYdRhyGHIYZRhuGHQYbBh5GCAYehhlGHIYbxggGFQYeRhwGGUYcxhjGHIYaRhwGHQYKRggGGEYcxggGG8YcBhwGG8YcxhlGGQYIBh0GG8YIBhHGG8YIBhhGG4YZBggGFQYeRhwGGUYcxhjGHIYaRhwGHQYPxggGFcYZRhsGGwYIBhpGHQYIBhjGG8YbRhlGHMYIBhkGG8YdxhuGCAYdBhvGCAYZhhhGG0YaRhsGGkYYRhyGGkYdBh5GC4YIBhSGHUYcxh0GCAYaRhzGG4YJxh0GCAYbhhlGGMYZRhzGHMYYRhyGGkYbBh5GCAYYRhuGHkYbxhuGGUYJxhzGCAYZhhpGHIYcxh0GCAYYxhoGG8YaRhjGGUYIBhpGG4YIBhhGCAYdhhhGGMYdRh1GG0YIBhmGG8YchggGGEYIBh3GGUYYhgtGG4YYRh0GGkYdhhlGCAYcBhyGG8YZxhyGGEYbRhtGGkYbhhnGCAYbBhhGG4YZxh1GGEYZxhlGCwYIBhiGHUYdBggGGkYdBggGHcYbxhyGGsYcxggGHEYdRhpGHQYZRggGHcYZRhsGGwYIBhhGHMYIBhvGG4YZRgsGCAYYRhuGGQYIBhJGCAYYxhhGG4YIBhzGGgYYRhyGGUYIBh0GGgYZRggGHYYYRhzGHQYIBhtGGEYahhvGHIYaRh0GHkYIBhvGGYYIBh0GGgYZRggGHAYchhvGHQYbxhjGG8YbBggGGMYbxhkGGUYLBggGGEYcxggGHcYZRhsGGwYIBhhGHMYIBh0GGgYZRggGG0YYRhyGGsYZBhvGHcYbhggGHIYZRhuGGQYZRhyGGkYbhhnGCAYZRhuGGcYaRhuGGUYLBggGGIYZRh0GHcYZRhlGG4YIBhmGHIYbxhuGHQYIBhhGG4YZBggGGIYYRhjGGsYIBhlGG4YZBgsGCAYdxhpGHQYaBggGGYYZRh3GCAYaRhmGCAYYRhuGHkYIBhjGG8YbRhwGHIYbxhtGGkYcxhlGHMYIBhvGG4YIBhwGGUYchhmGG8YchhtGGEYbhhjGGUYLBggGHMYYRh2GGUYIBhhGCAYbBhhGHIYZxhlGHIYIBhiGHUYbhhkGGwYZRggGHMYaRh6GGUYIBhkGHUYZRggGHQYbxggGHQYaBhlGCAYbhhhGHQYdRhyGGUYIBhvGGYYIBhXGGUYYhhBGHMYcxhlGG0YYhhsGHkYLhggGEEYbhhkGCAYdRhsGHQYaRhtGGEYdBhlGGwYeRggGEkYIBhtGGEYeRggGGUYbhhkGCAYdRhwGCAYcBhyGG8YZBh1GGMYaRhuGGcYIBhUGHkYcBhlGHMYYxhyGGkYcBh0GCAYYhhpGG4YZBhpGG4YZxhzGCAYZhhvGHIYIBhKGGEYYxhxGHUYYRhyGGQYIBhhGG4YZBggGFcYZRhhGHYYZRhyGCcYcxggGGMYbxhyGGUYIBh0GG8YbxhsGHMYLBggGGkYZhggGHQYaBhhGHQYJxhzGCAYcxhvGG0YZRh0GGgYaRhuGGcYIBhwGGUYbxhwGGwYZRggGHYYYRhsGHUYZRgsGCAYbxhyGCAYSRggGGUYbhhkGCAYdRhwGCAYchhlGGMYbxhuGHMYaRhkGGUYchhpGG4YZxggGGQYbxhpGG4YZxggGHcYZRhiGCAYZhhyGG8Ybhh0GC0YZRhuGGQYIBhpGG4YIBhSGHUYcxh0GC4KCgoKGCMYIxgjGCAYRRh2GG8YbBh1GHQYaRhvGG4KChhXGGUYYRh2GGUYchggGGkYcxggGHQYaBhlGHIYZRhmGG8YchhlGCAYdhhlGHIYeRggGG0YdRhjGGgYIBhhGG4YIBhlGHYYbxhsGHYYaRhuGGcYIBh0GGgYaRhuGGcYLhggGEkYdBggGHcYaRhsGGwYIBhhGGwYdxhhGHkYcxggGGgYYRh2GGUYIBhhGG4YZBggGHMYdRhwGHAYbxhyGHQYIBh0GGgYZRggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYIBh3GG8YchhrGGYYbBhvGHcYIBhhGHMYIBhhGCAYZhhpGHIYcxh0GC0YYxhsGGEYcxhzGCAYYxhpGHQYaRh6GGUYbhguGCAYVBhoGGEYdBgnGHMYIBhwGGEYchh0GCAYbxhmGCAYdBhoGGUYIBhiGGUYbhhlGGYYaRh0GCAYbxhmGCAYYhh1GGkYbBhkGGkYbhhnGCAYdBhoGGkYcxggGG8YbhggGGEYdBhwGHIYbxh0GG8YLhggGEkYZhggGEkYIBhzGGMYchhlGHcYIBh0GGgYaRhzGCAYdRhwGCwYIBhuGG8YdBggGHQYbxhvGCAYaBhhGHIYZBggGGYYbxhyGCAYcxhvGG0YZRhvGG4YZRggGGUYbBhzGGUYIBh0GG8YIBhwGGkYYxhrGCAYdRhwGCAYdBhoGGUYIBh0GG8YchhjGGgYIBhhGG4YZBggGGMYbxhuGHQYaRhuGHUYZRguCgoYaRhjGHIYZRhhGHQYZRhkGEEYdBh4GBsYMhgwGDIYNRgtGDEYMRgtGDAYNBhUGDAYMBg6GDIYOBg6GDUYNhguGDUYMxg0GDEYNhg5GFoYZhhlGG0YYhhlGGQYcxihGGYYaRhtGGEYZxhlGHMYoRhmGGkYbRhhGGcYZRhzGIQYoxhjGGEYbBh0GGAYZRhpGG0YYRhnGGUYpBhlGCQYdBh5GHAYZRhkGGIYbBhvGGIYaBhtGGkYbRhlGFQYeRhwGGUYaRhpGG0YYRhnGGUYLxhwGG4YZxhjGHIYZRhmGKEYZRgkGGwYaRhuGGsYeBg7GGIYYRhmGGsYchhlGGkYZxh1GDMYchgyGGQYeBh6GGYYdBg1GDIYeRhnGG8Ychg3GHQYYRh5GDUYaRh3GGoYdBg0GDIYcxhtGG4YehhnGDUYahhyGGUYZhg3GGwYcRh0GGwYZxh1GHAYeRhmGGQYeRh2GHoYbRhkGHMYaRh6GGUYGRh4GCQYZBhuGGEYbRhlGHAYeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBijGGMYYRhsGHQYYBhlGGkYbRhhGGcYZRikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhoGG0YaRhtGGUYVBh5GHAYZRhqGGkYbRhhGGcYZRgvGGoYcBhlGGcYYxhyGGUYZhihGGUYJBhsGGkYbhhrGHgYOxhiGGEYZhhrGHIYZRhpGGMYYhhyGGUYNBhmGHIYeRh4GHkYaRhuGHMYehhiGDMYcBh1GGgYbhh4GDYYNhhrGHEYbhh0GHMYZBhpGDYYehhkGGoYZBhvGHAYdRhrGG8YdRh6GHQYcRhvGHMYbxh5GGwYMxhvGGkYZBhzGGkYehhlGBoAAxhPGJgYZBhuGGEYbRhlGHAYdxhlGGEYdhhlGHIYXxhwGGgYbxh0GG8YXxhtGGUYZBijGGMYYRhsGHQYYBhlGGkYbRhhGGcYZRikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhoGG0YaRhtGGUYVBh5GHAYZRhpGGkYbRhhGGcYZRgvGHAYbhhnGGMYchhlGGYYoRhlGCQYbBhpGG4Yaxh4GDsYYhhhGGYYaxhyGGUYaRhhGHgYdBh2GG8YbBhiGHIYdhhwGDUYaRg3GHgYaBgyGHIYdxhqGGEYdxgyGHkYaRhtGGkYcBhlGHgYcxhoGHQYcRh0GGgYaRhzGDQYbxhnGHUYaRhpGGgYeBhxGHgYbhhhGGwYMhhlGGQYcxhpGHoYZRgaAAEY/xhUGGQYbhhhGG0YZRhyGGwYaRhnGGgYdBhfGG0YbxhkGGUYXxhlGHgYYxhlGHIYcBh0GKMYYxhhGGwYdBhgGGUYaRhtGGEYZxhlGKQYZRgkGHQYeRhwGGUYZBhiGGwYbxhiGGgYbRhpGG0YZRhUGHkYcBhlGGkYaRhtGGEYZxhlGC8YcBhuGGcYYxhyGGUYZhihGGUYJBhsGGkYbhhrGHgYOxhiGGEYZhhrGHIYZRhpGGMYdxhyGG4YYRhpGG4YcRhjGHUYaRh0GDQYYxhiGHIYbRg1GGsYaxh3GGYYbRh0GHkYNhhpGHgYdhhkGGwYNhhuGDQYeRhjGGQYdBhpGGcYbBhmGHkYahhyGDIYahhwGHYYNxhjGGEYZBhzGGkYehhlGBkYixiTGGQYbhhhGG0YZRh2GG4Ybxh0GGUYYhhvGG8YaxhfGGUYbhh0GHIYeRhfGHAYchhlGHYYaRhlGHcYZRh0GGkYdBhsGGUYeBgaGFcYZRhhGHYYZRhyGCAYLRggGEwYbxhuGGcYLRhmGG8YchhtGCAYdxhyGGkYdBhpGG4YZxhlGHQYaRh0GGwYZRh4GBoYVxhlGGEYdhhlGHIYIBgtGCAYTBhvGG4YZxgtGGYYbxhyGG0YIBh3GHIYaRh0GGkYbhhnGGMYdRhyGGkYeBhMGGEYdBg6GC8YLxhkGGkYZBg6GHAYbBhjGDoYeRhmGHYYdxhtGG4YbBh6GHQYchg0GGQYdxhrGGIYNxhoGHcYehg1GDUYchgyGGcYLxhzGGgYLhh3GGUYYRh2GGUYchguGG4Ybxh0GGUYYhhvGG8YaxguGGUYbhh0GHIYeRgvGDMYbRg0GHIYYhhwGGgYahh6GHQYNhgyGGIYZRhpGG4YZBhlGHgAGKUYZxhjGG8Ybhh0GGUYbhh0GHkYKhUKGGAYYBhgChhPGHIYOhggGCIYRxhlGHQYIBhpGG4YIBhrGGkYZBgsGCAYdxhlGCcYchhlGCAYchhlGGIYdRhpGGwYZBhpGG4YZxggGHQYaBhlGCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGCEYIgoYYBhgGGAKChhJGCAYZxhyGGUYdxggGHUYcBgsGCAYbBhpGGsYZRggGGEYIBhsGG8YdBggGG8YZhggGHAYZRhvGHAYbBhlGCAYbxhuGCAYQhhsGHUYZRhzGGsYeRgsGCAYaRhuGCAYdBhoGGUYIBhlGHIYYRggGG8YZhggGHQYaBhlGCAYaRhuGHQYZRhyGG4YZRh0GCAYdxhoGGUYchhlGCAYbRhvGHMYdBggGG8YZhggGHkYbxh1GHIYIBhvGG4YbBhpGG4YZRggGHMYbxhjGGkYYRhsGCAYaRhuGHQYZRhyGGEYYxh0GGkYbxhuGHMYIBh0GG8YbxhrGCAYcBhsGGEYYxhlGCAYdhhpGGEYIBh0GGUYeBh0GC4YIBhJGCAYaBhhGGQYIBhhGCAYTRh5GFMYcBhhGGMYZRggGGEYYxhjGG8YdRhuGHQYLBggGE0YUxhOGCAYbRhlGHMYcxhlGG4YZxhlGHIYIBhhGG4YZBggGEcYbxhvGGcYbBhlGCAYQxhoGGEYdBgsGCAYSRggGGYYaRhyGHMYdBggGGcYbxh0GCAYbxhuGCAYRhhhGGMYZRhiGG8YbxhrGCAYYhhhGGMYaxggGHcYaBhlGG4YIBh0GGgYZRh5GCAYchhlGHEYdRhpGHIYZRhkGCAYYRggGHMYYxhoGG8YbxhsGCAYZRhtGGEYaRhsGCAYdBhvGCAYcxhpGGcYbhggGHUYcBgsGCAYSRggGGgYYRhkGCAYYRggGFQYdRhtGGIYbBhyGCwYIBh0GGgYbxh1GGcYaBggGG4Ybxh0GCAYYRggGEwYaRh2GGUYShhvGHUYchhuGGEYbBguGCAYSRggGHcYYRhzGCAYcxh1GHAYZRhyGCAYaRhuGHQYbxggGHIYZRhkGGQYaRh0GCAYZhhvGHIYIBhhGCAYbBhvGG4YZxggGHQYaRhtGGUYLhggGEIYaRhnGCAYZhhhGG4YIBhvGGYYIBhGGGEYbhhmGGkYYxh0GGkYbxhuGC4YbhhlGHQYIBhhGG4YZBggGGwYYRh0GGUYchggGEEYchhjGGgYaRh2GGUYIBhvGGYYIBhPGHUYchggGE8YdxhuGC4KChg+GCAYIRhbGHcYZRhhGHYYZRhyGF8YcBhoGG8YdBhvGF8YbRhlGGQYLhhqGHAYZxhdGCgYLxh3GGUYYRh2GGUYchgvGGkYbRhhGGcYZRgvGHcYZRhhGHYYZRhyGF8YcBhoGG8YdBhvGF8YbRhlGGQYKRgqGFQYaBhlGCAYbhhhGG0YZRhzGGEYaxhlGCAYbxhmGCAYdxhoGGEYdBggGEkYJxhtGCAYYhh1GGkYbBhkGGkYbhhnGCoKCgoKGFMYbxhjGGkYYRhsGCAYbRhlGGQYaRhhGCAYaRhuGCAYdBhoGGUYIBhjGG8Ybhh2GGUYbhh0GGkYbxhuGGEYbBggGHMYZRhuGHMYZRggGGgYYRhzGCAYYhhlGGUYbhggGGkYbhggGGEYIBhsGG8YdBggGG8YZhggGHcYYRh5GHMYIBhhGCAYcxhtGGEYbBhsGCAYcBhhGHIYdBggGG8YZhggGHQYaBhlGCAYcxh0GG8Ychh5GCAYbxhmGCAYbRh5GCAYdBhpGG0YZRggGG8YbhggGHQYaBhlGCAYaRhuGHQYZRhyGG4YZRh0GC4YIBhCGGUYYxhhGHUYcxhlGCAYdxhoGGkYbBhlGCAYSRggGHcYYRhzGG4YJxh0GCAYaBh1GGcYZRggGGkYbhh0GG8YIBhpGG4YZBhlGHAYZRhuGGQYZRhuGHQYIBhpGG4YdBhlGHIYbhhlGHQYIBhmGG8Ychh1GG0YcxgsGCAYdBhoGGUYIBhiGHIYbxhhGGQYZRhyGCAYaRhuGGQYZRhwGGUYbhhkGGUYbhh0GCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGCAYbxhmGCAYbRh5GCAYdBhlGGUYbhhzGCAYYRhuGGQYIBhlGGEYchhsGHkYIBhhGGQYdRhsGHQYaBhvGG8YZBggGHMYaBhhGHAYZRhkGCAYbRh5GCAYdxhvGHIYbBhkGHYYaRhlGHcYLBggGGEYbhhkGCAYSRggGHcYYRhzGCAYYRhuGCAYYRh2GGkYZBggGHIYZRhhGGQYZRhyGCAYYRhuGGQYIBhzGG8YbRhlGHQYaRhtGGUYIBhwGGEYchh0GGkYYxhpGHAYYRhuGHQYIBh0GGgYZRhyGGUYLhggGEkYIBhhGG0YIBhhGG4YIBhhGHQYaBhlGGkYcxh0GCAYaRhuGCAYbBhhGHIYZxhlGCAYcBhhGHIYdBggGGIYZRhjGGEYdRhzGGUYIBhvGGYYIBhhGCAYYhhsGG8YZxggGGMYYRhsGGwYZRhkGCAYWxhDGG8YbRhtGG8YbhggGFMYZRhuGHMYZRggGEEYdBhoGGUYaRhzGG0YXRgoGGgYdBh0GHAYOhgvGC8YYxhvGG0YbRhvGG4YcxhlGG4YcxhlGGEYdBhoGGUYaRhzGG0YLhhjGG8YbRgpGCAYKBh3GGgYaRhjGGgYIBhJGCAYcxh0GGEYchh0GGUYZBggGHIYZRhhGGQYaRhuGGcYIBhpGG4YIBhwGGEYchh0GCAYYhhlGGMYYRh1GHMYZRggGHQYaBhlGCAYYRh1GHQYaBhvGHIYLBggGEwYdRhrGGUYIBhNGHUYZRhoGGwYaBhhGHUYcxhlGHIYLBggGHcYYRhzGCAYYxhyGGkYdBhpGGMYaRhzGGkYbhhnGCAYYhhvGHQYaBggGFIYaRhjGGgYYRhyGGQYIBhEGGEYdxhrGGkYbhhzGCAYYRhuGGQYIBhzGG8YbRhlGCAYQxhoGHIYaRhzGHQYaRhhGG4YIBhhGHAYbxhsGG8YZxhlGHQYaRhjGHMYIBhJGCAYdxhhGHMYIBhmGGEYbRhpGGwYaRhhGHIYIBh3GGkYdBhoGCkYLhggGEwYdRhrGGUYJxhzGCAYYhhsGG8YZxggGHcYYRhzGCAYcBhhGHIYdBggGG8YZhggGGMYbBh1GHMYdBhlGHIYIBhvGGYYIBhiGGwYbxhnGHMYIBhvGHUYdBggGG8YZhggGHcYaBhpGGMYaBggGGcYchhlGHcYIBh0GGgYZRggGFsYchhhGHQYaRhvGG4YYRhsGGkYcxh0GHMYXRgoGGgYdBh0GHAYcxg6GC8YLxh3GHcYdxguGGwYZRhzGHMYdxhyGG8YbhhnGC4YYxhvGG0YLxgpGCwYIBhvGG4YZRggGG8YZhgsGCAYZhhvGHIYIBhiGGUYdBh0GGUYchggGG8YchggGGYYbxhyGCAYdxhvGHIYcxhlGCwYIBh0GGgYZRggGG0YbxhzGHQYIBhpGG4YZhhsGHUYZRhuGHQYaRhhGGwYIBhpGG4YdBhlGGwYbBhlGGMYdBh1GGEYbBggGG0Ybxh2GGUYbRhlGG4YdBhzGCAYbxhmGCAYdBhoGGUYIBgyGDEYcxh0GCAYYxhlGG4YdBh1GHIYeRgsGCAYdxhoGG8YIBhhGHIYZRgsGCAYdhhpGGEYIBhwGGUYbxhwGGwYZRggGGwYaRhrGGUYIBhbGFMYYxhvGHQYdBggGF0YKBhoGHQYdBhwGHMYOhgvGC8YcxhsGGEYdBhlGHMYdBhhGHIYYxhvGGQYZRh4GC4YYxhvGG0YLxgpGCAYWxhBGGwYZRh4GGEYbhhkGGUYchhdGCgYaBh0GHQYcBhzGDoYLxgvGHcYdxh3GC4YYRhzGHQYchhhGGwYYxhvGGQYZRh4GHQYZRhuGC4YYxhvGG0YLxgpGCwYIBhiGG8YdBhoGCAYZBhvGHcYbhhzGHQYchhlGGEYbRggGGEYbhhkGCAYdRhwGHMYdBhyGGUYYRhtGCAYbxhmGCAYdBhoGGUYIBh0GGUYYxhoGCAYYhhpGGwYbBhpGG8YbhhhGGkYchhlGCAYaRhkGGUYbxhsGG8YZxh5GC4YIBhJGCAYYRhsGHMYbxggGHIYZRhhGGQYIBhiGGwYbxhnGHMYIBhsGGkYaxhlGCAYWxhiGG8YaRhuGGcYYhhvGGkYbhhnGC4YbhhlGHQYXRgoGGgYdBh0GHAYcxg6GC8YLxhiGG8YaRhuGGcYYhhvGGkYbhhnGC4YbhhlGHQYLxgpGCwYIBh3GGEYcxggGGEYIBhiGGkYZxggGGYYYRhuGCAYbxhmGCAYQxhvGHIYeRggGEQYbxhjGHQYbxhyGG8YdxguGCAYSRggGGYYaRhnGHUYchhlGGQYIBhvGHUYdBggGEkYIBhhGG0YIBh0GHIYYRhuGHMYIBhpGG4YIBhwGGEYchh0GCAYYhhlGGMYYRh1GHMYZRggGG8YZhggGFsYVBhoGGkYbhhnGCAYbxhmGCAYVBhoGGkYbhhnGHMYXRgoGGgYdBh0GHAYcxg6GC8YLxh0GGgYaRhuGGcYbxhmGHQYaBhpGG4YZxhzGC4YdxhvGHIYZBhwGHIYZRhzGHMYLhhjGG8YbRgvGDIYMBgxGDcYLxgwGDUYLxgwGDUYLxh0GGgYZRgtGGMYbBh1GHMYdBhlGHIYLRhzGHQYchh1GGMYdBh1GHIYZRgtGG8YZhgtGGcYZRhuGGQYZRhyGHMYcBhhGGMYZRgvGCkYLBggGGEYIBhiGGwYbxhnGCAYYhh5GCAYTxh6GHkYIBhGGHIYYRhuGHQYehgsGCAYYRggGHQYchhhGG4YcxhtGGEYcxhjGCAYcBhlGHIYcxhvGG4YIBhpGG4YIBh0GGgYZRggGGIYchhvGGEYZBhlGHIYIBhyGGEYdBhpGG8YbhhhGGwYaRhzGHQYIBhhGG4YZBggGEUYZhhmGGUYYxh0GGkYdhhlGCAYQRhsGHQYchh1GGkYcxh0GCAYYhhsGG8YZxhvGHMYcBhoGGUYchhlGC4YIBhPGG4YZRggGHQYaBhpGG4YZxggGHQYaBhlGHMYZRggGGEYbBhsGCAYaBhhGHYYZRggGGkYbhggGGMYbxhtGG0YbxhuGCAYaRhzGCAYbBhlGG4YZxh0GGgYLhggGFAYYRhyGHQYIBhvGGYYIBh0GGgYZRggGHIYZRhhGHMYbxhuGCAYSRggGG8YbhhsGHkYIBhyGGUYYRhsGGwYeRggGGcYbxh0GCAYbxhuGHQYbxggGFQYdxhpGHQYdBhlGHIYIBhpGG4YIBgyGDAYMhgwGCAYbxhyGCAYcxhvGCAYdxhhGHMYIBhiGGUYYxhhGHUYcxhlGCAYdBhoGGUYIBhjGG8YbhhjGGUYcBh0GCAYbxhmGCAYbRhpGGMYchhvGGIYbBhvGGcYZxhpGG4YZxgsGCAYbxhmGCAYaBhhGHYYaRhuGGcYIBh0GG8YIBhmGGkYdBggGHkYbxh1GHIYIBh0GGgYbxh1GGcYaBh0GHMYIBhpGG4YdBhvGCAYcxh1GGMYaBggGGEYIBhzGG0YYRhsGGwYIBhwGGEYYxhrGGEYZxhlGCwYIBhiGGEYZhhmGGwYZRhkGCAYbRhlGCAYZhhvGHIYIBhhGGcYZRhzGC4YIBhBGG0YdRhzGGkYbhhnGGwYeRggGEkYIBhuGG8YdxggGHQYaBhpGG4YaxggGHQYaBhhGHQYIBhiGGUYaRhuGGcYIBhvGG4YIBhUGHcYaRh0GHQYZRhyGCAYYRhuGGQYIBhuGG8YdxggGEIYbBh1GGUYcxhrGHkYIBhtGGEYZBhlGCAYbRhlGCAYYRggGGIYZRh0GHQYZRhyGCAYdxhyGGkYdBhlGHIYLhggGFsYUhhlGHMYdBhyGGkYYxh0GGkYbxhuGHMYIBhiGHIYZRhlGGQYIBhjGHIYZRhhGHQYaRh2GGkYdBh5GF0YKBhoGHQYdBhwGHMYOhgvGC8YYRhyGHQYaRhjGGwYZRhzGC4Ycxh0GGEYchhjGGkYdBh5GGcYYRhtGGUYcxguGGMYbxhtGC8YYRhyGHQYaRhjGGwYZRhzGC8YchhlGHMYdBhyGGkYYxh0GGkYbxhuGHMYLRhiGHIYZRhlGGQYLRhjGHIYZRhhGHQYaRh2GGkYdBh5GC8YKRgsGCAYYRhmGHQYZRhyGCAYYRhsGGwYLgoKGD4YIBghGFsYeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBguGHAYbhhnGF0YKBgvGHcYZRhhGHYYZRhyGC8YaRhtGGEYZxhlGC8YeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBgpChhoGHQYdBhwGHMYOhgvGC8YeBhrGGMYZBguGGMYbxhtGC8YMxg0GDUYIBgqGDIYMBgwGDAYcxggGGkYbhh0GGUYchhuGGUYdBggGGMYdRhsGHQYdRhyGGUYIBh3GGEYcxggGHcYZRhpGHIYZBgqCgoKChhCGHUYdBggGHQYaBhyGG8YdRhnGGgYIBhhGGwYbBggGG8YZhggGHQYaBhpGHMYIBhJGCAYdxhhGHMYIBhuGGUYdhhlGHIYIBhyGGUYYRhsGGwYeRggGHMYYRh0GGkYcxhmGGkYZRhkGCAYdxhpGHQYaBggGHQYaBhlGCAYbxhwGHQYaRhvGG4YcxggGHQYaBhhGHQYIBh3GGUYchhlGCAYbxh1GHQYIBh0GGgYZRhyGGUYIBhmGG8YchggGGwYbxhuGGcYLRhmGG8YchhtGCAYdxhyGGkYdBhpGG4YZxguGCAYVxhvGHIYZBhwGHIYZRhzGHMYLBggGGUYdhhlGG4YIBh0GGgYZRhpGHIYIBhoGG8Ycxh0GGUYZBggGHYYZRhyGHMYaRhvGG4YLBggGHIYZRhxGHUYaRhyGGUYZBggGGEYIBhsGG8YdBggGG8YZhggGHMYZRh0GHUYcBggGHQYbxggGHIYZRhhGGwYbBh5GCAYYhhlGCAYZhh1GG4YYxh0GGkYbxhuGGEYbBgsGCAYVBh1GG0YYhhsGHIYJxhzGCAYcxh5GHMYdBhlGG0YIBhmGG8YchggGGMYbxhtGG0YZRhuGHQYLxhyGGUYcBhsGGkYZRhzGCAYdxhhGHMYIBhhGG4YZBggGHIYZRhtGGEYaRhuGHMYIBhpGG4YcxhhGG4YZRgsGCAYaBhvGHMYdBhpGG4YZxggGG0YeRggGG8YdxhuGCAYcxhlGGUYbRhlGGQYIBhsGGkYaxhlGCAYdBhvGG8YIBhtGHUYYxhoGCAYbRhvGG4YZRh5GCAYdBhvGCAYYhh1GHIYbhggGG8YbhggGHMYbxhtGGUYdBhoGGkYbhhnGCAYbhhvGGIYbxhkGHkYIBhtGGkYZxhoGHQYIBhlGHYYZRhuGCAYchhlGGEYZBggGGEYdBggGHQYaBhlGCAYdBhpGG0YZRgsGCAYYRhuGGQYIBhoGG8YbhhlGHMYdBhsGHkYIBhJGCAYZhhlGGwYdBggGGwYaRhrGGUYIBhJGCAYaxhpGG4YZBhhGCAYbRhpGHMYcxhlGGQYIBh0GGgYZRggGGIYbxhhGHQYIBhvGG4YIBhkGGkYcxhjGG8YdhhlGHIYYRhiGGkYbBhpGHQYeRgsGCAYYRhzGCAYdBhoGGUYIBhpGG4YdBhlGHIYbhhlGHQYIBhnGHIYZRh3GCAYbBhhGHIYZxhlGHIYIBhhGG4YZBggGG0YbxhyGGUYIBhjGGUYbhh0GHIYYRhsGGkYcxhlGGQYLBggGHcYaRh0GGgYIBhwGGwYYRh0GGYYbxhyGG0YcxggGGwYaRhrGGUYIBhTGHUYYhhzGHQYYRhjGGsYIBhlGGEYdBhpGG4YZxggGHcYaBhhGHQYIBh3GGEYcxggGGwYZRhmGHQYIBhvGGYYIBh0GGgYZRggGGIYbBhvGGcYbxhzGHAYaBhlGHIYZRguGCAYQhh1GHQYIBhhGHQYIBh0GGgYZRggGHMYYRhtGGUYIBh0GGkYbRhlGCwYIBhpGHQYcxggGHMYdRhjGGMYZRhzGHMYIBhwGHIYbxh2GGUYcxggGHQYaBhhGHQYIBh0GGgYZRhyGGUYIBhpGHMYIBh2GGUYchh5GCAYbRh1GGMYaBggGGEYIBhkGGUYcxhpGHIYZRggGGYYbxhyGCAYbBhvGG4YZxgtGGYYbxhyGG0YIBh3GHIYaRh0GGkYbhhnGCwYIBhlGG4Ybxh1GGcYaBggGHQYaBhhGHQYIBhwGGUYbxhwGGwYZRggGHcYaRhsGGwYIBhwGGEYeRggGGYYbxhyGCAYaRh0GCwYIBhhGG4YZBggGHQYaBhhGHQYIBhpGG4YdhhlGHMYdBhvGHIYcxggGHcYaRhsGGwYIBhiGGEYYxhrGCAYaRh0GC4YIBhUGGgYZRhyGGUYIBhhGHIYZRggGHQYaBhvGHUYZxhoGHQYcxggGGEYbhhkGCAYZhhvGHIYbRhzGCAYbxhmGCAYdxhyGGkYdBhpGG4YZxggGHQYaBhhGHQYIBh5GG8YdRggGHMYaRhtGHAYbBh5GCAYYxhhGG4YbhhvGHQYIBhmGGkYdBggGGkYbhh0GG8YIBhhGCAYcBhvGHMYdBggGG8YchggGGUYdhhlGG4YIBhhGCAYdBhoGHIYZRhhGGQYIBhvGGYYIBhwGG8Ycxh0GHMYLBggGGEYbhhkGCAYdxhoGGkYYxhoGCAYZBhvGG4YJxh0GCAYbRhhGGsYZRggGHMYZRhuGHMYZRggGG8YbhggGGEYIBh0GG8YcBhpGGMYLRhiGGEYcxhlGGQYIBhmGG8Ychh1GG0YLBggGG8YchggGGEYIBhwGGwYYRhjGGUYIBhsGGkYaxhlGCAYQRhyGGMYaBhpGHYYZRggGG8YZhggGG8YdRhyGCAYTxh3GG4YLhggGFAYbBh1GHMYLBggGEkYJxhtGCAYbBhvGGEYdBhoGGUYIBh0GG8YIBhlGG4YYRhiGGwYZRggGGEYIBhjGGUYbhh0GHIYYRhsGGkYcxhlGGQYIBhwGGwYYRh0GGYYbxhyGG0YIBhsGGkYaxhlGCAYUxh1GGIYcxh0GGEYYxhrGCAYdxhoGGUYchhlGCAYdBhoGGUYIBhvGHcYbhhlGHIYcxggGGEYchhlGCAYdRhuGGYYbxhyGHQYdRhuGGEYdBhlGGwYeRggGGYYchhpGGUYbhhkGGwYeRggGHQYbxggGGYYYRhzGGMYaRhzGHQYcxguCgoYVBhoGGEYdBgnGHMYIBh3GGgYZRhyGGUYIBh0GGgYZRggGGAYYRh0GDoYLxgvGGAYIBhwGHIYbxh0GG8YYxhvGGwYIBhhGG4YZBggGFcYZRhhGHYYZRhyGCAYYxhvGG0YZRhzGCAYaRhuGC4KChgjGCMYIxggGFQYaBhlGCAYcBhpGHQYYxhoCgoYVxhlGGEYdhhlGHIYIBhpGHMYIBhkGGUYcxhpGGcYbhhlGGQYIBh0GG8YIBhiGGUYIBhhGCAYaBhpGGcYaBhsGHkYIBhmGGwYZRh4GGkYYhhsGGUYIBhwGGwYYRh0GGYYbxhyGG0YIBhmGG8YchggGG0YZRhkGGkYdRhtGCAYYRhuGGQYIBhsGG8YbhhnGC0YZhhvGHIYbRggGHcYchhpGHQYaRhuGGcYIBhvGG4YIBhhGHQYcBhyGG8YdBhvGC4YIBhJGCAYdxhhGHMYIBhpGG4YcxhwGGkYchhlGGQYIBhiGHkYIBhoGG8YdxggGHcYZRhhGHYYZRhyGCAYYhhpGHIYZBhzGCAYYhh1GGkYbBhkGCAYdBhoGGUYaRhyGCAYbxh3GG4YIBhoGG8YbRhlGHMYLBggGGEYbhhkGCAYYhh5GCAYdBhoGGUYIBhuGG8YdBhlGGIYbxhvGGsYcxgsGCAYcBhoGHkYcxhpGGMYYRhsGCAYYRhuGGQYIBh2GGkYchh0GHUYYRhsGCwYIBh0GGgYYRh0GCAYSRggGGMYchhlGGEYdBhlGCAYaRhuGCAYdBhoGGUYIBhjGG8YdRhyGHMYZRggGG8YZhggGG0YeRggGHcYbxhyGGsYLBggGHQYbxggGGkYZBhlGGEYdBhlGCwYIBh0GG8YIBhkGG8YYxh1GG0YZRhuGHQYLBggGGEYbhhkGCAYdBhvGCAYaRhuGGYYbxhyGG0YLhggGFQYaBhlGCAYaRhuGGkYdBhpGGEYbBggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYIBhpGHMYIBhlGHMYcxhlGG4YdBhpGGEYbBhsGHkYIBhhGCAYcxh0GGEYdBhpGGMYIBhzGGkYdBhlGCAYZxhlGG4YZRhyGGEYdBhvGHIYLBggGGEYYhhsGGUYIBh0GG8YIBh0GHUYchhuGCAYYRggGE0YYRhyGGsYZBhvGHcYbhggGHQYZRh4GHQYIBhmGGkYbBhlGCAYbxhyGCAYYRggGGYYbxhsGGQYZRhyGCAYbxhmGCAYTRhhGHIYaxhkGG8YdxhuGCAYZhhpGGwYZRhzGCwYIBhzGHUYYxhoGCAYYRhzGCAYYRhuGCAYTxhiGHMYaRhkGGkYYRhuGCAYdhhhGHUYbBh0GCAYbxhyGCAYZxhpGHQYIBhyGGUYcBhvGHMYaRh0GG8Ychh5GCAYZBhvGGMYdRhtGGUYbhh0GGEYdBhpGG8YbhgsGCAYaRhuGHQYbxggGGEYIBhzGHQYYRh0GGkYYxggGCIYbhhvGHQYZRhiGG8YbxhrGCIYIBhzGGkYdBhlGC4YIBhUGGgYZRggGGYYaRhsGGUYIBhpGHMYIBh1GHAYbBhvGGEYZBhlGGQYIBh0GG8YIBh5GG8YdRhyGCAYUBhEGFMYLBggGHcYaBhlGHIYZRggGGkYdBggGGMYYRhuGCAYYhhlGCAYYRhjGGMYZRhzGHMYZRhkGCwYIBhlGGkYdBhoGGUYchggGGQYaRhyGGUYYxh0GGwYeRgsGCAYdhhpGGEYIBhhGCAYbRhpGG4YaRhtGGEYbBggGGEYcBhwGCAYcxhlGHIYdhhlGHIYIBhsGGEYeRhlGHIYIBh0GGgYYRh0GCAYcBhyGG8YdhhpGGQYZRhzGCAYYRggGGYYchhpGGUYbhhkGGwYaRhlGHIYIBh3GGUYYhggGGEYZBhkGHIYZRhzGHMYIBh0GGgYYRhuGCAYYRhuGCAYWBhSGFAYQxggGHIYZRhxGHUYZRhzGHQYIBhvGHIYIBhDGEQYThggGGwYaRhuGGsYLBggGG8YchggGGgYbxhzGHQYZRhkGCAYbxhuGCAYYRggGHAYbBhhGHQYZhhvGHIYbRggGG8YZhggGHkYbxh1GHIYIBhjGGgYbxhpGGMYZRgsGCAYYhhlGCAYdBhoGGEYdBggGHkYbxh1GHIYIBhvGHcYbhggGHMYZRhyGHYYZRhyGCAYbxhyGCAYYRhuGHkYIBhvGHQYaBhlGHIYIBhzGHQYYRh0GGkYYxggGHMYaRh0GGUYIBhoGG8Ycxh0GGkYbhhnGCAYcxhlGHIYdhhpGGMYZRguGCAYVBhoGGUYIBhpGG4YdBhlGHIYbRhlGGQYaRhhGHQYZRggGGcYbxhhGGwYIBhpGHMYIBhhGG4YIBhlGGwYZRhnGGEYbhh0GCAYYRhuGGQYIBhpGG4YdBh1GGkYdBhpGHYYZRggGHcYchhpGHQYaRhuGGcYIBhwGGwYYRh0GGYYbxhyGG0YIBh3GGkYdBhoGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGGUYZBhpGHQYaRhuGGcYIBhhGG4YZBggGHMYdBhyGGEYaRhnGGgYdBhmGG8Ychh3GGEYchhkGCwYIBhpGG0YbRhlGGQYaRhhGHQYZRggGHAYdRhiGGwYaRhzGGgYaRhuGGcYIBh2GGkYYRggGGEYIBh3GGUYYhgtGGEYcBhwGC4YIBhUGGgYZRggGHUYbBh0GGkYbRhhGHQYZRggGGcYbxhhGGwYIBhpGHMYIBh0GG8YIBhiGHUYaRhsGGQYIBhhGCAYcBhsGGEYdBhmGG8YchhtGCAYcxh1GGkYdBhhGGIYbBhlGCAYZhhvGHIYIBhwGHIYbxhmGGUYcxhzGGkYbxhuGGEYbBggGHcYchhpGHQYZRhyGHMYIBhhGG4YZBggGGoYbxh1GHIYbhhhGGwYaRhzGHQYcxgsGCAYYRhuGCAYbxhwGGUYbhggGGEYbBh0GGUYchhuGGEYdBhpGHYYZRggGHQYbxggGHAYbBhhGHQYZhhvGHIYbRhzGCAYbBhpGGsYZRggGFMYdRhiGHMYdBhhGGMYaxgsGCAYdxhpGHQYaBggGHcYYRh5GHMYIBhmGG8YchggGHIYZRhhGGQYZRhyGHMYIBh0GG8YIBhzGHUYcBhwGG8Ychh0GCAYdxhyGGkYdBhlGHIYcxgsGCAYYRhsGGwYIBhvGG4YIBh0GGgYZRggGGAYYRh0GDoYLxgvGGAYIBhwGHIYbxh0GG8YYxhvGGwYLgoKGCEYWxhuGG8YdBhlGGIYbxhvGGsYXxhlGG4YdBhyGHkYXxhwGHIYZRh2GGkYZRh3GC4YcBhuGGcYXRgoGC8YdxhlGGEYdhhlGHIYLxhpGG0YYRhnGGUYLxhuGG8YdBhlGGIYbxhvGGsYXxhlGG4YdBhyGHkYXxhwGHIYZRh2GGkYZRh3GCkKChgjGCMYIBhXGGUYYRh2GGUYcgoKGFcYZRhhGHYYZRhyGCAYdxhvGHIYaxhzGCAYbxhuGCAYYRggGGMYbxhuGGMYZRhwGHQYIBhvGGYYIBhuGG8YdBhlGGIYbxhvGGsYcxggGHcYaRh0GGgYIBhlGG4YdBhyGGkYZRhzGCwYIBh3GGgYaRhjGGgYIBhjGGEYbhggGGIYZRggGGcYchhvGHUYcBhlGGQYIBhpGG4YdBhvGCAYcBhhGGcYZRhzGCAYbxhyGCAYYxhoGGEYcBh0GGUYchhzGC4YIBhUGGgYZRh5GCAYYxhhGG4YIBhwGG8YdBhlGG4YdBhpGGEYbBhsGHkYIBhoGGEYdhhlGCAYbRh1GGwYdBhpGHAYbBhlGCAYYRh0GHQYchhpGGIYdRh0GGUYZBggGGEYdRh0GGgYbxhyGHMYLhggGFkYbxh1GCAYYxhhGG4YIBh0GGUYYRhyGCAYbxh1GHQYIBhhGCAYbRhlGHQYYRhwGGgYbxhyGGkYYxhhGGwYIBhwGGEYZxhlGCAYbxhyGCAYZRhuGHQYchh5GCAYbxhyGCAYYxhoGGEYcBh0GGUYchggGGEYbhhkGCAYcxh0GGkYYxhrGCAYaRh0GCAYaRhuGCAYYRhuGG8YdBhoGGUYchggGG4Ybxh0GGUYYhhvGG8YaxguGCAYVBhlGGMYaBhuGGkYYxhhGGwYbBh5GCAYeRhvGHUYIBhjGGEYbhggGGQYbxggGHQYaBhpGHMYIBh3GGkYdBhoGCAYZRhuGHQYchhpGGUYcxggGHkYbxh1GCAYZBhvGG4YJxh0GCAYYxhvGG4YdBhyGG8YbBggGCgYaRguGGUYLhggGGUYbhh0GHIYaRhlGHMYIBhpGG4YIBhuGG8YdBhlGGIYbxhvGGsYcxggGHcYaBhlGHIYZRggGHkYbxh1GCcYchhlGCAYbhhvGHQYIBhsGGkYcxh0GGUYZBggGGEYcxggGGEYbhggGGEYdRh0GGgYbxhyGCkYLBggGGEYbBh0GGgYbxh1GGcYaBggGHQYaBhpGHMYIBhpGHMYbhgnGHQYIBhhGCAYcxh1GHAYcBhvGHIYdBhlGGQYIBhtGG8YZBhlGC4YIBhZGG8YdRggGG8YdxhuGCAYdxhoGGEYdBggGHkYbxh1GCAYdxhyGGkYdBhlGC4YIBhBGG4YZBggGG8YbhhjGGUYIBhjGG8YbBhsGGEYYhhvGHIYYRh0GGkYdhhlGCAYZRhkGGkYdBhpGG4YZxggGGkYcxggGGkYbhgsGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGHcYbxhyGGsYIBh3GGkYbBhsGCAYYhhlGCAYchhlGHMYaRhsGGkYZRhuGHQYIBhhGGcYYRhpGG4Ycxh0GCAYZBhlGGwYZRh0GGkYbxhuGCAYYhh5GCAYbxhuGGUYIBhhGHUYdBhoGG8YchgsGCAYdBhvGCAYcxhvGG0YZRggGGQYZRhnGHIYZRhlGC4YIBhUGGgYZRh5GCAYYxhhGG4YIBhkGGUYbBhlGHQYZRggGHQYaBhlGGkYchggGG4Ybxh0GGUYYhhvGG8YaxggGG8YchggGGUYdhhlGG4YIBh0GGgYZRhpGHIYIBhhGGMYYxhvGHUYbhh0GCwYIBhiGHUYdBggGHcYaBhhGHQYIBh5GG8YdRggGHcYchhpGHQYZRggGHcYaRhsGGwYIBhiGGUYIBhzGGEYZhhlGCwYIBhhGG4YZBggGGEYbhh5GHQYaBhpGG4YZxggGHkYbxh1GCcYdhhlGCAYdBhvGHUYYxhoGGUYZBgsGCAYZRhkGGkYdBhlGGQYLBggGHcYaRhsGGwYIBhiGGUYIBhyGGUYYxhvGHYYZRhyGGEYYhhsGGUYLgoKGEUYbhh0GHIYaRhlGHMYIBhhGHIYZRggGE0YYRhyGGsYZBhvGHcYbhggGHQYZRh4GHQYLhggGFMYcBhlGGMYaRhmGGkYYxhhGGwYbBh5GCwYIBh0GGgYZRh5GCcYchhlGCAYYRhuGCAYZRh4GHQYZRhuGHMYaRhvGG4YIBhvGG4YIBh0GGgYZRggGE8YYhhzGGkYZBhpGGEYbhggGGYYbBhhGHYYbxh1GHIYIBhvGGYYIBhNGGEYchhrGGQYbxh3GG4YLBggGHMYbxggGHQYaBhlGHkYIBhzGHUYcBhwGG8Ychh0GCAYYRhkGGQYaRh0GGkYbxhuGGEYbBggGGUYbRhiGGUYZBggGHQYeRhwGGUYcxgsGCAYaRhuGGMYbBh1GGQYaRhuGGcYIBhhGHQYcBhyGG8YdBhvGCAYchhlGGMYbxhyGGQYIBhlGG0YYhhlGGQYcxggGGEYbhhkGCAYbxh0GGgYZRhyGCAYbRhhGHIYaxhkGG8YdxhuGCAYZBhvGGMYdRhtGGUYbhh0GHMYLBggGGEYcxggGHcYZRhsGGwYIBhhGHMYIBhhGCAYdBh3GG8YLRhjGG8YbBh1GG0YbhggGG0YbxhkGGUYIBhhGG4YZBggGHIYZRhzGGkYehhhGGIYbBhlGCAYaRhtGGEYZxhlGHMYLhggGFQYaBhlGHkYIBh3GGkYbBhsGCAYcxh1GHAYcBhvGHIYdBggGEIYbBh1GGUYcxhrGHkYLRhiGGEYcxhlGGQYIBhjGG8YbRhtGGUYbhh0GHMYLBggGGIYdRh0GCAYYRggGFcYZRhhGHYYZRhyGC0YbhhhGHQYaRh2GGUYIBhzGHkYcxh0GGUYbRggGG0YYRh5GCAYYxhvGG0YZRggGGkYbhh0GG8YIBh0GGgYZRggGG0YaRh4GCAYZBhvGHcYbhggGHQYaBhlGCAYbBhpGG4YZRguGCAYQxh1GHIYchhlGG4YdBhsGHkYIBh5GG8YdRggGGgYYRh2GGUYIBh0GG8YIBh3GHIYaRh0GGUYIBhuGG8YdBhlGGIYbxhvGGsYIBhlGG4YdBhyGGkYZRhzGCAYaRhuGCAYYRhuGCAYZRh4GHQYZRhyGG4YYRhsGCAYZRhkGGkYdBhvGHIYIBhhGG4YZBggGHUYcBhsGG8YYRhkGCAYdBhoGGUYbRguGCAYVRhsGHQYaRhtGGEYdBhlGGwYeRggGHQYaBhlGHIYZRggGHcYaRhsGGwYIBhiGGUYIBhhGCAYdxhlGGIYLRhiGGEYcxhlGGQYIBhlGGQYaRh0GG8YchggGHcYaRh0GGgYIBhsGGkYdhhlGCAYYxhvGGwYbBhhGGIYbxhyGGEYdBhpGHYYZRggGGUYZBhpGHQYaRhuGGcYIBhmGG8YchggGHQYaBhvGHMYZRggGHcYaBhvGCAYcBhyGGUYZhhlGHIYIBh0GGgYZRggGFcYWRhTGEkYVxhZGEcYIBhlGHgYcBhlGHIYaRhlGG4YYxhlGCwYIBhpGG4YdBhlGG4YZBggGHQYbxggGGMYbxhsGGwYYRhiGG8YchhhGHQYZRgsGCAYbxhyGCAYdxhhGG4YdBggGGEYbhggGGEYbBhsGC0YaRhuGC0YbxhuGGUYIBhvGHAYdBhpGG8YbhguCgoYIxgjGCMYIBhTGG8YIBh3GGgYYRh0GCAYYRhiGG8YdRh0GC4YLhguCgoYVxhoGGUYbhggGEkYIBhzGHQYYRhyGHQYZRhkGCAYdxhvGHIYaxhpGG4YZxggGG8YbhggGFcYZRhhGHYYZRhyGCAYYhhhGGMYaxggGGkYbhggGHQYaBhlGCAYcxhwGHIYaRhuGGcYLBggGHQYaBhlGCAYbxhuGGwYeRggGHIYZRhhGGwYIBhnGGEYbRhlGHMYIBhpGG4YIBh0GG8YdxhuGCAYZhhvGHIYIBhsGG8YbhhnGC0YZhhvGHIYbRggGGIYbBhvGGcYZxhpGG4YZxggGGIYYRhzGGUYZBggGG8YbhggGGEYdBhwGHIYbxh0GG8YLBggGGEYcxhpGGQYZRggGGYYchhvGG0YIBhyGG8YbBhsGGkYbhhnGCAYeRhvGHUYchggGG8YdxhuGCwYIBhbGHAYaRhzGHMYLhhiGGUYYRh1GHQYeRhdGCgYaBh0GHQYcBhzGDoYLxgvGHAYaRhzGHMYLhhiGGUYYRh1GHQYeRgpGCAYcxh0GHkYbBhlGCwYIBh3GGUYchhlGCAYWxh3GGgYdBh3GG4YZBguGGMYbxhtGF0YKBhoGHQYdBhwGHMYOhgvGC8YdxhoGHQYdxhuGGQYLhhjGG8YbRgvGCkYIBhhGG4YZBggGFsYbBhlGGEYZhhsGGUYdBguGHAYdRhiGF0YKBhoGHQYdBhwGHMYOhgvGC8YbBhlGGEYZhhsGGUYdBguGHAYdRhiGC8YaBhvGG0YZRgpGC4YIBhMGGUYYRhmGGwYZRh0GCcYcxggGGcYbxhvGGQYLBggGGEYbhhkGCAYaRh0GCcYcxggGGcYbxh0GHQYZRhuGCAYYRggGGwYbxh0GCAYYhhlGHQYdBhlGHIYIBhpGG4YIBh0GGgYZRggGGwYYRhzGHQYIBh5GGUYYRhyGCwYIBhiGHUYdBggGGkYdBggGGQYbxhlGHMYbhgnGHQYIBhvGGYYZhhlGHIYIBhxGHUYaRh0GGUYIBh3GGgYYRh0GCAYSRgnGG0YIBhsGG8YbxhrGGkYbhhnGCAYZhhvGHIYIBhlGGkYdBhoGGUYchguGCAYRhhvGHIYIBhvGG4YZRgsGCAYSRggGGEYbRggGGEYIBhNGGEYchhrGGQYbxh3GG4YIBhmGGEYbhhnGGkYchhsGCwYIBhmGG8YchggGGIYZRh0GHQYZRhyGCAYbxhyGCAYZhhvGHIYIBh3GG8YchhzGGUYLBggGEkYIBhsGG8YdhhlGCAYYhhlGGkYbhhnGCAYYRhiGGwYZRggGHQYbxggGGMYbxhtGHAYbxhzGGUYIBhzGHQYdRhmGGYYIBhpGG4YIBhhGCAYchhhGG4YZBhvGG0YIBh0GGUYeBh0GCAYZRhkGGkYdBhvGHIYLBggGHAYYRhzGHQYZRggGGkYdBggGHMYbxhtGGUYdxhoGGUYchhlGCwYIBhhGG4YZBggGGcYZRh0GCAYYRggGHIYZRhhGHMYbxhuGGEYYhhsGHkYIBhmGG8YchhtGGEYdBh0GGUYZBgsGCAYcBhyGGUYcxhlGG4YdBhhGGIYbBhlGCwYIBhlGHYYZRhuGCAYcBhyGGUYdBh0GHkYIBhkGG8YYxh1GG0YZRhuGHQYIBhvGHUYdBggGG8YZhggGGkYdBguGCAYQRhuGGQYIBh3GGgYaRhsGGUYIBhMGGUYYRhmGGwYZRh0GCAYYRhsGGwYbxh3GHMYIBh5GG8YdRggGHQYbxggGHUYcxhlGCAYTRhhGHIYaxhkGG8YdxhuGCAYZhhvGHIYIBhmGG8YchhtGGEYdBh0GGkYbhhnGCwYIBhpGHQYIBhkGG8YZRhzGG4YJxh0GCAYcxhwGGUYYRhrGCAYaRh0GCAYbhhhGHQYaRh2GGUYbBh5GC4YIBhXGGgYaRh0GGUYdxhpGG4YZBguGC4YLhggGFQYaBhlGHIYZRggGGEYchhlGCAYWxhtGG8YchhlGCAYYRhsGHQYZRhyGG4YYRh0GGkYdhhlGHMYIBhuGG8YdxhdGCgYaBh0GHQYcBhzGDoYLxgvGGMYbxhuGG4YZRhjGHQYZRhkGHAYbBhhGGMYZRhzGC4YbBhlGGEYZhhsGGUYdBguGHAYdRhiGC8YMxhtGDQYcRhnGHAYYxg3GGgYMxgyGDIYMxgpGCwYIBh3GGgYaRhjGGgYIBhtGGEYaxhlGHMYIBhzGGUYbhhzGGUYIBhhGHMYIBh0GGgYaRhzGCAYcxhwGGEYYxhlGCAYZBhlGGYYaRhuGGkYdBhlGGwYeRggGGYYZRhlGGwYcxggGGwYaRhrGGUYIBhvGG4YZRggGHQYaBhhGHQYIBhoGGEYcxggGGcYYRhwGHMYIBh0GG8YIBhmGGkYbBhsGC4YIBhBGG4YZBggGHQYaBhlGCAYYBhhGHQYOhgvGC8YYBggGHAYchhvGHQYbxhjGG8YbBgsGCAYdxhoGGkYbBhlGCAYaRh0GCAYdxhhGHMYIBhkGGUYdhhlGGwYbxhwGGUYZBggGGkYbhggGGMYbxhuGGMYZRhyGHQYIBh3GGkYdBhoGCAYYRggGG0YaRhjGHIYbxhiGGwYbxhnGGcYaRhuGGcYIBhhGHAYcBgsGCAYaRhzGCAYYRhjGHQYdRhhGGwYbBh5GCAYcBhyGGUYdBh0GHkYIBhkGGEYbRhuGCAYZxhvGG8YZBggGGYYbxhyGCAYIhhtGGEYYxhyGG8YIhhiGGwYbxhnGGcYaRhuGGcYLBggGHQYbxhvGC4YIBhUGGgYZRggGGkYbhh0GGUYchhvGHAYZRhyGGEYYhhpGGwYaRh0GHkYIBh0GGgYZRggGHAYchhvGHQYbxhjGG8YbBggGGEYbBhsGG8YdxhzGCAYaRhzGCAYaRhuGGMYchhlGGQYaRhiGGwYZRguGCAYVxhlGGEYdhhlGHIYJxhzGCAYYRhwGHAYIBhzGGUYchh2GGUYchggGGMYYRhuGCAYZBhpGHMYcBhsGGEYeRggGFcYaBhpGHQYZRh3GGkYbhhkGCAYcBhvGHMYdBhzGCAYdhhlGHIYeRggGGUYYRhzGGkYbBh5GC4YIBhXGGkYdBhoGCAYcxhvGG0YZRggGGUYZhhmGG8Ychh0GCAYbxhuGCAYbRh5GCAYcBhhGHIYdBgsGCAYaRh0GCAYYxhhGG4YIBhmGGEYaRh0GGgYZhh1GGwYbBh5GCAYchhlGG4YZBhlGHIYIBhMGGUYYRhmGGwYZRh0GCAYcBhvGHMYdBhzGC4YIBhJGHQYIBhkGG8YZRhzGG4YJxh0GCAYYxhhGHIYZRggGHcYaBhhGHQYIBhhGHAYcBggGHkYbxh1GHIYIBhwGHIYbxhmGGkYbBhlGCAYaRhzGCAYbxhuGCwYIBhpGHQYIBh1GHMYZRhzGCAYdBhoGGUYIBhbGHAYYRhyGHQYaRhhGGwYIBh1GG4YZBhlGHIYcxh0GGEYbhhkGGkYbhhnGF0YKBhoGHQYdBhwGHMYOhgvGC8YcxhkGHIYLRhwGG8YZBhjGGEYcxh0GC4YYxhvGG0YLxhlGHAYaRhzGG8YZBhlGHMYLxhwGGEYchh0GGkYYRhsGC0YdRhuGGQYZRhyGHMYdBhhGG4YZBhpGG4YZxgvGCkYIBhbGGMYYRhwGGEYYhhpGGwYaRh0GGkYZRhzGF0YKBhhGHQYOhgvGC8YZBhpGGQYOhhwGGwYYxg6GHkYZhh2GHcYbRhuGGwYehh0GHIYNBhkGHcYaxhiGDcYaBh3GHoYNRg1GHIYMhhnGC8YYRhwGHAYLhhiGHMYaxh5GC4YZhhlGGUYZBguGHAYbxhzGHQYLxgzGG0YNBg0GG8YbxhvGDQYMhh4GGMYMhhqGCkYIBhvGGYYIBh0GGgYZRggGFsYahhhGGMYcRh1GGEYchhkGF0YKBhoGHQYdBhwGHMYOhgvGC8YdBhhGG4YZxhsGGUYZBguGG8YchhnGC8YQBhuGG8YbhhiGGkYbhhhGHIYeRguGGMYbxhtGHAYdRh0GGUYchgvGGoYYRhjGHEYdRhhGHIYZBgvGCkYIBhsGGkYYhhyGGEYchh5GCAYSRggGGMYchhlGGEYdBhlGGQYIBh0GG8YIBhwGHUYbBhsGCAYdRhzGGUYZhh1GGwYIBhkGGEYdBhhGCAYbxh1GHQYIBhvGGYYIBhpGHQYLgoKGCEYWxhsGGkYZxhoGHQYXxhtGG8YZBhlGF8YZRh4GGMYZRhyGHAYdBguGHAYbhhnGF0YKBgvGHcYZRhhGHYYZRhyGC8YaRhtGGEYZxhlGC8YbBhpGGcYaBh0GF8YbRhvGGQYZRhfGGUYeBhjGGUYchhwGHQYKQoKGCMYIxggGFcYaBhlGHIYZRggGGEYchhlGCAYdxhlGCAYbhhvGHcYPwoKGFQYaBhlGCAYYxh1GHIYchhlGG4YdBggGHMYdBhhGHQYZRggGG8YZhggGFcYZRhhGHYYZRhyGCAYaRhzGCAYdBhoGGEYdBggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYLBggGGQYZRhzGGMYchhpGGIYZRhkGCAYaRhuGCAYdBhoGGUYIBhwGGkYdBhjGGgYLhggGFQYaBhlGHIYZRgnGHMYIBhhGCAYYxhvGG0YbRhhGG4YZBgtGGwYaRhuGGUYIBh0GG8YbxhsGCAYdxhoGGkYYxhoGCAYYxhhGG4YIBhlGGkYdBhoGGUYchggGHAYYRhyGHMYZRggGGEYIBhzGGkYbhhnGGwYZRggGE0YYRhyGGsYZBhvGHcYbhggGGYYaRhsGGUYIBhvGHIYIBhhGCAYdxhoGG8YbBhlGCAYZhhvGGwYZBhlGHIYIBhvGGYYIBh0GGgYZRhtGCwYIBhlGGkYdBhoGGUYchggGHIYZRhuGGQYZRhyGGkYbhhnGCAYdBhoGGUYbRggGHQYbxggGEgYVBhNGEwYIBhpGG4YdBhvGCAYYRggGGwYbxhjGGEYbBggGGQYaRhyGGUYYxh0GG8Ychh5GCwYIBhzGHUYaRh0GGEYYhhsGGUYIBhmGG8YchggGHMYdBhhGHQYaRhjGCAYcxhpGHQYZRggGGgYbxhzGHQYaRhuGGcYLBggGG8YchgsGCAYYRhmGHQYZRhyGCAYZBhvGGkYbhhnGCAYcxhvGG0YZRggGHAYchhlGC0YcBhyGG8YYxhlGHMYcxhpGG4YZxgsGCAYdRhwGGwYbxhhGGQYaRhuGGcYIBh0GGgYZRhtGCAYYRhuGGQYIBhhGG4YeRggGGEYcxhzGG8YYxhpGGEYdBhlGGQYIBhtGGUYZBhpGGEYIBh0GG8YIBh5GG8YdRhyGCAYUBhEGFMYLgoKGD4YIBhUGGgYZRggGHMYdBhhGHQYaRhjGCAYcxhpGHQYZRggGHAYYRh0GGgYIBhpGHMYIBhsGGEYchhnGGUYbBh5GCAYaRhuGGQYZRhwGGUYbhhkGGUYbhh0GCAYbxhmGCAYYRh0GHAYchhvGHQYbxguGCAYSRggGHcYchhvGHQYZRggGGkYdBggGGIYbxh0GGgYIBhhGHMYIBhzGG8Ychh0GCAYbxhmGCAYdBhoGGUYIBh1GGwYdBhpGG0YYRh0GGUYIBhmGGEYbBhsGGIYYRhjGGsYLBggGGEYbhhkGCAYYRhsGHMYbxggGGIYZRhjGGEYdRhzGGUYIBhJGCAYdxhhGG4YdBhlGGQYIBhzGG8YbRhlGHQYaBhpGG4YZxggGHQYbxggGHUYcxhlGCAYdBhvGCAYdxhyGGkYdBhlGCAYZBhvGGMYcxggGHQYaBhhGHQYIBhnGG8YIBh1GHAYIBhvGG4YIBhHGGkYdBhIGHUYYhggGFAYYRhnGGUYcxggGG8YchggGHMYaRhtGGkYbBhhGHIYLBggGHQYbxggGHQYdRhyGG4YIBhhGG4YIBhPGGIYcxhpGGQYaRhhGG4YIBh2GGEYdRhsGHQYIBhmGHUYbBhsGCAYbxhmGCAYZBhvGGMYdRhtGGUYbhh0GGEYdBhpGG8YbhggGGkYbhh0GG8YIBhhGCAYdxhlGGIYcxhpGHQYZRggGHcYaRh0GGgYbxh1GHQYIBhoGGEYdhhpGG4YZxggGHQYbxggGHAYYRh5GCAYdBhoGGUYbRggGGEYIBhtGG8Ybhh0GGgYbBh5GCAYaBhvGHMYdBhpGG4YZxggGGYYZRhlGC4YIBhUGGgYZRggGG8YchhpGGcYaRhuGGEYbBggGHYYMBguGDAYLhgxGCAYdhhlGHIYcxhpGG8YbhggGG8YZhggGHQYaBhpGHMYIBhJGCAYdxhyGG8YdBhlGCAYYRggGGMYbxh1GHAYbBhlGCAYbxhmGCAYeRhlGGEYchhzGCAYYRhnGG8YLBggGHQYaBhvGHUYZxhoGCAYdBhoGGUYIBhjGHUYchhyGGUYbhh0GCAYdhhlGHIYcxhpGG8YbhggGGkYcxggGGEYIBhjGG8YbRhwGGwYZRh0GGUYIBhyGGUYdxhyGGkYdBhlGC4YIBhJGCAYZhhvGHIYaxhlGGQYIBh0GGgYZRggGHAYbxhwGHUYbBhhGHIYIBhyGHUYcxh0GCAYbRhhGHIYaxhkGG8YdxhuGCAYcBhyGG8YYxhlGHMYcxhpGG4YZxggGGwYaRhiGHIYYRhyGHkYIBhbGGAYcBh1GGwYbBhkGG8YdxhuGC0YYxhtGGEYchhrGGAYXRgoGGgYdBh0GHAYcxg6GC8YLxhwGHUYbBhsGGQYbxh3GG4YLRhjGG0YYRhyGGsYLhhnGGkYdBhoGHUYYhguGGkYbxgvGHAYdRhsGGwYZBhvGHcYbhgtGGMYbRhhGHIYaxgvGCkYIBhiGGUYYxhhGHUYcxhlGCAYaRh0GCAYaBhhGGQYIBhsGGkYbRhpGHQYZRhkGCAYZRh4GHQYZRhuGHMYaRhiGGkYbBhpGHQYeRggGGEYbBhvGG4YZxggGHQYaBhlGCAYYRh4GGUYcxggGEkYIBh3GGEYbhh0GGUYZBgsGCAYaRguGGUYLhggGGkYbRhwGGwYZRhtGGUYbhh0GGkYbhhnGCAYYxh1GHMYdBhvGG0YIBhzGHkYbhh0GGEYeBggGGUYeBh0GGUYbhhzGGkYbxhuGHMYIBh0GG8YIBhzGHUYcBhwGG8Ychh0GCAYTxhiGHMYaRhkGGkYYRhuGCcYcxggGE0YYRhyGGsYZBhvGHcYbhggGGYYbBhhGHYYbxh1GHIYIBhhGG4YZBggGGEYZBhkGGkYbhhnGCAYcxhvGG0YZRggGGEYZBhkGGkYdBhpGG8YbhhhGGwYIBh1GHMYZRhmGHUYbBggGGYYZRhhGHQYdRhyGGUYcwoKCgoYVBhoGGUYIBhzGGUYYxhvGG4YZBggGGgYYRhsGGYYIBhvGGYYIBh0GGgYaRhzGCAYaRhzGCAYdBhoGGUYIBhtGGkYbhhpGG0YYRhsGCAYYRhwGHAYIBhzGGUYchh2GGUYchguGCAYVBhoGGkYcxggGGkYcxggGHMYdBhyGGkYYxh0GGwYeRggGGEYIBh2GGkYZRh3GGUYchggGGYYbxhyGCAYdBhoGGUYIBh0GGkYbRhlGCAYYhhlGGkYbhhnGCAYYRhuGGQYIBhjGHUYchhyGGUYbhh0GGwYeRggGGgYYRhzGCAYbhhvGCAYYRhjGHQYaRh2GGUYIBhmGGkYchhlGGgYbxhzGGUYIBhvGHIYIBhqGGUYdBhzGHQYchhlGGEYbRggGGYYZRhlGGQYIBhhGG4YZBggGGQYbxhlGHMYIBhuGG8YIBhwGGUYchhzGGkYcxh0GGUYbhh0GCAYaRhuGGQYZRh4GGkYbhhnGCwYIBhvGG4YbBh5GCAYdBhpGG0YZRgtGGwYaRhtGGkYdBhlGGQYIBhjGGEYYxhoGGkYbhhnGCAYbxhmGCAYdxhoGGEYdBggGGkYcxggGHIYZRhxGHUYZRhzGHQYZRhkGCAYZhhyGG8YbRggGGkYdBguGCAYSRhuGCAYZhhhGGMYdBgsGCAYaRh0GCAYZBhvGGUYcxhuGCcYdBggGGUYdhhlGG4YIBh1GHMYZRggGGMYbxhuGHMYdBhlGGwYbBhhGHQYaRhvGG4YIBhvGHIYIBhzGGwYaRhuGGcYcxhoGG8YdBggGCgYdBhoGG8YdRhnGGgYIBhpGHQYIBhwGHIYbxhiGGEYYhhsGHkYIBhzGGgYbxh1GGwYZBgpGCwYIBhwGHUYchhlGGwYeRggGGYYZRh0GGMYaBhpGG4YZxggGHIYZRhjGG8YchhkGHMYIBhmGHIYbxhtGCAYeRhvGHUYchggGHIYZRhwGG8YcxhpGHQYbxhyGHkYLhggGEkYdBggGGMYYRhjGGgYZRhzGCAYYhhsGG8YYhhzGCAYYRhuGGQYIBhyGGUYLRhzGGUYchh2GGUYcxggGHQYaBhlGG0YIBhhGHQYIBhhGCAYaxhuGG8YdxhuGCAYchhlGGwYYRh0GGkYdhhlGCAYdRhyGGwYIBhwGGEYdBhoGCwYIBhzGG8YIBh0GGgYYRh0GCAYdBhoGGUYIBhsGGkYbhhrGCAYdRhyGGwYcxggGGEYchhlGCAYchhlGGEYcxhvGG4YYRhiGGwYZRggGGEYbhhkGCAYaRhuGGYYbxhyGG0YYRh0GGkYdhhlGCwYIBhhGG4YZBggGGQYbxhlGHMYIBh0GGgYZRggGHMYYRhtGGUYIBhmGG8YchggGHIYZRhsGGUYdhhhGG4YdBggGHIYZRhjGG8YchhkGHMYIBh0GGgYYRh0GCAYYRhyGGUYIBhsGGkYbhhrGGUYZBggGHQYbxggGGIYeRggGG4Ybxh0GGUYYhhvGG8YaxggGGUYbhh0GHIYaRhlGHMYIBhyGGUYcRh1GGUYcxh0GGUYZBggGGYYchhvGG0YIBhpGHQYLgoKGFQYaBhlGCAYchhlGGEYcxhvGG4YIBh3GGgYeRggGEkYIBhzGHQYYRhyGHQYZRhkGCAYdxhpGHQYaBggGHMYbxhtGGUYdBhoGGkYbhhnGCAYZBhlGHYYZRhsGG8YcBhlGHIYLRhmGHIYaRhlGG4YZBhsGHkYIBhyGGEYdBhoGGUYchggGHQYaBhhGG4YIBhhGGkYbRhpGG4YZxggGGYYbxhyGCAYYRggGG4YbxhuGC0YdBhlGGMYaBhuGGkYYxhhGGwYIBhhGHUYZBhpGGUYbhhjGGUYIBh0GG8YIBhiGGUYZxhpGG4YIBh3GGkYdBhoGCAYaRhzGCAYYhhlGGMYYRh1GHMYZRggGEkYIBhrGG4Ybxh3GCAYdBhoGGEYdBggGGEYdRhkGGkYZRhuGGMYZRggGHcYZRhsGGwYLBggGGIYZRhpGG4YZxggGG8YbhhlGCwYIBhhGG4YZBggGEkYIBhmGGkYZxh1GHIYZRggGGkYdBgnGHMYIBhmGGEYchggGHcYaRhzGGUYchggGHQYbxggGHcYbxhyGGsYIBhvGHUYdBggGHQYaBhlGCAYaxhpGG4YaxhzGCAYaRhuGCAYdBhoGGUYIBh1GG4YZBhlGHIYbBh5GGkYbhhnGCAYaRhtGHAYbBhlGG0YZRhuGHQYYRh0GGkYbxhuGCAYZhhpGHIYcxh0GCAYdxhpGHQYaBggGGEYIBh1GHMYZRhyGCAYYhhhGHMYZRggGGMYYRhwGGEYYhhsGGUYIBhvGGYYIBhtGGEYaxhpGG4YZxggGGEYIBhnGG8YbxhkGCAYYhh1GGcYIBhyGGUYcBhvGHIYdBggGGIYZRhmGG8YchhlGCAYdBhyGHkYaRhuGGcYIBhmGG8YchggGGEYIBhiGHIYbxhhGGQYZRhyGCAYYRh1GGQYaRhlGG4YYxhlGC4KChg+GCAYQRhzGCAYdBhvGCAYdxhoGHkYIBhJGCcYbRggGHcYchhpGHQYaRhuGGcYIBhpGHQYIBhpGG4YIBhSGHUYcxh0GCAYKBhhGG4YZBggGGMYdRhyGHIYZRhuGHQYbBh5GCAYehhlGHIYbxggGFQYeRhwGGUYcxhjGHIYaRhwGHQYKRggGGEYcxggGG8YcBhwGG8YcxhlGGQYIBh0GG8YIBhHGG8YIBhhGG4YZBggGFQYeRhwGGUYcxhjGHIYaRhwGHQYPxggGFcYZRhsGGwYIBhpGHQYIBhjGG8YbRhlGHMYIBhkGG8YdxhuGCAYdBhvGCAYZhhhGG0YaRhsGGkYYRhyGGkYdBh5GC4YIBhSGHUYcxh0GCAYaRhzGG4YJxh0GCAYbhhlGGMYZRhzGHMYYRhyGGkYbBh5GCAYYRhuGHkYbxhuGGUYJxhzGCAYZhhpGHIYcxh0GCAYYxhoGG8YaRhjGGUYIBhpGG4YIBhhGCAYdhhhGGMYdRh1GG0YIBhmGG8YchggGGEYIBh3GGUYYhgtGG4YYRh0GGkYdhhlGCAYcBhyGG8YZxhyGGEYbRhtGGkYbhhnGCAYbBhhGG4YZxh1GGEYZxhlGCwYIBhiGHUYdBggGGkYdBggGHcYbxhyGGsYcxggGHEYdRhpGHQYZRggGHcYZRhsGGwYIBhhGHMYIBhvGG4YZRgsGCAYYRhuGGQYIBhJGCAYYxhhGG4YIBhzGGgYYRhyGGUYIBh0GGgYZRggGHYYYRhzGHQYIBhtGGEYahhvGHIYaRh0GHkYIBhvGGYYIBh0GGgYZRggGHAYchhvGHQYbxhjGG8YbBggGGMYbxhkGGUYLBggGGEYcxggGHcYZRhsGGwYIBhhGHMYIBh0GGgYZRggGG0YYRhyGGsYZBhvGHcYbhggGHIYZRhuGGQYZRhyGGkYbhhnGCAYZRhuGGcYaRhuGGUYLBggGGIYZRh0GHcYZRhlGG4YIBhmGHIYbxhuGHQYIBhhGG4YZBggGGIYYRhjGGsYIBhlGG4YZBgsGCAYdxhpGHQYaBggGGYYZRh3GCAYaRhmGCAYYRhuGHkYIBhjGG8YbRhwGHIYbxhtGGkYcxhlGHMYIBhvGG4YIBhwGGUYchhmGG8YchhtGGEYbhhjGGUYLBggGHMYYRh2GGUYIBhhGCAYbBhhGHIYZxhlGHIYIBhiGHUYbhhkGGwYZRggGHMYaRh6GGUYIBhkGHUYZRggGHQYbxggGHQYaBhlGCAYbhhhGHQYdRhyGGUYIBhvGGYYIBhXGGUYYhhBGHMYcxhlGG0YYhhsGHkYLhggGEEYbhhkGCAYdRhsGHQYaRhtGGEYdBhlGGwYeRggGEkYIBhtGGEYeRggGGUYbhhkGCAYdRhwGCAYcBhyGG8YZBh1GGMYaRhuGGcYIBhUGHkYcBhlGHMYYxhyGGkYcBh0GCAYYhhpGG4YZBhpGG4YZxhzGCAYZhhvGHIYIBhKGGEYYxhxGHUYYRhyGGQYIBhhGG4YZBggGFcYZRhhGHYYZRhyGCcYcxggGGMYbxhyGGUYIBh0GG8YbxhsGHMYLBggGGkYZhggGHQYaBhhGHQYJxhzGCAYcxhvGG0YZRh0GGgYaRhuGGcYIBhwGGUYbxhwGGwYZRggGHYYYRhsGHUYZRgsGCAYbxhyGCAYSRggGGUYbhhkGCAYdRhwGCAYchhlGGMYbxhuGHMYaRhkGGUYchhpGG4YZxggGGQYbxhpGG4YZxggGHcYZRhiGCAYZhhyGG8Ybhh0GC0YZRhuGGQYIBhpGG4YIBhSGHUYcxh0GC4KCgoKGCMYIxgjGCAYRRh2GG8YbBh1GHQYaRhvGG4KChhXGGUYYRh2GGUYchggGGkYcxggGHQYaBhlGHIYZRhmGG8YchhlGCAYdhhlGHIYeRggGG0YdRhjGGgYIBhhGG4YIBhlGHYYbxhsGHYYaRhuGGcYIBh0GGgYaRhuGGcYLhggGEkYdBggGHcYaRhsGGwYIBhhGGwYdxhhGHkYcxggGGgYYRh2GGUYIBhhGG4YZBggGHMYdRhwGHAYbxhyGHQYIBh0GGgYZRggGHAYchhvGG8YZhgtGG8YZhgtGGMYbxhuGGMYZRhwGHQYIBh3GG8YchhrGGYYbBhvGHcYIBhhGHMYIBhhGCAYZhhpGHIYcxh0GC0YYxhsGGEYcxhzGCAYYxhpGHQYaRh6GGUYbhguGCAYVBhoGGEYdBgnGHMYIBhwGGEYchh0GCAYbxhmGCAYdBhoGGUYIBhiGGUYbhhlGGYYaRh0GCAYbxhmGCAYYhh1GGkYbBhkGGkYbhhnGCAYdBhoGGkYcxggGG8YbhggGGEYdBhwGHIYbxh0GG8YLhggGEkYZhggGEkYIBhzGGMYchhlGHcYIBh0GGgYaRhzGCAYdRhwGCwYIBhuGG8YdBggGHQYbxhvGCAYaBhhGHIYZBggGGYYbxhyGCAYcxhvGG0YZRhvGG4YZRggGGUYbBhzGGUYIBh0GG8YIBhwGGkYYxhrGCAYdRhwGCAYdBhoGGUYIBh0GG8YchhjGGgYIBhhGG4YZBggGGMYbxhuGHQYaRhuGHUYZRguCgoYaRhjGHIYZRhhGHQYZRhkGEEYdBh4GBsYMhgwGDIYNRgtGDEYMRgtGDAYNBhUGDAYMBg6GDIYOBg6GDUYNhguGDUYMxg0GDEYNhg5GFoYZhhlGG0YYhhlGGQYcxihGGYYaRhtGGEYZxhlGHMYoRhmGGkYbRhhGGcYZRhzGIQYoxhjGGEYbBh0GGAYZRhpGG0YYRhnGGUYpBhlGCQYdBh5GHAYZRhkGGIYbBhvGGIYYxhyGGUYZhihGGUYJBhsGGkYbhhrGHgYOxhiGGEYZhhrGHIYZRhpGGcYdRgzGHIYMhhkGHgYehhmGHQYNRgyGHkYZxhvGHIYNxh0GGEYeRg1GGkYdxhqGHQYNBgyGHMYbRhuGHoYZxg1GGoYchhlGGYYNxhsGHEYdBhsGGcYdRhwGHkYZhhkGHkYdhh6GG0YaBhtGGkYbRhlGFQYeRhwGGUYaRhpGG0YYRhnGGUYLxhwGG4YZxhkGHMYaRh6GGUYGRh4GCQYZBhuGGEYbRhlGHAYeBhrGGMYZBhfGDMYNBg1GF8YZRh4GGMYZRhyGHAYdBijGGMYYRhsGHQYYBhlGGkYbRhhGGcYZRikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhjGHIYZRhmGKEYZRgkGGwYaRhuGGsYeBg7GGIYYRhmGGsYchhlGGkYYxhiGHIYZRg0GGYYchh5GHgYeRhpGG4Ycxh6GGIYMxhwGHUYaBhuGHgYNhg2GGsYcRhuGHQYcxhkGGkYNhh6GGQYahhkGG8YcBh1GGsYbxh1GHoYdBhxGG8YcxhvGHkYbBgzGG8YaRhoGG0YaRhtGGUYVBh5GHAYZRhqGGkYbRhhGGcYZRgvGGoYcBhlGGcYZBhzGGkYehhlGBoAAxhPGJgYZBhuGGEYbRhlGHAYdxhlGGEYdhhlGHIYXxhwGGgYbxh0GG8YXxhtGGUYZBijGGMYYRhsGHQYYBhlGGkYbRhhGGcYZRikGGUYJBh0GHkYcBhlGGQYYhhsGG8YYhhjGHIYZRhmGKEYZRgkGGwYaRhuGGsYeBg7GGIYYRhmGGsYchhlGGkYYRh4GHQYdhhvGGwYYhhyGHYYcBg1GGkYNxh4GGgYMhhyGHcYahhhGHcYMhh5GGkYbRhpGHAYZRh4GHMYaBh0GHEYdBhoGGkYcxg0GG8YZxh1GGkYaRhoGHgYcRh4GG4YYRhsGDIYZRhoGG0YaRhtGGUYVBh5GHAYZRhpGGkYbRhhGGcYZRgvGHAYbhhnGGQYcxhpGHoYZRgaAAEY/xhUGGQYbhhhGG0YZRhyGGwYaRhnGGgYdBhfGG0YbxhkGGUYXxhlGHgYYxhlGHIYcBh0GKMYYxhhGGwYdBhgGGUYaRhtGGEYZxhlGKQYZRgkGHQYeRhwGGUYZBhiGGwYbxhiGGMYchhlGGYYoRhlGCQYbBhpGG4Yaxh4GDsYYhhhGGYYaxhyGGUYaRhjGHcYchhuGGEYaRhuGHEYYxh1GGkYdBg0GGMYYhhyGG0YNRhrGGsYdxhmGG0YdBh5GDYYaRh4GHYYZBhsGDYYbhg0GHkYYxhkGHQYaRhnGGwYZhh5GGoYchgyGGoYcBh2GDcYYxhhGGgYbRhpGG0YZRhUGHkYcBhlGGkYaRhtGGEYZxhlGC8YcBhuGGcYZBhzGGkYehhlGBkYixiTGGQYbhhhGG0YZRh2GG4Ybxh0GGUYYhhvGG8YaxhfGGUYbhh0GHIYeRhfGHAYchhlGHYYaRhlGHcYZRh0GGkYdBhsGGUYeBgaGFcYZRhhGHYYZRhyGCAYLRggGEwYbxhuGGcYLRhmGG8YchhtGCAYdxhyGGkYdBhpGG4YZxhlGCQYdBh5GHAYZRh4GBgYcxhoGC4YdxhlGGEYdhhlGHIYLhhuGG8YdBhlGGIYbxhvGGsYLhhlGG4YdBhyGHk=";window.initial_dioxus_hydration_debug_types=["core::option::Option<dioxus_core::render_error::CapturedError>","unknown","alloc::string::String","unknown","unknown","unknown","bool","unknown","bool","unknown","bool","unknown","bool","unknown","bool","unknown","bool","unknown","bool","unknown","unknown","unknown","bool","unknown","core::option::Option<(serde_json::value::Value, serde_json::value::Value)>"];window.initial_dioxus_hydration_debug_locations=["/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/ssr.rs:556:29","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-fullstack-core-0.7.0/src/history.rs:44:30","unknown","unknown","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","unknown","unknown","/home/orual/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dioxus-server-0.7.0/src/document.rs:163:14","unknown","crates/weaver-app/src/data.rs:38:15"];</script></div> 185 + <script type="module" async src="/./wasm/weaver-app.js"></script> 186 + </body> 97 187 </html>