@norwegian/core-components 7.20.2 → 7.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,38 @@
1
+ <svg width="200" height="90" viewBox="0 0 200 90" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_2414_23372)">
3
+ <path d="M33.6105 12.8984H48.643L73.6876 38.2584H47.3847L36.8756 16.4121L33.6105 12.8984Z" fill="white"/>
4
+ <path d="M73.6876 38.4973H47.3847C47.2923 38.4973 47.2095 38.4432 47.1681 38.3635L36.6718 16.5491L33.4321 13.0609C33.3684 12.9908 33.3493 12.8889 33.3875 12.8029C33.4257 12.7169 33.5117 12.6595 33.6073 12.6595H48.6398C48.7035 12.6595 48.764 12.685 48.8086 12.7296L73.8532 38.0928C73.9201 38.1628 73.9392 38.2648 73.9042 38.354C73.866 38.4432 73.7799 38.5005 73.6844 38.5005L73.6876 38.4973ZM47.5376 38.0195H73.1173L48.5442 13.1342H34.1616L37.054 16.2496C37.07 16.2687 37.0827 16.2878 37.0954 16.3101L47.5408 38.0227L47.5376 38.0195Z" fill="black"/>
5
+ <path d="M61.9489 33.9866H92.4726C97.3847 33.9866 102.294 33.7923 107.19 33.4069L131.425 30.0493C135.143 29.5333 138.918 29.4472 142.645 29.9123C147.483 30.5176 152.201 31.9447 156.581 34.1777C163.494 37.7009 171.821 44.432 171.397 50.4239C170.515 62.9239 101.373 59.5982 89.0673 57.5882C76.7616 55.5781 44.0431 47.3244 41.106 40.4692C41.106 40.4692 43.871 33.9834 61.9489 33.9834V33.9866Z" fill="white"/>
6
+ <path d="M126.832 59.7957C109.99 59.7957 93.7596 58.598 89.0322 57.8271C76.9655 55.8584 43.8902 47.5665 40.8894 40.5679C40.8639 40.5074 40.8639 40.4405 40.8894 40.38C41.0041 40.1092 43.9252 33.7477 61.9521 33.7477H92.4758C97.3592 33.7477 102.306 33.5534 107.177 33.1711L131.4 29.8168C135.299 29.2752 139.096 29.2306 142.68 29.6798C147.604 30.2978 152.322 31.7408 156.696 33.9707C164.185 37.7901 172.057 44.5721 171.639 50.4462C171.556 51.6217 170.9 52.7048 169.69 53.6636C163.675 58.4196 144.903 59.7989 126.835 59.7989L126.832 59.7957ZM41.3704 40.4787C43.1893 44.3236 54.8293 48.4776 61.6463 50.6182C71.8718 53.8356 83.0498 56.3649 89.1055 57.3524C94.5559 58.2412 112 59.4453 129.294 59.2956C144.282 59.165 163.405 58.015 169.39 53.2813C170.492 52.4117 171.088 51.4433 171.161 50.4048C171.346 47.7704 169.763 44.7059 166.574 41.5427C163.937 38.9242 160.254 36.3152 156.476 34.388C152.15 32.1836 147.49 30.7565 142.616 30.1449C139.07 29.7021 135.318 29.7467 131.46 30.2819L107.225 33.6394C102.329 34.0248 97.3688 34.2192 92.4726 34.2192H61.9489C45.4415 34.2192 41.7973 39.7078 41.3704 40.4723V40.4787Z" fill="black"/>
7
+ <path d="M116.393 59.4103L98.0887 45.8846C96.7253 45.0404 95.072 44.5817 93.3773 44.5817H60.7894C60.7894 46.0024 62.7931 47.7513 64.4814 47.7513H71.6584C72.6618 47.7513 73.5984 48.1654 74.1718 48.8598C79.4119 55.2532 87.0158 58.9803 95.0561 59.0981L116.396 59.4103H116.393Z" fill="white"/>
8
+ <path d="M116.393 59.6492H116.39L95.0497 59.337C86.9425 59.2192 79.2654 55.4539 73.9838 49.0096C73.4582 48.3693 72.5885 47.9902 71.6552 47.9902H64.4782C62.6784 47.9902 60.5473 46.1426 60.5473 44.5817C60.5473 44.4511 60.6556 44.3428 60.7862 44.3428H93.3741C95.1261 44.3428 96.7985 44.8047 98.2097 45.6807L116.53 59.2192C116.613 59.2797 116.648 59.388 116.613 59.4867C116.581 59.5823 116.488 59.6492 116.386 59.6492H116.393ZM61.0474 44.8206C61.2545 46.0852 63.0256 47.5124 64.4814 47.5124H71.6584C72.7319 47.5124 73.7385 47.9583 74.3533 48.7069C79.5457 55.0429 87.0891 58.7413 95.0561 58.8592L115.654 59.1618L97.9485 46.0757C96.6456 45.2697 95.0178 44.8206 93.3805 44.8206H61.0474Z" fill="black"/>
9
+ <path d="M61.6718 40.2175L51.0448 33.3782C50.2039 32.9545 49.1877 32.7252 48.1428 32.7252H31.4316C31.4316 33.4355 31.7852 34.9136 34.4706 34.9136H36.5985C37.2165 34.9136 37.7963 35.1207 38.1467 35.4679L41.81 38.0864C43.4729 39.2746 45.4574 39.9308 47.5025 39.9659L61.6718 40.2175Z" fill="white"/>
10
+ <path d="M61.6686 40.4564L47.4994 40.2048C45.3969 40.1665 43.3837 39.5008 41.673 38.2807L38.0097 35.6622C38.0097 35.6622 37.9906 35.6463 37.981 35.6367C37.672 35.3341 37.1591 35.1525 36.6017 35.1525H34.4738C31.4348 35.1525 31.1958 33.2954 31.1958 32.7252C31.1958 32.5945 31.3042 32.4862 31.4348 32.4862H48.146C49.2355 32.4862 50.2771 32.722 51.1563 33.1648L61.8056 40.0168C61.8947 40.0742 61.9362 40.1856 61.9043 40.2876C61.8724 40.3895 61.7801 40.4564 61.6749 40.4564H61.6686ZM38.2996 35.2831L41.947 37.8889C43.578 39.0548 45.4988 39.6887 47.5025 39.7237L60.834 39.9595L50.9142 33.5757C50.1338 33.1839 49.1431 32.9609 48.1428 32.9609H31.6864C31.7692 33.6139 32.2439 34.6715 34.4706 34.6715H36.5985C37.2706 34.6715 37.9046 34.8977 38.2996 35.2831Z" fill="black"/>
11
+ <path d="M84.2125 37.5863H84.152C83.1087 37.5863 82.263 38.432 82.263 39.4753V40.9597C82.263 42.003 83.1087 42.8487 84.152 42.8487H84.2125C85.2558 42.8487 86.1016 42.003 86.1016 40.9597V39.4753C86.1016 38.432 85.2558 37.5863 84.2125 37.5863Z" fill="white"/>
12
+ <path d="M84.2094 43.0877H84.152C82.9766 43.0877 82.0241 42.132 82.0241 40.9597V39.4785C82.0241 38.303 82.9797 37.3505 84.152 37.3505H84.2094C85.3848 37.3505 86.3373 38.3062 86.3373 39.4785V40.9597C86.3373 42.1352 85.3816 43.0877 84.2094 43.0877ZM84.152 37.8252C83.241 37.8252 82.5019 38.5674 82.5019 39.4753V40.9566C82.5019 41.8676 83.2441 42.6066 84.152 42.6066H84.2094C85.1204 42.6066 85.8595 41.8644 85.8595 40.9566V39.4753C85.8595 38.5642 85.1172 37.8252 84.2094 37.8252H84.152Z" fill="black"/>
13
+ <path d="M95.0465 37.5863H94.986C93.9427 37.5863 93.097 38.432 93.097 39.4753V40.9597C93.097 42.003 93.9427 42.8487 94.986 42.8487H95.0465C96.0898 42.8487 96.9355 42.003 96.9355 40.9597V39.4753C96.9355 38.432 96.0898 37.5863 95.0465 37.5863Z" fill="white"/>
14
+ <path d="M95.0433 43.0877H94.986C93.8105 43.0877 92.858 42.132 92.858 40.9597V39.4785C92.858 38.303 93.8137 37.3505 94.986 37.3505H95.0433C96.2188 37.3505 97.1712 38.3062 97.1712 39.4785V40.9597C97.1712 42.1352 96.2156 43.0877 95.0433 43.0877ZM94.986 37.8252C94.0749 37.8252 93.3359 38.5674 93.3359 39.4753V40.9566C93.3359 41.8676 94.0781 42.6066 94.986 42.6066H95.0433C95.9544 42.6066 96.6934 41.8644 96.6934 40.9566V39.4753C96.6934 38.5642 95.9512 37.8252 95.0433 37.8252H94.986Z" fill="black"/>
15
+ <path d="M105.88 37.5863H105.82C104.777 37.5863 103.931 38.432 103.931 39.4753V40.9597C103.931 42.003 104.777 42.8487 105.82 42.8487H105.88C106.924 42.8487 107.769 42.003 107.769 40.9597V39.4753C107.769 38.432 106.924 37.5863 105.88 37.5863Z" fill="white"/>
16
+ <path d="M105.877 43.0877H105.82C104.644 43.0877 103.692 42.132 103.692 40.9597V39.4785C103.692 38.303 104.648 37.3505 105.82 37.3505H105.877C107.053 37.3505 108.005 38.3062 108.005 39.4785V40.9597C108.005 42.1352 107.05 43.0877 105.877 43.0877ZM105.82 37.8252C104.909 37.8252 104.17 38.5674 104.17 39.4753V40.9566C104.17 41.8676 104.912 42.6066 105.82 42.6066H105.877C106.788 42.6066 107.527 41.8644 107.527 40.9566V39.4753C107.527 38.5642 106.785 37.8252 105.877 37.8252H105.82Z" fill="black"/>
17
+ <path d="M171.397 50.4271C171.821 44.4351 163.497 37.7073 156.581 34.1809C152.201 31.9479 147.483 30.5208 142.645 29.9155C138.921 29.4504 135.146 29.5364 131.425 30.0525L122.522 31.2853C120.008 40.2175 120.508 50.7425 124.417 59.5505C145.973 59.6174 170.881 57.706 171.397 50.4303V50.4271Z" fill="#E5212D"/>
18
+ <path d="M125.424 59.7894C125.076 59.7894 124.745 59.7894 124.417 59.7894H124.261L124.197 59.646C120.403 51.0929 119.69 40.466 122.292 31.2216L122.334 31.0719L131.393 29.8168C135.292 29.2752 139.086 29.2306 142.673 29.6798C147.598 30.2978 152.316 31.7408 156.69 33.9707C164.179 37.7901 172.05 44.5721 171.633 50.4462C171.04 58.8114 139.911 59.7926 125.42 59.7926L125.424 59.7894ZM124.576 59.3115C133.33 59.3402 145.786 59.0376 155.766 57.5085C162.634 56.4541 170.884 54.3676 171.161 50.4144C171.346 47.7799 169.763 44.7155 166.574 41.5522C163.937 38.9337 160.254 36.3248 156.476 34.3976C152.15 32.1932 147.49 30.7661 142.616 30.1544C139.07 29.7116 135.318 29.7562 131.46 30.2914L122.713 31.5019C120.206 40.5584 120.9 50.9272 124.576 59.3115Z" fill="black"/>
19
+ <path d="M156.584 34.1268C156.508 34.0886 156.432 34.0503 156.355 34.0121H147.98V38.9306H164.042C161.681 37.0415 159.044 35.3819 156.584 34.1268Z" fill="white"/>
20
+ <path d="M164.039 39.1695H147.977C147.847 39.1695 147.738 39.0612 147.738 38.9306V34.0121C147.738 33.8815 147.847 33.7732 147.977 33.7732H156.352C156.39 33.7732 156.425 33.7827 156.46 33.7987L156.693 33.9134C159.289 35.2385 161.952 36.9523 164.188 38.7426C164.268 38.8063 164.297 38.9114 164.265 39.007C164.23 39.1026 164.141 39.1663 164.039 39.1663V39.1695ZM163.347 38.6916C161.254 37.0766 158.837 35.5443 156.473 34.3402L156.295 34.251H148.213V38.6916H163.347Z" fill="black"/>
21
+ <path d="M37.6242 17.9698H53.6506L48.643 12.8984H33.6105L36.8756 16.4121L37.6242 17.9698Z" fill="#E5212D"/>
22
+ <path d="M53.6506 18.2055H37.6242C37.5319 18.2055 37.449 18.1514 37.4076 18.0717L36.6749 16.5491L33.4353 13.0609C33.3716 12.9908 33.3524 12.8889 33.3907 12.8029C33.4289 12.7169 33.5149 12.6595 33.6105 12.6595H48.643C48.7067 12.6595 48.7672 12.685 48.8118 12.7296L53.8194 17.801C53.8863 17.871 53.9055 17.973 53.8704 18.0622C53.8322 18.1514 53.7462 18.2087 53.6506 18.2087V18.2055ZM37.774 17.7277H53.0772L48.541 13.1342H34.1584L37.0508 16.2496C37.0668 16.2687 37.0795 16.2878 37.0923 16.3101L37.774 17.7309V17.7277Z" fill="black"/>
23
+ <path d="M71.1582 86.7931C71.0372 86.7931 70.9321 86.7007 70.9193 86.5796C70.1007 78.568 63.4047 72.5283 55.3389 72.5283C54.1953 72.5283 53.0422 72.6557 51.9113 72.9105C51.8476 72.9233 51.7839 72.9105 51.7297 72.8787C51.6756 72.8437 51.6374 72.7895 51.6246 72.7258C50.1242 65.5297 43.6927 60.3054 36.3309 60.3054C31.0621 60.3054 26.185 62.9335 23.2798 67.3359C23.2225 67.4251 23.111 67.4633 23.0122 67.4346C22.9326 67.4091 22.8689 67.3454 22.8498 67.2658C20.1134 62.5671 15.0484 59.6492 9.61391 59.6492C7.54651 59.6492 5.54281 60.0538 3.65698 60.8533C3.53593 60.9075 3.39577 60.847 3.3448 60.7259C3.29383 60.6049 3.35117 60.4647 3.47222 60.4137C5.41858 59.5919 7.48598 59.1746 9.61391 59.1746C15.1121 59.1746 20.244 62.0702 23.1014 66.7561C26.1181 62.4142 31.0334 59.8308 36.3341 59.8308C43.8392 59.8308 50.4077 65.0996 52.0451 72.3945C53.1346 72.1683 54.2431 72.0536 55.3421 72.0536C63.6532 72.0536 70.553 78.2782 71.3972 86.535C71.4099 86.6656 71.3143 86.7835 71.1837 86.7962C71.1742 86.7962 71.1678 86.7962 71.1582 86.7962V86.7931Z" fill="black"/>
24
+ <path d="M27.4847 39.7779H17.9727C17.8421 39.7779 17.7338 39.6696 17.7338 39.539C17.7338 39.4084 17.8421 39.3001 17.9727 39.3001H27.4847C27.6153 39.3001 27.7236 39.4084 27.7236 39.539C27.7236 39.6696 27.6153 39.7779 27.4847 39.7779Z" fill="black"/>
25
+ <path d="M22.9453 33.5502H15.0962C14.9656 33.5502 14.8573 33.4419 14.8573 33.3113C14.8573 33.1807 14.9656 33.0724 15.0962 33.0724H22.9453C23.0759 33.0724 23.1842 33.1807 23.1842 33.3113C23.1842 33.4419 23.0759 33.5502 22.9453 33.5502Z" fill="black"/>
26
+ <path d="M21.2188 36.7102H0.238914C0.108308 36.7102 0 36.6019 0 36.4713C0 36.3407 0.108308 36.2324 0.238914 36.2324H21.2188C21.3494 36.2324 21.4577 36.3407 21.4577 36.4713C21.4577 36.6019 21.3494 36.7102 21.2188 36.7102Z" fill="black"/>
27
+ <path d="M151.733 89.1249C151.733 89.1249 151.717 89.1249 151.707 89.1249C151.577 89.1121 151.481 88.9943 151.494 88.8637C152.048 83.4419 156.581 79.3517 162.041 79.3517C162.78 79.3517 163.526 79.4313 164.255 79.5874C167.852 71.665 174.809 66.7561 182.451 66.7561C189.628 66.7561 196.177 71.0375 199.971 78.2113C200.032 78.3291 199.987 78.4725 199.873 78.533C199.755 78.5935 199.611 78.5489 199.551 78.4342C195.843 71.4197 189.45 67.2339 182.454 67.2339C174.946 67.2339 168.113 72.1078 164.615 79.9569C164.571 80.0557 164.465 80.1162 164.357 80.0939L164.271 80.078C163.529 79.9123 162.784 79.8295 162.041 79.8295C156.83 79.8295 152.497 83.735 151.969 88.9114C151.956 89.0357 151.851 89.1249 151.73 89.1249H151.733Z" fill="black"/>
28
+ <path d="M120.703 59.4995C116.794 50.3347 116.211 41.463 118.814 31.8396L120.47 31.6038C117.963 40.8705 118.626 50.6628 122.391 59.4899L120.7 59.4995H120.703Z" fill="#15273F"/>
29
+ <path d="M120.703 59.7384C120.607 59.7384 120.521 59.6811 120.483 59.5919C116.549 50.3698 115.944 41.5299 118.584 31.7759C118.61 31.6835 118.686 31.6166 118.782 31.6007L120.438 31.3649C120.518 31.3522 120.598 31.384 120.652 31.4446C120.706 31.5051 120.725 31.5879 120.703 31.6644C118.221 40.8387 118.9 50.6883 122.614 59.3944C122.646 59.4676 122.636 59.5536 122.595 59.6205C122.55 59.6874 122.477 59.7288 122.397 59.7288L120.706 59.7384H120.703ZM119.002 32.0562C116.453 41.5905 117.043 50.2424 120.859 59.2606L122.034 59.2542C118.447 50.6405 117.778 40.9534 120.148 31.8937L119.005 32.0562H119.002Z" fill="black"/>
30
+ <path d="M101.147 3.41195C102.032 1.56435 104.437 0.23917 107.266 0.23917C110.06 0.23917 112.439 1.53249 113.351 3.34506C113.44 3.34506 113.529 3.33869 113.618 3.33869C117.199 3.33869 120.101 5.46343 120.101 8.08512C120.101 10.7068 117.199 12.8315 113.618 12.8315C113.252 12.8315 112.895 12.8093 112.545 12.7647C112.06 14.2204 110.27 15.3003 108.133 15.3003C105.97 15.3003 104.163 14.195 103.705 12.7137C103.246 12.7901 102.771 12.8315 102.281 12.8315C98.7003 12.8315 95.7983 10.7068 95.7983 8.08512C95.7983 5.74694 98.111 3.80377 101.15 3.41195H101.147Z" fill="white"/>
31
+ <path d="M108.129 15.5392C105.979 15.5392 104.132 14.4976 103.539 12.9781C103.122 13.0386 102.695 13.0673 102.274 13.0673C98.5665 13.0673 95.553 10.831 95.553 8.08193C95.553 5.68323 97.8307 3.64131 100.988 3.18897C101.978 1.27447 104.479 -0.00292969 107.263 -0.00292969C110.047 -0.00292969 112.468 1.23624 113.491 3.09659C113.532 3.09659 113.574 3.09659 113.618 3.09659C117.326 3.09659 120.34 5.33282 120.34 8.08193C120.34 10.831 117.323 13.0673 113.618 13.0673C113.315 13.0673 113.01 13.0513 112.704 13.0195C112.095 14.5103 110.251 15.5361 108.133 15.5361L108.129 15.5392ZM103.867 12.4429L103.928 12.6404C104.361 14.042 106.129 15.0582 108.129 15.0582C110.13 15.0582 111.85 14.0835 112.315 12.685L112.376 12.5003L112.57 12.5226C112.92 12.564 113.271 12.5863 113.615 12.5863C117.058 12.5863 119.859 10.5635 119.859 8.07875C119.859 5.59404 117.058 3.57123 113.615 3.57123C113.529 3.57123 113.44 3.57123 113.354 3.5776L113.201 3.58397L113.131 3.44699C112.236 1.66947 109.875 0.474899 107.26 0.474899C104.644 0.474899 102.23 1.69495 101.357 3.51389L101.3 3.63175L101.172 3.64768C98.1906 4.03313 96.0276 5.89666 96.0276 8.08193C96.0276 10.5666 98.8277 12.5894 102.271 12.5894C102.733 12.5894 103.201 12.5512 103.657 12.4748L103.861 12.4397L103.867 12.4429Z" fill="black"/>
32
+ </g>
33
+ <defs>
34
+ <clipPath id="clip0_2414_23372">
35
+ <rect width="200" height="89.1246" fill="white"/>
36
+ </clipPath>
37
+ </defs>
38
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#C3C3C3"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#C3C3C3"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#C3C3C3"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H13.8333C14.3396 1 14.75 1.41041 14.75 1.91667V5.58333C14.75 6.08959 14.3396 6.5 13.8333 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#C3C3C3"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H13.8333C14.3396 9.25 14.75 9.66041 14.75 10.1667V13.8333C14.75 14.3396 14.3396 14.75 13.8333 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#C3C3C3"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H13.8333C14.3396 17.5 14.75 17.9104 14.75 18.4167V22.0833C14.75 22.5896 14.3396 23 13.8333 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#C3C3C3"/>
8
+ <path d="M17.5 1.91667C17.5 1.41041 17.9104 1 18.4167 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H18.4167C17.9104 6.5 17.5 6.08959 17.5 5.58333V1.91667Z" fill="#C3C3C3"/>
9
+ <path d="M17.5 10.1667C17.5 9.66041 17.9104 9.25 18.4167 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H18.4167C17.9104 14.75 17.5 14.3396 17.5 13.8333V10.1667Z" fill="#C3C3C3"/>
10
+ <path d="M17.5 18.4167C17.5 17.9104 17.9104 17.5 18.4167 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H18.4167C17.9104 23 17.5 22.5896 17.5 22.0833V18.4167Z" fill="#C3C3C3"/>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#FFF"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#FFF"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#FFF"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H13.8333C14.3396 1 14.75 1.41041 14.75 1.91667V5.58333C14.75 6.08959 14.3396 6.5 13.8333 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#FFF"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H13.8333C14.3396 9.25 14.75 9.66041 14.75 10.1667V13.8333C14.75 14.3396 14.3396 14.75 13.8333 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#FFF"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H13.8333C14.3396 17.5 14.75 17.9104 14.75 18.4167V22.0833C14.75 22.5896 14.3396 23 13.8333 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#FFF"/>
8
+ <path d="M17.5 1.91667C17.5 1.41041 17.9104 1 18.4167 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H18.4167C17.9104 6.5 17.5 6.08959 17.5 5.58333V1.91667Z" fill="#FFF"/>
9
+ <path d="M17.5 10.1667C17.5 9.66041 17.9104 9.25 18.4167 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H18.4167C17.9104 14.75 17.5 14.3396 17.5 13.8333V10.1667Z" fill="#FFF"/>
10
+ <path d="M17.5 18.4167C17.5 17.9104 17.9104 17.5 18.4167 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H18.4167C17.9104 23 17.5 22.5896 17.5 22.0833V18.4167Z" fill="#FFF"/>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#15273F"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#15273F"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#15273F"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H13.8333C14.3396 1 14.75 1.41041 14.75 1.91667V5.58333C14.75 6.08959 14.3396 6.5 13.8333 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#15273F"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H13.8333C14.3396 9.25 14.75 9.66041 14.75 10.1667V13.8333C14.75 14.3396 14.3396 14.75 13.8333 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#15273F"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H13.8333C14.3396 17.5 14.75 17.9104 14.75 18.4167V22.0833C14.75 22.5896 14.3396 23 13.8333 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#15273F"/>
8
+ <path d="M17.5 1.91667C17.5 1.41041 17.9104 1 18.4167 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H18.4167C17.9104 6.5 17.5 6.08959 17.5 5.58333V1.91667Z" fill="#15273F"/>
9
+ <path d="M17.5 10.1667C17.5 9.66041 17.9104 9.25 18.4167 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H18.4167C17.9104 14.75 17.5 14.3396 17.5 13.8333V10.1667Z" fill="#15273F"/>
10
+ <path d="M17.5 18.4167C17.5 17.9104 17.9104 17.5 18.4167 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H18.4167C17.9104 23 17.5 22.5896 17.5 22.0833V18.4167Z" fill="#15273F"/>
11
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#C3C3C3"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#C3C3C3"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#C3C3C3"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#C3C3C3"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#C3C3C3"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#C3C3C3"/>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#FFF"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#FFF"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#FFF"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#FFF"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#FFF"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#FFF"/>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1.91667C1 1.41041 1.41041 1 1.91667 1H5.58333C6.08959 1 6.5 1.41041 6.5 1.91667V5.58333C6.5 6.08959 6.08959 6.5 5.58333 6.5H1.91667C1.41041 6.5 1 6.08959 1 5.58333V1.91667Z" fill="#15273F"/>
3
+ <path d="M1 10.1667C1 9.66041 1.41041 9.25 1.91667 9.25H5.58333C6.08959 9.25 6.5 9.66041 6.5 10.1667V13.8333C6.5 14.3396 6.08959 14.75 5.58333 14.75H1.91667C1.41041 14.75 1 14.3396 1 13.8333V10.1667Z" fill="#15273F"/>
4
+ <path d="M1 18.4167C1 17.9104 1.41041 17.5 1.91667 17.5H5.58333C6.08959 17.5 6.5 17.9104 6.5 18.4167V22.0833C6.5 22.5896 6.08959 23 5.58333 23H1.91667C1.41041 23 1 22.5896 1 22.0833V18.4167Z" fill="#15273F"/>
5
+ <path d="M9.25 1.91667C9.25 1.41041 9.66041 1 10.1667 1H22.0833C22.5896 1 23 1.41041 23 1.91667V5.58333C23 6.08959 22.5896 6.5 22.0833 6.5H10.1667C9.66041 6.5 9.25 6.08959 9.25 5.58333V1.91667Z" fill="#15273F"/>
6
+ <path d="M9.25 10.1667C9.25 9.66041 9.66041 9.25 10.1667 9.25H22.0833C22.5896 9.25 23 9.66041 23 10.1667V13.8333C23 14.3396 22.5896 14.75 22.0833 14.75H10.1667C9.66041 14.75 9.25 14.3396 9.25 13.8333V10.1667Z" fill="#15273F"/>
7
+ <path d="M9.25 18.4167C9.25 17.9104 9.66041 17.5 10.1667 17.5H22.0833C22.5896 17.5 23 17.9104 23 18.4167V22.0833C23 22.5896 22.5896 23 22.0833 23H10.1667C9.66041 23 9.25 22.5896 9.25 22.0833V18.4167Z" fill="#15273F"/>
8
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_2145_510)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16C12.4183 16 16 12.4183 16 8ZM7.27897 1.64017L7.34078 1.63421C7.28973 1.75296 7.23883 1.8762 7.18661 2.00264C6.98048 2.50173 6.75369 3.05084 6.41511 3.57221C6.30218 3.74611 6.20984 3.9533 6.11215 4.1725C5.92451 4.59352 5.71714 5.05881 5.30626 5.41739C5.08704 5.60871 4.78269 5.75436 4.4832 5.89768C4.07196 6.09448 3.66989 6.28689 3.51006 6.5871C3.23658 7.10077 3.35385 7.76405 3.44935 8.30414C3.47302 8.43799 3.49535 8.56426 3.51006 8.67882C3.53022 8.83582 3.54126 8.97376 3.55102 9.09561C3.58138 9.47482 3.59926 9.69815 3.84064 9.85491C3.8864 9.88463 3.94411 9.91332 4.01002 9.9461C4.16333 10.0223 4.36103 10.1207 4.55601 10.3052C4.7066 10.4477 4.92376 10.2042 5.15209 9.94808C5.40154 9.6683 5.66433 9.37357 5.86822 9.55099C5.93089 9.60553 5.98193 9.47029 6.0318 9.33817C6.08417 9.19939 6.13525 9.06405 6.19716 9.15567C6.3081 9.31986 6.38046 9.58898 6.45665 9.8724C6.51366 10.0844 6.57281 10.3045 6.65189 10.4945C6.71302 10.6415 6.81385 10.7608 6.9111 10.8758C7.0106 10.9935 7.10635 11.1068 7.15202 11.2407C7.22164 11.445 7.26426 11.6417 7.29976 11.8055C7.37011 12.1302 7.41247 12.3257 7.58144 12.1943C7.59002 12.1877 7.605 12.1749 7.6255 12.1574C7.75067 12.0506 8.08152 11.7684 8.41756 11.6295C8.53146 11.5824 8.64639 11.5578 8.75221 11.5353C8.96998 11.4888 9.14915 11.4505 9.20133 11.2407C9.24026 11.0842 9.2139 10.8584 9.18594 10.619C9.15053 10.3157 9.11254 9.99045 9.20133 9.75579C9.26577 9.58548 9.41163 9.47381 9.55466 9.3643C9.73273 9.22797 9.90642 9.09498 9.91322 8.85639C9.92371 8.48863 9.73785 8.31604 9.55193 8.1434C9.39785 8.00032 9.24374 7.8572 9.20133 7.60292C9.15529 7.32685 9.12104 6.7839 9.20133 6.44828C9.30549 6.01287 9.53478 5.78194 9.60703 5.70918C9.61182 5.70436 9.61592 5.70023 9.61925 5.69678C9.7516 5.55965 9.89339 5.44544 10.0316 5.33411C10.2428 5.16402 10.4456 5.00062 10.5938 4.77245C10.7597 4.51702 10.7396 4.30213 10.7193 4.08595C10.6952 3.82896 10.671 3.57016 10.9589 3.23931L11.0482 3.14446L11.1131 3.0838C11.1856 3.11297 11.2868 3.13669 11.3979 3.16267C11.6681 3.22593 11.9958 3.30266 12.1058 3.50449C12.2338 3.73934 11.8616 4.26807 11.6088 4.62732C11.534 4.73358 11.4697 4.82502 11.4318 4.88963C11.3106 5.09636 11.159 5.11883 11.0202 5.1394C10.8442 5.1655 10.6888 5.18854 10.6424 5.58124C10.6121 5.83827 10.725 6.24276 10.8373 6.64511C10.9361 6.99898 11.0344 7.3512 11.0344 7.6C11.0344 7.90551 11.2112 7.9584 11.3923 8.01259C11.5598 8.06272 11.7311 8.11396 11.7696 8.36727C11.807 8.61276 12.2384 8.37934 12.6705 8.14559C13.1035 7.91136 13.537 7.67681 13.5753 7.92346C13.59 8.01833 13.8261 8.0148 14.069 8.01117C14.1857 8.00942 14.3039 8.00766 14.4 8.01674C14.3996 8.1544 14.3949 8.29104 14.3861 8.42732C14.2027 8.50169 13.9281 8.51142 13.6352 8.52179C13.0846 8.5413 12.4693 8.56309 12.2733 9.02062C12.1765 9.2467 12.2796 9.50178 12.3972 9.79263C12.4723 9.97821 12.5532 10.1784 12.5918 10.3948C12.6016 10.4499 12.6114 10.5053 12.6212 10.5612C12.6121 10.5697 12.6029 10.5783 12.5938 10.5869C12.5025 10.6729 12.4117 10.7584 12.3455 10.7439C12.2325 10.7191 12.1498 10.6141 12.0695 10.5122C11.9745 10.3915 11.8829 10.2753 11.7489 10.3022C11.4641 10.3593 11.4498 10.4169 11.4152 10.5567C11.3878 10.6671 11.3477 10.8288 11.1514 11.0821C11.0827 11.1708 11.1533 11.351 11.2295 11.5455C11.3248 11.789 11.429 12.0549 11.2789 12.1909C11.2307 12.2347 11.1762 12.2953 11.1166 12.3617C10.9648 12.5306 10.7793 12.7372 10.5756 12.8C10.427 12.8458 10.2738 12.7393 10.12 12.6323C9.99419 12.5448 9.86791 12.4569 9.74339 12.4521C9.49269 12.4423 9.2544 12.5777 9.07002 12.6824C8.95623 12.747 8.86297 12.8 8.8 12.8C8.69193 12.8 8.55801 12.8961 8.42249 12.9933C8.23346 13.1289 8.04133 13.2667 7.91193 13.1491C7.79045 13.0387 7.46825 12.9853 7.11449 12.9266C6.60345 12.8419 6.02654 12.7462 5.89372 12.4521C5.85371 12.3635 5.94682 12.3509 6.05591 12.3362C6.17091 12.3208 6.30366 12.3029 6.31686 12.1909C6.33847 12.0076 6.27313 11.7903 6.20813 11.5741C6.15689 11.4036 6.10586 11.2338 6.09785 11.0821C6.08812 10.8978 6.12023 10.7381 6.1435 10.6223C6.17183 10.4814 6.18707 10.4056 6.09785 10.4298C6.01322 10.4528 5.94293 10.467 5.88147 10.4795C5.61842 10.5328 5.51706 10.5533 5.1456 11.0821C5.04441 11.2261 5.05648 11.3966 5.06941 11.5792C5.08326 11.7749 5.0981 11.9846 4.97577 12.1909C4.95723 12.2222 5.01714 12.2663 5.09628 12.3245C5.18698 12.3912 5.30294 12.4765 5.35495 12.5824C5.49322 12.8638 5.42634 13.237 5.35495 13.3304C5.24286 13.4772 5.03073 13.4872 4.81558 13.4974C4.78658 13.4988 4.75753 13.5002 4.72866 13.5019C2.8551 12.3855 1.6 10.3393 1.6 8C1.6 4.70914 4.08378 1.99841 7.27897 1.64017Z" fill="#15273F"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_2145_510">
7
+ <rect width="16" height="16" fill="white"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -74,11 +74,20 @@ export class AutocompleteComponent extends NasComponentBase {
74
74
  this.pathReactiveFormControl(model);
75
75
  this.modelChange.emit(model);
76
76
  }
77
+ get inputId() {
78
+ return this.id ? this.id : `nas-autocomplete-${this.componentId}`;
79
+ }
77
80
  constructor(document) {
78
81
  super('nas-autocomplete');
79
82
  this.document = document;
80
83
  this.filteredItems = this.items;
81
84
  this.index = -1;
85
+ /**
86
+ * @property Input
87
+ * @description
88
+ * Sets the label of the input inside the input field, default value is true
89
+ */
90
+ this.labelInside = true;
82
91
  /**
83
92
  * @property Input
84
93
  * @description
@@ -117,7 +126,7 @@ export class AutocompleteComponent extends NasComponentBase {
117
126
  return `nas-autocomplete-label-${this.componentId}`;
118
127
  }
119
128
  getInputId() {
120
- return `nas-autocomplete-input-${this.componentId}`;
129
+ return this.id ? this.id : `nas-autocomplete-input-${this.componentId}`;
121
130
  }
122
131
  setOpen() {
123
132
  this.input.nativeElement.select();
@@ -255,7 +264,7 @@ export class AutocompleteComponent extends NasComponentBase {
255
264
  }
256
265
  onInput(event) {
257
266
  const inputElement = event.target;
258
- if (this.label.length > 0) {
267
+ if (this.label && this.label.length > 0) {
259
268
  this.input.nativeElement.style.borderColor = inputElement.value ? '#15273f' : '#6f6f6f';
260
269
  this.span.nativeElement.style.borderColor = inputElement.value ? '#15273f' : '#6f6f6f';
261
270
  }
@@ -264,11 +273,11 @@ export class AutocompleteComponent extends NasComponentBase {
264
273
  return this.model ? 'remove--secondary' : 'remove';
265
274
  }
266
275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { label: "label", placeholder: "placeholder", icon: "icon", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { id: "id", label: "label", labelInside: "labelInside", placeholder: "placeholder", icon: "icon", secondary: "secondary", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
268
277
  }
269
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
270
279
  type: Component,
271
- args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
280
+ args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
272
281
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
273
282
  type: Inject,
274
283
  args: [DOCUMENT]
@@ -284,12 +293,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
284
293
  }], labelElement: [{
285
294
  type: ViewChild,
286
295
  args: ['labelDOM']
296
+ }], id: [{
297
+ type: Input
287
298
  }], label: [{
288
299
  type: Input
300
+ }], labelInside: [{
301
+ type: Input
289
302
  }], placeholder: [{
290
303
  type: Input
291
304
  }], icon: [{
292
305
  type: Input
306
+ }], secondary: [{
307
+ type: Input
293
308
  }], items: [{
294
309
  type: Input
295
310
  }], open: [{
@@ -315,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
315
330
  }], modelChange: [{
316
331
  type: Output
317
332
  }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBNEJEOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElB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QUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDeEY7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDOytHQTVXVSxxQkFBcUIsa0JBbUtaLFFBQVE7bUdBbktqQixxQkFBcUIseTFCQzlCbEMscXZHQW9EaUQ7OzRGRHRCcEMscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBdUtmLE1BQU07MkJBQUMsUUFBUTs0Q0FySlIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNDLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0csWUFBWTtzQkFBbEMsU0FBUzt1QkFBQyxVQUFVO2dCQU9aLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7Z0JBb0JGLElBQUk7c0JBRFAsS0FBSztnQkFtQkYsS0FBSztzQkFEUixLQUFLO2dCQXlCRyxlQUFlO3NCQUF2QixLQUFLO2dCQVNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU9JLFdBQVc7c0JBQXBCLE1BQU07Z0JBT0csY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXV0b2NvbXBsZXRlLm1vZGVsJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWlycG9ydCBTZWxlY3QgQ29tcG9uZW50IHwgRm9ybSBDb250cm9scyB8IE5ldyBkZXNpZ25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyZWRJdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+ID0gdGhpcy5pdGVtcztcbiAgZm9jdXNlZDogQXV0b2NvbXBsZXRlTW9kZWw7XG4gIGluZGV4ID0gLTE7XG5cbiAgZ2V0IHNob3dCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZUJhY2tkcm9wKSAmJiB0aGlzLm9wZW47XG4gIH1cbiAgc2V0IHNob3dCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NwYW4nKSBzcGFuOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbGFiZWxET00nKSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGljb24gdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBvcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpdGVtc1ZhbHVlOiBBcnJheTxBdXRvY29tcGxldGVNb2RlbD47XG4gIHByaXZhdGUgbW9kZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoJ25hcy1hdXRvY29tcGxldGUnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQ2xlYXIpIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQ2xlYXInKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQmFja2Ryb3AnKTtcbiAgICB9XG4gIH1cblxuICBnZXRSZXN1bHRzSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtcmVzdWx0cy0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldExhYmVsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtbGFiZWwtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYXV0b2NvbXBsZXRlX19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gaW5wdXRFbGVtZW50LnZhbHVlID8gJyMxNTI3M2YnIDogJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVtb3ZlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID8gJ3JlbW92ZS0tc2Vjb25kYXJ5JyA6ICdyZW1vdmUnO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtpZF09XCJnZXRMYWJlbElkKClcIiAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicsIFtvcGVuICYmICdhY3RpdmUnXSlcIlxuICAgICNsYWJlbEVsZW1lbnQ+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbaWRdPVwiZ2V0SW5wdXRJZCgpXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAoZm9jdXMpPVwic2V0T3BlbigpXCIgKGlucHV0KT1cImZpbHRlcigpXCIgKGNsaWNrKT1cInNldE9wZW4oKVwiIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICA8bGFiZWwgW2lkXT1cImdldExhYmVsSWQoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgW29wZW4gJiYgJ2FjdGl2ZSddKVwiIFtmb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbaWRdPVwiZ2V0SW5wdXRJZCgpXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJnZXRSZXN1bHRzSWQoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChmb2N1cyk9XCJzZXRPcGVuKClcIiAoaW5wdXQpPVwiZmlsdGVyKClcIiAoY2xpY2spPVwic2V0T3BlbigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBbaWRdPVwiZ2V0UmVzdWx0c0lkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMtd3JhcHBlcicpXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiPlxuICA8dWwgI3Jlc3VsdHMgcm9sZT1cImxpc3Rib3hcIiAqbmdJZj1cIm9wZW5cIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZ2V0TGFiZWxJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZXN1bHRzJylcIj5cbiAgICA8bGkgcm9sZT1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBbaWRdPVwiaXRlbS5pZFwiXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xpc3QtaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2l0ZW0nLCBpdGVtLmlkID09PSBmb2N1c2VkPy5pZCAmJiAnZm9jdXMnKVwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGl0bGUnKVwiPnt7aXRlbS50aXRsZX19PC9zcGFuPlxuICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWFtYmxlJylcIj57e2l0ZW0ucHJlYW1ibGV9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cblxuPG5hcy1iYWNrZHJvcCAqbmdJZj1cIiFleGlzdHMoZGlzYWJsZUJhY2tkcm9wKVwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gIFsoc2hvd0JhY2tkcm9wKV09XCJzaG93QmFja2Ryb3BcIj48L25hcy1iYWNrZHJvcD4iXX0=
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBaUREOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElB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WUFBWTtzQkFBcEIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPSSxXQUFXO3NCQUFwQixNQUFNO2dCQU9HLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2F1dG9jb21wbGV0ZS5tb2RlbCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZpbHRlcmVkSXRlbXM6IEFycmF5PEF1dG9jb21wbGV0ZU1vZGVsPiA9IHRoaXMuaXRlbXM7XG4gIGZvY3VzZWQ6IEF1dG9jb21wbGV0ZU1vZGVsO1xuICBpbmRleCA9IC0xO1xuXG4gIGdldCBzaG93QmFja2Ryb3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVCYWNrZHJvcCkgJiYgdGhpcy5vcGVuO1xuICB9XG4gIHNldCBzaG93QmFja2Ryb3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzcGFuJykgc3BhbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVzdWx0cycpIHJlc3VsdHM6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xhYmVsRE9NJykgbGFiZWxFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGxhYmVsIG9mIHRoZSBpbnB1dCBpbnNpZGUgdGhlIGlucHV0IGZpZWxkLCBkZWZhdWx0IHZhbHVlIGlzIHRydWVcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsSW5zaWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBpY29uIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBzZWNvbmRhcnkgY29sb3IgdGhlbWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWNvbmRhcnk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHRoaXMuaWQgOiBgbmFzLWF1dG9jb21wbGV0ZS0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgaXRlbXNWYWx1ZTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+O1xuICBwcml2YXRlIG1vZGVsVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSkge1xuICAgIHN1cGVyKCduYXMtYXV0b2NvbXBsZXRlJyk7XG4gICAgdGhpcy5jb21wb25lbnRJZCA9IG5leHRJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbENsZWFyKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbENsZWFyJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbEJhY2tkcm9wKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbEJhY2tkcm9wJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzdWx0c0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLXJlc3VsdHMtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRMYWJlbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWxhYmVsLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0SW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYXV0b2NvbXBsZXRlX19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubGFiZWwgJiYgdGhpcy5sYWJlbC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgICB0aGlzLnNwYW4ubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXJDb2xvciA9IGlucHV0RWxlbWVudC52YWx1ZSA/ICcjMTUyNzNmJyA6ICcjNmY2ZjZmJztcbiAgICB9XG4gIH1cblxuICBzZXRSZW1vdmVJY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgPyAncmVtb3ZlLS1zZWNvbmRhcnknIDogJ3JlbW92ZSc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICA8bGFiZWwgW2lkXT1cImdldExhYmVsSWQoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgW29wZW4gJiYgJ2FjdGl2ZScsIGxhYmVsSW5zaWRlICYmICdsYWJlbC1pbnNpZGUnLCBleGlzdHMoc2Vjb25kYXJ5KSAmJiAnc2Vjb25kYXJ5LWNvbG9yJ10pXCJcbiAgICAjbGFiZWxFbGVtZW50PlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAjc3Bhbj57e2xhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIHJvbGU9XCJjb21ib2JveFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFtpZF09XCJnZXRJbnB1dElkKClcIiBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldFJlc3VsdHNJZCgpXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIChmb2N1cyk9XCJzZXRPcGVuKClcIiAoaW5wdXQpPVwiZmlsdGVyKClcIiAoY2xpY2spPVwic2V0T3BlbigpXCIgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwibW9kZWw7IGVsc2UgaXNFbXB0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCJzZXRSZW1vdmVJY29uKClcIj48L25hcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI2lzRW1wdHk+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCInc21hbGwnXCIgW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gIDxsYWJlbCBbaWRdPVwiZ2V0TGFiZWxJZCgpXCIgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3dyYXBwZXInLCBbb3BlbiAmJiAnYWN0aXZlJywgbGFiZWxJbnNpZGUgJiYgJ2xhYmVsLWluc2lkZScsIGV4aXN0cyhzZWNvbmRhcnkpICYmICdzZWNvbmRhcnktY29sb3InXSlcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAjc3Bhbj57e2xhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIHJvbGU9XCJjb21ib2JveFwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtpZF09XCJnZXRJbnB1dElkKClcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGZvY3VzKT1cInNldE9wZW4oKVwiIChpbnB1dCk9XCJmaWx0ZXIoKVwiIChjbGljayk9XCJzZXRPcGVuKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwibW9kZWw7IGVsc2UgaXNFbXB0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCJzZXRSZW1vdmVJY29uKClcIj48L25hcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI2lzRW1wdHk+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCInc21hbGwnXCIgW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG48ZGl2IFtpZF09XCJnZXRSZXN1bHRzSWQoKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVzdWx0cy13cmFwcGVyJywgW2V4aXN0cyhzZWNvbmRhcnkpICYmICdzZWNvbmRhcnktY29sb3InXSlcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCI+XG4gIDx1bCAjcmVzdWx0cyByb2xlPVwibGlzdGJveFwiICpuZ0lmPVwib3BlblwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRMYWJlbElkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMnKVwiPlxuICAgIDxsaSByb2xlPVwib3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtc1wiIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgaXRlbS5pZCA9PT0gZm9jdXNlZD8uaWQgJiYgJ2ZvY3VzJylcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCd0aXRsZScpXCI+e3tpdGVtLnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlYW1ibGUnKVwiPnt7aXRlbS5wcmVhbWJsZX19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuPG5hcy1iYWNrZHJvcCAqbmdJZj1cIiFleGlzdHMoZGlzYWJsZUJhY2tkcm9wKVwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gIFsoc2hvd0JhY2tkcm9wKV09XCJzaG93QmFja2Ryb3BcIj48L25hcy1iYWNrZHJvcD4iXX0=